mirror of
https://github.com/LukeHagar/vercel.git
synced 2025-12-11 12:57:46 +00:00
Compare commits
21 Commits
@vercel/py
...
@vercel/bu
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1bf04ba421 | ||
|
|
15475c8a2c | ||
|
|
1c8f0a4c33 | ||
|
|
ba65da97e1 | ||
|
|
28b6b810be | ||
|
|
9fc9a10c82 | ||
|
|
aef56edc35 | ||
|
|
e6a3497fb1 | ||
|
|
763a6d1070 | ||
|
|
21f5e7375e | ||
|
|
256d0fd463 | ||
|
|
5b79603378 | ||
|
|
863199aa0a | ||
|
|
97e02ae506 | ||
|
|
bd9236f228 | ||
|
|
26bc51e0d6 | ||
|
|
21b87d2ee6 | ||
|
|
f765c24689 | ||
|
|
0f12005a68 | ||
|
|
5758838d09 | ||
|
|
9dab15dc88 |
29
.github/dependabot.yml
vendored
29
.github/dependabot.yml
vendored
@@ -78,7 +78,7 @@ updates:
|
||||
update-types:
|
||||
- 'minor'
|
||||
|
||||
- directory: /packages/static-build/test/fixtures/ionic-angular-v7
|
||||
- directory: /packages/static-build/test/fixtures/ionic-angular-v8
|
||||
schedule:
|
||||
interval: 'daily'
|
||||
open-pull-requests-limit: 1
|
||||
@@ -175,6 +175,33 @@ updates:
|
||||
update-types:
|
||||
- 'minor'
|
||||
|
||||
- directory: /packages/static-build/test/fixtures/parcel-v2
|
||||
schedule:
|
||||
interval: 'daily'
|
||||
open-pull-requests-limit: 1
|
||||
reviewers:
|
||||
- 'trek'
|
||||
- 'TooTallNate'
|
||||
- 'EndangeredMassa'
|
||||
- 'erikareads'
|
||||
- 'jeffsee55'
|
||||
- 'onsclom'
|
||||
commit-message:
|
||||
prefix: '[framework-fixtures]'
|
||||
package-ecosystem: 'npm'
|
||||
allow:
|
||||
- dependency-name: 'parcel'
|
||||
ignore:
|
||||
- dependency-name: 'parcel'
|
||||
update-types:
|
||||
['version-update:semver-major', 'version-update:semver-patch']
|
||||
groups:
|
||||
core:
|
||||
patterns:
|
||||
- 'parcel'
|
||||
update-types:
|
||||
- 'minor'
|
||||
|
||||
- directory: /packages/static-build/test/fixtures/preact-v10
|
||||
schedule:
|
||||
interval: 'daily'
|
||||
|
||||
110
examples/nextjs/package-lock.json
generated
110
examples/nextjs/package-lock.json
generated
@@ -8,7 +8,7 @@
|
||||
"name": "nextjs",
|
||||
"version": "0.1.0",
|
||||
"dependencies": {
|
||||
"next": "14.2.2",
|
||||
"next": "14.2.3",
|
||||
"react": "^18",
|
||||
"react-dom": "^18"
|
||||
},
|
||||
@@ -17,7 +17,7 @@
|
||||
"@types/react": "^18",
|
||||
"@types/react-dom": "^18",
|
||||
"eslint": "^8",
|
||||
"eslint-config-next": "14.2.2",
|
||||
"eslint-config-next": "14.2.3",
|
||||
"postcss": "^8",
|
||||
"tailwindcss": "^3.4.1",
|
||||
"typescript": "^5"
|
||||
@@ -238,23 +238,23 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/env": {
|
||||
"version": "14.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.2.tgz",
|
||||
"integrity": "sha512-sk72qRfM1Q90XZWYRoJKu/UWlTgihrASiYw/scb15u+tyzcze3bOuJ/UV6TBOQEeUaxOkRqGeuGUdiiuxc5oqw=="
|
||||
"version": "14.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.3.tgz",
|
||||
"integrity": "sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA=="
|
||||
},
|
||||
"node_modules/@next/eslint-plugin-next": {
|
||||
"version": "14.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.2.tgz",
|
||||
"integrity": "sha512-q+Ec2648JtBpKiu/FSJm8HAsFXlNvioHeBCbTP12T1SGcHYwhqHULSfQgFkPgHDu3kzNp2Kem4J54bK4rPQ5SQ==",
|
||||
"version": "14.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.3.tgz",
|
||||
"integrity": "sha512-L3oDricIIjgj1AVnRdRor21gI7mShlSwU/1ZGHmqM3LzHhXXhdkrfeNY5zif25Bi5Dd7fiJHsbhoZCHfXYvlAw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"glob": "10.3.10"
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-darwin-arm64": {
|
||||
"version": "14.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.2.tgz",
|
||||
"integrity": "sha512-3iPgMhzbalizGwHNFUcGnDhFPSgVBHQ8aqSTAMxB5BvJG0oYrDf1WOJZlbXBgunOEj/8KMVbejEur/FpvFsgFQ==",
|
||||
"version": "14.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz",
|
||||
"integrity": "sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -267,9 +267,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-darwin-x64": {
|
||||
"version": "14.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.2.tgz",
|
||||
"integrity": "sha512-x7Afi/jt0ZBRUZHTi49yyej4o8znfIMHO4RvThuoc0P+uli8Jd99y5GKjxoYunPKsXL09xBXEM1+OQy2xEL0Ag==",
|
||||
"version": "14.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.3.tgz",
|
||||
"integrity": "sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -282,9 +282,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-linux-arm64-gnu": {
|
||||
"version": "14.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.2.tgz",
|
||||
"integrity": "sha512-zbfPtkk7L41ODMJwSp5VbmPozPmMMQrzAc0HAUomVeVIIwlDGs/UCqLJvLNDt4jpWgc21SjjyIn762lNGrMaUA==",
|
||||
"version": "14.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.3.tgz",
|
||||
"integrity": "sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -297,9 +297,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-linux-arm64-musl": {
|
||||
"version": "14.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.2.tgz",
|
||||
"integrity": "sha512-wPbS3pI/JU16rm3XdLvvTmlsmm1nd+sBa2ohXgBZcShX4TgOjD4R+RqHKlI1cjo/jDZKXt6OxmcU0Iys0OC/yg==",
|
||||
"version": "14.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.3.tgz",
|
||||
"integrity": "sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -312,9 +312,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-linux-x64-gnu": {
|
||||
"version": "14.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.2.tgz",
|
||||
"integrity": "sha512-NqWOHqqq8iC9tuHvZxjQ2tX+jWy2X9y8NX2mcB4sj2bIccuCxbIZrU/ThFPZZPauygajZuVQ6zediejQHwZHwQ==",
|
||||
"version": "14.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.3.tgz",
|
||||
"integrity": "sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -327,9 +327,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-linux-x64-musl": {
|
||||
"version": "14.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.2.tgz",
|
||||
"integrity": "sha512-lGepHhwb9sGhCcU7999+iK1ZZT+6rrIoVg40MP7DZski9GIZP80wORSbt5kJzh9v2x2ev2lxC6VgwMQT0PcgTA==",
|
||||
"version": "14.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.3.tgz",
|
||||
"integrity": "sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -342,9 +342,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-win32-arm64-msvc": {
|
||||
"version": "14.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.2.tgz",
|
||||
"integrity": "sha512-TZSh/48SfcLEQ4rD25VVn2kdIgUWmMflRX3OiyPwGNXn3NiyPqhqei/BaqCYXViIQ+6QsG9R0C8LftMqy8JPMA==",
|
||||
"version": "14.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.3.tgz",
|
||||
"integrity": "sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -357,9 +357,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-win32-ia32-msvc": {
|
||||
"version": "14.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.2.tgz",
|
||||
"integrity": "sha512-M0tBVNMEBJN2ZNQWlcekMn6pvLria7Sa2Fai5znm7CCJz4pP3lrvlSxhKdkCerk0D9E0bqx5yAo3o2Q7RrD4gA==",
|
||||
"version": "14.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.3.tgz",
|
||||
"integrity": "sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
@@ -372,9 +372,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-win32-x64-msvc": {
|
||||
"version": "14.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.2.tgz",
|
||||
"integrity": "sha512-a/20E/wtTJZ3Ykv3f/8F0l7TtgQa2LWHU2oNB9bsu0VjqGuGGHmm/q6waoUNQYTVPYrrlxxaHjJcDV6aiSTt/w==",
|
||||
"version": "14.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz",
|
||||
"integrity": "sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -1021,9 +1021,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001610",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001610.tgz",
|
||||
"integrity": "sha512-QFutAY4NgaelojVMjY63o6XlZyORPaLfyMnsl3HgnWdJUcX6K0oaJymHjH8PT5Gk7sTm8rvC/c5COUQKXqmOMA==",
|
||||
"version": "1.0.30001612",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz",
|
||||
"integrity": "sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
@@ -1571,12 +1571,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-config-next": {
|
||||
"version": "14.2.2",
|
||||
"resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.2.tgz",
|
||||
"integrity": "sha512-12/uFc0KX+wUs7EDpOUGKMXBXZJiBVGdK5/m/QgXOCg2mQ0bQWoKSWNrCeOg7Vum6Kw1d1TW453W6xh+GbHquw==",
|
||||
"version": "14.2.3",
|
||||
"resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.3.tgz",
|
||||
"integrity": "sha512-ZkNztm3Q7hjqvB1rRlOX8P9E/cXRL9ajRcs8jufEtwMfTVYRqnmtnaSu57QqHyBlovMuiB8LEzfLBkh5RYV6Fg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@next/eslint-plugin-next": "14.2.2",
|
||||
"@next/eslint-plugin-next": "14.2.3",
|
||||
"@rushstack/eslint-patch": "^1.3.3",
|
||||
"@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0",
|
||||
"eslint-import-resolver-node": "^0.3.6",
|
||||
@@ -3117,11 +3117,11 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/next": {
|
||||
"version": "14.2.2",
|
||||
"resolved": "https://registry.npmjs.org/next/-/next-14.2.2.tgz",
|
||||
"integrity": "sha512-oGwUaa2bCs47FbuxWMpOoXtBMPYpvTPgdZr3UAo+pu7Ns00z9otmYpoeV1HEiYL06AlRQQIA/ypK526KjJfaxg==",
|
||||
"version": "14.2.3",
|
||||
"resolved": "https://registry.npmjs.org/next/-/next-14.2.3.tgz",
|
||||
"integrity": "sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==",
|
||||
"dependencies": {
|
||||
"@next/env": "14.2.2",
|
||||
"@next/env": "14.2.3",
|
||||
"@swc/helpers": "0.5.5",
|
||||
"busboy": "1.6.0",
|
||||
"caniuse-lite": "^1.0.30001579",
|
||||
@@ -3136,15 +3136,15 @@
|
||||
"node": ">=18.17.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@next/swc-darwin-arm64": "14.2.2",
|
||||
"@next/swc-darwin-x64": "14.2.2",
|
||||
"@next/swc-linux-arm64-gnu": "14.2.2",
|
||||
"@next/swc-linux-arm64-musl": "14.2.2",
|
||||
"@next/swc-linux-x64-gnu": "14.2.2",
|
||||
"@next/swc-linux-x64-musl": "14.2.2",
|
||||
"@next/swc-win32-arm64-msvc": "14.2.2",
|
||||
"@next/swc-win32-ia32-msvc": "14.2.2",
|
||||
"@next/swc-win32-x64-msvc": "14.2.2"
|
||||
"@next/swc-darwin-arm64": "14.2.3",
|
||||
"@next/swc-darwin-x64": "14.2.3",
|
||||
"@next/swc-linux-arm64-gnu": "14.2.3",
|
||||
"@next/swc-linux-arm64-musl": "14.2.3",
|
||||
"@next/swc-linux-x64-gnu": "14.2.3",
|
||||
"@next/swc-linux-x64-musl": "14.2.3",
|
||||
"@next/swc-win32-arm64-msvc": "14.2.3",
|
||||
"@next/swc-win32-ia32-msvc": "14.2.3",
|
||||
"@next/swc-win32-x64-msvc": "14.2.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@opentelemetry/api": "^1.1.0",
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"dependencies": {
|
||||
"react": "^18",
|
||||
"react-dom": "^18",
|
||||
"next": "14.2.2"
|
||||
"next": "14.2.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"typescript": "^5",
|
||||
@@ -21,6 +21,6 @@
|
||||
"postcss": "^8",
|
||||
"tailwindcss": "^3.4.1",
|
||||
"eslint": "^8",
|
||||
"eslint-config-next": "14.2.2"
|
||||
"eslint-config-next": "14.2.3"
|
||||
}
|
||||
}
|
||||
|
||||
2
examples/package.json
vendored
2
examples/package.json
vendored
@@ -9,7 +9,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jest": "27.4.1",
|
||||
"@vercel/build-utils": "7.12.0",
|
||||
"@vercel/build-utils": "8.0.0",
|
||||
"@vercel/frameworks": "3.0.2"
|
||||
},
|
||||
"version": null
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# @vercel-internals/types
|
||||
|
||||
## 1.0.31
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`15475c8a2`](https://github.com/vercel/vercel/commit/15475c8a2c303a1dd189ba24044fac750280dd2e), [`21f5e7375`](https://github.com/vercel/vercel/commit/21f5e7375e4cb4ceed98ab56486d09a85fa3894d)]:
|
||||
- @vercel/build-utils@8.0.0
|
||||
|
||||
## 1.0.30
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"private": true,
|
||||
"name": "@vercel-internals/types",
|
||||
"version": "1.0.30",
|
||||
"version": "1.0.31",
|
||||
"types": "index.d.ts",
|
||||
"main": "index.d.ts",
|
||||
"files": [
|
||||
@@ -10,7 +10,7 @@
|
||||
"dependencies": {
|
||||
"@types/node": "14.14.31",
|
||||
"@vercel-internals/constants": "1.0.4",
|
||||
"@vercel/build-utils": "7.12.0",
|
||||
"@vercel/build-utils": "8.0.0",
|
||||
"@vercel/routing-utils": "3.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"source-map-support": "0.5.12",
|
||||
"ts-eager": "2.0.2",
|
||||
"ts-jest": "29.1.0",
|
||||
"turbo": "1.13.2",
|
||||
"turbo": "1.13.3",
|
||||
"typescript": "4.9.5"
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @vercel/build-utils
|
||||
|
||||
## 8.0.0
|
||||
|
||||
### Major Changes
|
||||
|
||||
- Remove legacy `avoidTopLevelInstall` logic ([#11513](https://github.com/vercel/vercel/pull/11513))
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [build-utils] Add `VERCEL_PROJECT_PRODUCTION_URL` framework env var prefix ([#11506](https://github.com/vercel/vercel/pull/11506))
|
||||
|
||||
## 7.12.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vercel/build-utils",
|
||||
"version": "7.12.0",
|
||||
"version": "8.0.0",
|
||||
"license": "Apache-2.0",
|
||||
"main": "./dist/index.js",
|
||||
"types": "./dist/index.d.js",
|
||||
|
||||
@@ -19,6 +19,7 @@ export function getPrefixedEnvVars({
|
||||
'VERCEL_ENV',
|
||||
'VERCEL_REGION',
|
||||
'VERCEL_BRANCH_URL',
|
||||
'VERCEL_PROJECT_PRODUCTION_URL',
|
||||
];
|
||||
const newEnvs: Envs = {};
|
||||
if (envPrefix && envs.VERCEL_URL) {
|
||||
|
||||
@@ -66,7 +66,6 @@ export interface Meta {
|
||||
filesRemoved?: string[];
|
||||
env?: Env;
|
||||
buildEnv?: Env;
|
||||
avoidTopLevelInstall?: boolean;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ describe('Test `getPrefixedEnvVars()`', () => {
|
||||
VERCEL_URL: 'example.vercel.sh',
|
||||
VERCEL_ENV: 'production',
|
||||
VERCEL_BRANCH_URL: 'example-git-main-acme.vercel.app',
|
||||
VERCEL_PROJECT_PRODUCTION_URL: 'example.com',
|
||||
USER_ENV_VAR_NOT_VERCEL: 'example.com',
|
||||
VERCEL_ARTIFACTS_TOKEN: 'abc123',
|
||||
FOO: 'bar',
|
||||
@@ -24,6 +25,7 @@ describe('Test `getPrefixedEnvVars()`', () => {
|
||||
NEXT_PUBLIC_VERCEL_URL: 'example.vercel.sh',
|
||||
NEXT_PUBLIC_VERCEL_ENV: 'production',
|
||||
NEXT_PUBLIC_VERCEL_BRANCH_URL: 'example-git-main-acme.vercel.app',
|
||||
NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL: 'example.com',
|
||||
TURBO_CI_VENDOR_ENV_KEY: 'NEXT_PUBLIC_VERCEL_',
|
||||
},
|
||||
},
|
||||
|
||||
@@ -1,5 +1,29 @@
|
||||
# vercel
|
||||
|
||||
## 34.1.5
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`763a6d107`](https://github.com/vercel/vercel/commit/763a6d10709ca40405634d41863c2e524917ebe1), [`15475c8a2`](https://github.com/vercel/vercel/commit/15475c8a2c303a1dd189ba24044fac750280dd2e), [`21f5e7375`](https://github.com/vercel/vercel/commit/21f5e7375e4cb4ceed98ab56486d09a85fa3894d)]:
|
||||
- @vercel/ruby@2.1.0
|
||||
- @vercel/build-utils@8.0.0
|
||||
- @vercel/node@3.0.28
|
||||
- @vercel/static-build@2.5.1
|
||||
|
||||
## 34.1.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`5b7960337`](https://github.com/vercel/vercel/commit/5b79603378a50fd04d5be1c3a3e5cd605b61478f)]:
|
||||
- @vercel/next@4.2.4
|
||||
|
||||
## 34.1.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`5758838d0`](https://github.com/vercel/vercel/commit/5758838d090b9789ca6821e1122781352021109f)]:
|
||||
- @vercel/next@4.2.3
|
||||
|
||||
## 34.1.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "vercel",
|
||||
"version": "34.1.2",
|
||||
"version": "34.1.5",
|
||||
"preferGlobal": true,
|
||||
"license": "Apache-2.0",
|
||||
"description": "The command-line interface for Vercel",
|
||||
@@ -32,17 +32,17 @@
|
||||
"node": ">= 16"
|
||||
},
|
||||
"dependencies": {
|
||||
"@vercel/build-utils": "7.12.0",
|
||||
"@vercel/build-utils": "8.0.0",
|
||||
"@vercel/fun": "1.1.0",
|
||||
"@vercel/go": "3.1.1",
|
||||
"@vercel/hydrogen": "1.0.2",
|
||||
"@vercel/next": "4.2.2",
|
||||
"@vercel/node": "3.0.27",
|
||||
"@vercel/next": "4.2.4",
|
||||
"@vercel/node": "3.0.28",
|
||||
"@vercel/python": "4.2.0",
|
||||
"@vercel/redwood": "2.0.8",
|
||||
"@vercel/remix-builder": "2.1.5",
|
||||
"@vercel/ruby": "2.0.5",
|
||||
"@vercel/static-build": "2.5.0",
|
||||
"@vercel/ruby": "2.1.0",
|
||||
"@vercel/static-build": "2.5.1",
|
||||
"chokidar": "3.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -92,8 +92,8 @@
|
||||
"@types/yauzl-promise": "2.1.0",
|
||||
"@vercel-internals/constants": "1.0.4",
|
||||
"@vercel-internals/get-package-json": "1.0.0",
|
||||
"@vercel-internals/types": "1.0.30",
|
||||
"@vercel/client": "13.2.1",
|
||||
"@vercel-internals/types": "1.0.31",
|
||||
"@vercel/client": "13.2.2",
|
||||
"@vercel/error-utils": "2.0.2",
|
||||
"@vercel/frameworks": "3.0.2",
|
||||
"@vercel/fs-detectors": "5.2.3",
|
||||
|
||||
@@ -52,7 +52,7 @@ export const aliasCommand: Command = {
|
||||
name: 'next',
|
||||
description: 'Show next page of results',
|
||||
argument: 'MS',
|
||||
shorthand: 'n',
|
||||
shorthand: 'N',
|
||||
type: String,
|
||||
deprecated: false,
|
||||
},
|
||||
@@ -65,13 +65,14 @@ export const aliasCommand: Command = {
|
||||
},
|
||||
{
|
||||
name: 'limit',
|
||||
shorthand: 'n',
|
||||
shorthand: null,
|
||||
description:
|
||||
'Number of results to return per page (default: 20, max: 100)',
|
||||
argument: 'NUMBER',
|
||||
type: String,
|
||||
deprecated: false,
|
||||
},
|
||||
{ name: 'json', shorthand: null, type: Boolean, deprecated: false },
|
||||
],
|
||||
examples: [
|
||||
{
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
import { handleError } from '../../util/error';
|
||||
import Client from '../../util/client';
|
||||
import getArgs from '../../util/get-args';
|
||||
import { parseArguments } from '../../util/get-args';
|
||||
import getSubcommand from '../../util/get-subcommand';
|
||||
import { help } from '../help';
|
||||
import ls from './ls';
|
||||
import rm from './rm';
|
||||
import set from './set';
|
||||
import { aliasCommand } from './command';
|
||||
import { getFlagsSpecification } from '../../util/get-flags-specification';
|
||||
|
||||
const COMMAND_CONFIG = {
|
||||
default: ['set'],
|
||||
@@ -16,35 +17,33 @@ const COMMAND_CONFIG = {
|
||||
};
|
||||
|
||||
export default async function alias(client: Client) {
|
||||
let argv;
|
||||
let parsedArguments;
|
||||
|
||||
const flagsSpecification = getFlagsSpecification(aliasCommand.options);
|
||||
|
||||
try {
|
||||
argv = getArgs(client.argv.slice(2), {
|
||||
'--json': Boolean,
|
||||
'--yes': Boolean,
|
||||
'--next': Number,
|
||||
'--limit': Number,
|
||||
'-y': '--yes',
|
||||
'-N': '--next',
|
||||
});
|
||||
parsedArguments = parseArguments(client.argv.slice(2), flagsSpecification);
|
||||
} catch (err) {
|
||||
handleError(err);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (argv['--help']) {
|
||||
if (parsedArguments.flags['--help']) {
|
||||
client.output.print(help(aliasCommand, { columns: client.stderr.columns }));
|
||||
return 2;
|
||||
}
|
||||
|
||||
const { subcommand, args } = getSubcommand(argv._.slice(1), COMMAND_CONFIG);
|
||||
const { subcommand, args } = getSubcommand(
|
||||
parsedArguments.args.slice(1),
|
||||
COMMAND_CONFIG
|
||||
);
|
||||
|
||||
switch (subcommand) {
|
||||
case 'ls':
|
||||
return ls(client, argv, args);
|
||||
return ls(client, parsedArguments.flags, args);
|
||||
case 'rm':
|
||||
return rm(client, argv, args);
|
||||
return rm(client, parsedArguments.flags, args);
|
||||
default:
|
||||
return set(client, argv, args);
|
||||
return set(client, parsedArguments.flags, args);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ export const bisectCommand: Command = {
|
||||
description: 'Automatically open each URL in the browser',
|
||||
argument: 'URL',
|
||||
shorthand: 'o',
|
||||
type: String,
|
||||
type: Boolean,
|
||||
deprecated: false,
|
||||
},
|
||||
{
|
||||
|
||||
@@ -8,7 +8,7 @@ import { URLSearchParams, parse } from 'url';
|
||||
import box from '../../util/output/box';
|
||||
import formatDate from '../../util/format-date';
|
||||
import link from '../../util/output/link';
|
||||
import getArgs from '../../util/get-args';
|
||||
import { parseArguments } from '../../util/get-args';
|
||||
import Client from '../../util/client';
|
||||
import { Deployment } from '@vercel-internals/types';
|
||||
import { normalizeURL } from '../../util/bisect/normalize-url';
|
||||
@@ -16,6 +16,8 @@ import getScope from '../../util/get-scope';
|
||||
import getDeployment from '../../util/get-deployment';
|
||||
import { help } from '../help';
|
||||
import { bisectCommand } from './command';
|
||||
import { getFlagsSpecification } from '../../util/get-flags-specification';
|
||||
import handleError from '../../util/handle-error';
|
||||
|
||||
interface Deployments {
|
||||
deployments: Deployment[];
|
||||
@@ -25,39 +27,37 @@ export default async function bisect(client: Client): Promise<number> {
|
||||
const scope = await getScope(client);
|
||||
const { contextName } = scope;
|
||||
|
||||
const argv = getArgs(client.argv.slice(2), {
|
||||
'--bad': String,
|
||||
'-b': '--bad',
|
||||
'--good': String,
|
||||
'-g': '--good',
|
||||
'--open': Boolean,
|
||||
'-o': '--open',
|
||||
'--path': String,
|
||||
'-p': '--path',
|
||||
'--run': String,
|
||||
'-r': '--run',
|
||||
});
|
||||
let parsedArgs = null;
|
||||
|
||||
if (argv['--help']) {
|
||||
const flagsSpecification = getFlagsSpecification(bisectCommand.options);
|
||||
|
||||
try {
|
||||
parsedArgs = parseArguments(client.argv.slice(2), flagsSpecification);
|
||||
} catch (error) {
|
||||
handleError(error);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (parsedArgs.flags['--help']) {
|
||||
output.print(help(bisectCommand, { columns: client.stderr.columns }));
|
||||
return 2;
|
||||
}
|
||||
|
||||
let bad =
|
||||
argv['--bad'] ||
|
||||
parsedArgs.flags['--bad'] ||
|
||||
(await client.input.text({
|
||||
message: `Specify a URL where the bug occurs:`,
|
||||
validate: val => (val ? true : 'A URL must be provided'),
|
||||
}));
|
||||
let good =
|
||||
argv['--good'] ||
|
||||
parsedArgs.flags['--good'] ||
|
||||
(await client.input.text({
|
||||
message: `Specify a URL where the bug does not occur:`,
|
||||
validate: val => (val ? true : 'A URL must be provided'),
|
||||
}));
|
||||
let subpath = argv['--path'] || '';
|
||||
let run = argv['--run'] || '';
|
||||
const openEnabled = argv['--open'] || false;
|
||||
let subpath = parsedArgs.flags['--path'] || '';
|
||||
let run = parsedArgs.flags['--run'] || '';
|
||||
const openEnabled = parsedArgs.flags['--open'] || false;
|
||||
|
||||
if (run) {
|
||||
run = resolve(run);
|
||||
|
||||
@@ -24,18 +24,16 @@ exports[`help command > alias help output snapshots > alias help column width 40
|
||||
|
||||
[2mOptions[22m:
|
||||
|
||||
-n, --limit <NUMBER> Number of
|
||||
results to
|
||||
return per page
|
||||
(default: 20,
|
||||
max: 100)
|
||||
-n, --next <MS> Show next page
|
||||
of results
|
||||
-y, --yes Skip the
|
||||
confirmation
|
||||
prompt when
|
||||
removing an
|
||||
alias
|
||||
--limit <NUMBER> Number of results to
|
||||
return per page
|
||||
(default: 20, max:
|
||||
100)
|
||||
-N, --next <MS> Show next page of
|
||||
results
|
||||
-y, --yes Skip the
|
||||
confirmation prompt
|
||||
when removing an
|
||||
alias
|
||||
|
||||
|
||||
[2mGlobal Options[22m:
|
||||
@@ -108,10 +106,9 @@ exports[`help command > alias help output snapshots > alias help column width 80
|
||||
|
||||
[2mOptions[22m:
|
||||
|
||||
-n, --limit <NUMBER> Number of results to return per page (default: 20, max:
|
||||
100)
|
||||
-n, --next <MS> Show next page of results
|
||||
-y, --yes Skip the confirmation prompt when removing an alias
|
||||
--limit <NUMBER> Number of results to return per page (default: 20, max: 100)
|
||||
-N, --next <MS> Show next page of results
|
||||
-y, --yes Skip the confirmation prompt when removing an alias
|
||||
|
||||
|
||||
[2mGlobal Options[22m:
|
||||
@@ -160,9 +157,9 @@ exports[`help command > alias help output snapshots > alias help column width 12
|
||||
|
||||
[2mOptions[22m:
|
||||
|
||||
-n, --limit <NUMBER> Number of results to return per page (default: 20, max: 100)
|
||||
-n, --next <MS> Show next page of results
|
||||
-y, --yes Skip the confirmation prompt when removing an alias
|
||||
--limit <NUMBER> Number of results to return per page (default: 20, max: 100)
|
||||
-N, --next <MS> Show next page of results
|
||||
-y, --yes Skip the confirmation prompt when removing an alias
|
||||
|
||||
|
||||
[2mGlobal Options[22m:
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# @vercel/client
|
||||
|
||||
## 13.2.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`15475c8a2`](https://github.com/vercel/vercel/commit/15475c8a2c303a1dd189ba24044fac750280dd2e), [`21f5e7375`](https://github.com/vercel/vercel/commit/21f5e7375e4cb4ceed98ab56486d09a85fa3894d)]:
|
||||
- @vercel/build-utils@8.0.0
|
||||
|
||||
## 13.2.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vercel/client",
|
||||
"version": "13.2.1",
|
||||
"version": "13.2.2",
|
||||
"main": "dist/index.js",
|
||||
"typings": "dist/index.d.ts",
|
||||
"homepage": "https://vercel.com",
|
||||
@@ -37,7 +37,7 @@
|
||||
"typescript": "4.9.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"@vercel/build-utils": "7.12.0",
|
||||
"@vercel/build-utils": "8.0.0",
|
||||
"@vercel/error-utils": "2.0.2",
|
||||
"@vercel/routing-utils": "3.1.0",
|
||||
"@zeit/fetch": "5.2.0",
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
"@types/minimatch": "3.0.5",
|
||||
"@types/node": "14.18.33",
|
||||
"@types/semver": "7.3.10",
|
||||
"@vercel/build-utils": "7.12.0",
|
||||
"@vercel/build-utils": "8.0.0",
|
||||
"jest-junit": "16.0.0",
|
||||
"typescript": "4.9.5"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# @vercel/gatsby-plugin-vercel-builder
|
||||
|
||||
## 2.0.26
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`15475c8a2`](https://github.com/vercel/vercel/commit/15475c8a2c303a1dd189ba24044fac750280dd2e), [`21f5e7375`](https://github.com/vercel/vercel/commit/21f5e7375e4cb4ceed98ab56486d09a85fa3894d)]:
|
||||
- @vercel/build-utils@8.0.0
|
||||
|
||||
## 2.0.25
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vercel/gatsby-plugin-vercel-builder",
|
||||
"version": "2.0.25",
|
||||
"version": "2.0.26",
|
||||
"main": "dist/index.js",
|
||||
"files": [
|
||||
"dist",
|
||||
@@ -20,7 +20,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@sinclair/typebox": "0.25.24",
|
||||
"@vercel/build-utils": "7.12.0",
|
||||
"@vercel/build-utils": "8.0.0",
|
||||
"@vercel/routing-utils": "3.1.0",
|
||||
"esbuild": "0.14.47",
|
||||
"etag": "1.8.1",
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"@types/node-fetch": "^2.3.0",
|
||||
"@types/tar": "6.1.5",
|
||||
"@types/yauzl-promise": "2.1.0",
|
||||
"@vercel/build-utils": "7.12.0",
|
||||
"@vercel/build-utils": "8.0.0",
|
||||
"async-retry": "1.3.3",
|
||||
"execa": "^1.0.0",
|
||||
"fs-extra": "^7.0.0",
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"devDependencies": {
|
||||
"@types/jest": "27.5.1",
|
||||
"@types/node": "14.18.33",
|
||||
"@vercel/build-utils": "7.12.0",
|
||||
"@vercel/build-utils": "8.0.0",
|
||||
"execa": "3.2.0",
|
||||
"fs-extra": "11.1.0",
|
||||
"jest-junit": "16.0.0"
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
# @vercel/next
|
||||
|
||||
## 4.2.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [next]: Revert .action handling for dynamic routes ([#11509](https://github.com/vercel/vercel/pull/11509))
|
||||
|
||||
## 4.2.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [next] Reland add .action handling for dynamic routes ([#11487](https://github.com/vercel/vercel/pull/11487))
|
||||
|
||||
## 4.2.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vercel/next",
|
||||
"version": "4.2.2",
|
||||
"version": "4.2.4",
|
||||
"license": "Apache-2.0",
|
||||
"main": "./dist/index",
|
||||
"homepage": "https://vercel.com/docs/runtimes#official-runtimes/next-js",
|
||||
@@ -40,7 +40,7 @@
|
||||
"@types/semver": "6.0.0",
|
||||
"@types/text-table": "0.2.1",
|
||||
"@types/webpack-sources": "3.2.0",
|
||||
"@vercel/build-utils": "7.12.0",
|
||||
"@vercel/build-utils": "8.0.0",
|
||||
"@vercel/routing-utils": "3.1.0",
|
||||
"async-sema": "3.0.1",
|
||||
"buffer-crc32": "0.2.13",
|
||||
|
||||
6
packages/next/test/fixtures/00-app-dir-actions/app/actions.js
vendored
Normal file
6
packages/next/test/fixtures/00-app-dir-actions/app/actions.js
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
'use server';
|
||||
|
||||
export async function increment(value) {
|
||||
await new Promise(resolve => setTimeout(resolve, 500));
|
||||
return value + 1;
|
||||
}
|
||||
19
packages/next/test/fixtures/00-app-dir-actions/app/client/dynamic/[id]/page.js
vendored
Normal file
19
packages/next/test/fixtures/00-app-dir-actions/app/client/dynamic/[id]/page.js
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
'use client';
|
||||
|
||||
import { useState } from 'react';
|
||||
import { increment } from '../../../actions';
|
||||
|
||||
export default function Page() {
|
||||
const [count, setCount] = useState(0);
|
||||
async function updateCount() {
|
||||
const newCount = await increment(count);
|
||||
setCount(newCount);
|
||||
}
|
||||
|
||||
return (
|
||||
<form action={updateCount}>
|
||||
<div id="count">{count}</div>
|
||||
<button>Submit</button>
|
||||
</form>
|
||||
);
|
||||
}
|
||||
5
packages/next/test/fixtures/00-app-dir-actions/app/client/dynamic/layout.js
vendored
Normal file
5
packages/next/test/fixtures/00-app-dir-actions/app/client/dynamic/layout.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
export const dynamic = 'force-dynamic';
|
||||
|
||||
export default function Layout({ children }) {
|
||||
return children;
|
||||
}
|
||||
19
packages/next/test/fixtures/00-app-dir-actions/app/client/static/[dynamic-static]/page.js
vendored
Normal file
19
packages/next/test/fixtures/00-app-dir-actions/app/client/static/[dynamic-static]/page.js
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
'use client';
|
||||
|
||||
import { useState } from 'react';
|
||||
import { increment } from '../../../actions';
|
||||
|
||||
export default function Page() {
|
||||
const [count, setCount] = useState(0);
|
||||
async function updateCount() {
|
||||
const newCount = await increment(count);
|
||||
setCount(newCount);
|
||||
}
|
||||
|
||||
return (
|
||||
<form action={updateCount}>
|
||||
<div id="count">{count}</div>
|
||||
<button>Submit</button>
|
||||
</form>
|
||||
);
|
||||
}
|
||||
5
packages/next/test/fixtures/00-app-dir-actions/app/client/static/layout.js
vendored
Normal file
5
packages/next/test/fixtures/00-app-dir-actions/app/client/static/layout.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
export const dynamic = 'force-static';
|
||||
|
||||
export default function Layout({ children }) {
|
||||
return children;
|
||||
}
|
||||
19
packages/next/test/fixtures/00-app-dir-actions/app/client/static/page.js
vendored
Normal file
19
packages/next/test/fixtures/00-app-dir-actions/app/client/static/page.js
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
'use client';
|
||||
|
||||
import { useState } from 'react';
|
||||
import { increment } from '../../actions';
|
||||
|
||||
export default function Page() {
|
||||
const [count, setCount] = useState(0);
|
||||
async function updateCount() {
|
||||
const newCount = await increment(count);
|
||||
setCount(newCount);
|
||||
}
|
||||
|
||||
return (
|
||||
<form action={updateCount}>
|
||||
<div id="count">{count}</div>
|
||||
<button>Submit</button>
|
||||
</form>
|
||||
);
|
||||
}
|
||||
10
packages/next/test/fixtures/00-app-dir-actions/app/layout.js
vendored
Normal file
10
packages/next/test/fixtures/00-app-dir-actions/app/layout.js
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
export default function Root({ children }) {
|
||||
return (
|
||||
<html>
|
||||
<head>
|
||||
<title>Hello World</title>
|
||||
</head>
|
||||
<body>{children}</body>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
5
packages/next/test/fixtures/00-app-dir-actions/app/rsc/dynamic/layout.js
vendored
Normal file
5
packages/next/test/fixtures/00-app-dir-actions/app/rsc/dynamic/layout.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
export const dynamic = 'force-dynamic';
|
||||
|
||||
export default function Layout({ children }) {
|
||||
return children;
|
||||
}
|
||||
15
packages/next/test/fixtures/00-app-dir-actions/app/rsc/dynamic/page.js
vendored
Normal file
15
packages/next/test/fixtures/00-app-dir-actions/app/rsc/dynamic/page.js
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
import { revalidatePath } from 'next/cache';
|
||||
|
||||
export default async function Page() {
|
||||
async function serverAction() {
|
||||
'use server';
|
||||
await new Promise(resolve => setTimeout(resolve, 1000));
|
||||
revalidatePath('/dynamic');
|
||||
}
|
||||
|
||||
return (
|
||||
<form action={serverAction}>
|
||||
<button>Submit</button>
|
||||
</form>
|
||||
);
|
||||
}
|
||||
15
packages/next/test/fixtures/00-app-dir-actions/app/rsc/static/[dynamic-static]/page.js
vendored
Normal file
15
packages/next/test/fixtures/00-app-dir-actions/app/rsc/static/[dynamic-static]/page.js
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
import { revalidatePath } from 'next/cache';
|
||||
|
||||
export default async function Page() {
|
||||
async function serverAction() {
|
||||
'use server';
|
||||
await new Promise(resolve => setTimeout(resolve, 1000));
|
||||
revalidatePath('/dynamic');
|
||||
}
|
||||
|
||||
return (
|
||||
<form action={serverAction}>
|
||||
<button>Submit</button>
|
||||
</form>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import { revalidatePath } from 'next/cache';
|
||||
|
||||
export default async function Page() {
|
||||
async function serverAction() {
|
||||
'use server';
|
||||
await new Promise(resolve => setTimeout(resolve, 1000));
|
||||
revalidatePath('/dynamic');
|
||||
}
|
||||
|
||||
return (
|
||||
<form action={serverAction}>
|
||||
<button>Submit</button>
|
||||
</form>
|
||||
);
|
||||
}
|
||||
|
||||
export function generateStaticParams() {
|
||||
return [{ slug: 'pre-generated' }];
|
||||
}
|
||||
5
packages/next/test/fixtures/00-app-dir-actions/app/rsc/static/layout.js
vendored
Normal file
5
packages/next/test/fixtures/00-app-dir-actions/app/rsc/static/layout.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
export const dynamic = 'force-static';
|
||||
|
||||
export default function Layout({ children }) {
|
||||
return children;
|
||||
}
|
||||
15
packages/next/test/fixtures/00-app-dir-actions/app/rsc/static/page.js
vendored
Normal file
15
packages/next/test/fixtures/00-app-dir-actions/app/rsc/static/page.js
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
import { revalidatePath } from 'next/cache'
|
||||
|
||||
export default async function Page() {
|
||||
async function serverAction() {
|
||||
'use server';
|
||||
await new Promise((resolve) => setTimeout(resolve, 1000));
|
||||
revalidatePath('/dynamic');
|
||||
}
|
||||
|
||||
return (
|
||||
<form action={serverAction}>
|
||||
<button>Submit</button>
|
||||
</form>
|
||||
);
|
||||
}
|
||||
185
packages/next/test/fixtures/00-app-dir-actions/index.test.js
vendored
Normal file
185
packages/next/test/fixtures/00-app-dir-actions/index.test.js
vendored
Normal file
@@ -0,0 +1,185 @@
|
||||
/* eslint-env jest */
|
||||
const path = require('path');
|
||||
const { deployAndTest } = require('../../utils');
|
||||
const fetch = require('../../../../../test/lib/deployment/fetch-retry');
|
||||
|
||||
const ctx = {};
|
||||
|
||||
function findActionId(page) {
|
||||
page = `app${page}/page`; // add /app prefix and /page suffix
|
||||
|
||||
for (const [actionId, details] of Object.entries(ctx.actionManifest.node)) {
|
||||
if (details.workers[page]) {
|
||||
return actionId;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function generateFormDataPayload(actionId) {
|
||||
return {
|
||||
method: 'POST',
|
||||
body: `------WebKitFormBoundaryHcVuFa30AN0QV3uZ\r\nContent-Disposition: form-data; name=\"1_$ACTION_ID_${actionId}\"\r\n\r\n\r\n------WebKitFormBoundaryHcVuFa30AN0QV3uZ\r\nContent-Disposition: form-data; name=\"0\"\r\n\r\n[\"$K1\"]\r\n------WebKitFormBoundaryHcVuFa30AN0QV3uZ--\r\n`,
|
||||
headers: {
|
||||
'Content-Type':
|
||||
'multipart/form-data; boundary=----WebKitFormBoundaryHcVuFa30AN0QV3uZ',
|
||||
'Next-Action': actionId,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
describe(`${__dirname.split(path.sep).pop()}`, () => {
|
||||
beforeAll(async () => {
|
||||
const info = await deployAndTest(__dirname);
|
||||
|
||||
const actionManifest = await fetch(
|
||||
`${info.deploymentUrl}/server-reference-manifest.json`
|
||||
).then(res => res.json());
|
||||
|
||||
ctx.actionManifest = actionManifest;
|
||||
Object.assign(ctx, info);
|
||||
});
|
||||
|
||||
describe('client component', () => {
|
||||
it('should bypass the static cache for a server action', async () => {
|
||||
const path = '/client/static';
|
||||
const actionId = findActionId(path);
|
||||
|
||||
const res = await fetch(`${ctx.deploymentUrl}${path}`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify([1337]),
|
||||
headers: {
|
||||
'Content-Type': 'text/plain;charset=UTF-8',
|
||||
'Next-Action': actionId,
|
||||
},
|
||||
});
|
||||
|
||||
expect(res.status).toEqual(200);
|
||||
const body = await res.text();
|
||||
expect(body).toContain('1338');
|
||||
expect(res.headers.get('x-matched-path')).toBe(path);
|
||||
expect(res.headers.get('x-vercel-cache')).toBe('BYPASS');
|
||||
});
|
||||
|
||||
it('should bypass the static cache for a server action on a page with dynamic params', async () => {
|
||||
const path = '/client/static/[dynamic-static]';
|
||||
const actionId = findActionId(path);
|
||||
|
||||
const res = await fetch(`${ctx.deploymentUrl}${path}`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify([1337]),
|
||||
headers: {
|
||||
'Content-Type': 'text/plain;charset=UTF-8',
|
||||
'Next-Action': actionId,
|
||||
},
|
||||
});
|
||||
|
||||
expect(res.status).toEqual(200);
|
||||
const body = await res.text();
|
||||
expect(body).toContain('1338');
|
||||
expect(res.headers.get('x-matched-path')).toBe(path);
|
||||
expect(res.headers.get('x-vercel-cache')).toBe('BYPASS');
|
||||
});
|
||||
|
||||
it('should properly invoke the action on a dynamic page', async () => {
|
||||
const path = '/client/dynamic/[id]';
|
||||
const actionId = findActionId(path);
|
||||
|
||||
const res = await fetch(`${ctx.deploymentUrl}${path}`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify([1337]),
|
||||
headers: {
|
||||
'Content-Type': 'text/plain;charset=UTF-8',
|
||||
'Next-Action': actionId,
|
||||
},
|
||||
});
|
||||
|
||||
expect(res.status).toEqual(200);
|
||||
const body = await res.text();
|
||||
expect(body).toContain('1338');
|
||||
expect(res.headers.get('x-matched-path')).toBe(path);
|
||||
expect(res.headers.get('x-vercel-cache')).toBe('MISS');
|
||||
});
|
||||
});
|
||||
|
||||
describe('server component', () => {
|
||||
it('should bypass the static cache for a server action', async () => {
|
||||
const path = '/rsc/static';
|
||||
const actionId = findActionId(path);
|
||||
|
||||
const res = await fetch(
|
||||
`${ctx.deploymentUrl}${path}`,
|
||||
generateFormDataPayload(actionId)
|
||||
);
|
||||
|
||||
expect(res.status).toEqual(200);
|
||||
expect(res.headers.get('x-matched-path')).toBe(path);
|
||||
expect(res.headers.get('content-type')).toBe('text/x-component');
|
||||
expect(res.headers.get('x-vercel-cache')).toBe('BYPASS');
|
||||
});
|
||||
|
||||
it('should bypass the static cache for a server action on a page with dynamic params', async () => {
|
||||
const path = '/rsc/static/[dynamic-static]';
|
||||
const actionId = findActionId(path);
|
||||
|
||||
const res = await fetch(
|
||||
`${ctx.deploymentUrl}${path}`,
|
||||
generateFormDataPayload(actionId)
|
||||
);
|
||||
|
||||
expect(res.status).toEqual(200);
|
||||
expect(res.headers.get('x-matched-path')).toBe(path);
|
||||
expect(res.headers.get('content-type')).toBe('text/x-component');
|
||||
expect(res.headers.get('x-vercel-cache')).toBe('BYPASS');
|
||||
});
|
||||
|
||||
it('should properly invoke the action on a dynamic page', async () => {
|
||||
const path = '/rsc/dynamic';
|
||||
const actionId = findActionId(path);
|
||||
|
||||
const res = await fetch(
|
||||
`${ctx.deploymentUrl}${path}`,
|
||||
generateFormDataPayload(actionId)
|
||||
);
|
||||
|
||||
expect(res.status).toEqual(200);
|
||||
expect(res.headers.get('x-matched-path')).toBe(path);
|
||||
expect(res.headers.get('content-type')).toBe('text/x-component');
|
||||
expect(res.headers.get('x-vercel-cache')).toBe('MISS');
|
||||
});
|
||||
|
||||
describe('generateStaticParams', () => {
|
||||
it('should bypass the static cache for a server action when pre-generated', async () => {
|
||||
const path = '/rsc/static/generate-static-params/pre-generated';
|
||||
const actionId = findActionId(
|
||||
'/rsc/static/generate-static-params/[slug]'
|
||||
);
|
||||
|
||||
const res = await fetch(
|
||||
`${ctx.deploymentUrl}${path}`,
|
||||
generateFormDataPayload(actionId)
|
||||
);
|
||||
|
||||
expect(res.status).toEqual(200);
|
||||
expect(res.headers.get('x-matched-path')).toBe(path);
|
||||
expect(res.headers.get('content-type')).toBe('text/x-component');
|
||||
expect(res.headers.get('x-vercel-cache')).toBe('BYPASS');
|
||||
});
|
||||
|
||||
it('should bypass the static cache for a server action when not pre-generated', async () => {
|
||||
const page = '/rsc/static/generate-static-params/[slug]';
|
||||
const actionId = findActionId(page);
|
||||
|
||||
const res = await fetch(
|
||||
`${ctx.deploymentUrl}/rsc/static/generate-static-params/not-pre-generated`,
|
||||
generateFormDataPayload(actionId)
|
||||
);
|
||||
|
||||
expect(res.status).toEqual(200);
|
||||
expect(res.headers.get('x-matched-path')).toBe(page);
|
||||
expect(res.headers.get('content-type')).toBe('text/x-component');
|
||||
expect(res.headers.get('x-vercel-cache')).toBe('BYPASS');
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
9
packages/next/test/fixtures/00-app-dir-actions/package.json
vendored
Normal file
9
packages/next/test/fixtures/00-app-dir-actions/package.json
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "next build && cp .next/server/server-reference-manifest.json public/"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
0
packages/next/test/fixtures/00-app-dir-actions/public/.keep
vendored
Normal file
0
packages/next/test/fixtures/00-app-dir-actions/public/.keep
vendored
Normal file
9
packages/next/test/fixtures/00-app-dir-actions/vercel.json
vendored
Normal file
9
packages/next/test/fixtures/00-app-dir-actions/vercel.json
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"builds": [
|
||||
{
|
||||
"src": "package.json",
|
||||
"use": "@vercel/next"
|
||||
}
|
||||
],
|
||||
"probes": []
|
||||
}
|
||||
@@ -1,5 +1,12 @@
|
||||
# @vercel/node
|
||||
|
||||
## 3.0.28
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`15475c8a2`](https://github.com/vercel/vercel/commit/15475c8a2c303a1dd189ba24044fac750280dd2e), [`21f5e7375`](https://github.com/vercel/vercel/commit/21f5e7375e4cb4ceed98ab56486d09a85fa3894d)]:
|
||||
- @vercel/build-utils@8.0.0
|
||||
|
||||
## 3.0.27
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vercel/node",
|
||||
"version": "3.0.27",
|
||||
"version": "3.0.28",
|
||||
"license": "Apache-2.0",
|
||||
"main": "./dist/index",
|
||||
"homepage": "https://vercel.com/docs/runtimes#official-runtimes/node-js",
|
||||
@@ -24,7 +24,7 @@
|
||||
"@edge-runtime/primitives": "4.1.0",
|
||||
"@edge-runtime/vm": "3.2.0",
|
||||
"@types/node": "14.18.33",
|
||||
"@vercel/build-utils": "7.12.0",
|
||||
"@vercel/build-utils": "8.0.0",
|
||||
"@vercel/error-utils": "2.0.2",
|
||||
"@vercel/nft": "0.26.4",
|
||||
"@vercel/static-config": "3.0.0",
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"@types/jest": "27.4.1",
|
||||
"@types/node": "14.18.33",
|
||||
"@types/which": "3.0.0",
|
||||
"@vercel/build-utils": "7.12.0",
|
||||
"@vercel/build-utils": "8.0.0",
|
||||
"execa": "^1.0.0",
|
||||
"fs-extra": "11.1.1",
|
||||
"jest-junit": "16.0.0",
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
"@types/aws-lambda": "8.10.19",
|
||||
"@types/node": "14.18.33",
|
||||
"@types/semver": "6.0.0",
|
||||
"@vercel/build-utils": "7.12.0",
|
||||
"@vercel/build-utils": "8.0.0",
|
||||
"execa": "3.2.0",
|
||||
"fs-extra": "11.1.0",
|
||||
"jest-junit": "16.0.0"
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
"@types/jest": "27.5.1",
|
||||
"@types/node": "14.18.33",
|
||||
"@types/semver": "7.3.13",
|
||||
"@vercel/build-utils": "7.12.0",
|
||||
"@vercel/build-utils": "8.0.0",
|
||||
"jest-junit": "16.0.0",
|
||||
"path-to-regexp": "6.2.1",
|
||||
"semver": "7.5.2"
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @vercel/ruby
|
||||
|
||||
## 2.1.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- Add support for Ruby 3.3 ([#11497](https://github.com/vercel/vercel/pull/11497))
|
||||
|
||||
- Remove legacy `avoidTopLevelInstall` logic ([#11513](https://github.com/vercel/vercel/pull/11513))
|
||||
|
||||
## 2.0.5
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@vercel/ruby",
|
||||
"author": "Nathan Cahill <nathan@nathancahill.com>",
|
||||
"version": "2.0.5",
|
||||
"version": "2.1.0",
|
||||
"license": "Apache-2.0",
|
||||
"main": "./dist/index",
|
||||
"homepage": "https://vercel.com/docs/runtimes#official-runtimes/ruby",
|
||||
@@ -23,10 +23,12 @@
|
||||
"devDependencies": {
|
||||
"@types/fs-extra": "8.0.0",
|
||||
"@types/semver": "6.0.0",
|
||||
"@vercel/build-utils": "7.12.0",
|
||||
"@types/which": "3.0.0",
|
||||
"@vercel/build-utils": "8.0.0",
|
||||
"execa": "2.0.4",
|
||||
"fs-extra": "^7.0.1",
|
||||
"jest-junit": "16.0.0",
|
||||
"semver": "6.3.1"
|
||||
"semver": "6.3.1",
|
||||
"which": "3.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { EOL } from 'os';
|
||||
import { join, dirname, relative } from 'path';
|
||||
import { join, dirname } from 'path';
|
||||
import execa from 'execa';
|
||||
import {
|
||||
ensureDir,
|
||||
@@ -49,7 +49,7 @@ async function bundleInstall(
|
||||
bundleDir: string,
|
||||
gemfilePath: string,
|
||||
rubyPath: string,
|
||||
runtime: string
|
||||
major: number
|
||||
) {
|
||||
debug(`running "bundle install --deployment"...`);
|
||||
const bundleAppConfig = await getWriteableDirectory();
|
||||
@@ -73,6 +73,15 @@ async function bundleInstall(
|
||||
gemfilePath,
|
||||
gemfileContent.replace('ruby "~> 3.2.x"', 'ruby "~> 3.2.0"')
|
||||
);
|
||||
} else if (gemfileContent.includes('ruby "~> 3.3.x"')) {
|
||||
// Gemfile contains "3.3.x" which will cause an error message:
|
||||
// "Your Ruby patchlevel is 0, but your Gemfile specified -1"
|
||||
// See https://github.com/rubygems/bundler/blob/3f0638c6c8d340c2f2405ecb84eb3b39c433e36e/lib/bundler/errors.rb#L49
|
||||
// We must correct to the actual version in the build container.
|
||||
await writeFile(
|
||||
gemfilePath,
|
||||
gemfileContent.replace('ruby "~> 3.3.x"', 'ruby "~> 3.3.0"')
|
||||
);
|
||||
}
|
||||
|
||||
const bundlerEnv = cloneEnv(process.env, {
|
||||
@@ -83,9 +92,9 @@ async function bundleInstall(
|
||||
BUNDLE_JOBS: '4',
|
||||
});
|
||||
|
||||
// Lambda "ruby3.2" runtime does not include "webrick",
|
||||
// which is needed for the `vc_init.rb` entrypoint file
|
||||
if (runtime === 'ruby3.2') {
|
||||
// "webrick" needs to be installed for Ruby 3+ to fix runtime error:
|
||||
// webrick is not part of the default gems since Ruby 3.0.0. Install webrick from RubyGems.
|
||||
if (major >= 3) {
|
||||
const result = await execa('bundler', ['add', 'webrick'], {
|
||||
cwd: dirname(gemfilePath),
|
||||
stdio: 'pipe',
|
||||
@@ -143,7 +152,7 @@ export const build: BuildV3 = async ({
|
||||
const gemfileContents = gemfilePath
|
||||
? await readFile(gemfilePath, 'utf8')
|
||||
: '';
|
||||
const { gemHome, bundlerPath, vendorPath, runtime, rubyPath } =
|
||||
const { gemHome, bundlerPath, vendorPath, runtime, rubyPath, major } =
|
||||
await installBundler(meta, gemfileContents);
|
||||
process.env.GEM_HOME = gemHome;
|
||||
debug(`Checking existing vendor directory at "${vendorPath}"`);
|
||||
@@ -178,24 +187,9 @@ export const build: BuildV3 = async ({
|
||||
'did not find a vendor directory but found a Gemfile, bundling gems...'
|
||||
);
|
||||
|
||||
const fileAtRoot = relative(workPath, gemfilePath) === gemfileName;
|
||||
|
||||
// If the `Gemfile` is located in the Root Directory of the project and
|
||||
// the new File System API is used (`avoidTopLevelInstall`), the Install Command
|
||||
// will have already installed its dependencies, so we don't need to do it again.
|
||||
if (meta.avoidTopLevelInstall && fileAtRoot) {
|
||||
debug('Skipping `bundle install` — already handled by Install Command');
|
||||
} else {
|
||||
// try installing. this won't work if native extensions are required.
|
||||
// if that's the case, gems should be vendored locally before deploying.
|
||||
await bundleInstall(
|
||||
bundlerPath,
|
||||
bundleDir,
|
||||
gemfilePath,
|
||||
rubyPath,
|
||||
runtime
|
||||
);
|
||||
}
|
||||
// try installing. this won't work if native extensions are required.
|
||||
// if that's the case, gems should be vendored locally before deploying.
|
||||
await bundleInstall(bundlerPath, bundleDir, gemfilePath, rubyPath, major);
|
||||
}
|
||||
} else {
|
||||
debug('found vendor directory, skipping "bundle install"...');
|
||||
|
||||
@@ -1,35 +1,42 @@
|
||||
import execa from 'execa';
|
||||
import which from 'which';
|
||||
import { join } from 'path';
|
||||
import { intersects } from 'semver';
|
||||
import execa from 'execa';
|
||||
import { Meta, NodeVersion, debug, NowBuildError } from '@vercel/build-utils';
|
||||
|
||||
interface RubyVersion extends NodeVersion {
|
||||
minor: number;
|
||||
}
|
||||
|
||||
function getOptions() {
|
||||
const options = [
|
||||
{ major: 3, minor: 2, range: '3.2.x', runtime: 'ruby3.2' },
|
||||
{
|
||||
major: 2,
|
||||
minor: 7,
|
||||
range: '2.7.x',
|
||||
runtime: 'ruby2.7',
|
||||
discontinueDate: new Date('2023-12-07'),
|
||||
},
|
||||
{
|
||||
major: 2,
|
||||
minor: 5,
|
||||
range: '2.5.x',
|
||||
runtime: 'ruby2.5',
|
||||
discontinueDate: new Date('2021-11-30'),
|
||||
},
|
||||
] as const;
|
||||
return options;
|
||||
}
|
||||
const allOptions: RubyVersion[] = [
|
||||
{ major: 3, minor: 3, range: '3.3.x', runtime: 'ruby3.3' },
|
||||
{ major: 3, minor: 2, range: '3.2.x', runtime: 'ruby3.2' },
|
||||
{
|
||||
major: 2,
|
||||
minor: 7,
|
||||
range: '2.7.x',
|
||||
runtime: 'ruby2.7',
|
||||
discontinueDate: new Date('2023-12-07'),
|
||||
},
|
||||
{
|
||||
major: 2,
|
||||
minor: 5,
|
||||
range: '2.5.x',
|
||||
runtime: 'ruby2.5',
|
||||
discontinueDate: new Date('2021-11-30'),
|
||||
},
|
||||
];
|
||||
|
||||
function getLatestRubyVersion(): RubyVersion {
|
||||
return getOptions()[0];
|
||||
const selection = allOptions.find(isInstalled);
|
||||
if (!selection) {
|
||||
throw new NowBuildError({
|
||||
code: 'RUBY_INVALID_VERSION',
|
||||
link: 'http://vercel.link/ruby-version',
|
||||
message: `Unable to find any supported Ruby versions.`,
|
||||
});
|
||||
}
|
||||
return selection;
|
||||
}
|
||||
|
||||
function isDiscontinued({ discontinueDate }: RubyVersion): boolean {
|
||||
@@ -49,7 +56,7 @@ function getRubyPath(meta: Meta, gemfileContents: string) {
|
||||
.find(line => line.startsWith('ruby'));
|
||||
if (line) {
|
||||
const strVersion = line.slice(4).trim().slice(1, -1).replace('~>', '');
|
||||
const found = getOptions().some(o => {
|
||||
const found = allOptions.some(o => {
|
||||
// The array is already in order so return the first
|
||||
// match which will be the newest version.
|
||||
selection = o;
|
||||
@@ -62,12 +69,17 @@ function getRubyPath(meta: Meta, gemfileContents: string) {
|
||||
link: 'http://vercel.link/ruby-version',
|
||||
});
|
||||
}
|
||||
if (isDiscontinued(selection)) {
|
||||
const discontinued = isDiscontinued(selection);
|
||||
if (discontinued || !isInstalled(selection)) {
|
||||
const latest = getLatestRubyVersion();
|
||||
const intro = `Found \`Gemfile\` with discontinued Ruby version: \`${line}.\``;
|
||||
const intro = `Found \`Gemfile\` with ${
|
||||
discontinued ? 'discontinued' : 'invalid'
|
||||
} Ruby version: \`${line}.\``;
|
||||
const hint = `Please set \`ruby "~> ${latest.range}"\` in your \`Gemfile\` to use Ruby ${latest.range}.`;
|
||||
throw new NowBuildError({
|
||||
code: 'RUBY_DISCONTINUED_VERSION',
|
||||
code: discontinued
|
||||
? 'RUBY_DISCONTINUED_VERSION'
|
||||
: 'RUBY_INVALID_VERSION',
|
||||
link: 'http://vercel.link/ruby-version',
|
||||
message: `${intro} ${hint}`,
|
||||
});
|
||||
@@ -78,6 +90,7 @@ function getRubyPath(meta: Meta, gemfileContents: string) {
|
||||
const { major, minor, runtime } = selection;
|
||||
const gemHome = '/ruby' + major + minor;
|
||||
const result = {
|
||||
major,
|
||||
gemHome,
|
||||
runtime,
|
||||
rubyPath: join(gemHome, 'bin', 'ruby'),
|
||||
@@ -92,27 +105,8 @@ function getRubyPath(meta: Meta, gemfileContents: string) {
|
||||
// process.env.GEM_HOME), and returns
|
||||
// the absolute path to it
|
||||
export async function installBundler(meta: Meta, gemfileContents: string) {
|
||||
const { gemHome, rubyPath, gemPath, vendorPath, runtime } = getRubyPath(
|
||||
meta,
|
||||
gemfileContents
|
||||
);
|
||||
|
||||
// If the new File System API is used (`avoidTopLevelInstall`), the Install Command
|
||||
// will have already installed the dependencies, so we don't need to do it again.
|
||||
if (meta.avoidTopLevelInstall) {
|
||||
debug(
|
||||
`Skipping bundler installation, already installed by Install Command`
|
||||
);
|
||||
|
||||
return {
|
||||
gemHome,
|
||||
rubyPath,
|
||||
gemPath,
|
||||
vendorPath,
|
||||
runtime,
|
||||
bundlerPath: join(gemHome, 'bin', 'bundler'),
|
||||
};
|
||||
}
|
||||
const { gemHome, rubyPath, gemPath, vendorPath, runtime, major } =
|
||||
getRubyPath(meta, gemfileContents);
|
||||
|
||||
debug('installing bundler...');
|
||||
await execa(gemPath, ['install', 'bundler', '--no-document'], {
|
||||
@@ -123,6 +117,7 @@ export async function installBundler(meta: Meta, gemfileContents: string) {
|
||||
});
|
||||
|
||||
return {
|
||||
major,
|
||||
gemHome,
|
||||
rubyPath,
|
||||
gemPath,
|
||||
@@ -131,3 +126,11 @@ export async function installBundler(meta: Meta, gemfileContents: string) {
|
||||
bundlerPath: join(gemHome, 'bin', 'bundler'),
|
||||
};
|
||||
}
|
||||
|
||||
function isInstalled({ major, minor }: RubyVersion): boolean {
|
||||
const gemHome = '/ruby' + major + minor;
|
||||
return (
|
||||
Boolean(which.sync(join(gemHome, 'bin/ruby'), { nothrow: true })) &&
|
||||
Boolean(which.sync(join(gemHome, 'bin/gem'), { nothrow: true }))
|
||||
);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
|
||||
source "https://rubygems.org"
|
||||
|
||||
ruby "~> 3.2.x"
|
||||
ruby "~> 3.3.x"
|
||||
|
||||
gem "cowsay", "~> 0.3.0"
|
||||
|
||||
7
packages/ruby/test/fixtures/01a-cowsay-ruby-3.2/Gemfile
vendored
Normal file
7
packages/ruby/test/fixtures/01a-cowsay-ruby-3.2/Gemfile
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
source "https://rubygems.org"
|
||||
|
||||
ruby "~> 3.2.x"
|
||||
|
||||
gem "cowsay", "~> 0.3.0"
|
||||
13
packages/ruby/test/fixtures/01a-cowsay-ruby-3.2/Gemfile.lock
vendored
Normal file
13
packages/ruby/test/fixtures/01a-cowsay-ruby-3.2/Gemfile.lock
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
cowsay (0.3.0)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
cowsay (~> 0.3.0)
|
||||
|
||||
BUNDLED WITH
|
||||
2.0.1
|
||||
10
packages/ruby/test/fixtures/01a-cowsay-ruby-3.2/index.rb
vendored
Normal file
10
packages/ruby/test/fixtures/01a-cowsay-ruby-3.2/index.rb
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
require 'webrick'
|
||||
require 'cowsay'
|
||||
|
||||
class Handler < WEBrick::HTTPServlet::AbstractServlet
|
||||
def do_GET req, res
|
||||
res.status = 200
|
||||
res['Content-Type'] = 'text/plain'
|
||||
res.body = Cowsay.say('gem:RANDOMNESS_PLACEHOLDER', 'cow')
|
||||
end
|
||||
end
|
||||
5
packages/ruby/test/fixtures/01a-cowsay-ruby-3.2/package.json
vendored
Normal file
5
packages/ruby/test/fixtures/01a-cowsay-ruby-3.2/package.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"engines": {
|
||||
"node": "18.x"
|
||||
}
|
||||
}
|
||||
8
packages/ruby/test/fixtures/01a-cowsay-ruby-3.2/vercel.json
vendored
Normal file
8
packages/ruby/test/fixtures/01a-cowsay-ruby-3.2/vercel.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"version": 2,
|
||||
"builds": [{ "src": "index.rb", "use": "@vercel/ruby" }],
|
||||
"probes": [
|
||||
{ "path": "/", "mustContain": "gem:RANDOMNESS_PLACEHOLDER" },
|
||||
{ "path": "/", "method": "HEAD", "status": 200 }
|
||||
]
|
||||
}
|
||||
@@ -2,6 +2,6 @@
|
||||
|
||||
source "https://rubygems.org"
|
||||
|
||||
ruby "~> 3.2.x"
|
||||
ruby "~> 3.3.x"
|
||||
|
||||
gem "cowsay", "~> 0.3.0"
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
|
||||
source "https://rubygems.org"
|
||||
|
||||
ruby "~> 3.2.x"
|
||||
ruby "~> 3.3.x"
|
||||
|
||||
gem "cowsay", "~> 0.3.0"
|
||||
|
||||
@@ -5,6 +5,7 @@ GEM
|
||||
|
||||
PLATFORMS
|
||||
x86_64-darwin-21
|
||||
x86_64-linux
|
||||
|
||||
DEPENDENCIES
|
||||
cowsay (~> 0.3.0)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
source "https://rubygems.org"
|
||||
|
||||
ruby "~> 3.2.x"
|
||||
ruby "~> 3.3.x"
|
||||
|
||||
gem "cowsay", "~> 0.3.0"
|
||||
|
||||
|
||||
7
packages/ruby/test/fixtures/12-version-3-3-on-al2-error/Gemfile
vendored
Normal file
7
packages/ruby/test/fixtures/12-version-3-3-on-al2-error/Gemfile
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
source "https://rubygems.org"
|
||||
|
||||
ruby "~> 3.3.x"
|
||||
|
||||
gem "cowsay", "~> 0.3.0"
|
||||
16
packages/ruby/test/fixtures/12-version-3-3-on-al2-error/Gemfile.lock
vendored
Normal file
16
packages/ruby/test/fixtures/12-version-3-3-on-al2-error/Gemfile.lock
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
cowsay (0.3.0)
|
||||
|
||||
PLATFORMS
|
||||
x86_64-linux
|
||||
|
||||
DEPENDENCIES
|
||||
cowsay (~> 0.3.0)
|
||||
|
||||
RUBY VERSION
|
||||
ruby 2.5.5p157
|
||||
|
||||
BUNDLED WITH
|
||||
2.2.22
|
||||
9
packages/ruby/test/fixtures/12-version-3-3-on-al2-error/index.rb
vendored
Normal file
9
packages/ruby/test/fixtures/12-version-3-3-on-al2-error/index.rb
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
require 'cowsay'
|
||||
|
||||
Handler = Proc.new do |req, res|
|
||||
name = req.query['name'] || 'World'
|
||||
|
||||
res.status = 200
|
||||
res['Content-Type'] = 'text/text; charset=utf-8'
|
||||
res.body = Cowsay.say("Hello #{name}", 'cow')
|
||||
end
|
||||
5
packages/ruby/test/fixtures/12-version-3-3-on-al2-error/package.json
vendored
Normal file
5
packages/ruby/test/fixtures/12-version-3-3-on-al2-error/package.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"engines": {
|
||||
"node": "18.x"
|
||||
}
|
||||
}
|
||||
4
packages/ruby/test/fixtures/12-version-3-3-on-al2-error/vercel.json
vendored
Normal file
4
packages/ruby/test/fixtures/12-version-3-3-on-al2-error/vercel.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"version": 2,
|
||||
"builds": [{ "src": "index.rb", "use": "@vercel/ruby" }]
|
||||
}
|
||||
7
packages/ruby/test/fixtures/13-version-3-2-on-al2023-error/Gemfile
vendored
Normal file
7
packages/ruby/test/fixtures/13-version-3-2-on-al2023-error/Gemfile
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
source "https://rubygems.org"
|
||||
|
||||
ruby "~> 3.2.x"
|
||||
|
||||
gem "cowsay", "~> 0.3.0"
|
||||
16
packages/ruby/test/fixtures/13-version-3-2-on-al2023-error/Gemfile.lock
vendored
Normal file
16
packages/ruby/test/fixtures/13-version-3-2-on-al2023-error/Gemfile.lock
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
cowsay (0.3.0)
|
||||
|
||||
PLATFORMS
|
||||
x86_64-linux
|
||||
|
||||
DEPENDENCIES
|
||||
cowsay (~> 0.3.0)
|
||||
|
||||
RUBY VERSION
|
||||
ruby 2.5.5p157
|
||||
|
||||
BUNDLED WITH
|
||||
2.2.22
|
||||
9
packages/ruby/test/fixtures/13-version-3-2-on-al2023-error/index.rb
vendored
Normal file
9
packages/ruby/test/fixtures/13-version-3-2-on-al2023-error/index.rb
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
require 'cowsay'
|
||||
|
||||
Handler = Proc.new do |req, res|
|
||||
name = req.query['name'] || 'World'
|
||||
|
||||
res.status = 200
|
||||
res['Content-Type'] = 'text/text; charset=utf-8'
|
||||
res.body = Cowsay.say("Hello #{name}", 'cow')
|
||||
end
|
||||
4
packages/ruby/test/fixtures/13-version-3-2-on-al2023-error/vercel.json
vendored
Normal file
4
packages/ruby/test/fixtures/13-version-3-2-on-al2023-error/vercel.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"version": 2,
|
||||
"builds": [{ "src": "index.rb", "use": "@vercel/ruby" }]
|
||||
}
|
||||
21
packages/ruby/test/test.js
vendored
21
packages/ruby/test/test.js
vendored
@@ -12,7 +12,15 @@ const fixturesPath = path.resolve(__dirname, 'fixtures');
|
||||
const testsThatFailToBuild = new Map([
|
||||
[
|
||||
'11-version-2-5-error',
|
||||
'Found `Gemfile` with discontinued Ruby version: `ruby "~> 2.5.x".` Please set `ruby "~> 3.2.x"` in your `Gemfile` to use Ruby 3.2.x.',
|
||||
'Found `Gemfile` with discontinued Ruby version: `ruby "~> 2.5.x".` Please set `ruby "~> 3.3.x"` in your `Gemfile` to use Ruby 3.3.x.',
|
||||
],
|
||||
[
|
||||
'12-version-3-3-on-al2-error',
|
||||
'Found `Gemfile` with invalid Ruby version: `ruby "~> 3.3.x".` Please set `ruby "~> 3.2.x"` in your `Gemfile` to use Ruby 3.2.x.',
|
||||
],
|
||||
[
|
||||
'13-version-3-2-on-al2023-error',
|
||||
'Found `Gemfile` with invalid Ruby version: `ruby "~> 3.2.x".` Please set `ruby "~> 3.3.x"` in your `Gemfile` to use Ruby 3.3.x.',
|
||||
],
|
||||
]);
|
||||
|
||||
@@ -26,19 +34,12 @@ for (const fixture of fs.readdirSync(fixturesPath)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Ruby endpoints currently require the AL2 build image
|
||||
const projectSettings = {
|
||||
nodeVersion: '18.x',
|
||||
};
|
||||
|
||||
const errMsg = testsThatFailToBuild.get(fixture);
|
||||
if (errMsg) {
|
||||
// eslint-disable-next-line no-loop-func
|
||||
it(`should fail to build ${fixture}`, async () => {
|
||||
try {
|
||||
await testDeployment(path.join(fixturesPath, fixture), {
|
||||
projectSettings,
|
||||
});
|
||||
await testDeployment(path.join(fixturesPath, fixture));
|
||||
} catch (err) {
|
||||
expect(err).toBeTruthy();
|
||||
expect(err.deployment).toBeTruthy();
|
||||
@@ -50,7 +51,7 @@ for (const fixture of fs.readdirSync(fixturesPath)) {
|
||||
// eslint-disable-next-line no-loop-func
|
||||
it(`should build ${fixture}`, async () => {
|
||||
await expect(
|
||||
testDeployment(path.join(fixturesPath, fixture), { projectSettings })
|
||||
testDeployment(path.join(fixturesPath, fixture))
|
||||
).resolves.toBeDefined();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# @vercel/static-build
|
||||
|
||||
## 2.5.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @vercel/gatsby-plugin-vercel-builder@2.0.26
|
||||
|
||||
## 2.5.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vercel/static-build",
|
||||
"version": "2.5.0",
|
||||
"version": "2.5.1",
|
||||
"license": "Apache-2.0",
|
||||
"main": "./dist/index",
|
||||
"homepage": "https://vercel.com/docs/build-step",
|
||||
@@ -21,7 +21,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@vercel/gatsby-plugin-vercel-analytics": "1.0.11",
|
||||
"@vercel/gatsby-plugin-vercel-builder": "2.0.25",
|
||||
"@vercel/gatsby-plugin-vercel-builder": "2.0.26",
|
||||
"@vercel/static-config": "3.0.0",
|
||||
"ts-morph": "12.0.0"
|
||||
},
|
||||
@@ -35,7 +35,7 @@
|
||||
"@types/node-fetch": "2.5.4",
|
||||
"@types/promise-timeout": "1.3.0",
|
||||
"@types/semver": "7.3.13",
|
||||
"@vercel/build-utils": "7.12.0",
|
||||
"@vercel/build-utils": "8.0.0",
|
||||
"@vercel/error-utils": "2.0.2",
|
||||
"@vercel/frameworks": "3.0.2",
|
||||
"@vercel/fs-detectors": "5.2.3",
|
||||
|
||||
@@ -48,7 +48,7 @@ import {
|
||||
import { getHugoUrl } from './utils/hugo';
|
||||
import { once } from 'events';
|
||||
|
||||
const SUPPORTED_RUBY_VERSION = '3.2.0';
|
||||
const SUPPORTED_RUBY_VERSION = '3.3.0';
|
||||
const sleep = (n: number) => new Promise(resolve => setTimeout(resolve, n));
|
||||
|
||||
const DEV_SERVER_PORT_BIND_TIMEOUT = ms('5m');
|
||||
|
||||
1840
packages/static-build/test/fixtures/astro-v4/package-lock.json
generated
vendored
1840
packages/static-build/test/fixtures/astro-v4/package-lock.json
generated
vendored
File diff suppressed because it is too large
Load Diff
@@ -10,6 +10,6 @@
|
||||
"start": "astro dev"
|
||||
},
|
||||
"dependencies": {
|
||||
"astro": "^4.6.2"
|
||||
"astro": "^4.7.0"
|
||||
}
|
||||
}
|
||||
|
||||
6725
packages/static-build/test/fixtures/hydrogen-v2023/package-lock.json
generated
vendored
6725
packages/static-build/test/fixtures/hydrogen-v2023/package-lock.json
generated
vendored
File diff suppressed because it is too large
Load Diff
@@ -13,9 +13,9 @@
|
||||
"prettier": "@shopify/prettier-config",
|
||||
"dependencies": {
|
||||
"@remix-run/react": "1.19.1",
|
||||
"@shopify/cli": "3.49.2",
|
||||
"@shopify/cli-hydrogen": "^5.4.1",
|
||||
"@shopify/hydrogen": "^2023.7.9",
|
||||
"@shopify/cli": "3.59.1",
|
||||
"@shopify/cli-hydrogen": "^5.5.2",
|
||||
"@shopify/hydrogen": "^2023.10.6",
|
||||
"@shopify/remix-oxygen": "^1.1.5",
|
||||
"graphql": "^16.6.0",
|
||||
"graphql-tag": "^2.12.6",
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"@angular/core": "^16.0.0",
|
||||
"@angular/platform-browser": "^16.0.0",
|
||||
"@angular/platform-browser-dynamic": "^16.2.12",
|
||||
"@ionic/angular": "^7.8.0",
|
||||
"@ionic/angular": "^8.0.0",
|
||||
"rxjs": "~7.8.0",
|
||||
"tslib": "^2.6.2",
|
||||
"zone.js": "^0.13.3"
|
||||
@@ -3000,21 +3000,21 @@
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/@ionic/angular": {
|
||||
"version": "7.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-7.8.0.tgz",
|
||||
"integrity": "sha512-O+CpJ92V9CZLa9FqkTkXirPvepxx+ocSlWH6Oqsp4IEPMD2o/WJXKNINW8gX+cBQfNIPLJtle1GH/LY68bUtMw==",
|
||||
"version": "8.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-8.0.1.tgz",
|
||||
"integrity": "sha512-VqGsntNXPpDemzfPv2U28fgP5+DTcElatmQfcHANlG61f4t6/QJ/1IweNph0I4gZddieZwW3LF5ag4BAmGRhzw==",
|
||||
"dependencies": {
|
||||
"@ionic/core": "7.8.0",
|
||||
"@ionic/core": "8.0.1",
|
||||
"ionicons": "^7.0.0",
|
||||
"jsonc-parser": "^3.0.0",
|
||||
"tslib": "^2.3.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@angular/core": ">=14.0.0",
|
||||
"@angular/forms": ">=14.0.0",
|
||||
"@angular/router": ">=14.0.0",
|
||||
"@angular/core": ">=16.0.0",
|
||||
"@angular/forms": ">=16.0.0",
|
||||
"@angular/router": ">=16.0.0",
|
||||
"rxjs": ">=7.5.0",
|
||||
"zone.js": ">=0.11.0"
|
||||
"zone.js": ">=0.13.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@ionic/angular-toolkit": {
|
||||
@@ -3119,11 +3119,11 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@ionic/core": {
|
||||
"version": "7.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.8.0.tgz",
|
||||
"integrity": "sha512-rogQw6lWH367E5XQnovbAIB4pT1YmuTz7OvyQm0cp4pO2/64faKyTGteSxc99stG01CoARW+pjJN1K09hfKFPw==",
|
||||
"version": "8.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.0.1.tgz",
|
||||
"integrity": "sha512-6FEa0kSXSs82aCYcB7JcLGt5Z0XBU8mRFQGVrJtdh3ybQQntIAWKHc9H2OFaiT3SSAK+XQqlU6kq0jM9nWKveQ==",
|
||||
"dependencies": {
|
||||
"@stencil/core": "^4.12.2",
|
||||
"@stencil/core": "^4.17.1",
|
||||
"ionicons": "^7.2.2",
|
||||
"tslib": "^2.1.0"
|
||||
}
|
||||
@@ -3924,9 +3924,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@stencil/core": {
|
||||
"version": "4.12.6",
|
||||
"resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.12.6.tgz",
|
||||
"integrity": "sha512-15JO2TdaxGVKNdLZb/2TtDa+juj3XGD/V0y/disgdzYYSnajgSh06nwODfdHz9eTUh1Hisz+KIo857I1rCZrfg==",
|
||||
"version": "4.17.1",
|
||||
"resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.17.1.tgz",
|
||||
"integrity": "sha512-nlARe1QtK5abnCG8kPQKJMWiELg39vKabvf3ebm6YEhQA35CgrxC1pVYTsYq3yktJKoY+k+VzGRnATLKyaLbvA==",
|
||||
"bin": {
|
||||
"stencil": "bin/stencil"
|
||||
},
|
||||
@@ -8171,9 +8171,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/ionicons": {
|
||||
"version": "7.2.2",
|
||||
"resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.2.2.tgz",
|
||||
"integrity": "sha512-I3iYIfc9Q9FRifWyFSwTAvbEABWlWY32i0sAVDDPGYnaIZVugkLCZFbEcrphW6ixVPg8tt1oLwalo/JJwbEqnA==",
|
||||
"version": "7.3.1",
|
||||
"resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.3.1.tgz",
|
||||
"integrity": "sha512-1boG4EQTBBpQ4/0PU60Yi78Iw/k8iNtKu9c0NmsbzHGnWAcwpiovG9Wi/rk5UlF+DC+CR4XDCxKo91YqvAxkww==",
|
||||
"dependencies": {
|
||||
"@stencil/core": "^4.0.3"
|
||||
}
|
||||
@@ -15842,11 +15842,11 @@
|
||||
"peer": true
|
||||
},
|
||||
"@ionic/angular": {
|
||||
"version": "7.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-7.8.0.tgz",
|
||||
"integrity": "sha512-O+CpJ92V9CZLa9FqkTkXirPvepxx+ocSlWH6Oqsp4IEPMD2o/WJXKNINW8gX+cBQfNIPLJtle1GH/LY68bUtMw==",
|
||||
"version": "8.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-8.0.1.tgz",
|
||||
"integrity": "sha512-VqGsntNXPpDemzfPv2U28fgP5+DTcElatmQfcHANlG61f4t6/QJ/1IweNph0I4gZddieZwW3LF5ag4BAmGRhzw==",
|
||||
"requires": {
|
||||
"@ionic/core": "7.8.0",
|
||||
"@ionic/core": "8.0.1",
|
||||
"ionicons": "^7.0.0",
|
||||
"jsonc-parser": "^3.0.0",
|
||||
"tslib": "^2.3.0"
|
||||
@@ -15927,11 +15927,11 @@
|
||||
}
|
||||
},
|
||||
"@ionic/core": {
|
||||
"version": "7.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.8.0.tgz",
|
||||
"integrity": "sha512-rogQw6lWH367E5XQnovbAIB4pT1YmuTz7OvyQm0cp4pO2/64faKyTGteSxc99stG01CoARW+pjJN1K09hfKFPw==",
|
||||
"version": "8.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.0.1.tgz",
|
||||
"integrity": "sha512-6FEa0kSXSs82aCYcB7JcLGt5Z0XBU8mRFQGVrJtdh3ybQQntIAWKHc9H2OFaiT3SSAK+XQqlU6kq0jM9nWKveQ==",
|
||||
"requires": {
|
||||
"@stencil/core": "^4.12.2",
|
||||
"@stencil/core": "^4.17.1",
|
||||
"ionicons": "^7.2.2",
|
||||
"tslib": "^2.1.0"
|
||||
}
|
||||
@@ -16481,9 +16481,9 @@
|
||||
}
|
||||
},
|
||||
"@stencil/core": {
|
||||
"version": "4.12.6",
|
||||
"resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.12.6.tgz",
|
||||
"integrity": "sha512-15JO2TdaxGVKNdLZb/2TtDa+juj3XGD/V0y/disgdzYYSnajgSh06nwODfdHz9eTUh1Hisz+KIo857I1rCZrfg=="
|
||||
"version": "4.17.1",
|
||||
"resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.17.1.tgz",
|
||||
"integrity": "sha512-nlARe1QtK5abnCG8kPQKJMWiELg39vKabvf3ebm6YEhQA35CgrxC1pVYTsYq3yktJKoY+k+VzGRnATLKyaLbvA=="
|
||||
},
|
||||
"@tootallnate/once": {
|
||||
"version": "1.1.2",
|
||||
@@ -19760,9 +19760,9 @@
|
||||
}
|
||||
},
|
||||
"ionicons": {
|
||||
"version": "7.2.2",
|
||||
"resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.2.2.tgz",
|
||||
"integrity": "sha512-I3iYIfc9Q9FRifWyFSwTAvbEABWlWY32i0sAVDDPGYnaIZVugkLCZFbEcrphW6ixVPg8tt1oLwalo/JJwbEqnA==",
|
||||
"version": "7.3.1",
|
||||
"resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.3.1.tgz",
|
||||
"integrity": "sha512-1boG4EQTBBpQ4/0PU60Yi78Iw/k8iNtKu9c0NmsbzHGnWAcwpiovG9Wi/rk5UlF+DC+CR4XDCxKo91YqvAxkww==",
|
||||
"requires": {
|
||||
"@stencil/core": "^4.0.3"
|
||||
}
|
||||
@@ -17,7 +17,7 @@
|
||||
"@angular/core": "^16.0.0",
|
||||
"@angular/platform-browser": "^16.0.0",
|
||||
"@angular/platform-browser-dynamic": "^16.2.12",
|
||||
"@ionic/angular": "^7.8.0",
|
||||
"@ionic/angular": "^8.0.0",
|
||||
"rxjs": "~7.8.0",
|
||||
"tslib": "^2.6.2",
|
||||
"zone.js": "^0.13.3"
|
||||
86
packages/static-build/test/fixtures/ionic-react-v7/package-lock.json
generated
vendored
86
packages/static-build/test/fixtures/ionic-react-v7/package-lock.json
generated
vendored
@@ -10,10 +10,10 @@
|
||||
"dependencies": {
|
||||
"@ionic/react": "^7.8.3",
|
||||
"@types/node": "^12.20.55",
|
||||
"@types/react": "^18.2.45",
|
||||
"@types/react-dom": "^18.2.17",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"@types/react": "^18.3.0",
|
||||
"@types/react-dom": "^18.3.0",
|
||||
"react": "^18.3.0",
|
||||
"react-dom": "^18.3.0",
|
||||
"react-scripts": "^5.0.1",
|
||||
"typescript": "^4.9.5"
|
||||
}
|
||||
@@ -3832,19 +3832,18 @@
|
||||
"integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
|
||||
},
|
||||
"node_modules/@types/react": {
|
||||
"version": "18.2.45",
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.45.tgz",
|
||||
"integrity": "sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==",
|
||||
"version": "18.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.0.tgz",
|
||||
"integrity": "sha512-DiUcKjzE6soLyln8NNZmyhcQjVv+WsUIFSqetMN0p8927OztKT4VTfFTqsbAi5oAGIcgOmOajlfBqyptDDjZRw==",
|
||||
"dependencies": {
|
||||
"@types/prop-types": "*",
|
||||
"@types/scheduler": "*",
|
||||
"csstype": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/react-dom": {
|
||||
"version": "18.2.17",
|
||||
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.17.tgz",
|
||||
"integrity": "sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==",
|
||||
"version": "18.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz",
|
||||
"integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==",
|
||||
"dependencies": {
|
||||
"@types/react": "*"
|
||||
}
|
||||
@@ -3862,11 +3861,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
|
||||
"integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
|
||||
},
|
||||
"node_modules/@types/scheduler": {
|
||||
"version": "0.16.8",
|
||||
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz",
|
||||
"integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A=="
|
||||
},
|
||||
"node_modules/@types/semver": {
|
||||
"version": "7.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz",
|
||||
@@ -13918,9 +13912,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/react": {
|
||||
"version": "18.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
|
||||
"integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
|
||||
"version": "18.3.0",
|
||||
"resolved": "https://registry.npmjs.org/react/-/react-18.3.0.tgz",
|
||||
"integrity": "sha512-RPutkJftSAldDibyrjuku7q11d3oy6wKOyPe5K1HA/HwwrXcEqBdHsLypkC2FFYjP7bPUa6gbzSBhw4sY2JcDg==",
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.1.0"
|
||||
},
|
||||
@@ -14067,15 +14061,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/react-dom": {
|
||||
"version": "18.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
|
||||
"integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
|
||||
"version": "18.3.0",
|
||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.0.tgz",
|
||||
"integrity": "sha512-zaKdLBftQJnvb7FtDIpZtsAIb2MZU087RM8bRDZU8LVCCFYjPTsDZJNFUWPcVz3HFSN1n/caxi0ca4B/aaVQGQ==",
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"scheduler": "^0.23.0"
|
||||
"scheduler": "^0.23.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.2.0"
|
||||
"react": "^18.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-error-overlay": {
|
||||
@@ -14695,9 +14689,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/scheduler": {
|
||||
"version": "0.23.0",
|
||||
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
|
||||
"integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.1.tgz",
|
||||
"integrity": "sha512-5GKS5JGfiah1O38Vfa9srZE4s3wdHbwjlCrvIookrg2FO9aIwKLOJXuJQFlEfNcVSOXuaL2hzDeY20uVXcUtrw==",
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.1.0"
|
||||
}
|
||||
@@ -19818,19 +19812,18 @@
|
||||
"integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
|
||||
},
|
||||
"@types/react": {
|
||||
"version": "18.2.45",
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.45.tgz",
|
||||
"integrity": "sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==",
|
||||
"version": "18.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.0.tgz",
|
||||
"integrity": "sha512-DiUcKjzE6soLyln8NNZmyhcQjVv+WsUIFSqetMN0p8927OztKT4VTfFTqsbAi5oAGIcgOmOajlfBqyptDDjZRw==",
|
||||
"requires": {
|
||||
"@types/prop-types": "*",
|
||||
"@types/scheduler": "*",
|
||||
"csstype": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"@types/react-dom": {
|
||||
"version": "18.2.17",
|
||||
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.17.tgz",
|
||||
"integrity": "sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==",
|
||||
"version": "18.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz",
|
||||
"integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==",
|
||||
"requires": {
|
||||
"@types/react": "*"
|
||||
}
|
||||
@@ -19848,11 +19841,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
|
||||
"integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
|
||||
},
|
||||
"@types/scheduler": {
|
||||
"version": "0.16.8",
|
||||
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz",
|
||||
"integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A=="
|
||||
},
|
||||
"@types/semver": {
|
||||
"version": "7.5.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz",
|
||||
@@ -26940,9 +26928,9 @@
|
||||
}
|
||||
},
|
||||
"react": {
|
||||
"version": "18.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
|
||||
"integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
|
||||
"version": "18.3.0",
|
||||
"resolved": "https://registry.npmjs.org/react/-/react-18.3.0.tgz",
|
||||
"integrity": "sha512-RPutkJftSAldDibyrjuku7q11d3oy6wKOyPe5K1HA/HwwrXcEqBdHsLypkC2FFYjP7bPUa6gbzSBhw4sY2JcDg==",
|
||||
"requires": {
|
||||
"loose-envify": "^1.1.0"
|
||||
}
|
||||
@@ -27054,12 +27042,12 @@
|
||||
}
|
||||
},
|
||||
"react-dom": {
|
||||
"version": "18.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
|
||||
"integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
|
||||
"version": "18.3.0",
|
||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.0.tgz",
|
||||
"integrity": "sha512-zaKdLBftQJnvb7FtDIpZtsAIb2MZU087RM8bRDZU8LVCCFYjPTsDZJNFUWPcVz3HFSN1n/caxi0ca4B/aaVQGQ==",
|
||||
"requires": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"scheduler": "^0.23.0"
|
||||
"scheduler": "^0.23.1"
|
||||
}
|
||||
},
|
||||
"react-error-overlay": {
|
||||
@@ -27483,9 +27471,9 @@
|
||||
}
|
||||
},
|
||||
"scheduler": {
|
||||
"version": "0.23.0",
|
||||
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
|
||||
"integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.1.tgz",
|
||||
"integrity": "sha512-5GKS5JGfiah1O38Vfa9srZE4s3wdHbwjlCrvIookrg2FO9aIwKLOJXuJQFlEfNcVSOXuaL2hzDeY20uVXcUtrw==",
|
||||
"requires": {
|
||||
"loose-envify": "^1.1.0"
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user