mirror of
https://github.com/LukeHagar/vercel.git
synced 2025-12-11 12:57:46 +00:00
Compare commits
267 Commits
@vercel/er
...
@vercel/py
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ada9a48d57 | ||
|
|
31f3daa5b4 | ||
|
|
fdf7fd6784 | ||
|
|
db216f903f | ||
|
|
40a55b11d5 | ||
|
|
5da537124c | ||
|
|
54aaab83aa | ||
|
|
7110cb449b | ||
|
|
89a15681d5 | ||
|
|
9317543c48 | ||
|
|
e3f326f714 | ||
|
|
eed6a377f1 | ||
|
|
c16d9e6784 | ||
|
|
25f6595d36 | ||
|
|
e8385566fa | ||
|
|
52ca35252a | ||
|
|
2004e3d734 | ||
|
|
49b4394c44 | ||
|
|
08cdfa2a05 | ||
|
|
f18fa8546f | ||
|
|
025344c4a7 | ||
|
|
8b036e97ea | ||
|
|
a4240e89e1 | ||
|
|
0863ae0c6f | ||
|
|
e09d3d5928 | ||
|
|
f5f544ffd2 | ||
|
|
4eb1ff8730 | ||
|
|
d4b604f05c | ||
|
|
a3cf05af06 | ||
|
|
df2bcec830 | ||
|
|
f5e81273af | ||
|
|
e75d900eaf | ||
|
|
1a4f185045 | ||
|
|
35cc7db1a7 | ||
|
|
f535a20aad | ||
|
|
fcea36bf04 | ||
|
|
93f5a4438b | ||
|
|
72265aa9a1 | ||
|
|
6ee5eb137b | ||
|
|
c4f1c2f5ed | ||
|
|
f35a77c292 | ||
|
|
4bf3c237ee | ||
|
|
62c991f25e | ||
|
|
6ea2db4ae9 | ||
|
|
1943b1ecc0 | ||
|
|
92f5b6e0c9 | ||
|
|
ed6ce1149a | ||
|
|
fc3611fb80 | ||
|
|
ed33c2b27c | ||
|
|
a7a5bf1a12 | ||
|
|
cc687b3880 | ||
|
|
053ec92d5f | ||
|
|
4838dc336a | ||
|
|
eae45f4019 | ||
|
|
02feb564a7 | ||
|
|
e174a06673 | ||
|
|
de034943af | ||
|
|
b3862271a5 | ||
|
|
aaceeef604 | ||
|
|
ad107ecf79 | ||
|
|
79ef5c3724 | ||
|
|
02ff265074 | ||
|
|
ae89b8b8be | ||
|
|
4ccdcde463 | ||
|
|
22d3ee160b | ||
|
|
6d97e1673e | ||
|
|
522565f6e5 | ||
|
|
07bf81ab10 | ||
|
|
35024a4e3a | ||
|
|
c1df9bca19 | ||
|
|
4c1cdd1f0f | ||
|
|
b5cdc82a1c | ||
|
|
c7851404b3 | ||
|
|
e54da8a2e5 | ||
|
|
a066bedf95 | ||
|
|
09b23e53ba | ||
|
|
b793a67588 | ||
|
|
31dd354b3a | ||
|
|
529ff3b2d7 | ||
|
|
e71d5638ee | ||
|
|
8c16e765ee | ||
|
|
a008c9c7fe | ||
|
|
62b28ad0b4 | ||
|
|
7c50f2916e | ||
|
|
a521dadafb | ||
|
|
1efb5d6c0d | ||
|
|
72df5ce8f6 | ||
|
|
e20b74687f | ||
|
|
8f1358bd15 | ||
|
|
74c0b3e1bb | ||
|
|
eb0a031aeb | ||
|
|
f327be2d1f | ||
|
|
16a5867f6b | ||
|
|
90cbd675fa | ||
|
|
9c768b98b7 | ||
|
|
4c3bc05322 | ||
|
|
3f47587a8b | ||
|
|
84f93d8af4 | ||
|
|
e1aaf8080b | ||
|
|
0857352967 | ||
|
|
f92d229a63 | ||
|
|
427a2a58cf | ||
|
|
ccb5f301ad | ||
|
|
721cd3afcb | ||
|
|
3c8f20047f | ||
|
|
f15988418d | ||
|
|
5b88f673f8 | ||
|
|
e28c5f9733 | ||
|
|
afa64cb208 | ||
|
|
8572cc653a | ||
|
|
10841e8b06 | ||
|
|
1e13a6ca48 | ||
|
|
976e082c44 | ||
|
|
82d21f2ac8 | ||
|
|
f145540fe6 | ||
|
|
02d15eb0c4 | ||
|
|
0088873a6e | ||
|
|
fc0e6872e5 | ||
|
|
d800d9cd68 | ||
|
|
9c8f6aa70f | ||
|
|
feceeef7b7 | ||
|
|
6215c516e7 | ||
|
|
ada1ad3840 | ||
|
|
fe184618f4 | ||
|
|
de21cf9b62 | ||
|
|
c9c5e148f7 | ||
|
|
8115582e25 | ||
|
|
3e3f92e6d3 | ||
|
|
d6cccd70f2 | ||
|
|
3a68c73496 | ||
|
|
1c21ba52ce | ||
|
|
6e55e72498 | ||
|
|
cb29bfdd68 | ||
|
|
5ba2d61c77 | ||
|
|
879096fff3 | ||
|
|
99e40272cf | ||
|
|
04e9f771df | ||
|
|
6f21f1081d | ||
|
|
d806c9f846 | ||
|
|
71cc4ca865 | ||
|
|
21f25f5eb0 | ||
|
|
2a492fa7ec | ||
|
|
f8ca24b226 | ||
|
|
019590e845 | ||
|
|
6180701f8d | ||
|
|
b1c7ca8e91 | ||
|
|
dbc00a7c3e | ||
|
|
5ae7c2f452 | ||
|
|
0cbc676a6f | ||
|
|
61e588cd63 | ||
|
|
4484c13448 | ||
|
|
0e4c7fa74a | ||
|
|
363dfef68c | ||
|
|
37bace7875 | ||
|
|
25e2b7f0ce | ||
|
|
142c2cede0 | ||
|
|
17a7ec5456 | ||
|
|
8e2226ad2a | ||
|
|
1fe9a6c108 | ||
|
|
a95e477ed3 | ||
|
|
f619441eb4 | ||
|
|
3a4d221fde | ||
|
|
e65af715de | ||
|
|
5b802f7f90 | ||
|
|
beee71cfe3 | ||
|
|
6228d55d1c | ||
|
|
f0a28287c3 | ||
|
|
34b93e52c8 | ||
|
|
584d0ea853 | ||
|
|
2413e684a1 | ||
|
|
9b92a810bb | ||
|
|
cd487bc604 | ||
|
|
f2f6cc93bb | ||
|
|
17a73f4f11 | ||
|
|
2e0cbf10de | ||
|
|
b37ac5f798 | ||
|
|
01ad4c4c8e | ||
|
|
577fd3e979 | ||
|
|
d649a3c931 | ||
|
|
a036b03398 | ||
|
|
1a6a030df5 | ||
|
|
fc8b68eda2 | ||
|
|
9ecc89a3c7 | ||
|
|
2a4e066163 | ||
|
|
a19447f9cd | ||
|
|
dd032e8efa | ||
|
|
b8079b8521 | ||
|
|
f875825893 | ||
|
|
3ac4540202 | ||
|
|
0bbf826213 | ||
|
|
f7dd553239 | ||
|
|
71b9ac6976 | ||
|
|
191f63d03b | ||
|
|
b11210e9ed | ||
|
|
164d392f56 | ||
|
|
9b1c30913f | ||
|
|
5d387517b1 | ||
|
|
97e0eb370e | ||
|
|
fa154098c8 | ||
|
|
6405a20dd3 | ||
|
|
7003531d5d | ||
|
|
13bfc29cec | ||
|
|
26ea6b8860 | ||
|
|
0ecc356103 | ||
|
|
e200bf2ddc | ||
|
|
1542aff9ec | ||
|
|
6796fd721d | ||
|
|
15e9562970 | ||
|
|
2cafcdab9d | ||
|
|
bef3a4bef2 | ||
|
|
9be16605ec | ||
|
|
759744144a | ||
|
|
896dd04cd7 | ||
|
|
2dae293c1e | ||
|
|
4159b498b9 | ||
|
|
feabd64d5e | ||
|
|
74593e4d81 | ||
|
|
3770b84999 | ||
|
|
91bc2e693b | ||
|
|
898a5621f1 | ||
|
|
4e41c0e0a6 | ||
|
|
a8822170d6 | ||
|
|
7d87f66f5d | ||
|
|
8d2c0fec89 | ||
|
|
0663524cd7 | ||
|
|
f283b3b106 | ||
|
|
b572ef5d71 | ||
|
|
71e233ce7f | ||
|
|
5669fad6bc | ||
|
|
c294409f5b | ||
|
|
686f78a86e | ||
|
|
c6ed021d2e | ||
|
|
f8cdc943ca | ||
|
|
d8d30b59ec | ||
|
|
a93383cf2e | ||
|
|
49dac4c229 | ||
|
|
1b211f28df | ||
|
|
c2d0887b94 | ||
|
|
fbb8bba4cf | ||
|
|
56cc87fe9d | ||
|
|
0027ffa65b | ||
|
|
0964be1710 | ||
|
|
9618ffe05f | ||
|
|
832ba3fe23 | ||
|
|
253b4fd1d2 | ||
|
|
9e5f17b3c6 | ||
|
|
39d0f8dbfc | ||
|
|
b69196ab38 | ||
|
|
109b676fdd | ||
|
|
4685d8f8eb | ||
|
|
c854cd923c | ||
|
|
5a5b76e94a | ||
|
|
9d89ce7dc2 | ||
|
|
47ea7b4063 | ||
|
|
be7a40231b | ||
|
|
03d424dc12 | ||
|
|
2f65e9fd45 | ||
|
|
9ad6d46628 | ||
|
|
9b0b84ed8a | ||
|
|
3bb4d28e8d | ||
|
|
88de719932 | ||
|
|
9d0868a0b9 | ||
|
|
3e40438c81 | ||
|
|
ecb5455dba | ||
|
|
a5f53466ea | ||
|
|
d3fbddeae7 | ||
|
|
0ef9278785 |
@@ -42,3 +42,9 @@ packages/static-build/test/cache-fixtures
|
|||||||
|
|
||||||
# redwood
|
# redwood
|
||||||
packages/redwood/test/fixtures
|
packages/redwood/test/fixtures
|
||||||
|
|
||||||
|
# remix
|
||||||
|
packages/remix/test/fixtures
|
||||||
|
|
||||||
|
# gatsby-plugin-vercel-analytics
|
||||||
|
packages/gatsby-plugin-vercel-analytics
|
||||||
|
|||||||
6
.github/CODEOWNERS
vendored
6
.github/CODEOWNERS
vendored
@@ -3,15 +3,11 @@
|
|||||||
|
|
||||||
* @TooTallNate @EndangeredMassa @styfle @cb1kenobi @Ethan-Arrowood
|
* @TooTallNate @EndangeredMassa @styfle @cb1kenobi @Ethan-Arrowood
|
||||||
/.github/workflows @TooTallNate @EndangeredMassa @styfle @cb1kenobi @Ethan-Arrowood @ijjk
|
/.github/workflows @TooTallNate @EndangeredMassa @styfle @cb1kenobi @Ethan-Arrowood @ijjk
|
||||||
/packages/cli/src/commands/domains @mglagola @anatrajkovska
|
|
||||||
/packages/cli/src/commands/certs @mglagola @anatrajkovska
|
|
||||||
/packages/cli/src/commands/env @TooTallNate @EndangeredMassa @styfle @cb1kenobi @Ethan-Arrowood
|
|
||||||
/packages/fs-detectors @TooTallNate @EndangeredMassa @styfle @cb1kenobi @Ethan-Arrowood @agadzik @chloetedder
|
/packages/fs-detectors @TooTallNate @EndangeredMassa @styfle @cb1kenobi @Ethan-Arrowood @agadzik @chloetedder
|
||||||
/packages/middleware @gdborton @vercel/edge-function
|
|
||||||
/packages/node-bridge @TooTallNate @EndangeredMassa @styfle @cb1kenobi @Ethan-Arrowood @ijjk
|
/packages/node-bridge @TooTallNate @EndangeredMassa @styfle @cb1kenobi @Ethan-Arrowood @ijjk
|
||||||
/packages/next @TooTallNate @EndangeredMassa @styfle @cb1kenobi @Ethan-Arrowood @ijjk
|
/packages/next @TooTallNate @EndangeredMassa @styfle @cb1kenobi @Ethan-Arrowood @ijjk
|
||||||
/packages/routing-utils @TooTallNate @EndangeredMassa @styfle @cb1kenobi @Ethan-Arrowood @ijjk
|
/packages/routing-utils @TooTallNate @EndangeredMassa @styfle @cb1kenobi @Ethan-Arrowood @ijjk
|
||||||
/packages/edge @vercel/edge-function
|
/packages/edge @vercel/edge-compute
|
||||||
/examples @leerob
|
/examples @leerob
|
||||||
/examples/create-react-app @Timer
|
/examples/create-react-app @Timer
|
||||||
/examples/nextjs @timneutkens @ijjk @styfle
|
/examples/nextjs @timneutkens @ijjk @styfle
|
||||||
|
|||||||
27
.github/CONTRIBUTING.md
vendored
27
.github/CONTRIBUTING.md
vendored
@@ -6,7 +6,7 @@ Please read our [Code of Conduct](CODE_OF_CONDUCT.md) and follow it in all your
|
|||||||
|
|
||||||
## Local development
|
## Local development
|
||||||
|
|
||||||
This project is configured in a monorepo, where one repository contains multiple npm packages. Dependencies are installed and managed with `yarn`, not `npm` CLI.
|
This project is configured in a monorepo, where one repository contains multiple npm packages. Dependencies are installed and managed with `pnpm`, not `npm` CLI.
|
||||||
|
|
||||||
To get started, execute the following:
|
To get started, execute the following:
|
||||||
|
|
||||||
@@ -14,21 +14,32 @@ To get started, execute the following:
|
|||||||
git clone https://github.com/vercel/vercel
|
git clone https://github.com/vercel/vercel
|
||||||
cd vercel
|
cd vercel
|
||||||
corepack enable
|
corepack enable
|
||||||
yarn install
|
pnpm install
|
||||||
yarn bootstrap
|
pnpm bootstrap
|
||||||
yarn build
|
pnpm build
|
||||||
yarn lint
|
pnpm lint
|
||||||
yarn test-unit
|
pnpm test-unit
|
||||||
```
|
```
|
||||||
|
|
||||||
Make sure all the tests pass before making changes.
|
Make sure all the tests pass before making changes.
|
||||||
|
|
||||||
|
### Running Vercel CLI Changes
|
||||||
|
|
||||||
|
You can use `pnpm dev` from the `cli` package to invoke Vercel CLI with local changes:
|
||||||
|
|
||||||
|
```
|
||||||
|
cd ./packages/cli
|
||||||
|
pnpm dev <cli-commands...>
|
||||||
|
```
|
||||||
|
|
||||||
|
See [CLI Local Development](../packages/cli#local-development) for more details.
|
||||||
|
|
||||||
## Verifying your change
|
## Verifying your change
|
||||||
|
|
||||||
Once you are done with your changes (we even suggest doing it along the way), make sure all the tests still pass by running:
|
Once you are done with your changes (we even suggest doing it along the way), make sure all the tests still pass by running:
|
||||||
|
|
||||||
```
|
```
|
||||||
yarn test-unit
|
pnpm test-unit
|
||||||
```
|
```
|
||||||
|
|
||||||
from the root of the project.
|
from the root of the project.
|
||||||
@@ -91,7 +102,7 @@ When you run this script, you'll see all the imported files. If anything file is
|
|||||||
Sometimes you want to test changes to a Builder against an existing project, maybe with `vercel dev` or actual deployment. You can avoid publishing every Builder change to npm by uploading the Builder as a tarball.
|
Sometimes you want to test changes to a Builder against an existing project, maybe with `vercel dev` or actual deployment. You can avoid publishing every Builder change to npm by uploading the Builder as a tarball.
|
||||||
|
|
||||||
1. Change directory to the desired Builder `cd ./packages/node`
|
1. Change directory to the desired Builder `cd ./packages/node`
|
||||||
2. Run `yarn build` to compile typescript and other build steps
|
2. Run `pnpm build` to compile typescript and other build steps
|
||||||
3. Run `npm pack` to create a tarball file
|
3. Run `npm pack` to create a tarball file
|
||||||
4. Run `vercel *.tgz` to upload the tarball file and get a URL
|
4. Run `vercel *.tgz` to upload the tarball file and get a URL
|
||||||
5. Edit any existing `vercel.json` project and replace `use` with the URL
|
5. Edit any existing `vercel.json` project and replace `use` with the URL
|
||||||
|
|||||||
20
.github/pull_request_template.md
vendored
20
.github/pull_request_template.md
vendored
@@ -1,20 +0,0 @@
|
|||||||
### Related Issues
|
|
||||||
|
|
||||||
> Fixes #1
|
|
||||||
> Related to #2
|
|
||||||
|
|
||||||
### 📋 Checklist
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Please keep your PR as a Draft until the checklist is complete
|
|
||||||
-->
|
|
||||||
|
|
||||||
#### Tests
|
|
||||||
|
|
||||||
- [ ] The code changed/added as part of this PR has been covered with tests
|
|
||||||
- [ ] All tests pass locally with `yarn test-unit`
|
|
||||||
|
|
||||||
#### Code Review
|
|
||||||
|
|
||||||
- [ ] This PR has a concise title and thorough description useful to a reviewer
|
|
||||||
- [ ] Issue from task tracker has a link to this PR
|
|
||||||
27
.github/workflows/cron-update-turbo.yml
vendored
Normal file
27
.github/workflows/cron-update-turbo.yml
vendored
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
name: Cron Update Turbo
|
||||||
|
|
||||||
|
on:
|
||||||
|
# Run every week https://crontab.guru/every-week
|
||||||
|
schedule:
|
||||||
|
- cron: '0 0 * * 0'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
create-pull-request:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
# 0 means fetch all commits so we can commit and push in the script below
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: install pnpm@7.26.0
|
||||||
|
run: npm i -g pnpm@7.26.0
|
||||||
|
- name: Create Pull Request
|
||||||
|
uses: actions/github-script@v6
|
||||||
|
env:
|
||||||
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
|
# See https://github.com/actions/github-script#run-a-separate-file-with-an-async-function
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const script = require('./utils/update-turbo.js')
|
||||||
|
await script({ github, context })
|
||||||
22
.github/workflows/label-feature-request.yml
vendored
Normal file
22
.github/workflows/label-feature-request.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
name: 🤖 Issue labeler - Feature Request
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types:
|
||||||
|
- labeled
|
||||||
|
jobs:
|
||||||
|
add-comment:
|
||||||
|
if: "github.event.label.name == 'triaged: feature request'"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
issues: write
|
||||||
|
steps:
|
||||||
|
- name: Add comment
|
||||||
|
uses: peter-evans/create-or-update-comment@5adcb0bb0f9fb3f95ef05400558bdb3f329ee808
|
||||||
|
with:
|
||||||
|
issue-number: ${{ github.event.issue.number }}
|
||||||
|
body: |
|
||||||
|
Thank you for taking the time to created this request!
|
||||||
|
|
||||||
|
We added it to our backlog but need to discuss design/architecture before we can accept a PR.
|
||||||
|
|
||||||
|
Please let us know if you would be interested in sending a PR once we approve the design.
|
||||||
24
.github/workflows/label-support.yml
vendored
Normal file
24
.github/workflows/label-support.yml
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
name: 🤖 Issue labeler - Support
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types:
|
||||||
|
- labeled
|
||||||
|
jobs:
|
||||||
|
add-comment:
|
||||||
|
if: github.event.label.name == 'support'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
issues: write
|
||||||
|
steps:
|
||||||
|
- name: Add comment
|
||||||
|
uses: peter-evans/close-issue@v2
|
||||||
|
with:
|
||||||
|
issue-number: ${{ github.event.issue.number }}
|
||||||
|
comment: |
|
||||||
|
Thank you so much for filing this issue.
|
||||||
|
|
||||||
|
We do try to keep issues in this repository focused on the vercel command line and related code.
|
||||||
|
|
||||||
|
At this point we think that this issue is best handled by our friendly Vercel support team. They can be found by contacting them at: https://vercel.com/help#issues
|
||||||
|
|
||||||
|
If you think closing of this is a mistake, then please re-open this issue and we'll take another look :bow:
|
||||||
24
.github/workflows/label-triaged.yml
vendored
Normal file
24
.github/workflows/label-triaged.yml
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
name: 🤖 Issue labeler - Triaged
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types:
|
||||||
|
- labeled
|
||||||
|
jobs:
|
||||||
|
add-comment:
|
||||||
|
if: "github.event.label.name == 'triaged: bug'"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
issues: write
|
||||||
|
steps:
|
||||||
|
- name: Add comment
|
||||||
|
uses: peter-evans/create-or-update-comment@5adcb0bb0f9fb3f95ef05400558bdb3f329ee808
|
||||||
|
with:
|
||||||
|
issue-number: ${{ github.event.issue.number }}
|
||||||
|
body: |
|
||||||
|
Thank you for taking the time to file this issue!
|
||||||
|
|
||||||
|
We have confirmed this is a bug and added it to our backlog.
|
||||||
|
|
||||||
|
We don't have a timeline for when this issue will be fixed, but we will accept a Pull Request with a fix and a test.
|
||||||
|
|
||||||
|
See the [contributing guidelines](https://github.com/vercel/vercel/blob/main/.github/CONTRIBUTING.md) for more info.
|
||||||
23
.github/workflows/publish.yml
vendored
23
.github/workflows/publish.yml
vendored
@@ -27,9 +27,9 @@ jobs:
|
|||||||
tag="$(git describe --tags --exact-match 2> /dev/null || :)"
|
tag="$(git describe --tags --exact-match 2> /dev/null || :)"
|
||||||
if [[ -z "$tag" ]];
|
if [[ -z "$tag" ]];
|
||||||
then
|
then
|
||||||
echo "::set-output name=IS_RELEASE::false"
|
echo "IS_RELEASE=false" >> $GITHUB_OUTPUT
|
||||||
else
|
else
|
||||||
echo "::set-output name=IS_RELEASE::true"
|
echo "IS_RELEASE=true" >> $GITHUB_OUTPUT
|
||||||
fi
|
fi
|
||||||
- name: Setup Go
|
- name: Setup Go
|
||||||
if: ${{ steps.check-release.outputs.IS_RELEASE == 'true' }}
|
if: ${{ steps.check-release.outputs.IS_RELEASE == 'true' }}
|
||||||
@@ -39,22 +39,31 @@ jobs:
|
|||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
if: ${{ steps.check-release.outputs.IS_RELEASE == 'true' }}
|
if: ${{ steps.check-release.outputs.IS_RELEASE == 'true' }}
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
timeout-minutes: 5 # See https://github.com/actions/cache/issues/810
|
|
||||||
with:
|
with:
|
||||||
node-version: 14
|
node-version: 14
|
||||||
cache: 'yarn'
|
- name: Cache
|
||||||
|
if: ${{ steps.check-release.outputs.IS_RELEASE == 'true' }}
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: '**/node_modules'
|
||||||
|
key: pnpm-${{ matrix.os }}-${{ matrix.node }}-${{ hashFiles('pnpm-lock.yaml') }}
|
||||||
|
restore-keys: pnpm-${{ matrix.os }}-${{ matrix.node }}
|
||||||
|
env:
|
||||||
|
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5 # See https://github.com/actions/cache/issues/810
|
||||||
|
- name: install pnpm@7.24.2
|
||||||
|
run: npm i -g pnpm@7.24.2
|
||||||
- name: Install
|
- name: Install
|
||||||
if: ${{ steps.check-release.outputs.IS_RELEASE == 'true' }}
|
if: ${{ steps.check-release.outputs.IS_RELEASE == 'true' }}
|
||||||
run: yarn install --check-files --frozen-lockfile --network-timeout 1000000
|
run: pnpm install
|
||||||
- name: Build
|
- name: Build
|
||||||
if: ${{ steps.check-release.outputs.IS_RELEASE == 'true' }}
|
if: ${{ steps.check-release.outputs.IS_RELEASE == 'true' }}
|
||||||
run: yarn build
|
run: pnpm build
|
||||||
env:
|
env:
|
||||||
GA_TRACKING_ID: ${{ secrets.GA_TRACKING_ID }}
|
GA_TRACKING_ID: ${{ secrets.GA_TRACKING_ID }}
|
||||||
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
|
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
|
||||||
- name: Publish
|
- name: Publish
|
||||||
if: ${{ steps.check-release.outputs.IS_RELEASE == 'true' }}
|
if: ${{ steps.check-release.outputs.IS_RELEASE == 'true' }}
|
||||||
run: yarn publish-from-github
|
run: pnpm publish-from-github
|
||||||
env:
|
env:
|
||||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN_ELEVATED }}
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN_ELEVATED }}
|
||||||
GA_TRACKING_ID: ${{ secrets.GA_TRACKING_ID }}
|
GA_TRACKING_ID: ${{ secrets.GA_TRACKING_ID }}
|
||||||
|
|||||||
19
.github/workflows/test-integration-cli.yml
vendored
19
.github/workflows/test-integration-cli.yml
vendored
@@ -33,15 +33,22 @@ jobs:
|
|||||||
fetch-depth: 2
|
fetch-depth: 2
|
||||||
- uses: actions/setup-go@v3
|
- uses: actions/setup-go@v3
|
||||||
with:
|
with:
|
||||||
go-version: '1.13.15'
|
go-version: '1.18'
|
||||||
- uses: actions/setup-node@v3
|
- uses: actions/setup-node@v3
|
||||||
timeout-minutes: 5 # See https://github.com/actions/cache/issues/810
|
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node }}
|
node-version: ${{ matrix.node }}
|
||||||
cache: 'yarn'
|
- uses: actions/cache@v3
|
||||||
- run: yarn install --network-timeout 1000000 --frozen-lockfile
|
with:
|
||||||
- run: yarn run build
|
path: '**/node_modules'
|
||||||
- run: yarn test-integration-cli
|
key: pnpm-${{ matrix.os }}-${{ matrix.node }}-${{ hashFiles('pnpm-lock.yaml') }}
|
||||||
|
restore-keys: pnpm-${{ matrix.os }}-${{ matrix.node }}
|
||||||
|
env:
|
||||||
|
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5 # See https://github.com/actions/cache/issues/810
|
||||||
|
- name: install pnpm@7.24.2
|
||||||
|
run: npm i -g pnpm@7.24.2
|
||||||
|
- run: pnpm install
|
||||||
|
- run: pnpm run build
|
||||||
|
- run: pnpm test-integration-cli
|
||||||
env:
|
env:
|
||||||
VERCEL_TEST_TOKEN: ${{ secrets.VERCEL_TEST_TOKEN }}
|
VERCEL_TEST_TOKEN: ${{ secrets.VERCEL_TEST_TOKEN }}
|
||||||
VERCEL_TEST_REGISTRATION_URL: ${{ secrets.VERCEL_TEST_REGISTRATION_URL }}
|
VERCEL_TEST_REGISTRATION_URL: ${{ secrets.VERCEL_TEST_REGISTRATION_URL }}
|
||||||
|
|||||||
23
.github/workflows/test-unit.yml
vendored
23
.github/workflows/test-unit.yml
vendored
@@ -20,7 +20,7 @@ concurrency:
|
|||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
name: Unit
|
name: Unit
|
||||||
timeout-minutes: 15
|
timeout-minutes: 20
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
@@ -35,16 +35,23 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
fetch-depth: 2
|
fetch-depth: 2
|
||||||
- uses: actions/setup-node@v3
|
- uses: actions/setup-node@v3
|
||||||
timeout-minutes: 5 # See https://github.com/actions/cache/issues/810
|
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node }}
|
node-version: ${{ matrix.node }}
|
||||||
cache: 'yarn'
|
- uses: actions/cache@v3
|
||||||
- run: yarn install --network-timeout 1000000 --frozen-lockfile
|
with:
|
||||||
- run: yarn run build
|
path: '**/node_modules'
|
||||||
- run: yarn run lint
|
key: pnpm-${{ matrix.os }}-${{ matrix.node }}-${{ hashFiles('pnpm-lock.yaml') }}
|
||||||
|
restore-keys: pnpm-${{ matrix.os }}-${{ matrix.node }}
|
||||||
|
env:
|
||||||
|
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5 # See https://github.com/actions/cache/issues/810
|
||||||
|
- name: install pnpm@7.24.2
|
||||||
|
run: npm i -g pnpm@7.24.2
|
||||||
|
- run: pnpm install
|
||||||
|
- run: pnpm run build
|
||||||
|
- run: pnpm run lint
|
||||||
if: matrix.os == 'ubuntu-latest' && matrix.node == 14 # only run lint once
|
if: matrix.os == 'ubuntu-latest' && matrix.node == 14 # only run lint once
|
||||||
- run: yarn run test-unit
|
- run: pnpm run test-unit
|
||||||
- run: yarn workspace vercel run coverage
|
- run: pnpm -C packages/cli run coverage
|
||||||
if: matrix.os == 'ubuntu-latest' && matrix.node == 14 # only run coverage once
|
if: matrix.os == 'ubuntu-latest' && matrix.node == 14 # only run coverage once
|
||||||
env:
|
env:
|
||||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||||
|
|||||||
29
.github/workflows/test.yml
vendored
29
.github/workflows/test.yml
vendored
@@ -33,17 +33,24 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
go-version: '1.13.15'
|
go-version: '1.13.15'
|
||||||
- uses: actions/setup-node@v3
|
- uses: actions/setup-node@v3
|
||||||
timeout-minutes: 5 # See https://github.com/actions/cache/issues/810
|
|
||||||
with:
|
with:
|
||||||
node-version: ${{ env.NODE_VERSION }}
|
node-version: ${{ env.NODE_VERSION }}
|
||||||
cache: 'yarn'
|
- uses: actions/cache@v3
|
||||||
- run: yarn install --network-timeout 1000000 --frozen-lockfile
|
with:
|
||||||
|
path: '**/node_modules'
|
||||||
|
key: pnpm-${{ matrix.os }}-${{ matrix.node }}-${{ hashFiles('pnpm-lock.yaml') }}
|
||||||
|
restore-keys: pnpm-${{ matrix.os }}-${{ matrix.node }}
|
||||||
|
env:
|
||||||
|
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5 # See https://github.com/actions/cache/issues/810
|
||||||
|
- name: install pnpm@7.24.2
|
||||||
|
run: npm i -g pnpm@7.24.2
|
||||||
|
- run: pnpm install
|
||||||
- id: set-tests
|
- id: set-tests
|
||||||
run: |
|
run: |
|
||||||
TESTS_ARRAY=$(node utils/chunk-tests.js $SCRIPT_NAME)
|
TESTS_ARRAY=$(node utils/chunk-tests.js $SCRIPT_NAME)
|
||||||
echo "Files to test:"
|
echo "Files to test:"
|
||||||
echo "$TESTS_ARRAY"
|
echo "$TESTS_ARRAY"
|
||||||
echo "::set-output name=tests::$TESTS_ARRAY"
|
echo "tests=$TESTS_ARRAY" >> $GITHUB_OUTPUT
|
||||||
- uses: patrickedqvist/wait-for-vercel-preview@ae34b392ef30297f2b672f9afb3c329bde9bd487
|
- uses: patrickedqvist/wait-for-vercel-preview@ae34b392ef30297f2b672f9afb3c329bde9bd487
|
||||||
id: waitForTarball
|
id: waitForTarball
|
||||||
with:
|
with:
|
||||||
@@ -70,16 +77,24 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
go-version: '1.13.15'
|
go-version: '1.13.15'
|
||||||
- uses: actions/setup-node@v3
|
- uses: actions/setup-node@v3
|
||||||
timeout-minutes: 5 # See https://github.com/actions/cache/issues/810
|
|
||||||
with:
|
with:
|
||||||
node-version: ${{ env.NODE_VERSION }}
|
node-version: ${{ env.NODE_VERSION }}
|
||||||
cache: 'yarn'
|
- uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: '**/node_modules'
|
||||||
|
key: pnpm-${{ matrix.os }}-${{ matrix.node }}-${{ hashFiles('pnpm-lock.yaml') }}
|
||||||
|
restore-keys: pnpm-${{ matrix.os }}-${{ matrix.node }}
|
||||||
|
env:
|
||||||
|
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5 # See https://github.com/actions/cache/issues/810
|
||||||
|
|
||||||
- name: Install Hugo
|
- name: Install Hugo
|
||||||
if: matrix.runner == 'macos-latest'
|
if: matrix.runner == 'macos-latest'
|
||||||
run: curl -L -O https://github.com/gohugoio/hugo/releases/download/v0.56.0/hugo_0.56.0_macOS-64bit.tar.gz && tar -xzf hugo_0.56.0_macOS-64bit.tar.gz && mv ./hugo packages/cli/test/dev/fixtures/08-hugo/
|
run: curl -L -O https://github.com/gohugoio/hugo/releases/download/v0.56.0/hugo_0.56.0_macOS-64bit.tar.gz && tar -xzf hugo_0.56.0_macOS-64bit.tar.gz && mv ./hugo packages/cli/test/dev/fixtures/08-hugo/
|
||||||
|
|
||||||
- run: yarn install --network-timeout 1000000
|
- name: install pnpm@7.24.2
|
||||||
|
run: npm i -g pnpm@7.24.2
|
||||||
|
|
||||||
|
- run: pnpm install
|
||||||
|
|
||||||
- name: Build ${{matrix.packageName}} and all its dependencies
|
- name: Build ${{matrix.packageName}} and all its dependencies
|
||||||
run: node utils/gen.js && node_modules/.bin/turbo run build --cache-dir=".turbo" --scope=${{matrix.packageName}} --include-dependencies --no-deps
|
run: node utils/gen.js && node_modules/.bin/turbo run build --cache-dir=".turbo" --scope=${{matrix.packageName}} --include-dependencies --no-deps
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -19,6 +19,7 @@ packages/cli/test/dev/fixtures/**/dist
|
|||||||
packages/cli/test/dev/fixtures/**/public
|
packages/cli/test/dev/fixtures/**/public
|
||||||
packages/cli/test/dev/fixtures/**/.now
|
packages/cli/test/dev/fixtures/**/.now
|
||||||
packages/cli/test/dev/fixtures/**/.vercel
|
packages/cli/test/dev/fixtures/**/.vercel
|
||||||
|
!packages/cli/test/fixtures/unit/commands/build/monorepo-detection/**/yarn.lock
|
||||||
packages/cli/test/fixtures/integration
|
packages/cli/test/fixtures/integration
|
||||||
test/lib/deployment/failed-page.txt
|
test/lib/deployment/failed-page.txt
|
||||||
.DS_Store
|
.DS_Store
|
||||||
@@ -28,4 +29,5 @@ test/lib/deployment/failed-page.txt
|
|||||||
__pycache__
|
__pycache__
|
||||||
.vercel
|
.vercel
|
||||||
.turbo
|
.turbo
|
||||||
|
.eslintcache
|
||||||
turbo-cache-key.json
|
turbo-cache-key.json
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
. "$(dirname "$0")/_/husky.sh"
|
. "$(dirname "$0")/_/husky.sh"
|
||||||
|
|
||||||
yarn pre-commit
|
pnpm pre-commit
|
||||||
|
|||||||
5
.npmrc
Normal file
5
.npmrc
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
save-exact=true
|
||||||
|
hoist-pattern[]=!"**/@types/**"
|
||||||
|
hoist-pattern[]=!"**/typedoc"
|
||||||
|
hoist-pattern[]=!"**/typedoc-plugin-markdown"
|
||||||
|
hoist-pattern[]=!"**/typedoc-plugin-mdn-links"
|
||||||
@@ -3,3 +3,7 @@
|
|||||||
# ignore these files with an intentional syntax error
|
# ignore these files with an intentional syntax error
|
||||||
packages/cli/test/dev/fixtures/edge-function-error/api/edge-error-syntax.js
|
packages/cli/test/dev/fixtures/edge-function-error/api/edge-error-syntax.js
|
||||||
packages/cli/test/fixtures/unit/commands/build/node-error/api/typescript.ts
|
packages/cli/test/fixtures/unit/commands/build/node-error/api/typescript.ts
|
||||||
|
examples/sveltekit-1
|
||||||
|
|
||||||
|
# gatsby-plugin-vercel-analytics
|
||||||
|
packages/gatsby-plugin-vercel-analytics
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ Official Runtimes are published to [the npm registry](https://npmjs.com) as a pa
|
|||||||
> **Note:** The `use` property in the `builds` array will work with any [npm
|
> **Note:** The `use` property in the `builds` array will work with any [npm
|
||||||
> install argument](https://docs.npmjs.com/cli/install) such as a git repo URL,
|
> install argument](https://docs.npmjs.com/cli/install) such as a git repo URL,
|
||||||
> which is useful for testing your Runtime. Alternatively, the `functions` property
|
> which is useful for testing your Runtime. Alternatively, the `functions` property
|
||||||
> requires that you specify a specifc tag published to npm, for stability purposes.
|
> requires that you specify a specific tag published to npm, for stability purposes.
|
||||||
|
|
||||||
See the [Runtimes Documentation](https://vercel.com/docs/runtimes) to view example usage.
|
See the [Runtimes Documentation](https://vercel.com/docs/runtimes) to view example usage.
|
||||||
|
|
||||||
@@ -216,7 +216,7 @@ If a custom runtime is based on one of these Lambda runtimes, large environment
|
|||||||
support will be available without further configuration. Custom runtimes based on
|
support will be available without further configuration. Custom runtimes based on
|
||||||
other Lambda runtimes, including those that provide the runtime via `provided` and
|
other Lambda runtimes, including those that provide the runtime via `provided` and
|
||||||
`provided.al2`, must implement runtime wrapper support and indicate it via the
|
`provided.al2`, must implement runtime wrapper support and indicate it via the
|
||||||
`supportsWrapper` flag when calling [`createLambda`](#createlambda()).
|
`supportsWrapper` flag when calling [`createLambda`](<#createlambda()>).
|
||||||
|
|
||||||
To add support for runtime wrappers to a custom runtime, first check the value of the
|
To add support for runtime wrappers to a custom runtime, first check the value of the
|
||||||
`AWS_LAMBDA_EXEC_WRAPPER` environment variable in the bootstrap script. Its value is
|
`AWS_LAMBDA_EXEC_WRAPPER` environment variable in the bootstrap script. Its value is
|
||||||
@@ -264,7 +264,7 @@ This is achieved by using `exec` in `bash` to replace the running process with t
|
|||||||
maintaining the same PID and environment.
|
maintaining the same PID and environment.
|
||||||
|
|
||||||
Once support for runtime wrappers is included, ensure `supportsWrapper` is set to
|
Once support for runtime wrappers is included, ensure `supportsWrapper` is set to
|
||||||
`true` in the call to [`createLambda`](#createlambda()). This will inform the build
|
`true` in the call to [`createLambda`](<#createlambda()>). This will inform the build
|
||||||
process to enable large environment support for this runtime.
|
process to enable large environment support for this runtime.
|
||||||
|
|
||||||
### Utilities as peerDependencies
|
### Utilities as peerDependencies
|
||||||
@@ -380,6 +380,7 @@ This is a [class](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refere
|
|||||||
|
|
||||||
This is an abstract enumeration type that is implemented by one of the following possible `String` values:
|
This is an abstract enumeration type that is implemented by one of the following possible `String` values:
|
||||||
|
|
||||||
|
- `nodejs18.x`
|
||||||
- `nodejs16.x`
|
- `nodejs16.x`
|
||||||
- `nodejs14.x`
|
- `nodejs14.x`
|
||||||
- `go1.x`
|
- `go1.x`
|
||||||
|
|||||||
@@ -33,6 +33,14 @@ For details on how to use Vercel, check out our [documentation](https://vercel.c
|
|||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
This project uses [pnpm](https://pnpm.io/) to install dependencies and run scripts.
|
||||||
|
|
||||||
|
You can use the `dev` script to run local changes as if you were invoking Vercel CLI. For example, `vercel deploy --cwd=/path/to/project` could be run with local changes with `pnpm dev deploy --cwd=/path/to/project`.
|
||||||
|
|
||||||
|
See the [Contributing Guidelines](./.github/CONTRIBUTING.md) for more details.
|
||||||
|
|
||||||
|
## Reference
|
||||||
|
|
||||||
- [Code of Conduct](./.github/CODE_OF_CONDUCT.md)
|
- [Code of Conduct](./.github/CODE_OF_CONDUCT.md)
|
||||||
- [Contributing Guidelines](./.github/CONTRIBUTING.md)
|
- [Contributing Guidelines](./.github/CONTRIBUTING.md)
|
||||||
- [Apache 2.0 License](./LICENSE)
|
- [Apache 2.0 License](./LICENSE)
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ function initSentry() {
|
|||||||
sentryInitDone = true;
|
sentryInitDone = true;
|
||||||
|
|
||||||
init({
|
init({
|
||||||
|
// Cannot figure out whats going wrong here. VSCode resolves this fine. But when we build it blows up.
|
||||||
|
// @ts-ignore
|
||||||
dsn: assertEnv('SENTRY_DSN'),
|
dsn: assertEnv('SENTRY_DSN'),
|
||||||
environment: process.env.NODE_ENV || 'production',
|
environment: process.env.NODE_ENV || 'production',
|
||||||
release: `${serviceName}`,
|
release: `${serviceName}`,
|
||||||
|
|||||||
@@ -4,9 +4,7 @@
|
|||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"description": "API for the vercel/vercel repo",
|
"description": "API for the vercel/vercel repo",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {},
|
||||||
"//TODO": "We should add this pkg to yarn workspaces"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sentry/node": "5.11.1",
|
"@sentry/node": "5.11.1",
|
||||||
"got": "10.2.1",
|
"got": "10.2.1",
|
||||||
@@ -16,9 +14,9 @@
|
|||||||
"unzip-stream": "0.3.0"
|
"unzip-stream": "0.3.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "13.1.4",
|
"@types/node": "16.18.11",
|
||||||
"@types/node-fetch": "2.5.4",
|
"@types/node-fetch": "2.5.4",
|
||||||
"@vercel/node": "1.9.0",
|
"@vercel/node": "*",
|
||||||
"typescript": "3.9.6"
|
"typescript": "4.3.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,5 +12,5 @@
|
|||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"isolatedModules": true
|
"isolatedModules": true
|
||||||
},
|
},
|
||||||
"include": ["examples", "frameworks.ts"]
|
"include": ["examples", "frameworks.ts", "_lib"]
|
||||||
}
|
}
|
||||||
|
|||||||
524
api/yarn.lock
524
api/yarn.lock
@@ -1,524 +0,0 @@
|
|||||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
|
||||||
# yarn lockfile v1
|
|
||||||
|
|
||||||
|
|
||||||
"@sentry/apm@5.11.1":
|
|
||||||
version "5.11.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/apm/-/apm-5.11.1.tgz#cc89fa4150056fbf009f92eca94fccc3980db34e"
|
|
||||||
integrity sha512-4iZH11p/7w9IMLT9hqNY1+EqLESltiIoF6/YsbpK93sXWGEs8VQ83IuvGuKWxajvHgDmj4ND0TxIliTsYqTqFw==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/browser" "5.11.1"
|
|
||||||
"@sentry/hub" "5.11.1"
|
|
||||||
"@sentry/minimal" "5.11.1"
|
|
||||||
"@sentry/types" "5.11.0"
|
|
||||||
"@sentry/utils" "5.11.1"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/browser@5.11.1":
|
|
||||||
version "5.11.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.11.1.tgz#337ffcb52711b23064c847a07629e966f54a5ebb"
|
|
||||||
integrity sha512-oqOX/otmuP92DEGRyZeBuQokXdeT9HQRxH73oqIURXXNLMP3PWJALSb4HtT4AftEt/2ROGobZLuA4TaID6My/Q==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/core" "5.11.1"
|
|
||||||
"@sentry/types" "5.11.0"
|
|
||||||
"@sentry/utils" "5.11.1"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/core@5.11.1":
|
|
||||||
version "5.11.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.11.1.tgz#9e2da485e196ae32971545c1c49ee6fe719930e2"
|
|
||||||
integrity sha512-BpvPosVNT20Xso4gAV54Lu3KqDmD20vO63HYwbNdST5LUi8oYV4JhvOkoBraPEM2cbBwQvwVcFdeEYKk4tin9A==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/hub" "5.11.1"
|
|
||||||
"@sentry/minimal" "5.11.1"
|
|
||||||
"@sentry/types" "5.11.0"
|
|
||||||
"@sentry/utils" "5.11.1"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/hub@5.11.1":
|
|
||||||
version "5.11.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.11.1.tgz#ddcb865563fae53852d405885c46b4c6de68a91b"
|
|
||||||
integrity sha512-ucKprYCbGGLLjVz4hWUqHN9KH0WKUkGf5ZYfD8LUhksuobRkYVyig0ZGbshECZxW5jcDTzip4Q9Qimq/PkkXBg==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/types" "5.11.0"
|
|
||||||
"@sentry/utils" "5.11.1"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/minimal@5.11.1":
|
|
||||||
version "5.11.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.11.1.tgz#0e705d01a567282d8fbbda2aed848b4974cc3cec"
|
|
||||||
integrity sha512-HK8zs7Pgdq7DsbZQTThrhQPrJsVWzz7MaluAbQA0rTIAJ3TvHKQpsVRu17xDpjZXypqWcKCRsthDrC4LxDM1Bg==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/hub" "5.11.1"
|
|
||||||
"@sentry/types" "5.11.0"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/node@5.11.1":
|
|
||||||
version "5.11.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.11.1.tgz#2a9c18cd1209cfdf7a69b9d91303413149d2c910"
|
|
||||||
integrity sha512-FbJs0blJ36gEzE0rc2yBfA/KE+kXOLl8MUfFTcyJCBdCGF8XMETDCmgINnJ4TyBUJviwKoPw2TCk9TL2pa/A1w==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/apm" "5.11.1"
|
|
||||||
"@sentry/core" "5.11.1"
|
|
||||||
"@sentry/hub" "5.11.1"
|
|
||||||
"@sentry/types" "5.11.0"
|
|
||||||
"@sentry/utils" "5.11.1"
|
|
||||||
cookie "^0.3.1"
|
|
||||||
https-proxy-agent "^4.0.0"
|
|
||||||
lru_map "^0.3.3"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/types@5.11.0":
|
|
||||||
version "5.11.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.11.0.tgz#40f0f3174362928e033ddd9725d55e7c5cb7c5b6"
|
|
||||||
integrity sha512-1Uhycpmeo1ZK2GLvrtwZhTwIodJHcyIS6bn+t4IMkN9MFoo6ktbAfhvexBDW/IDtdLlCGJbfm8nIZerxy0QUpg==
|
|
||||||
|
|
||||||
"@sentry/utils@5.11.1":
|
|
||||||
version "5.11.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.11.1.tgz#aa19fcc234cf632257b2281261651d2fac967607"
|
|
||||||
integrity sha512-O0Zl4R2JJh8cTkQ8ZL2cDqGCmQdpA5VeXpuBbEl1v78LQPkBDISi35wH4mKmLwMsLBtTVpx2UeUHBj0KO5aLlA==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/types" "5.11.0"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sindresorhus/is@^1.0.0":
|
|
||||||
version "1.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-1.2.0.tgz#63ce3638cb85231f3704164c90a18ef816da3fb7"
|
|
||||||
integrity sha512-mwhXGkRV5dlvQc4EgPDxDxO6WuMBVymGFd1CA+2Y+z5dG9MNspoQ+AWjl/Ld1MnpCL8AKbosZlDVohqcIwuWsw==
|
|
||||||
|
|
||||||
"@szmarczak/http-timer@^4.0.0":
|
|
||||||
version "4.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.0.tgz#309789ccb7842ff1e41848cf43da587f78068836"
|
|
||||||
integrity sha512-3yoXv8OtGr/r3R5gaWWNQ3VUoQ5G3Gmo8DXX95V14ZVvE2b7Pj6Ide9uIDON8ym4D/ItyfL9ejohYUPqOyvRXw==
|
|
||||||
dependencies:
|
|
||||||
defer-to-connect "^1.1.1"
|
|
||||||
|
|
||||||
"@types/cacheable-request@^6.0.1":
|
|
||||||
version "6.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976"
|
|
||||||
integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==
|
|
||||||
dependencies:
|
|
||||||
"@types/http-cache-semantics" "*"
|
|
||||||
"@types/keyv" "*"
|
|
||||||
"@types/node" "*"
|
|
||||||
"@types/responselike" "*"
|
|
||||||
|
|
||||||
"@types/http-cache-semantics@*":
|
|
||||||
version "4.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a"
|
|
||||||
integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==
|
|
||||||
|
|
||||||
"@types/keyv@*":
|
|
||||||
version "3.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7"
|
|
||||||
integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==
|
|
||||||
dependencies:
|
|
||||||
"@types/node" "*"
|
|
||||||
|
|
||||||
"@types/node-fetch@2.5.4":
|
|
||||||
version "2.5.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.4.tgz#5245b6d8841fc3a6208b82291119bc11c4e0ce44"
|
|
||||||
integrity sha512-Oz6id++2qAOFuOlE1j0ouk1dzl3mmI1+qINPNBhi9nt/gVOz0G+13Ao6qjhdF0Ys+eOkhu6JnFmt38bR3H0POQ==
|
|
||||||
dependencies:
|
|
||||||
"@types/node" "*"
|
|
||||||
|
|
||||||
"@types/node@*", "@types/node@13.1.4":
|
|
||||||
version "13.1.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-13.1.4.tgz#4cfd90175a200ee9b02bd6b1cd19bc349741607e"
|
|
||||||
integrity sha512-Lue/mlp2egZJoHXZr4LndxDAd7i/7SQYhV0EjWfb/a4/OZ6tuVwMCVPiwkU5nsEipxEf7hmkSU7Em5VQ8P5NGA==
|
|
||||||
|
|
||||||
"@types/responselike@*":
|
|
||||||
version "1.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29"
|
|
||||||
integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==
|
|
||||||
dependencies:
|
|
||||||
"@types/node" "*"
|
|
||||||
|
|
||||||
"@vercel/node@1.9.0":
|
|
||||||
version "1.9.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@vercel/node/-/node-1.9.0.tgz#6b64f3b9a962ddb1089276fad00f441a1f4b9cf0"
|
|
||||||
integrity sha512-Vk/ZpuY4Cdc8oUwBi/kf8qETRaJb/KYdFddVkLuS10QwA0yJx+RQ11trhZ1KFUdc27aBr5S2k8/dDxK8sLr+IA==
|
|
||||||
dependencies:
|
|
||||||
"@types/node" "*"
|
|
||||||
ts-node "8.9.1"
|
|
||||||
typescript "3.9.3"
|
|
||||||
|
|
||||||
agent-base@5:
|
|
||||||
version "5.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c"
|
|
||||||
integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==
|
|
||||||
|
|
||||||
arg@^4.1.0:
|
|
||||||
version "4.1.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
|
|
||||||
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
|
|
||||||
|
|
||||||
binary@^0.3.0:
|
|
||||||
version "0.3.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79"
|
|
||||||
integrity sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=
|
|
||||||
dependencies:
|
|
||||||
buffers "~0.1.1"
|
|
||||||
chainsaw "~0.1.0"
|
|
||||||
|
|
||||||
bl@^3.0.0:
|
|
||||||
version "3.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/bl/-/bl-3.0.0.tgz#3611ec00579fd18561754360b21e9f784500ff88"
|
|
||||||
integrity sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==
|
|
||||||
dependencies:
|
|
||||||
readable-stream "^3.0.1"
|
|
||||||
|
|
||||||
buffer-from@^1.0.0:
|
|
||||||
version "1.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
|
|
||||||
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
|
|
||||||
|
|
||||||
buffers@~0.1.1:
|
|
||||||
version "0.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb"
|
|
||||||
integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s=
|
|
||||||
|
|
||||||
cacheable-lookup@^0.2.1:
|
|
||||||
version "0.2.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-0.2.1.tgz#f474ae2c686667d7ea08c43409ad31b2b31b26c2"
|
|
||||||
integrity sha512-BQ8MRjxJASEq2q+w0SusPU3B054gS278K8sj58QCLMZIso5qG05+MdCdmXxuyVlfvI8h4bPsNOavVUauVCGxrg==
|
|
||||||
dependencies:
|
|
||||||
keyv "^3.1.0"
|
|
||||||
|
|
||||||
cacheable-request@^7.0.0:
|
|
||||||
version "7.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.0.tgz#12421aa084e943ec81eac8c93e56af90c624788a"
|
|
||||||
integrity sha512-UVG4gMn3WjnAeFBBx7RFoprgOANIAkMwN5Dta6ONmfSwrCxfm0Ip7g0mIBxIRJZX9aDsoID0Ry3dU5Pr0csKKA==
|
|
||||||
dependencies:
|
|
||||||
clone-response "^1.0.2"
|
|
||||||
get-stream "^5.1.0"
|
|
||||||
http-cache-semantics "^4.0.0"
|
|
||||||
keyv "^3.0.0"
|
|
||||||
lowercase-keys "^2.0.0"
|
|
||||||
normalize-url "^4.1.0"
|
|
||||||
responselike "^2.0.0"
|
|
||||||
|
|
||||||
chainsaw@~0.1.0:
|
|
||||||
version "0.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98"
|
|
||||||
integrity sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=
|
|
||||||
dependencies:
|
|
||||||
traverse ">=0.3.0 <0.4"
|
|
||||||
|
|
||||||
chownr@^1.1.1:
|
|
||||||
version "1.1.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142"
|
|
||||||
integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==
|
|
||||||
|
|
||||||
clone-response@^1.0.2:
|
|
||||||
version "1.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b"
|
|
||||||
integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=
|
|
||||||
dependencies:
|
|
||||||
mimic-response "^1.0.0"
|
|
||||||
|
|
||||||
cookie@^0.3.1:
|
|
||||||
version "0.3.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
|
|
||||||
integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=
|
|
||||||
|
|
||||||
debug@4:
|
|
||||||
version "4.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
|
|
||||||
integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
|
|
||||||
dependencies:
|
|
||||||
ms "^2.1.1"
|
|
||||||
|
|
||||||
decompress-response@^5.0.0:
|
|
||||||
version "5.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-5.0.0.tgz#7849396e80e3d1eba8cb2f75ef4930f76461cb0f"
|
|
||||||
integrity sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==
|
|
||||||
dependencies:
|
|
||||||
mimic-response "^2.0.0"
|
|
||||||
|
|
||||||
defer-to-connect@^1.1.1:
|
|
||||||
version "1.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.1.tgz#88ae694b93f67b81815a2c8c769aef6574ac8f2f"
|
|
||||||
integrity sha512-J7thop4u3mRTkYRQ+Vpfwy2G5Ehoy82I14+14W4YMDLKdWloI9gSzRbV30s/NckQGVJtPkWNcW4oMAUigTdqiQ==
|
|
||||||
|
|
||||||
diff@^4.0.1:
|
|
||||||
version "4.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
|
|
||||||
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
|
|
||||||
|
|
||||||
duplexer3@^0.1.4:
|
|
||||||
version "0.1.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
|
|
||||||
integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
|
|
||||||
|
|
||||||
end-of-stream@^1.1.0, end-of-stream@^1.4.1:
|
|
||||||
version "1.4.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
|
|
||||||
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
|
|
||||||
dependencies:
|
|
||||||
once "^1.4.0"
|
|
||||||
|
|
||||||
fs-constants@^1.0.0:
|
|
||||||
version "1.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
|
|
||||||
integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
|
|
||||||
|
|
||||||
get-stream@^5.0.0, get-stream@^5.1.0:
|
|
||||||
version "5.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9"
|
|
||||||
integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==
|
|
||||||
dependencies:
|
|
||||||
pump "^3.0.0"
|
|
||||||
|
|
||||||
got@10.2.1:
|
|
||||||
version "10.2.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/got/-/got-10.2.1.tgz#7087485482fb31aa6e6399fd493dd04639da117b"
|
|
||||||
integrity sha512-IQX//hGm5oLjUj743GJG30U2RzjS58ZlhQQjwQXjsyR50TTD+etVMHlMEbNxYJGWVFa0ASgDVhRkAvQPe6M9iQ==
|
|
||||||
dependencies:
|
|
||||||
"@sindresorhus/is" "^1.0.0"
|
|
||||||
"@szmarczak/http-timer" "^4.0.0"
|
|
||||||
"@types/cacheable-request" "^6.0.1"
|
|
||||||
cacheable-lookup "^0.2.1"
|
|
||||||
cacheable-request "^7.0.0"
|
|
||||||
decompress-response "^5.0.0"
|
|
||||||
duplexer3 "^0.1.4"
|
|
||||||
get-stream "^5.0.0"
|
|
||||||
lowercase-keys "^2.0.0"
|
|
||||||
mimic-response "^2.0.0"
|
|
||||||
p-cancelable "^2.0.0"
|
|
||||||
responselike "^2.0.0"
|
|
||||||
to-readable-stream "^2.0.0"
|
|
||||||
type-fest "^0.8.0"
|
|
||||||
|
|
||||||
http-cache-semantics@^4.0.0:
|
|
||||||
version "4.0.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5"
|
|
||||||
integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==
|
|
||||||
|
|
||||||
https-proxy-agent@^4.0.0:
|
|
||||||
version "4.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b"
|
|
||||||
integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==
|
|
||||||
dependencies:
|
|
||||||
agent-base "5"
|
|
||||||
debug "4"
|
|
||||||
|
|
||||||
inherits@^2.0.3:
|
|
||||||
version "2.0.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
|
||||||
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
|
||||||
|
|
||||||
json-buffer@3.0.0:
|
|
||||||
version "3.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
|
|
||||||
integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=
|
|
||||||
|
|
||||||
keyv@^3.0.0, keyv@^3.1.0:
|
|
||||||
version "3.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9"
|
|
||||||
integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==
|
|
||||||
dependencies:
|
|
||||||
json-buffer "3.0.0"
|
|
||||||
|
|
||||||
lowercase-keys@^2.0.0:
|
|
||||||
version "2.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
|
|
||||||
integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
|
|
||||||
|
|
||||||
lru_map@^0.3.3:
|
|
||||||
version "0.3.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd"
|
|
||||||
integrity sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=
|
|
||||||
|
|
||||||
make-error@^1.1.1:
|
|
||||||
version "1.3.6"
|
|
||||||
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
|
|
||||||
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
|
|
||||||
|
|
||||||
mimic-response@^1.0.0:
|
|
||||||
version "1.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
|
|
||||||
integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
|
|
||||||
|
|
||||||
mimic-response@^2.0.0:
|
|
||||||
version "2.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.0.0.tgz#996a51c60adf12cb8a87d7fb8ef24c2f3d5ebb46"
|
|
||||||
integrity sha512-8ilDoEapqA4uQ3TwS0jakGONKXVJqpy+RpM+3b7pLdOjghCrEiGp9SRkFbUHAmZW9vdnrENWHjaweIoTIJExSQ==
|
|
||||||
|
|
||||||
minimist@0.0.8:
|
|
||||||
version "0.0.8"
|
|
||||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
|
||||||
integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
|
|
||||||
|
|
||||||
mkdirp@^0.5.1:
|
|
||||||
version "0.5.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
|
||||||
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
|
|
||||||
dependencies:
|
|
||||||
minimist "0.0.8"
|
|
||||||
|
|
||||||
ms@^2.1.1:
|
|
||||||
version "2.1.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
|
||||||
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
|
||||||
|
|
||||||
node-fetch@2.6.1:
|
|
||||||
version "2.6.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
|
|
||||||
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
|
|
||||||
|
|
||||||
normalize-url@^4.1.0:
|
|
||||||
version "4.5.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129"
|
|
||||||
integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==
|
|
||||||
|
|
||||||
once@^1.3.1, once@^1.4.0:
|
|
||||||
version "1.4.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
|
||||||
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
|
||||||
dependencies:
|
|
||||||
wrappy "1"
|
|
||||||
|
|
||||||
p-cancelable@^2.0.0:
|
|
||||||
version "2.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e"
|
|
||||||
integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==
|
|
||||||
|
|
||||||
parse-github-url@1.0.2:
|
|
||||||
version "1.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395"
|
|
||||||
integrity sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==
|
|
||||||
|
|
||||||
pump@^3.0.0:
|
|
||||||
version "3.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
|
|
||||||
integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
|
|
||||||
dependencies:
|
|
||||||
end-of-stream "^1.1.0"
|
|
||||||
once "^1.3.1"
|
|
||||||
|
|
||||||
readable-stream@^3.0.1, readable-stream@^3.1.1:
|
|
||||||
version "3.4.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc"
|
|
||||||
integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==
|
|
||||||
dependencies:
|
|
||||||
inherits "^2.0.3"
|
|
||||||
string_decoder "^1.1.1"
|
|
||||||
util-deprecate "^1.0.1"
|
|
||||||
|
|
||||||
responselike@^2.0.0:
|
|
||||||
version "2.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723"
|
|
||||||
integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==
|
|
||||||
dependencies:
|
|
||||||
lowercase-keys "^2.0.0"
|
|
||||||
|
|
||||||
safe-buffer@~5.2.0:
|
|
||||||
version "5.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
|
|
||||||
integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
|
|
||||||
|
|
||||||
source-map-support@^0.5.17:
|
|
||||||
version "0.5.19"
|
|
||||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
|
|
||||||
integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
|
|
||||||
dependencies:
|
|
||||||
buffer-from "^1.0.0"
|
|
||||||
source-map "^0.6.0"
|
|
||||||
|
|
||||||
source-map@^0.6.0:
|
|
||||||
version "0.6.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
|
||||||
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
|
||||||
|
|
||||||
string_decoder@^1.1.1:
|
|
||||||
version "1.3.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
|
|
||||||
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
|
|
||||||
dependencies:
|
|
||||||
safe-buffer "~5.2.0"
|
|
||||||
|
|
||||||
tar-fs@2.0.0:
|
|
||||||
version "2.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.0.tgz#677700fc0c8b337a78bee3623fdc235f21d7afad"
|
|
||||||
integrity sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==
|
|
||||||
dependencies:
|
|
||||||
chownr "^1.1.1"
|
|
||||||
mkdirp "^0.5.1"
|
|
||||||
pump "^3.0.0"
|
|
||||||
tar-stream "^2.0.0"
|
|
||||||
|
|
||||||
tar-stream@^2.0.0:
|
|
||||||
version "2.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.0.tgz#d1aaa3661f05b38b5acc9b7020efdca5179a2cc3"
|
|
||||||
integrity sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw==
|
|
||||||
dependencies:
|
|
||||||
bl "^3.0.0"
|
|
||||||
end-of-stream "^1.4.1"
|
|
||||||
fs-constants "^1.0.0"
|
|
||||||
inherits "^2.0.3"
|
|
||||||
readable-stream "^3.1.1"
|
|
||||||
|
|
||||||
to-readable-stream@^2.0.0:
|
|
||||||
version "2.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-2.1.0.tgz#82880316121bea662cdc226adb30addb50cb06e8"
|
|
||||||
integrity sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==
|
|
||||||
|
|
||||||
"traverse@>=0.3.0 <0.4":
|
|
||||||
version "0.3.9"
|
|
||||||
resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9"
|
|
||||||
integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=
|
|
||||||
|
|
||||||
ts-node@8.9.1:
|
|
||||||
version "8.9.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.9.1.tgz#2f857f46c47e91dcd28a14e052482eb14cfd65a5"
|
|
||||||
integrity sha512-yrq6ODsxEFTLz0R3BX2myf0WBCSQh9A+py8PBo1dCzWIOcvisbyH6akNKqDHMgXePF2kir5mm5JXJTH3OUJYOQ==
|
|
||||||
dependencies:
|
|
||||||
arg "^4.1.0"
|
|
||||||
diff "^4.0.1"
|
|
||||||
make-error "^1.1.1"
|
|
||||||
source-map-support "^0.5.17"
|
|
||||||
yn "3.1.1"
|
|
||||||
|
|
||||||
tslib@^1.9.3:
|
|
||||||
version "1.10.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
|
|
||||||
integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
|
|
||||||
|
|
||||||
type-fest@^0.8.0:
|
|
||||||
version "0.8.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
|
|
||||||
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
|
|
||||||
|
|
||||||
typescript@3.9.3:
|
|
||||||
version "3.9.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.3.tgz#d3ac8883a97c26139e42df5e93eeece33d610b8a"
|
|
||||||
integrity sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ==
|
|
||||||
|
|
||||||
typescript@3.9.6:
|
|
||||||
version "3.9.6"
|
|
||||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.6.tgz#8f3e0198a34c3ae17091b35571d3afd31999365a"
|
|
||||||
integrity sha512-Pspx3oKAPJtjNwE92YS05HQoY7z2SFyOpHo9MqJor3BXAGNaPUs83CuVp9VISFkSjyRfiTpmKuAYGJB7S7hOxw==
|
|
||||||
|
|
||||||
unzip-stream@0.3.0:
|
|
||||||
version "0.3.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/unzip-stream/-/unzip-stream-0.3.0.tgz#c30c054cd6b0d64b13a23cd3ece911eb0b2b52d8"
|
|
||||||
integrity sha512-NG1h/MdGIX3HzyqMjyj1laBCmlPYhcO4xEy7gEqqzGiSLw7XqDQCnY4nYSn5XSaH8mQ6TFkaujrO8d/PIZN85A==
|
|
||||||
dependencies:
|
|
||||||
binary "^0.3.0"
|
|
||||||
mkdirp "^0.5.1"
|
|
||||||
|
|
||||||
util-deprecate@^1.0.1:
|
|
||||||
version "1.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
|
||||||
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
|
|
||||||
|
|
||||||
wrappy@1:
|
|
||||||
version "1.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
|
||||||
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
|
||||||
|
|
||||||
yn@3.1.1:
|
|
||||||
version "3.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
|
|
||||||
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
|
|
||||||
13
errors/deployment-error.md
Normal file
13
errors/deployment-error.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Deployment failed
|
||||||
|
|
||||||
|
## Why This Error Occurred
|
||||||
|
|
||||||
|
When deploying this project, there was not a successful deployment into the `READY` state.
|
||||||
|
|
||||||
|
## How to Fix It
|
||||||
|
|
||||||
|
This is a generic error to catch problems in the deployment. The error is likely to vary depending on the deployment and the conditions at the time.
|
||||||
|
|
||||||
|
Try looking in the logs for information about the deployment and the failure, this could be done at (vercel.com)[https://vercel.com]. You can also use the `vc logs` command to display the build logs for the deployment.
|
||||||
|
|
||||||
|
This might not be a permanent error and retrying the deployment might also resolve it.
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
# `@now/next` Legacy Mode
|
# `@vercel/next` Legacy Mode
|
||||||
|
|
||||||
#### Why This Warning Occurred
|
#### Why This Warning Occurred
|
||||||
|
|
||||||
`@now/next` has two modes: `legacy` and `serverless`. You will always want to use the `serverless` mode. `legacy` is to provide backwards compatibility with previous `@now/next` versions.
|
`@vercel/next` has two modes: `legacy` and `serverless`. You will always want to use the `serverless` mode. `legacy` is to provide backwards compatibility with previous `@vercel/next` versions.
|
||||||
|
|
||||||
The differences:
|
The differences:
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ Serverless:
|
|||||||
- Runs `npm run now-build`
|
- Runs `npm run now-build`
|
||||||
- Does not run `npm install --production` as the output from the build is all that's needed to bundle lambdas.
|
- Does not run `npm install --production` as the output from the build is all that's needed to bundle lambdas.
|
||||||
- No runtime dependencies, meaning smaller lambda functions
|
- No runtime dependencies, meaning smaller lambda functions
|
||||||
- Optimized for fast [cold start](https://vercel.com/blog/serverless-ssr#cold-start)
|
- Optimized for fast cold start
|
||||||
|
|
||||||
#### Possible Ways to Fix It
|
#### Possible Ways to Fix It
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@ module.exports = {
|
|||||||
```js
|
```js
|
||||||
{
|
{
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"builds": [{ "src": "package.json", "use": "@now/next" }]
|
"builds": [{ "src": "package.json", "use": "@vercel/next" }]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# `@now/next` No Serverless Pages Built
|
# `@vercel/next` No Serverless Pages Built
|
||||||
|
|
||||||
#### Why This Error Occurred
|
#### Why This Error Occurred
|
||||||
|
|
||||||
@@ -33,13 +33,13 @@ module.exports = {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Remove `distDir` from `next.config.js` as `@now/next` can't parse this file and expects your build output at `/.next`
|
4. Remove `distDir` from `next.config.js` as `@vercel/next` can't parse this file and expects your build output at `/.next`
|
||||||
|
|
||||||
5. Optionally make sure the `"src"` in `"builds"` points to your application `package.json`
|
5. Optionally make sure the `"src"` in `"builds"` points to your application `package.json`
|
||||||
|
|
||||||
```js
|
```js
|
||||||
{
|
{
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"builds": [{ "src": "package.json", "use": "@now/next" }]
|
"builds": [{ "src": "package.json", "use": "@vercel/next" }]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
|
|
||||||
# For additional information regarding the format and rule options, please see:
|
|
||||||
# https://github.com/browserslist/browserslist#queries
|
|
||||||
|
|
||||||
# For the full list of supported browsers by the Angular framework, please see:
|
|
||||||
# https://angular.io/guide/browser-support
|
|
||||||
|
|
||||||
# You can see what browsers were selected by your queries by running:
|
|
||||||
# npx browserslist
|
|
||||||
|
|
||||||
last 1 Chrome version
|
|
||||||
last 1 Firefox version
|
|
||||||
last 2 Edge major versions
|
|
||||||
last 2 Safari major versions
|
|
||||||
last 2 iOS major versions
|
|
||||||
Firefox ESR
|
|
||||||
16
examples/angular/.editorconfig
Normal file
16
examples/angular/.editorconfig
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Editor configuration, see https://editorconfig.org
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.ts]
|
||||||
|
quote_type = single
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
max_line_length = off
|
||||||
|
trim_trailing_whitespace = false
|
||||||
1
examples/angular/.gitignore
vendored
1
examples/angular/.gitignore
vendored
@@ -41,3 +41,4 @@ testem.log
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
.vercel
|
.vercel
|
||||||
|
.angular
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ _Live Example: https://angular-template.vercel.app_
|
|||||||
|
|
||||||
## Development server
|
## Development server
|
||||||
|
|
||||||
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
|
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files.
|
||||||
|
|
||||||
## Code scaffolding
|
## Code scaffolding
|
||||||
|
|
||||||
|
|||||||
@@ -3,13 +3,9 @@
|
|||||||
"version": 1,
|
"version": 1,
|
||||||
"newProjectRoot": "projects",
|
"newProjectRoot": "projects",
|
||||||
"projects": {
|
"projects": {
|
||||||
"my-app": {
|
"angular-test": {
|
||||||
"projectType": "application",
|
"projectType": "application",
|
||||||
"schematics": {
|
"schematics": {},
|
||||||
"@schematics/angular:application": {
|
|
||||||
"strict": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": "",
|
"root": "",
|
||||||
"sourceRoot": "src",
|
"sourceRoot": "src",
|
||||||
"prefix": "app",
|
"prefix": "app",
|
||||||
@@ -17,18 +13,13 @@
|
|||||||
"build": {
|
"build": {
|
||||||
"builder": "@angular-devkit/build-angular:browser",
|
"builder": "@angular-devkit/build-angular:browser",
|
||||||
"options": {
|
"options": {
|
||||||
"outputPath": "dist/my-app",
|
"outputPath": "dist/angular-test",
|
||||||
"index": "src/index.html",
|
"index": "src/index.html",
|
||||||
"main": "src/main.ts",
|
"main": "src/main.ts",
|
||||||
"polyfills": "src/polyfills.ts",
|
"polyfills": ["zone.js"],
|
||||||
"tsConfig": "tsconfig.app.json",
|
"tsConfig": "tsconfig.app.json",
|
||||||
"assets": [
|
"assets": ["src/favicon.ico", "src/assets"],
|
||||||
"src/favicon.ico",
|
"styles": ["src/styles.css"],
|
||||||
"src/assets"
|
|
||||||
],
|
|
||||||
"styles": [
|
|
||||||
"src/styles.css"
|
|
||||||
],
|
|
||||||
"scripts": []
|
"scripts": []
|
||||||
},
|
},
|
||||||
"configurations": {
|
"configurations": {
|
||||||
@@ -45,12 +36,6 @@
|
|||||||
"maximumError": "4kb"
|
"maximumError": "4kb"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"fileReplacements": [
|
|
||||||
{
|
|
||||||
"replace": "src/environments/environment.ts",
|
|
||||||
"with": "src/environments/environment.prod.ts"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"outputHashing": "all"
|
"outputHashing": "all"
|
||||||
},
|
},
|
||||||
"development": {
|
"development": {
|
||||||
@@ -68,10 +53,10 @@
|
|||||||
"builder": "@angular-devkit/build-angular:dev-server",
|
"builder": "@angular-devkit/build-angular:dev-server",
|
||||||
"configurations": {
|
"configurations": {
|
||||||
"production": {
|
"production": {
|
||||||
"browserTarget": "my-app:build:production"
|
"browserTarget": "angular-test:build:production"
|
||||||
},
|
},
|
||||||
"development": {
|
"development": {
|
||||||
"browserTarget": "my-app:build:development"
|
"browserTarget": "angular-test:build:development"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"defaultConfiguration": "development"
|
"defaultConfiguration": "development"
|
||||||
@@ -79,28 +64,20 @@
|
|||||||
"extract-i18n": {
|
"extract-i18n": {
|
||||||
"builder": "@angular-devkit/build-angular:extract-i18n",
|
"builder": "@angular-devkit/build-angular:extract-i18n",
|
||||||
"options": {
|
"options": {
|
||||||
"browserTarget": "my-app:build"
|
"browserTarget": "angular-test:build"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"test": {
|
"test": {
|
||||||
"builder": "@angular-devkit/build-angular:karma",
|
"builder": "@angular-devkit/build-angular:karma",
|
||||||
"options": {
|
"options": {
|
||||||
"main": "src/test.ts",
|
"polyfills": ["zone.js", "zone.js/testing"],
|
||||||
"polyfills": "src/polyfills.ts",
|
|
||||||
"tsConfig": "tsconfig.spec.json",
|
"tsConfig": "tsconfig.spec.json",
|
||||||
"karmaConfig": "karma.conf.js",
|
"assets": ["src/favicon.ico", "src/assets"],
|
||||||
"assets": [
|
"styles": ["src/styles.css"],
|
||||||
"src/favicon.ico",
|
|
||||||
"src/assets"
|
|
||||||
],
|
|
||||||
"styles": [
|
|
||||||
"src/styles.css"
|
|
||||||
],
|
|
||||||
"scripts": []
|
"scripts": []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
"defaultProject": "my-app"
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,44 +0,0 @@
|
|||||||
// Karma configuration file, see link for more information
|
|
||||||
// https://karma-runner.github.io/1.0/config/configuration-file.html
|
|
||||||
|
|
||||||
module.exports = function (config) {
|
|
||||||
config.set({
|
|
||||||
basePath: '',
|
|
||||||
frameworks: ['jasmine', '@angular-devkit/build-angular'],
|
|
||||||
plugins: [
|
|
||||||
require('karma-jasmine'),
|
|
||||||
require('karma-chrome-launcher'),
|
|
||||||
require('karma-jasmine-html-reporter'),
|
|
||||||
require('karma-coverage'),
|
|
||||||
require('@angular-devkit/build-angular/plugins/karma')
|
|
||||||
],
|
|
||||||
client: {
|
|
||||||
jasmine: {
|
|
||||||
// you can add configuration options for Jasmine here
|
|
||||||
// the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
|
|
||||||
// for example, you can disable the random execution with `random: false`
|
|
||||||
// or set a specific seed with `seed: 4321`
|
|
||||||
},
|
|
||||||
clearContext: false // leave Jasmine Spec Runner output visible in browser
|
|
||||||
},
|
|
||||||
jasmineHtmlReporter: {
|
|
||||||
suppressAll: true // removes the duplicated traces
|
|
||||||
},
|
|
||||||
coverageReporter: {
|
|
||||||
dir: require('path').join(__dirname, './coverage/my-app'),
|
|
||||||
subdir: '.',
|
|
||||||
reporters: [
|
|
||||||
{ type: 'html' },
|
|
||||||
{ type: 'text-summary' }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
reporters: ['progress', 'kjhtml'],
|
|
||||||
port: 9876,
|
|
||||||
colors: true,
|
|
||||||
logLevel: config.LOG_INFO,
|
|
||||||
autoWatch: true,
|
|
||||||
browsers: ['Chrome'],
|
|
||||||
singleRun: false,
|
|
||||||
restartOnFileChange: true
|
|
||||||
});
|
|
||||||
};
|
|
||||||
19033
examples/angular/package-lock.json
generated
Normal file
19033
examples/angular/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -8,30 +8,29 @@
|
|||||||
"test": "ng test"
|
"test": "ng test"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@angular/animations": "~13.1.0",
|
"@angular/animations": "^15.0.0",
|
||||||
"@angular/common": "~13.1.0",
|
"@angular/common": "^15.0.0",
|
||||||
"@angular/compiler": "~13.1.0",
|
"@angular/compiler": "^15.0.0",
|
||||||
"@angular/core": "~13.1.0",
|
"@angular/core": "^15.0.0",
|
||||||
"@angular/forms": "~13.1.0",
|
"@angular/forms": "^15.0.0",
|
||||||
"@angular/platform-browser": "~13.1.0",
|
"@angular/platform-browser": "^15.0.0",
|
||||||
"@angular/platform-browser-dynamic": "~13.1.0",
|
"@angular/platform-browser-dynamic": "^15.0.0",
|
||||||
"@angular/router": "~13.1.0",
|
"@angular/router": "^15.0.0",
|
||||||
"rxjs": "~7.4.0",
|
"rxjs": "~7.5.0",
|
||||||
"tslib": "^2.3.0",
|
"tslib": "^2.3.0",
|
||||||
"zone.js": "~0.11.4"
|
"zone.js": "~0.12.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@angular-devkit/build-angular": "~13.1.3",
|
"@angular-devkit/build-angular": "^15.0.0",
|
||||||
"@angular/cli": "~13.1.3",
|
"@angular/cli": "~15.0.0",
|
||||||
"@angular/compiler-cli": "~13.1.0",
|
"@angular/compiler-cli": "^15.0.0",
|
||||||
"@types/jasmine": "~3.10.0",
|
"@types/jasmine": "~4.3.0",
|
||||||
"@types/node": "^12.11.1",
|
"jasmine-core": "~4.5.0",
|
||||||
"jasmine-core": "~3.10.0",
|
"karma": "~6.4.0",
|
||||||
"karma": "~6.3.0",
|
|
||||||
"karma-chrome-launcher": "~3.1.0",
|
"karma-chrome-launcher": "~3.1.0",
|
||||||
"karma-coverage": "~2.1.0",
|
"karma-coverage": "~2.2.0",
|
||||||
"karma-jasmine": "~4.0.0",
|
"karma-jasmine": "~5.1.0",
|
||||||
"karma-jasmine-html-reporter": "~1.7.0",
|
"karma-jasmine-html-reporter": "~2.0.0",
|
||||||
"typescript": "~4.5.2"
|
"typescript": "~4.8.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
10
examples/angular/src/app/app-routing.module.ts
Normal file
10
examples/angular/src/app/app-routing.module.ts
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { RouterModule, Routes } from '@angular/router';
|
||||||
|
|
||||||
|
const routes: Routes = [];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [RouterModule.forRoot(routes)],
|
||||||
|
exports: [RouterModule]
|
||||||
|
})
|
||||||
|
export class AppRoutingModule { }
|
||||||
@@ -367,7 +367,7 @@
|
|||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a class="card" target="_blank" rel="noopener" href="https://material.angular.io">
|
<a class="card" target="_blank" rel="noopener" href="https://material.angular.io">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" style="margin-right: 8px" width="21.813" height="23.453" viewBox="0 0 21.813 23.453"><path d="M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z" transform="translate(-4088.702 -972.736)" fill="#808080"/><path d="M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z" transform="translate(-4170.633 -972.736)" fill="#808080"/><path d="M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z" transform="translate(-4125.003 -1058.315)" fill="#ffe0b2"/><path d="M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z" transform="translate(-4125.003 -1036.757)" fill="#fff3e0"/><path d="M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z" transform="translate(-4125.003 -1015.199)" fill="#fff"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" style="margin-right: 8px" width="21.813" height="23.453" viewBox="0 0 179.2 192.7"><path fill="#ffa726" d="M89.4 0 0 32l13.5 118.4 75.9 42.3 76-42.3L179.2 32 89.4 0z"/><path fill="#fb8c00" d="M89.4 0v192.7l76-42.3L179.2 32 89.4 0z"/><path fill="#ffe0b2" d="m102.9 146.3-63.3-30.5 36.3-22.4 63.7 30.6-36.7 22.3z"/><path fill="#fff3e0" d="M102.9 122.8 39.6 92.2l36.3-22.3 63.7 30.6-36.7 22.3z"/><path fill="#fff" d="M102.9 99.3 39.6 68.7l36.3-22.4 63.7 30.6-36.7 22.4z"/></svg>
|
||||||
<span>Angular Material</span>
|
<span>Angular Material</span>
|
||||||
<svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg>
|
<svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg>
|
||||||
</a>
|
</a>
|
||||||
@@ -481,3 +481,4 @@
|
|||||||
<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->
|
<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->
|
||||||
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
|
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
|
||||||
|
|
||||||
|
<router-outlet></router-outlet>
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
import { TestBed } from '@angular/core/testing';
|
import { TestBed } from '@angular/core/testing';
|
||||||
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
import { AppComponent } from './app.component';
|
import { AppComponent } from './app.component';
|
||||||
|
|
||||||
describe('AppComponent', () => {
|
describe('AppComponent', () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await TestBed.configureTestingModule({
|
await TestBed.configureTestingModule({
|
||||||
|
imports: [
|
||||||
|
RouterTestingModule
|
||||||
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
AppComponent
|
AppComponent
|
||||||
],
|
],
|
||||||
@@ -16,16 +20,16 @@ describe('AppComponent', () => {
|
|||||||
expect(app).toBeTruthy();
|
expect(app).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
it(`should have as title 'my-app'`, () => {
|
it(`should have as title 'angular-test'`, () => {
|
||||||
const fixture = TestBed.createComponent(AppComponent);
|
const fixture = TestBed.createComponent(AppComponent);
|
||||||
const app = fixture.componentInstance;
|
const app = fixture.componentInstance;
|
||||||
expect(app.title).toEqual('my-app');
|
expect(app.title).toEqual('angular-test');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should render title', () => {
|
it('should render title', () => {
|
||||||
const fixture = TestBed.createComponent(AppComponent);
|
const fixture = TestBed.createComponent(AppComponent);
|
||||||
fixture.detectChanges();
|
fixture.detectChanges();
|
||||||
const compiled = fixture.nativeElement as HTMLElement;
|
const compiled = fixture.nativeElement as HTMLElement;
|
||||||
expect(compiled.querySelector('.content span')?.textContent).toContain('my-app app is running!');
|
expect(compiled.querySelector('.content span')?.textContent).toContain('angular-test app is running!');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,5 +6,5 @@ import { Component } from '@angular/core';
|
|||||||
styleUrls: ['./app.component.css']
|
styleUrls: ['./app.component.css']
|
||||||
})
|
})
|
||||||
export class AppComponent {
|
export class AppComponent {
|
||||||
title = 'my-app';
|
title = 'angular-test';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { BrowserModule } from '@angular/platform-browser';
|
import { BrowserModule } from '@angular/platform-browser';
|
||||||
|
|
||||||
|
import { AppRoutingModule } from './app-routing.module';
|
||||||
import { AppComponent } from './app.component';
|
import { AppComponent } from './app.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
@@ -8,7 +9,8 @@ import { AppComponent } from './app.component';
|
|||||||
AppComponent
|
AppComponent
|
||||||
],
|
],
|
||||||
imports: [
|
imports: [
|
||||||
BrowserModule
|
BrowserModule,
|
||||||
|
AppRoutingModule
|
||||||
],
|
],
|
||||||
providers: [],
|
providers: [],
|
||||||
bootstrap: [AppComponent]
|
bootstrap: [AppComponent]
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
export const environment = {
|
|
||||||
production: true
|
|
||||||
};
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
// This file can be replaced during build by using the `fileReplacements` array.
|
|
||||||
// `ng build` replaces `environment.ts` with `environment.prod.ts`.
|
|
||||||
// The list of file replacements can be found in `angular.json`.
|
|
||||||
|
|
||||||
export const environment = {
|
|
||||||
production: false
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* For easier debugging in development mode, you can import the following file
|
|
||||||
* to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
|
|
||||||
*
|
|
||||||
* This import should be commented out in production mode because it will have a negative impact
|
|
||||||
* on performance if an error is thrown.
|
|
||||||
*/
|
|
||||||
// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.
|
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<!doctype html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8" />
|
||||||
<title>Angular</title>
|
<title>Angular</title>
|
||||||
<base href="/">
|
<base href="/" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
<link rel="icon" type="image/x-icon" href="favicon.ico" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<app-root></app-root>
|
<app-root></app-root>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,12 +1,7 @@
|
|||||||
import { enableProdMode } from '@angular/core';
|
|
||||||
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
||||||
|
|
||||||
import { AppModule } from './app/app.module';
|
import { AppModule } from './app/app.module';
|
||||||
import { environment } from './environments/environment';
|
|
||||||
|
|
||||||
if (environment.production) {
|
|
||||||
enableProdMode();
|
|
||||||
}
|
|
||||||
|
|
||||||
platformBrowserDynamic().bootstrapModule(AppModule)
|
platformBrowserDynamic().bootstrapModule(AppModule)
|
||||||
.catch(err => console.error(err));
|
.catch(err => console.error(err));
|
||||||
|
|||||||
@@ -1,53 +0,0 @@
|
|||||||
/**
|
|
||||||
* This file includes polyfills needed by Angular and is loaded before the app.
|
|
||||||
* You can add your own extra polyfills to this file.
|
|
||||||
*
|
|
||||||
* This file is divided into 2 sections:
|
|
||||||
* 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
|
|
||||||
* 2. Application imports. Files imported after ZoneJS that should be loaded before your main
|
|
||||||
* file.
|
|
||||||
*
|
|
||||||
* The current setup is for so-called "evergreen" browsers; the last versions of browsers that
|
|
||||||
* automatically update themselves. This includes recent versions of Safari, Chrome (including
|
|
||||||
* Opera), Edge on the desktop, and iOS and Chrome on mobile.
|
|
||||||
*
|
|
||||||
* Learn more in https://angular.io/guide/browser-support
|
|
||||||
*/
|
|
||||||
|
|
||||||
/***************************************************************************************************
|
|
||||||
* BROWSER POLYFILLS
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* By default, zone.js will patch all possible macroTask and DomEvents
|
|
||||||
* user can disable parts of macroTask/DomEvents patch by setting following flags
|
|
||||||
* because those flags need to be set before `zone.js` being loaded, and webpack
|
|
||||||
* will put import in the top of bundle, so user need to create a separate file
|
|
||||||
* in this directory (for example: zone-flags.ts), and put the following flags
|
|
||||||
* into that file, and then add the following code before importing zone.js.
|
|
||||||
* import './zone-flags';
|
|
||||||
*
|
|
||||||
* The flags allowed in zone-flags.ts are listed here.
|
|
||||||
*
|
|
||||||
* The following flags will work for all browsers.
|
|
||||||
*
|
|
||||||
* (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
|
|
||||||
* (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
|
|
||||||
* (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
|
|
||||||
*
|
|
||||||
* in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
|
|
||||||
* with the following flag, it will bypass `zone.js` patch for IE/Edge
|
|
||||||
*
|
|
||||||
* (window as any).__Zone_enable_cross_context_check = true;
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/***************************************************************************************************
|
|
||||||
* Zone JS is required by default for Angular itself.
|
|
||||||
*/
|
|
||||||
import 'zone.js'; // Included with Angular CLI.
|
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************************************
|
|
||||||
* APPLICATION IMPORTS
|
|
||||||
*/
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
|
|
||||||
|
|
||||||
import 'zone.js/testing';
|
|
||||||
import { getTestBed } from '@angular/core/testing';
|
|
||||||
import {
|
|
||||||
BrowserDynamicTestingModule,
|
|
||||||
platformBrowserDynamicTesting
|
|
||||||
} from '@angular/platform-browser-dynamic/testing';
|
|
||||||
|
|
||||||
declare const require: {
|
|
||||||
context(path: string, deep?: boolean, filter?: RegExp): {
|
|
||||||
<T>(id: string): T;
|
|
||||||
keys(): string[];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
// First, initialize the Angular testing environment.
|
|
||||||
getTestBed().initTestEnvironment(
|
|
||||||
BrowserDynamicTestingModule,
|
|
||||||
platformBrowserDynamicTesting(),
|
|
||||||
);
|
|
||||||
|
|
||||||
// Then we find all the tests.
|
|
||||||
const context = require.context('./', true, /\.spec\.ts$/);
|
|
||||||
// And load the modules.
|
|
||||||
context.keys().map(context);
|
|
||||||
@@ -5,11 +5,6 @@
|
|||||||
"outDir": "./out-tsc/app",
|
"outDir": "./out-tsc/app",
|
||||||
"types": []
|
"types": []
|
||||||
},
|
},
|
||||||
"files": [
|
"files": ["src/main.ts"],
|
||||||
"src/main.ts",
|
"include": ["src/**/*.d.ts"]
|
||||||
"src/polyfills.ts"
|
|
||||||
],
|
|
||||||
"include": [
|
|
||||||
"src/**/*.d.ts"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,12 +16,10 @@
|
|||||||
"experimentalDecorators": true,
|
"experimentalDecorators": true,
|
||||||
"moduleResolution": "node",
|
"moduleResolution": "node",
|
||||||
"importHelpers": true,
|
"importHelpers": true,
|
||||||
"target": "es2017",
|
"target": "ES2022",
|
||||||
"module": "es2020",
|
"module": "ES2022",
|
||||||
"lib": [
|
"useDefineForClassFields": false,
|
||||||
"es2020",
|
"lib": ["ES2022", "dom"]
|
||||||
"dom"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"angularCompilerOptions": {
|
"angularCompilerOptions": {
|
||||||
"enableI18nLegacyMessageIdFormat": false,
|
"enableI18nLegacyMessageIdFormat": false,
|
||||||
|
|||||||
@@ -3,16 +3,7 @@
|
|||||||
"extends": "./tsconfig.json",
|
"extends": "./tsconfig.json",
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"outDir": "./out-tsc/spec",
|
"outDir": "./out-tsc/spec",
|
||||||
"types": [
|
"types": ["jasmine"]
|
||||||
"jasmine"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"files": [
|
"include": ["src/**/*.spec.ts", "src/**/*.d.ts"]
|
||||||
"src/test.ts",
|
|
||||||
"src/polyfills.ts"
|
|
||||||
],
|
|
||||||
"include": [
|
|
||||||
"src/**/*.spec.ts",
|
|
||||||
"src/**/*.d.ts"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -8,6 +8,7 @@
|
|||||||
"astro": "astro"
|
"astro": "astro"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"astro": "^1.0.0-rc.8"
|
"astro": "^1.6.10",
|
||||||
|
"web-vitals": "^3.1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
3599
examples/astro/pnpm-lock.yaml
generated
Normal file
3599
examples/astro/pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load Diff
8
examples/astro/src/env.d.ts
vendored
8
examples/astro/src/env.d.ts
vendored
@@ -1 +1,9 @@
|
|||||||
/// <reference types="astro/client" />
|
/// <reference types="astro/client" />
|
||||||
|
|
||||||
|
interface ImportMetaEnv {
|
||||||
|
readonly PUBLIC_VERCEL_ANALYTICS_ID: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImportMeta {
|
||||||
|
readonly env: ImportMetaEnv;
|
||||||
|
}
|
||||||
|
|||||||
@@ -14,6 +14,19 @@ const { title } = Astro.props as Props;
|
|||||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||||
<meta name="generator" content={Astro.generator} />
|
<meta name="generator" content={Astro.generator} />
|
||||||
<title>{title}</title>
|
<title>{title}</title>
|
||||||
|
<script>
|
||||||
|
import { webVitals } from "../lib/vitals";
|
||||||
|
|
||||||
|
let analyticsId = import.meta.env.PUBLIC_VERCEL_ANALYTICS_ID;
|
||||||
|
|
||||||
|
if (analyticsId) {
|
||||||
|
webVitals({
|
||||||
|
path: location.pathname,
|
||||||
|
params: location.search,
|
||||||
|
analyticsId,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<slot />
|
<slot />
|
||||||
|
|||||||
66
examples/astro/src/lib/vitals.js
Normal file
66
examples/astro/src/lib/vitals.js
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
import { onCLS, onFCP, onFID, onLCP, onTTFB } from "web-vitals";
|
||||||
|
|
||||||
|
const vitalsUrl = "https://vitals.vercel-analytics.com/v1/vitals";
|
||||||
|
|
||||||
|
function getConnectionSpeed() {
|
||||||
|
return "connection" in navigator &&
|
||||||
|
navigator["connection"] &&
|
||||||
|
"effectiveType" in navigator["connection"]
|
||||||
|
? // @ts-ignore
|
||||||
|
navigator["connection"]["effectiveType"]
|
||||||
|
: "";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {import("web-vitals").Metric} metric
|
||||||
|
* @param {{ params: { [s: string]: any; } | ArrayLike<any>; path: string; analyticsId: string; debug: boolean; }} options
|
||||||
|
*/
|
||||||
|
export function sendToAnalytics(metric, options) {
|
||||||
|
const page = Object.entries(options.params).reduce(
|
||||||
|
(acc, [key, value]) => acc.replace(value, `[${key}]`),
|
||||||
|
options.path
|
||||||
|
);
|
||||||
|
|
||||||
|
const body = {
|
||||||
|
dsn: options.analyticsId,
|
||||||
|
id: metric.id,
|
||||||
|
page,
|
||||||
|
href: location.href,
|
||||||
|
event_name: metric.name,
|
||||||
|
value: metric.value.toString(),
|
||||||
|
speed: getConnectionSpeed(),
|
||||||
|
};
|
||||||
|
|
||||||
|
if (options.debug) {
|
||||||
|
console.log("[Analytics]", metric.name, JSON.stringify(body, null, 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
const blob = new Blob([new URLSearchParams(body).toString()], {
|
||||||
|
// This content type is necessary for `sendBeacon`
|
||||||
|
type: "application/x-www-form-urlencoded",
|
||||||
|
});
|
||||||
|
if (navigator.sendBeacon) {
|
||||||
|
navigator.sendBeacon(vitalsUrl, blob);
|
||||||
|
} else
|
||||||
|
fetch(vitalsUrl, {
|
||||||
|
body: blob,
|
||||||
|
method: "POST",
|
||||||
|
credentials: "omit",
|
||||||
|
keepalive: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {any} options
|
||||||
|
*/
|
||||||
|
export function webVitals(options) {
|
||||||
|
try {
|
||||||
|
onFID((metric) => sendToAnalytics(metric, options));
|
||||||
|
onTTFB((metric) => sendToAnalytics(metric, options));
|
||||||
|
onLCP((metric) => sendToAnalytics(metric, options));
|
||||||
|
onCLS((metric) => sendToAnalytics(metric, options));
|
||||||
|
onFCP((metric) => sendToAnalytics(metric, options));
|
||||||
|
} catch (err) {
|
||||||
|
console.error("[Analytics]", err);
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -3301,9 +3301,9 @@ debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
|
|||||||
ms "2.1.2"
|
ms "2.1.2"
|
||||||
|
|
||||||
decode-uri-component@^0.2.0:
|
decode-uri-component@^0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
|
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
|
||||||
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
|
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
|
||||||
|
|
||||||
decompress-response@^5.0.0:
|
decompress-response@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
|
|||||||
@@ -1208,9 +1208,9 @@ decamelize@^1.0.0:
|
|||||||
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
||||||
|
|
||||||
decode-uri-component@^0.2.0:
|
decode-uri-component@^0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
|
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
|
||||||
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
|
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
|
||||||
|
|
||||||
deep-assign@^2.0.0:
|
deep-assign@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@testing-library/jest-dom": "^5.16.4",
|
"@testing-library/jest-dom": "^5.16.5",
|
||||||
"@testing-library/react": "^13.3.0",
|
"@testing-library/react": "^13.4.0",
|
||||||
"@testing-library/user-event": "^14.2.0",
|
"@testing-library/user-event": "^14.4.3",
|
||||||
"react": "^18.1.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.1.0",
|
"react-dom": "^18.2.0",
|
||||||
"react-scripts": "5.0.1",
|
"react-scripts": "5.0.1",
|
||||||
"web-vitals": "^2.1.4"
|
"web-vitals": "^3.0.4"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "react-scripts start",
|
"start": "react-scripts start",
|
||||||
|
|||||||
10061
examples/create-react-app/pnpm-lock.yaml
generated
Normal file
10061
examples/create-react-app/pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -2123,9 +2123,9 @@ decamelize@^1.1.2:
|
|||||||
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
||||||
|
|
||||||
decode-uri-component@^0.2.0:
|
decode-uri-component@^0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
|
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
|
||||||
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
|
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
|
||||||
|
|
||||||
decompress-response@^3.2.0, decompress-response@^3.3.0:
|
decompress-response@^3.2.0, decompress-response@^3.3.0:
|
||||||
version "3.3.0"
|
version "3.3.0"
|
||||||
|
|||||||
@@ -2932,9 +2932,9 @@ decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2:
|
|||||||
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
||||||
|
|
||||||
decode-uri-component@^0.2.0:
|
decode-uri-component@^0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
|
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
|
||||||
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
|
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
|
||||||
|
|
||||||
decompress-response@^4.2.0:
|
decompress-response@^4.2.0:
|
||||||
version "4.2.1"
|
version "4.2.1"
|
||||||
|
|||||||
@@ -3424,9 +3424,9 @@ decamelize@^1.2.0:
|
|||||||
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
||||||
|
|
||||||
decode-uri-component@^0.2.0:
|
decode-uri-component@^0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
|
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
|
||||||
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
|
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
|
||||||
|
|
||||||
decompress-response@^3.3.0:
|
decompress-response@^3.3.0:
|
||||||
version "3.3.0"
|
version "3.3.0"
|
||||||
|
|||||||
68
examples/gatsby/.gitignore
vendored
68
examples/gatsby/.gitignore
vendored
@@ -1,72 +1,4 @@
|
|||||||
# Logs
|
|
||||||
logs
|
|
||||||
*.log
|
|
||||||
npm-debug.log*
|
|
||||||
yarn-debug.log*
|
|
||||||
yarn-error.log*
|
|
||||||
|
|
||||||
# Runtime data
|
|
||||||
pids
|
|
||||||
*.pid
|
|
||||||
*.seed
|
|
||||||
*.pid.lock
|
|
||||||
|
|
||||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
|
||||||
lib-cov
|
|
||||||
|
|
||||||
# Coverage directory used by tools like istanbul
|
|
||||||
coverage
|
|
||||||
|
|
||||||
# nyc test coverage
|
|
||||||
.nyc_output
|
|
||||||
|
|
||||||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
|
||||||
.grunt
|
|
||||||
|
|
||||||
# Bower dependency directory (https://bower.io/)
|
|
||||||
bower_components
|
|
||||||
|
|
||||||
# node-waf configuration
|
|
||||||
.lock-wscript
|
|
||||||
|
|
||||||
# Compiled binary addons (http://nodejs.org/api/addons.html)
|
|
||||||
build/Release
|
|
||||||
|
|
||||||
# Dependency directories
|
|
||||||
node_modules/
|
node_modules/
|
||||||
jspm_packages/
|
|
||||||
|
|
||||||
# Typescript v1 declaration files
|
|
||||||
typings/
|
|
||||||
|
|
||||||
# Optional npm cache directory
|
|
||||||
.npm
|
|
||||||
|
|
||||||
# Optional eslint cache
|
|
||||||
.eslintcache
|
|
||||||
|
|
||||||
# Optional REPL history
|
|
||||||
.node_repl_history
|
|
||||||
|
|
||||||
# Output of 'npm pack'
|
|
||||||
*.tgz
|
|
||||||
|
|
||||||
# dotenv environment variables file
|
|
||||||
.env
|
|
||||||
.env.build
|
|
||||||
|
|
||||||
# gatsby files
|
|
||||||
.cache/
|
.cache/
|
||||||
public
|
public
|
||||||
|
|
||||||
# Mac files
|
|
||||||
.DS_Store
|
|
||||||
|
|
||||||
# Yarn
|
|
||||||
yarn-error.log
|
|
||||||
.pnp/
|
|
||||||
.pnp.js
|
|
||||||
# Yarn Integrity file
|
|
||||||
.yarn-integrity
|
|
||||||
|
|
||||||
.vercel
|
.vercel
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
# Gatsby
|
# Gatsby
|
||||||
|
|
||||||
This directory is a brief example of a [Gatsby](https://www.gatsbyjs.org/) app with [Serverless Functions](https://vercel.com/docs/concepts/functions/serverless-functions) that can be deployed to Vercel with zero configuration.
|
This directory is a brief example of a [Gatsby](https://www.gatsbyjs.org/) app that can be deployed to Vercel with zero configuration.
|
||||||
|
|
||||||
|
> **Note:** SSR, DSG, and API Routes [are now supported](https://vercel.com/changelog/improved-support-for-gatsby-sites). We do not currently support some Gatsby v5 features, including Partial Hydration and the Slice API.
|
||||||
|
|
||||||
## Deploy Your Own
|
## Deploy Your Own
|
||||||
|
|
||||||
@@ -10,19 +12,42 @@ Deploy your own Gatsby project, along with Serverless Functions, with Vercel.
|
|||||||
|
|
||||||
_Live Example: https://gatsby.vercel.app_
|
_Live Example: https://gatsby.vercel.app_
|
||||||
|
|
||||||
## Running Locally
|
## Quickstart
|
||||||
|
|
||||||
> **Note:** [Gatsby Functions](https://www.gatsbyjs.com/docs/reference/functions/getting-started/) are not yet supported on Vercel, which is why the API Route is in `/api` instead of `/src/api`.
|
1. **Create a Gatsby site.**
|
||||||
|
|
||||||
To run your Gatsby application and your API Route, you'll need to use the [Vercel CLI](https://vercel.com/cli):
|
Use the Gatsby CLI to create a new site, specifying the minimal starter.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ npm i -g vercel
|
# create a new Gatsby site using the minimal starter
|
||||||
$ vercel
|
npm init gatsby
|
||||||
```
|
```
|
||||||
|
|
||||||
Alternatively, you can remove the API and just use Gatsby:
|
2. **Start developing.**
|
||||||
|
|
||||||
```shell
|
Navigate into your new site’s directory and start it up.
|
||||||
$ yarn develop
|
|
||||||
```
|
```shell
|
||||||
|
cd my-gatsby-site/
|
||||||
|
npm run develop
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Open the code and start customizing!**
|
||||||
|
|
||||||
|
Your site is now running at http://localhost:8000!
|
||||||
|
|
||||||
|
Edit `src/pages/index.js` to see your site update in real-time!
|
||||||
|
|
||||||
|
4. **Learn more**
|
||||||
|
|
||||||
|
- [Documentation](https://www.gatsbyjs.com/docs/?utm_source=starter&utm_medium=readme&utm_campaign=minimal-starter)
|
||||||
|
|
||||||
|
- [Tutorials](https://www.gatsbyjs.com/tutorial/?utm_source=starter&utm_medium=readme&utm_campaign=minimal-starter)
|
||||||
|
|
||||||
|
- [Guides](https://www.gatsbyjs.com/tutorial/?utm_source=starter&utm_medium=readme&utm_campaign=minimal-starter)
|
||||||
|
|
||||||
|
- [API Reference](https://www.gatsbyjs.com/docs/api-reference/?utm_source=starter&utm_medium=readme&utm_campaign=minimal-starter)
|
||||||
|
|
||||||
|
- [Plugin Library](https://www.gatsbyjs.com/plugins?utm_source=starter&utm_medium=readme&utm_campaign=minimal-starter)
|
||||||
|
|
||||||
|
- [Cheat Sheet](https://www.gatsbyjs.com/docs/cheat-sheet/?utm_source=starter&utm_medium=readme&utm_campaign=minimal-starter)
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
export default function handler(req, res) {
|
|
||||||
const date = new Date().toString();
|
|
||||||
res.status(200).send(date);
|
|
||||||
};
|
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
|
/**
|
||||||
|
* @type {import('gatsby').GatsbyConfig}
|
||||||
|
*/
|
||||||
module.exports = {
|
module.exports = {
|
||||||
siteMetadata: {
|
siteMetadata: {
|
||||||
title: `Gatsby + Node.js API`,
|
title: `Gatsby + Vercel`,
|
||||||
siteUrl: `https://gatsby-template.vercel.app`,
|
siteUrl: `https://gatsby-template.vercel.app/`,
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [],
|
||||||
|
};
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
"clean": "gatsby clean"
|
"clean": "gatsby clean"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"gatsby": "^4.5.3",
|
"gatsby": "^5.0.0",
|
||||||
"react": "^17.0.1",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^17.0.1"
|
"react-dom": "^18.2.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
examples/gatsby/src/images/icon.png
Normal file
BIN
examples/gatsby/src/images/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
49
examples/gatsby/src/pages/404.js
Normal file
49
examples/gatsby/src/pages/404.js
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
import * as React from 'react';
|
||||||
|
import { Link } from 'gatsby';
|
||||||
|
|
||||||
|
const pageStyles = {
|
||||||
|
color: '#232129',
|
||||||
|
padding: '96px',
|
||||||
|
fontFamily: '-apple-system, Roboto, sans-serif, serif',
|
||||||
|
};
|
||||||
|
const headingStyles = {
|
||||||
|
marginTop: 0,
|
||||||
|
marginBottom: 64,
|
||||||
|
maxWidth: 320,
|
||||||
|
};
|
||||||
|
|
||||||
|
const paragraphStyles = {
|
||||||
|
marginBottom: 48,
|
||||||
|
};
|
||||||
|
const codeStyles = {
|
||||||
|
color: '#8A6534',
|
||||||
|
padding: 4,
|
||||||
|
backgroundColor: '#FFF4DB',
|
||||||
|
fontSize: '1.25rem',
|
||||||
|
borderRadius: 4,
|
||||||
|
};
|
||||||
|
|
||||||
|
const NotFoundPage = () => {
|
||||||
|
return (
|
||||||
|
<main style={pageStyles}>
|
||||||
|
<h1 style={headingStyles}>Page not found</h1>
|
||||||
|
<p style={paragraphStyles}>
|
||||||
|
Sorry 😔, we couldn’t find what you were looking for.
|
||||||
|
<br />
|
||||||
|
{process.env.NODE_ENV === 'development' ? (
|
||||||
|
<>
|
||||||
|
<br />
|
||||||
|
Try creating a page in <code style={codeStyles}>src/pages/</code>.
|
||||||
|
<br />
|
||||||
|
</>
|
||||||
|
) : null}
|
||||||
|
<br />
|
||||||
|
<Link to="/">Go home</Link>.
|
||||||
|
</p>
|
||||||
|
</main>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default NotFoundPage;
|
||||||
|
|
||||||
|
export const Head = () => <title>Not found</title>;
|
||||||
@@ -1,53 +1,170 @@
|
|||||||
import React, { useEffect, useState } from 'react';
|
import * as React from 'react';
|
||||||
import '../styles/index.css';
|
|
||||||
|
|
||||||
function Index() {
|
const pageStyles = {
|
||||||
const [date, setDate] = useState(null);
|
color: '#232129',
|
||||||
useEffect(() => {
|
padding: 96,
|
||||||
async function getDate() {
|
fontFamily: '-apple-system, Roboto, sans-serif, serif',
|
||||||
const res = await fetch('/api/date');
|
};
|
||||||
const newDate = await res.text();
|
const headingStyles = {
|
||||||
setDate(newDate);
|
marginTop: 0,
|
||||||
}
|
marginBottom: 64,
|
||||||
getDate();
|
maxWidth: 320,
|
||||||
}, []);
|
};
|
||||||
|
const headingAccentStyles = {
|
||||||
|
color: '#663399',
|
||||||
|
};
|
||||||
|
const paragraphStyles = {
|
||||||
|
marginBottom: 48,
|
||||||
|
};
|
||||||
|
const codeStyles = {
|
||||||
|
color: '#8A6534',
|
||||||
|
padding: 4,
|
||||||
|
backgroundColor: '#FFF4DB',
|
||||||
|
fontSize: '1.25rem',
|
||||||
|
borderRadius: 4,
|
||||||
|
};
|
||||||
|
const listStyles = {
|
||||||
|
marginBottom: 96,
|
||||||
|
paddingLeft: 0,
|
||||||
|
};
|
||||||
|
const listItemStyles = {
|
||||||
|
fontWeight: 300,
|
||||||
|
fontSize: 24,
|
||||||
|
maxWidth: 560,
|
||||||
|
marginBottom: 30,
|
||||||
|
};
|
||||||
|
|
||||||
|
const linkStyle = {
|
||||||
|
color: '#8954A8',
|
||||||
|
fontWeight: 'bold',
|
||||||
|
fontSize: 16,
|
||||||
|
verticalAlign: '5%',
|
||||||
|
};
|
||||||
|
|
||||||
|
const docLinkStyle = {
|
||||||
|
...linkStyle,
|
||||||
|
listStyleType: 'none',
|
||||||
|
marginBottom: 24,
|
||||||
|
};
|
||||||
|
|
||||||
|
const descriptionStyle = {
|
||||||
|
color: '#232129',
|
||||||
|
fontSize: 14,
|
||||||
|
marginTop: 10,
|
||||||
|
marginBottom: 0,
|
||||||
|
lineHeight: 1.25,
|
||||||
|
};
|
||||||
|
|
||||||
|
const docLink = {
|
||||||
|
text: 'Documentation',
|
||||||
|
url: 'https://www.gatsbyjs.com/docs/',
|
||||||
|
color: '#8954A8',
|
||||||
|
};
|
||||||
|
|
||||||
|
const badgeStyle = {
|
||||||
|
color: '#fff',
|
||||||
|
backgroundColor: '#088413',
|
||||||
|
border: '1px solid #088413',
|
||||||
|
fontSize: 11,
|
||||||
|
fontWeight: 'bold',
|
||||||
|
letterSpacing: 1,
|
||||||
|
borderRadius: 4,
|
||||||
|
padding: '4px 6px',
|
||||||
|
display: 'inline-block',
|
||||||
|
position: 'relative',
|
||||||
|
top: -2,
|
||||||
|
marginLeft: 10,
|
||||||
|
lineHeight: 1,
|
||||||
|
};
|
||||||
|
|
||||||
|
const links = [
|
||||||
|
{
|
||||||
|
text: 'Tutorial',
|
||||||
|
url: 'https://www.gatsbyjs.com/docs/tutorial/',
|
||||||
|
description:
|
||||||
|
"A great place to get started if you're new to web development. Designed to guide you through setting up your first Gatsby site.",
|
||||||
|
color: '#E95800',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'How to Guides',
|
||||||
|
url: 'https://www.gatsbyjs.com/docs/how-to/',
|
||||||
|
description:
|
||||||
|
"Practical step-by-step guides to help you achieve a specific goal. Most useful when you're trying to get something done.",
|
||||||
|
color: '#1099A8',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Reference Guides',
|
||||||
|
url: 'https://www.gatsbyjs.com/docs/reference/',
|
||||||
|
description:
|
||||||
|
"Nitty-gritty technical descriptions of how Gatsby works. Most useful when you need detailed information about Gatsby's APIs.",
|
||||||
|
color: '#BC027F',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Conceptual Guides',
|
||||||
|
url: 'https://www.gatsbyjs.com/docs/conceptual/',
|
||||||
|
description:
|
||||||
|
'Big-picture explanations of higher-level Gatsby concepts. Most useful for building understanding of a particular topic.',
|
||||||
|
color: '#0D96F2',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Plugin Library',
|
||||||
|
url: 'https://www.gatsbyjs.com/plugins',
|
||||||
|
description:
|
||||||
|
'Add functionality and customize your Gatsby site or app with thousands of plugins built by our amazing developer community.',
|
||||||
|
color: '#8EB814',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const IndexPage = () => {
|
||||||
return (
|
return (
|
||||||
<main>
|
<main style={pageStyles}>
|
||||||
<h1>Gatsby + API Route</h1>
|
<h1 style={headingStyles}>
|
||||||
<h2>
|
Congratulations
|
||||||
Deployed with{' '}
|
<br />
|
||||||
<a
|
<span style={headingAccentStyles}>
|
||||||
href="https://vercel.com/docs"
|
— you just made a Gatsby site! 🎉🎉🎉
|
||||||
target="_blank"
|
</span>
|
||||||
rel="noreferrer noopener"
|
</h1>
|
||||||
>
|
<p style={paragraphStyles}>
|
||||||
Vercel
|
Edit <code style={codeStyles}>src/pages/index.js</code> to see this page
|
||||||
</a>
|
update in real-time. 😎
|
||||||
!
|
|
||||||
</h2>
|
|
||||||
<p>
|
|
||||||
<a
|
|
||||||
href="https://github.com/vercel/vercel/tree/main/examples/gatsby"
|
|
||||||
target="_blank"
|
|
||||||
rel="noreferrer noopener"
|
|
||||||
>
|
|
||||||
This project
|
|
||||||
</a>{' '}
|
|
||||||
is a <a href="https://www.gatsbyjs.org/">Gatsby</a> app with two
|
|
||||||
directories, <code>/src</code> for static content and <code>/api</code>{' '}
|
|
||||||
which contains a serverless{' '}
|
|
||||||
<a href="https://nodejs.org/en/">Node.js</a> function. See{' '}
|
|
||||||
<a href="/api/date">
|
|
||||||
<code>api/date</code> for the Date API with Node.js
|
|
||||||
</a>
|
|
||||||
.
|
|
||||||
</p>
|
</p>
|
||||||
<br />
|
<ul style={listStyles}>
|
||||||
<h2>The date according to Node.js is:</h2>
|
<li style={docLinkStyle}>
|
||||||
<p>{date ? date : 'Loading date...'}</p>
|
<a
|
||||||
|
style={linkStyle}
|
||||||
|
href={`${docLink.url}?utm_source=starter&utm_medium=start-page&utm_campaign=minimal-starter`}
|
||||||
|
>
|
||||||
|
{docLink.text}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{links.map(link => (
|
||||||
|
<li key={link.url} style={{ ...listItemStyles, color: link.color }}>
|
||||||
|
<span>
|
||||||
|
<a
|
||||||
|
style={linkStyle}
|
||||||
|
href={`${link.url}?utm_source=starter&utm_medium=start-page&utm_campaign=minimal-starter`}
|
||||||
|
>
|
||||||
|
{link.text}
|
||||||
|
</a>
|
||||||
|
{link.badge && (
|
||||||
|
<span style={badgeStyle} aria-label="New Badge">
|
||||||
|
NEW!
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
|
<p style={descriptionStyle}>{link.description}</p>
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
|
<img
|
||||||
|
alt="Gatsby G Logo"
|
||||||
|
src="data:image/svg+xml,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a10 10 0 110 20 10 10 0 010-20zm0 2c-3.73 0-6.86 2.55-7.75 6L14 19.75c3.45-.89 6-4.02 6-7.75h-5.25v1.5h3.45a6.37 6.37 0 01-3.89 4.44L6.06 9.69C7 7.31 9.3 5.63 12 5.63c2.13 0 4 1.04 5.18 2.65l1.23-1.06A7.959 7.959 0 0012 4zm-8 8a8 8 0 008 8c.04 0 .09 0-8-8z' fill='%23639'/%3E%3C/svg%3E"
|
||||||
|
/>
|
||||||
</main>
|
</main>
|
||||||
);
|
);
|
||||||
}
|
};
|
||||||
|
|
||||||
export default Index;
|
export default IndexPage;
|
||||||
|
|
||||||
|
export const Head = () => <title>Home Page</title>;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -9,5 +9,8 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"gridsome": "0.7.23"
|
"gridsome": "0.7.23"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "<17"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2867,9 +2867,9 @@ decamelize@^1.1.2:
|
|||||||
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
||||||
|
|
||||||
decode-uri-component@^0.2.0:
|
decode-uri-component@^0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
|
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
|
||||||
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
|
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
|
||||||
|
|
||||||
decompress-response@^3.2.0, decompress-response@^3.3.0:
|
decompress-response@^3.2.0, decompress-response@^3.3.0:
|
||||||
version "3.3.0"
|
version "3.3.0"
|
||||||
|
|||||||
@@ -277,9 +277,9 @@ debug@~3.1.0:
|
|||||||
ms "2.0.0"
|
ms "2.0.0"
|
||||||
|
|
||||||
decode-uri-component@^0.2.0:
|
decode-uri-component@^0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
|
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
|
||||||
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
|
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
|
||||||
|
|
||||||
deepmerge@^4.2.2:
|
deepmerge@^4.2.2:
|
||||||
version "4.2.2"
|
version "4.2.2"
|
||||||
|
|||||||
@@ -3146,9 +3146,9 @@ decamelize@^1.2.0:
|
|||||||
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
||||||
|
|
||||||
decode-uri-component@^0.2.0:
|
decode-uri-component@^0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
|
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
|
||||||
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
|
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
|
||||||
|
|
||||||
dedent@^0.7.0:
|
dedent@^0.7.0:
|
||||||
version "0.7.0"
|
version "0.7.0"
|
||||||
|
|||||||
@@ -3769,9 +3769,9 @@ decamelize@^1.2.0:
|
|||||||
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
|
||||||
|
|
||||||
decode-uri-component@^0.2.0:
|
decode-uri-component@^0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
|
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
|
||||||
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
|
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
|
||||||
|
|
||||||
deep-equal@^1.0.1:
|
deep-equal@^1.0.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
|
|||||||
3
examples/nextjs/.eslintrc.json
Normal file
3
examples/nextjs/.eslintrc.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"extends": "next/core-web-vitals"
|
||||||
|
}
|
||||||
4
examples/nextjs/.gitignore
vendored
4
examples/nextjs/.gitignore
vendored
@@ -30,7 +30,3 @@ yarn-error.log*
|
|||||||
|
|
||||||
# vercel
|
# vercel
|
||||||
.vercel
|
.vercel
|
||||||
|
|
||||||
# typescript
|
|
||||||
*.tsbuildinfo
|
|
||||||
next-env.d.ts
|
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ First, run the development server:
|
|||||||
npm run dev
|
npm run dev
|
||||||
# or
|
# or
|
||||||
yarn dev
|
yarn dev
|
||||||
|
# or
|
||||||
|
pnpm dev
|
||||||
```
|
```
|
||||||
|
|
||||||
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
||||||
@@ -18,6 +20,8 @@ You can start editing the page by modifying `pages/index.js`. The page auto-upda
|
|||||||
|
|
||||||
The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
|
The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
|
||||||
|
|
||||||
|
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
|
||||||
|
|
||||||
## Learn More
|
## Learn More
|
||||||
|
|
||||||
To learn more about Next.js, take a look at the following resources:
|
To learn more about Next.js, take a look at the following resources:
|
||||||
|
|||||||
8
examples/nextjs/jsconfig.json
Normal file
8
examples/nextjs/jsconfig.json
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"baseUrl": ".",
|
||||||
|
"paths": {
|
||||||
|
"@/*": ["./*"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
5154
examples/nextjs/package-lock.json
generated
5154
examples/nextjs/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -9,7 +9,10 @@
|
|||||||
"lint": "next lint"
|
"lint": "next lint"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"next": "13.0.1",
|
"@next/font": "13.1.5",
|
||||||
|
"eslint": "8.32.0",
|
||||||
|
"eslint-config-next": "13.1.5",
|
||||||
|
"next": "13.1.5",
|
||||||
"react": "18.2.0",
|
"react": "18.2.0",
|
||||||
"react-dom": "18.2.0"
|
"react-dom": "18.2.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
import '../styles/globals.css'
|
import '@/styles/globals.css'
|
||||||
|
|
||||||
function MyApp({ Component, pageProps }) {
|
export default function App({ Component, pageProps }) {
|
||||||
return <Component {...pageProps} />
|
return <Component {...pageProps} />
|
||||||
}
|
}
|
||||||
|
|
||||||
export default MyApp
|
|
||||||
|
|||||||
13
examples/nextjs/pages/_document.js
Normal file
13
examples/nextjs/pages/_document.js
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import { Html, Head, Main, NextScript } from 'next/document'
|
||||||
|
|
||||||
|
export default function Document() {
|
||||||
|
return (
|
||||||
|
<Html lang="en">
|
||||||
|
<Head />
|
||||||
|
<body>
|
||||||
|
<Main />
|
||||||
|
<NextScript />
|
||||||
|
</body>
|
||||||
|
</Html>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -1,71 +1,123 @@
|
|||||||
import Head from 'next/head'
|
import Head from 'next/head'
|
||||||
import Image from 'next/image'
|
import Image from 'next/image'
|
||||||
import styles from '../styles/Home.module.css'
|
import { Inter } from '@next/font/google'
|
||||||
|
import styles from '@/styles/Home.module.css'
|
||||||
|
|
||||||
|
const inter = Inter({ subsets: ['latin'] })
|
||||||
|
|
||||||
export default function Home() {
|
export default function Home() {
|
||||||
return (
|
return (
|
||||||
<div className={styles.container}>
|
<>
|
||||||
<Head>
|
<Head>
|
||||||
<title>Create Next App</title>
|
<title>Create Next App</title>
|
||||||
<meta name="description" content="Generated by create next app" />
|
<meta name="description" content="Generated by create next app" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<link rel="icon" href="/favicon.ico" />
|
<link rel="icon" href="/favicon.ico" />
|
||||||
</Head>
|
</Head>
|
||||||
|
|
||||||
<main className={styles.main}>
|
<main className={styles.main}>
|
||||||
<h1 className={styles.title}>
|
<div className={styles.description}>
|
||||||
Welcome to <a href="https://nextjs.org">Next.js!</a>
|
<p>
|
||||||
</h1>
|
Get started by editing
|
||||||
|
<code className={styles.code}>pages/index.js</code>
|
||||||
|
</p>
|
||||||
|
<div>
|
||||||
|
<a
|
||||||
|
href="https://vercel.com?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
By{' '}
|
||||||
|
<Image
|
||||||
|
src="/vercel.svg"
|
||||||
|
alt="Vercel Logo"
|
||||||
|
className={styles.vercelLogo}
|
||||||
|
width={100}
|
||||||
|
height={24}
|
||||||
|
priority
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p className={styles.description}>
|
<div className={styles.center}>
|
||||||
Get started by editing{' '}
|
<Image
|
||||||
<code className={styles.code}>pages/index.js</code>
|
className={styles.logo}
|
||||||
</p>
|
src="/next.svg"
|
||||||
|
alt="Next.js Logo"
|
||||||
|
width={180}
|
||||||
|
height={37}
|
||||||
|
priority
|
||||||
|
/>
|
||||||
|
<div className={styles.thirteen}>
|
||||||
|
<Image
|
||||||
|
src="/thirteen.svg"
|
||||||
|
alt="13"
|
||||||
|
width={40}
|
||||||
|
height={31}
|
||||||
|
priority
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div className={styles.grid}>
|
<div className={styles.grid}>
|
||||||
<a href="https://nextjs.org/docs" className={styles.card}>
|
<a
|
||||||
<h2>Documentation →</h2>
|
href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
|
||||||
<p>Find in-depth information about Next.js features and API.</p>
|
className={styles.card}
|
||||||
</a>
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
<a href="https://nextjs.org/learn" className={styles.card}>
|
>
|
||||||
<h2>Learn →</h2>
|
<h2 className={inter.className}>
|
||||||
<p>Learn about Next.js in an interactive course with quizzes!</p>
|
Docs <span>-></span>
|
||||||
|
</h2>
|
||||||
|
<p className={inter.className}>
|
||||||
|
Find in-depth information about Next.js features and API.
|
||||||
|
</p>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a
|
<a
|
||||||
href="https://github.com/vercel/next.js/tree/canary/examples"
|
href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
|
||||||
className={styles.card}
|
className={styles.card}
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
>
|
>
|
||||||
<h2>Examples →</h2>
|
<h2 className={inter.className}>
|
||||||
<p>Discover and deploy boilerplate example Next.js projects.</p>
|
Learn <span>-></span>
|
||||||
|
</h2>
|
||||||
|
<p className={inter.className}>
|
||||||
|
Learn about Next.js in an interactive course with quizzes!
|
||||||
|
</p>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
|
||||||
|
className={styles.card}
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
<h2 className={inter.className}>
|
||||||
|
Templates <span>-></span>
|
||||||
|
</h2>
|
||||||
|
<p className={inter.className}>
|
||||||
|
Discover and deploy boilerplate example Next.js projects.
|
||||||
|
</p>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a
|
<a
|
||||||
href="https://vercel.com/new?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
|
href="https://vercel.com/new?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
|
||||||
|
className={styles.card}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
className={styles.card}
|
|
||||||
>
|
>
|
||||||
<h2>Deploy →</h2>
|
<h2 className={inter.className}>
|
||||||
<p>
|
Deploy <span>-></span>
|
||||||
Instantly deploy your Next.js site to a public URL with Vercel.
|
</h2>
|
||||||
|
<p className={inter.className}>
|
||||||
|
Instantly deploy your Next.js site to a shareable URL
|
||||||
|
with Vercel.
|
||||||
</p>
|
</p>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
</>
|
||||||
<footer className={styles.footer}>
|
|
||||||
<a
|
|
||||||
href="https://vercel.com?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>
|
|
||||||
Powered by{' '}
|
|
||||||
<span className={styles.logo}>
|
|
||||||
<Image src="/vercel.svg" alt="Vercel Logo" width={72} height={16} />
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
1
examples/nextjs/public/next.svg
Normal file
1
examples/nextjs/public/next.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
1
examples/nextjs/public/thirteen.svg
Normal file
1
examples/nextjs/public/thirteen.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="40" height="31" fill="none"><g opacity=".9"><path fill="url(#a)" d="M13 .4v29.3H7V6.3h-.2L0 10.5V5L7.2.4H13Z"/><path fill="url(#b)" d="M28.8 30.1c-2.2 0-4-.3-5.7-1-1.7-.8-3-1.8-4-3.1a7.7 7.7 0 0 1-1.4-4.6h6.2c0 .8.3 1.4.7 2 .4.5 1 .9 1.7 1.2.7.3 1.6.4 2.5.4 1 0 1.7-.2 2.5-.5.7-.3 1.3-.8 1.7-1.4.4-.6.6-1.2.6-2s-.2-1.5-.7-2.1c-.4-.6-1-1-1.8-1.4-.8-.4-1.8-.5-2.9-.5h-2.7v-4.6h2.7a6 6 0 0 0 2.5-.5 4 4 0 0 0 1.7-1.3c.4-.6.6-1.3.6-2a3.5 3.5 0 0 0-2-3.3 5.6 5.6 0 0 0-4.5 0 4 4 0 0 0-1.7 1.2c-.4.6-.6 1.2-.6 2h-6c0-1.7.6-3.2 1.5-4.5 1-1.3 2.2-2.3 3.8-3C25 .4 26.8 0 28.8 0s3.8.4 5.3 1.1c1.5.7 2.7 1.7 3.6 3a7.2 7.2 0 0 1 1.2 4.2c0 1.6-.5 3-1.5 4a7 7 0 0 1-4 2.2v.2c2.2.3 3.8 1 5 2.2a6.4 6.4 0 0 1 1.6 4.6c0 1.7-.5 3.1-1.4 4.4a9.7 9.7 0 0 1-4 3.1c-1.7.8-3.7 1.1-5.8 1.1Z"/></g><defs><linearGradient id="a" x1="20" x2="20" y1="0" y2="30.1" gradientUnits="userSpaceOnUse"><stop/><stop offset="1" stop-color="#3D3D3D"/></linearGradient><linearGradient id="b" x1="20" x2="20" y1="0" y2="30.1" gradientUnits="userSpaceOnUse"><stop/><stop offset="1" stop-color="#3D3D3D"/></linearGradient></defs></svg>
|
||||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -1,4 +1 @@
|
|||||||
<svg width="283" height="64" viewBox="0 0 283 64" fill="none"
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 283 64"><path fill="black" d="M141 16c-11 0-19 7-19 18s9 18 20 18c7 0 13-3 16-7l-7-5c-2 3-6 4-9 4-5 0-9-3-10-7h28v-3c0-11-8-18-19-18zm-9 15c1-4 4-7 9-7s8 3 9 7h-18zm117-15c-11 0-19 7-19 18s9 18 20 18c6 0 12-3 16-7l-8-5c-2 3-5 4-8 4-5 0-9-3-11-7h28l1-3c0-11-8-18-19-18zm-10 15c2-4 5-7 10-7s8 3 9 7h-19zm-39 3c0 6 4 10 10 10 4 0 7-2 9-5l8 5c-3 5-9 8-17 8-11 0-19-7-19-18s8-18 19-18c8 0 14 3 17 8l-8 5c-2-3-5-5-9-5-6 0-10 4-10 10zm83-29v46h-9V5h9zM37 0l37 64H0L37 0zm92 5-27 48L74 5h10l18 30 17-30h10zm59 12v10l-3-1c-6 0-10 4-10 10v15h-9V17h9v9c0-5 6-9 13-9z"/></svg>
|
||||||
xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M141.04 16c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zM248.72 16c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.45 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zM200.24 34c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10zm82.48-29v46h-9V5h9zM36.95 0L73.9 64H0L36.95 0zm92.38 5l-27.71 48L73.91 5H84.3l17.32 30 17.32-30h10.39zm58.91 12v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10V51h-9V17h9v9.2c0-5.08 5.91-9.2 13.2-9.2z" fill="#000"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 629 B |
@@ -1,129 +1,278 @@
|
|||||||
.container {
|
|
||||||
padding: 0 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.main {
|
.main {
|
||||||
min-height: 100vh;
|
|
||||||
padding: 4rem 0;
|
|
||||||
flex: 1;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
padding: 6rem;
|
||||||
|
min-height: 100vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer {
|
.description {
|
||||||
display: flex;
|
display: inherit;
|
||||||
flex: 1;
|
justify-content: inherit;
|
||||||
padding: 2rem 0;
|
align-items: inherit;
|
||||||
border-top: 1px solid #eaeaea;
|
font-size: 0.85rem;
|
||||||
justify-content: center;
|
max-width: var(--max-width);
|
||||||
align-items: center;
|
width: 100%;
|
||||||
|
z-index: 2;
|
||||||
|
font-family: var(--font-mono);
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer a {
|
.description a {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex-grow: 1;
|
gap: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title a {
|
.description p {
|
||||||
color: #0070f3;
|
position: relative;
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.title a:hover,
|
|
||||||
.title a:focus,
|
|
||||||
.title a:active {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
.title {
|
|
||||||
margin: 0;
|
margin: 0;
|
||||||
line-height: 1.15;
|
padding: 1rem;
|
||||||
font-size: 4rem;
|
background-color: rgba(var(--callout-rgb), 0.5);
|
||||||
}
|
border: 1px solid rgba(var(--callout-border-rgb), 0.3);
|
||||||
|
border-radius: var(--border-radius);
|
||||||
.title,
|
|
||||||
.description {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.description {
|
|
||||||
margin: 4rem 0;
|
|
||||||
line-height: 1.5;
|
|
||||||
font-size: 1.5rem;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.code {
|
.code {
|
||||||
background: #fafafa;
|
font-weight: 700;
|
||||||
border-radius: 5px;
|
font-family: var(--font-mono);
|
||||||
padding: 0.75rem;
|
|
||||||
font-size: 1.1rem;
|
|
||||||
font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono,
|
|
||||||
Bitstream Vera Sans Mono, Courier New, monospace;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.grid {
|
.grid {
|
||||||
display: flex;
|
display: grid;
|
||||||
align-items: center;
|
grid-template-columns: repeat(4, minmax(25%, auto));
|
||||||
justify-content: center;
|
width: var(--max-width);
|
||||||
flex-wrap: wrap;
|
max-width: 100%;
|
||||||
max-width: 800px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.card {
|
.card {
|
||||||
margin: 1rem;
|
padding: 1rem 1.2rem;
|
||||||
padding: 1.5rem;
|
border-radius: var(--border-radius);
|
||||||
text-align: left;
|
background: rgba(var(--card-rgb), 0);
|
||||||
color: inherit;
|
border: 1px solid rgba(var(--card-border-rgb), 0);
|
||||||
text-decoration: none;
|
transition: background 200ms, border 200ms;
|
||||||
border: 1px solid #eaeaea;
|
|
||||||
border-radius: 10px;
|
|
||||||
transition: color 0.15s ease, border-color 0.15s ease;
|
|
||||||
max-width: 300px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.card:hover,
|
.card span {
|
||||||
.card:focus,
|
display: inline-block;
|
||||||
.card:active {
|
transition: transform 200ms;
|
||||||
color: #0070f3;
|
|
||||||
border-color: #0070f3;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.card h2 {
|
.card h2 {
|
||||||
margin: 0 0 1rem 0;
|
font-weight: 600;
|
||||||
font-size: 1.5rem;
|
margin-bottom: 0.7rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card p {
|
.card p {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 1.25rem;
|
opacity: 0.6;
|
||||||
|
font-size: 0.9rem;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
|
max-width: 30ch;
|
||||||
}
|
}
|
||||||
|
|
||||||
.logo {
|
.center {
|
||||||
height: 1em;
|
display: flex;
|
||||||
margin-left: 0.5rem;
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
position: relative;
|
||||||
|
padding: 4rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 600px) {
|
.center::before {
|
||||||
|
background: var(--secondary-glow);
|
||||||
|
border-radius: 50%;
|
||||||
|
width: 480px;
|
||||||
|
height: 360px;
|
||||||
|
margin-left: -400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.center::after {
|
||||||
|
background: var(--primary-glow);
|
||||||
|
width: 240px;
|
||||||
|
height: 180px;
|
||||||
|
z-index: -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.center::before,
|
||||||
|
.center::after {
|
||||||
|
content: '';
|
||||||
|
left: 50%;
|
||||||
|
position: absolute;
|
||||||
|
filter: blur(45px);
|
||||||
|
transform: translateZ(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo,
|
||||||
|
.thirteen {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thirteen {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 75px;
|
||||||
|
height: 75px;
|
||||||
|
padding: 25px 10px;
|
||||||
|
margin-left: 16px;
|
||||||
|
transform: translateZ(0);
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
overflow: hidden;
|
||||||
|
box-shadow: 0px 2px 8px -1px #0000001a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thirteen::before,
|
||||||
|
.thirteen::after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
z-index: -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Conic Gradient Animation */
|
||||||
|
.thirteen::before {
|
||||||
|
animation: 6s rotate linear infinite;
|
||||||
|
width: 200%;
|
||||||
|
height: 200%;
|
||||||
|
background: var(--tile-border);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inner Square */
|
||||||
|
.thirteen::after {
|
||||||
|
inset: 0;
|
||||||
|
padding: 1px;
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
background: linear-gradient(
|
||||||
|
to bottom right,
|
||||||
|
rgba(var(--tile-start-rgb), 1),
|
||||||
|
rgba(var(--tile-end-rgb), 1)
|
||||||
|
);
|
||||||
|
background-clip: content-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Enable hover only on non-touch devices */
|
||||||
|
@media (hover: hover) and (pointer: fine) {
|
||||||
|
.card:hover {
|
||||||
|
background: rgba(var(--card-rgb), 0.1);
|
||||||
|
border: 1px solid rgba(var(--card-border-rgb), 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.card:hover span {
|
||||||
|
transform: translateX(4px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-reduced-motion) {
|
||||||
|
.thirteen::before {
|
||||||
|
animation: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card:hover span {
|
||||||
|
transform: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mobile */
|
||||||
|
@media (max-width: 700px) {
|
||||||
|
.content {
|
||||||
|
padding: 4rem;
|
||||||
|
}
|
||||||
|
|
||||||
.grid {
|
.grid {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
margin-bottom: 120px;
|
||||||
|
max-width: 320px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card {
|
||||||
|
padding: 1rem 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card h2 {
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.center {
|
||||||
|
padding: 8rem 0 6rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.center::before {
|
||||||
|
transform: none;
|
||||||
|
height: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.description {
|
||||||
|
font-size: 0.8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.description a {
|
||||||
|
padding: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.description p,
|
||||||
|
.description div {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
position: fixed;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
flex-direction: column;
|
}
|
||||||
|
|
||||||
|
.description p {
|
||||||
|
align-items: center;
|
||||||
|
inset: 0 0 auto;
|
||||||
|
padding: 2rem 1rem 1.4rem;
|
||||||
|
border-radius: 0;
|
||||||
|
border: none;
|
||||||
|
border-bottom: 1px solid rgba(var(--callout-border-rgb), 0.25);
|
||||||
|
background: linear-gradient(
|
||||||
|
to bottom,
|
||||||
|
rgba(var(--background-start-rgb), 1),
|
||||||
|
rgba(var(--callout-rgb), 0.5)
|
||||||
|
);
|
||||||
|
background-clip: padding-box;
|
||||||
|
backdrop-filter: blur(24px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.description div {
|
||||||
|
align-items: flex-end;
|
||||||
|
pointer-events: none;
|
||||||
|
inset: auto 0 0;
|
||||||
|
padding: 2rem;
|
||||||
|
height: 200px;
|
||||||
|
background: linear-gradient(
|
||||||
|
to bottom,
|
||||||
|
transparent 0%,
|
||||||
|
rgb(var(--background-end-rgb)) 40%
|
||||||
|
);
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tablet and Smaller Desktop */
|
||||||
|
@media (min-width: 701px) and (max-width: 1120px) {
|
||||||
|
.grid {
|
||||||
|
grid-template-columns: repeat(2, 50%);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
.card,
|
.vercelLogo {
|
||||||
.footer {
|
|
||||||
border-color: #222;
|
|
||||||
}
|
|
||||||
.code {
|
|
||||||
background: #111;
|
|
||||||
}
|
|
||||||
.logo img {
|
|
||||||
filter: invert(1);
|
filter: invert(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.logo,
|
||||||
|
.thirteen img {
|
||||||
|
filter: invert(1) drop-shadow(0 0 0.3rem #ffffff70);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes rotate {
|
||||||
|
from {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,98 @@
|
|||||||
html,
|
:root {
|
||||||
body {
|
--max-width: 1100px;
|
||||||
|
--border-radius: 12px;
|
||||||
|
--font-mono: ui-monospace, Menlo, Monaco, 'Cascadia Mono', 'Segoe UI Mono',
|
||||||
|
'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro',
|
||||||
|
'Fira Mono', 'Droid Sans Mono', 'Courier New', monospace;
|
||||||
|
|
||||||
|
--foreground-rgb: 0, 0, 0;
|
||||||
|
--background-start-rgb: 214, 219, 220;
|
||||||
|
--background-end-rgb: 255, 255, 255;
|
||||||
|
|
||||||
|
--primary-glow: conic-gradient(
|
||||||
|
from 180deg at 50% 50%,
|
||||||
|
#16abff33 0deg,
|
||||||
|
#0885ff33 55deg,
|
||||||
|
#54d6ff33 120deg,
|
||||||
|
#0071ff33 160deg,
|
||||||
|
transparent 360deg
|
||||||
|
);
|
||||||
|
--secondary-glow: radial-gradient(
|
||||||
|
rgba(255, 255, 255, 1),
|
||||||
|
rgba(255, 255, 255, 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
--tile-start-rgb: 239, 245, 249;
|
||||||
|
--tile-end-rgb: 228, 232, 233;
|
||||||
|
--tile-border: conic-gradient(
|
||||||
|
#00000080,
|
||||||
|
#00000040,
|
||||||
|
#00000030,
|
||||||
|
#00000020,
|
||||||
|
#00000010,
|
||||||
|
#00000010,
|
||||||
|
#00000080
|
||||||
|
);
|
||||||
|
|
||||||
|
--callout-rgb: 238, 240, 241;
|
||||||
|
--callout-border-rgb: 172, 175, 176;
|
||||||
|
--card-rgb: 180, 185, 188;
|
||||||
|
--card-border-rgb: 131, 134, 135;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
--foreground-rgb: 255, 255, 255;
|
||||||
|
--background-start-rgb: 0, 0, 0;
|
||||||
|
--background-end-rgb: 0, 0, 0;
|
||||||
|
|
||||||
|
--primary-glow: radial-gradient(rgba(1, 65, 255, 0.4), rgba(1, 65, 255, 0));
|
||||||
|
--secondary-glow: linear-gradient(
|
||||||
|
to bottom right,
|
||||||
|
rgba(1, 65, 255, 0),
|
||||||
|
rgba(1, 65, 255, 0),
|
||||||
|
rgba(1, 65, 255, 0.3)
|
||||||
|
);
|
||||||
|
|
||||||
|
--tile-start-rgb: 2, 13, 46;
|
||||||
|
--tile-end-rgb: 2, 5, 19;
|
||||||
|
--tile-border: conic-gradient(
|
||||||
|
#ffffff80,
|
||||||
|
#ffffff40,
|
||||||
|
#ffffff30,
|
||||||
|
#ffffff20,
|
||||||
|
#ffffff10,
|
||||||
|
#ffffff10,
|
||||||
|
#ffffff80
|
||||||
|
);
|
||||||
|
|
||||||
|
--callout-rgb: 20, 20, 20;
|
||||||
|
--callout-border-rgb: 108, 108, 108;
|
||||||
|
--card-rgb: 100, 100, 100;
|
||||||
|
--card-border-rgb: 200, 200, 200;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
|
}
|
||||||
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
|
|
||||||
|
html,
|
||||||
|
body {
|
||||||
|
max-width: 100vw;
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
color: rgb(var(--foreground-rgb));
|
||||||
|
background: linear-gradient(
|
||||||
|
to bottom,
|
||||||
|
transparent,
|
||||||
|
rgb(var(--background-end-rgb))
|
||||||
|
)
|
||||||
|
rgb(var(--background-start-rgb));
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
@@ -11,16 +100,8 @@ a {
|
|||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
* {
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
html {
|
html {
|
||||||
color-scheme: dark;
|
color-scheme: dark;
|
||||||
}
|
}
|
||||||
body {
|
|
||||||
color: white;
|
|
||||||
background: black;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
1
examples/nuxtjs/.gitignore
vendored
1
examples/nuxtjs/.gitignore
vendored
@@ -68,6 +68,7 @@ typings/
|
|||||||
|
|
||||||
# nuxt.js build output
|
# nuxt.js build output
|
||||||
.nuxt
|
.nuxt
|
||||||
|
.output
|
||||||
|
|
||||||
# Nuxt generate
|
# Nuxt generate
|
||||||
dist
|
dist
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
README.md
|
|
||||||
.nuxt
|
|
||||||
node_modules
|
|
||||||
*.log
|
|
||||||
.output
|
|
||||||
@@ -1,34 +1,48 @@
|
|||||||
# Nuxt.js Example
|
# Nuxt Example
|
||||||
|
|
||||||
Deploy your [Nuxt.js](https://nuxtjs.org) project to Vercel with zero configuration.
|
Deploy your [Nuxt](https://nuxt.com) project to Vercel with zero configuration.
|
||||||
|
|
||||||
[](https://vercel.com/new/clone?repository-url=https://github.com/vercel/vercel/tree/main/examples/nuxtjs&template=nuxtjs)
|
[](https://vercel.com/new/clone?repository-url=https://github.com/vercel/vercel/tree/main/examples/nuxtjs&template=nuxtjs)
|
||||||
|
|
||||||
_Live Example: https://nuxtjs-template.vercel.app_
|
_Live Example: https://nuxtjs-template.vercel.app_
|
||||||
|
|
||||||
|
Look at the [Nuxt 3 documentation](https://v3.nuxtjs.org) to learn more.
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
Install the dependencies:
|
Make sure to install the dependencies:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
yarn install
|
# yarn
|
||||||
|
yarn
|
||||||
|
|
||||||
|
# npm
|
||||||
|
npm install
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm install --shamefully-hoist
|
||||||
```
|
```
|
||||||
|
|
||||||
## Development
|
## Development Server
|
||||||
|
|
||||||
Start the development server on http://localhost:3000:
|
Start the development server on http://localhost:3000
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
yarn dev
|
npm run dev
|
||||||
```
|
```
|
||||||
|
|
||||||
## Deploy Your Own
|
## Production
|
||||||
|
|
||||||
Build the application for production:
|
Build the application for production:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
yarn build
|
npm run build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Locally preview production build:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run preview
|
||||||
|
```
|
||||||
|
|
||||||
|
Checkout the [deployment documentation](https://v3.nuxtjs.org/guide/deploy/presets) for more information.
|
||||||
|
|||||||
@@ -2,4 +2,4 @@
|
|||||||
<div>
|
<div>
|
||||||
<NuxtWelcome />
|
<NuxtWelcome />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
import { defineNuxtConfig } from 'nuxt3'
|
export default {
|
||||||
|
nitro: {
|
||||||
// https://v3.nuxtjs.org/docs/directory-structure/nuxt.config
|
preset: 'vercel-edge',
|
||||||
export default defineNuxtConfig({
|
},
|
||||||
|
};
|
||||||
})
|
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
{
|
{
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "nuxi dev",
|
"build": "nuxt build",
|
||||||
"build": "nuxi build",
|
"dev": "nuxt dev",
|
||||||
"start": "node .output/server/index.mjs"
|
"generate": "nuxt generate",
|
||||||
|
"preview": "nuxt preview",
|
||||||
|
"postinstall": "nuxt prepare"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"nuxt3": "latest"
|
"nuxt": "^3.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,6 +7,6 @@
|
|||||||
"build": "parcel build"
|
"build": "parcel build"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"parcel": "^2.0.0"
|
"parcel": "^2.8.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user