Compare commits
72 Commits
react-18-r
...
canary
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fa6e96731a | ||
|
|
f59dfda878 | ||
|
|
e15c62a8d8 | ||
|
|
f97c123ddb | ||
|
|
7fd287f004 | ||
|
|
f0bbdf561d | ||
|
|
a9c6bcc63f | ||
|
|
e1fc695d24 | ||
|
|
525e436b9d | ||
|
|
a98f972bef | ||
|
|
1c2fdfee37 | ||
|
|
8102086400 | ||
|
|
0366729a95 | ||
|
|
352d2af366 | ||
|
|
9b8c4039f0 | ||
|
|
262b647855 | ||
|
|
03017046f7 | ||
|
|
28d2671ddb | ||
|
|
86da1612da | ||
|
|
919465c9b6 | ||
|
|
b84ed74496 | ||
|
|
dc86c78bd1 | ||
|
|
45b38cc836 | ||
|
|
186532ef2d | ||
|
|
77858c5558 | ||
|
|
e9a98ffe3d | ||
|
|
2c06dd6f18 | ||
|
|
881d686233 | ||
|
|
a7deaafbc7 | ||
|
|
7c698f0b35 | ||
|
|
09a8c94392 | ||
|
|
35b9ded76e | ||
|
|
85c10b9d3f | ||
|
|
2675942c58 | ||
|
|
b3ad310f6f | ||
|
|
d41385b592 | ||
|
|
dfbab3919d | ||
|
|
e5c607164e | ||
|
|
49d1e91a64 | ||
|
|
19ea640705 | ||
|
|
f2d814813f | ||
|
|
f99ebf5f37 | ||
|
|
ef2c0cdd67 | ||
|
|
d658af7407 | ||
|
|
0f8f15f31c | ||
|
|
600467035a | ||
|
|
d25aee1313 | ||
|
|
0cc2a3aab7 | ||
|
|
75e6b9fb74 | ||
|
|
6e8a65fa7f | ||
|
|
01dce6b09a | ||
|
|
ceeed729c6 | ||
|
|
7f35af5bd2 | ||
|
|
c603195004 | ||
|
|
bac35e06c8 | ||
|
|
7add9cad87 | ||
|
|
16dae9b081 | ||
|
|
9f52f36c18 | ||
|
|
621d87fdb7 | ||
|
|
871e709076 | ||
|
|
1e3ae5d445 | ||
|
|
a344c1f89e | ||
|
|
ee742530d9 | ||
|
|
f102f4c873 | ||
|
|
eebeeee6b7 | ||
|
|
18842fd56f | ||
|
|
ea1e75b355 | ||
|
|
34ed51a0db | ||
|
|
4ce4bb92bb | ||
|
|
75ed86eafb | ||
|
|
a4bcfb4737 | ||
|
|
bfd3be403e |
@@ -309,7 +309,8 @@
|
||||
"profile": "https://github.com/Zeko369",
|
||||
"contributions": [
|
||||
"code",
|
||||
"doc"
|
||||
"doc",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -625,7 +626,8 @@
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/17050715?v=4",
|
||||
"profile": "https://cloudnweb.dev/",
|
||||
"contributions": [
|
||||
"code"
|
||||
"code",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -970,7 +972,9 @@
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/3496193?v=4",
|
||||
"profile": "https://twitter.com/dillonraphael",
|
||||
"contributions": [
|
||||
"code"
|
||||
"code",
|
||||
"test",
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -3066,7 +3070,8 @@
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/8077469?v=4",
|
||||
"profile": "https://andreas.fyi",
|
||||
"contributions": [
|
||||
"code"
|
||||
"code",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -3590,6 +3595,256 @@
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "dineshgadge",
|
||||
"name": "Dinesh Gadge",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/186976?v=4",
|
||||
"profile": "https://github.com/dineshgadge",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "maltekiessling",
|
||||
"name": "Malte Kießling",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/30420110?v=4",
|
||||
"profile": "https://github.com/maltekiessling",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "ospfranco",
|
||||
"name": "Oscar Franco",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1634213?v=4",
|
||||
"profile": "ospfranco.com",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Nfinished",
|
||||
"name": "Adam Trager",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1719791?v=4",
|
||||
"profile": "adamtrager.com",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "shellord",
|
||||
"name": "saheenshoukath",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/2632896?v=4",
|
||||
"profile": "https://saheen.codes",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "husnuljahneer",
|
||||
"name": "Husnul Jahneer",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/54552763?v=4",
|
||||
"profile": "https://jahneer.me",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "ReykCS",
|
||||
"name": "Reyk",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/40463716?v=4",
|
||||
"profile": "https://github.com/ReykCS",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Lokprakash-babu",
|
||||
"name": "Lokprakash Babu",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/60031382?v=4",
|
||||
"profile": "https://github.com/Lokprakash-babu",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "eai04191",
|
||||
"name": "eai04191",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/3516343?v=4",
|
||||
"profile": "https://mizle.net",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "numanaral",
|
||||
"name": "Numan",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/25233323?v=4",
|
||||
"profile": "https://numanaral.github.io/?ref=github",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "jscyo",
|
||||
"name": "Joel Coutinho",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/6310783?v=4",
|
||||
"profile": "https://github.com/jscyo",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "davidbarker",
|
||||
"name": "David Barker",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1597139?v=4",
|
||||
"profile": "https://github.com/davidbarker",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "timfee",
|
||||
"name": "Tim Feeley",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/3246342?v=4",
|
||||
"profile": "http://www.timfeeley.com/",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Caslus",
|
||||
"name": "lucas philippe",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/22855640?v=4",
|
||||
"profile": "https://github.com/Caslus",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "the-bayer",
|
||||
"name": "Blake Bayer",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/94391693?v=4",
|
||||
"profile": "https://github.com/the-bayer",
|
||||
"contributions": [
|
||||
"code",
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "rmassie",
|
||||
"name": "R Massie",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/7375518?v=4",
|
||||
"profile": "https://github.com/rmassie",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "paulm17",
|
||||
"name": "Paul",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/387463?v=4",
|
||||
"profile": "https://github.com/paulm17",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "minho42",
|
||||
"name": "Min ho Kim",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/15278512?v=4",
|
||||
"profile": "https://minho42.com",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "webdeb",
|
||||
"name": "webdeb",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/14992140?v=4",
|
||||
"profile": "https://github.com/webdeb",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "iDavidB",
|
||||
"name": "David",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/32268383?v=4",
|
||||
"profile": "https://github.com/iDavidB",
|
||||
"contributions": [
|
||||
"doc",
|
||||
"code",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "jakedee",
|
||||
"name": "Jake Dowie",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/5058625?v=4",
|
||||
"profile": "https://jdlt.co.uk",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "datner",
|
||||
"name": "Datner",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/22598347?v=4",
|
||||
"profile": "https://github.com/datner",
|
||||
"contributions": [
|
||||
"doc",
|
||||
"code",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "remlse",
|
||||
"name": "remlse",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/54984957?v=4",
|
||||
"profile": "https://github.com/remlse",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "sergous",
|
||||
"name": "Sergei Smirnov",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/545151?v=4",
|
||||
"profile": "https://github.com/sergous",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Trancever",
|
||||
"name": "Dawid Urbaniak",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/18584155?v=4",
|
||||
"profile": "https://twitter.com/trensik",
|
||||
"contributions": [
|
||||
"doc",
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "SerekKiri",
|
||||
"name": "Kacper Potyrała",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/29735836?v=4",
|
||||
"profile": "kiri.dev",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "iojcde",
|
||||
"name": "Jeeho Ahn",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/31413538?v=4",
|
||||
"profile": "jcde.xyz",
|
||||
"contributions": [
|
||||
"doc",
|
||||
"tool"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contributorsPerLine": 7,
|
||||
|
||||
4
.github/CODEOWNERS
vendored
4
.github/CODEOWNERS
vendored
@@ -1,8 +1,8 @@
|
||||
# https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners
|
||||
|
||||
* @flybayer @beerose
|
||||
* @beerose
|
||||
|
||||
# packages/cli/**/* @aem, @flybayer
|
||||
# packages/generator/**/* @aem @flybayer
|
||||
packages/generator/templates**/* @flybayer
|
||||
# packages/generator/templates**/* @flybayer
|
||||
# packages/installer/**/* @aem @flybayer
|
||||
|
||||
88
README.md
88
README.md
@@ -6,7 +6,7 @@
|
||||
<img alt="" src="https://img.shields.io/badge/Join%20our%20community-6700EB.svg?style=for-the-badge&labelColor=000000&logoWidth=20&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAQ9SURBVHgB7d3dVdtAEIbhcSpICUoH0IEogQqSVBBSAU4FSSpIOoAORAfQgSghHXzZ1U/YcMD4R9rZmf2ec3y448LyiNf27iLiGIAmPLrweC9Un3DhrzG6EarLNP09nlwJ1SOZ/lQr5N80/S/p2QMVCBf5N17XCfm1Y/rBHqjAG9PPHvBsz+mf9WAP+HLA9M/YA14cOP2payH7jpj+VCtk1wnTP+vj7xCy6cTpn7EHLMLp059iD1iD8eveJbVCNsSLheX1YA/YgOWnf8YeKB3Wmf7Ud6Fy4f/FHmtpxbl3YlC4MJ/Cj0bWdwPnPbARg+L0S54XQHS32WwuxClzd4CM0z9rPfeAuTtA5ulPXYQ7wZ04Y+oOoDD9KZc9YOoOoDj9s4dwFzgXR6w1wIPoOvPWA9buAHEJ173o3gWiy3AnuBUHLEbgmYwvAk1/wuM8vAgexThzbwPDkx7/DHwVXfFOxP2GmsKd4Ab6zPeAyU8CI7AHFmH2BRCBPXAyk18GzUrqAXCTiR4ssyj0VFw/oCU8+e+RZ33AWz6KMaYbIIWxB+JSLs1bsbkeMN0AqakHvoku9oA2sAfqBvbAQdw0QArsgb25aYBUQT3QgT2gB+yBuqGcHij2UCqXDZACe2Anlw2QYg/QAOyBuoE98CL3DZDCuK4/rh/Q7oGL6U+TOvcNkJoijN8X1C48+T+g75eQDrAH/qmqAVJgDwyqaoAUe4AGYA/UDZX3QLUNkEIZPRCd5+6BahsgVUgPROwBTSijB7jpVAvGHriHvmw9wAZ4BpX1ABvgmakHtPcbRuwBTWAPULgAV9D/jKDY9YRvwvgEaurD44uQHvAol7qBW7WKluVtIHiUS7GyvA0s6CiXDnxrpQfsgbqBS7GKk/2jYHCrVlGyfxTMrVo0ALdq1Q3sgSKofh0M9oA61a+D2QM0AHugbmAPqClmSRjK2apVVQ8UsySsoK1aHdgDesCtWnUDeyCrIpeFg1u3sylyWTi3btMA7IG6gT2wuuK3hoE9sKrit4YVslWLPaAN7IG6ocKt2zmY2h4O9sDiTG0PZw/QANy6XTewBxZj9ogYVHy025LMHhEz9cBn0We6B0yfERReBLfhx0/R1YQHPx/QBPbA0VwcEwf2wNFcHBPHHjiem3MC2QPHcXdSaJjA+KfgTPQ8hhfjBzHC40mhlzJ+Xq9lK4a4PCs43AVaGTed5mZq+iOXZwWHi3AnOj2wFWNcnxYe7gTxLtBKHuamP/J+Wnh8a5irB7ZC5Yk9gPX1QuXC+usHWqGyhYvUYR0a7zboUOFCNVhnk0krZAOW7wFOvzXhom2xnEbIHizTA1wEYhWW6YFGyC6c1gOcfg9wfA80Qj7g8B7g9HuCww+haIR8wf49wOn3Cvv9k8tGyC/s7gFOv3fY3QONkH+v9MBWqB7PeqDn9FcIT//kcitUn6kHOu/T/xfWzlQy3dEHhwAAAABJRU5ErkJggg==">
|
||||
</a>
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
||||
<a aria-label="All Contributors" href="#contributors-"><img alt="" src="https://img.shields.io/badge/all_contributors-381-17BB8A.svg?style=for-the-badge&labelColor=000000"></a>
|
||||
<a aria-label="All Contributors" href="#contributors-"><img alt="" src="https://img.shields.io/badge/all_contributors-408-17BB8A.svg?style=for-the-badge&labelColor=000000"></a>
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
||||
<a aria-label="License" href="https://github.com/blitz-js/blitz/blob/canary/LICENSE">
|
||||
<img alt="" src="https://img.shields.io/npm/l/blitz.svg?style=for-the-badge&labelColor=000000&color=blue">
|
||||
@@ -107,18 +107,21 @@ Your financial contributions help ensure Blitz continues to be developed and mai
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td><a aria-label="Andreas Asprou" href="https://andreas.fyi">
|
||||
<img alt="" src="https://raw.githubusercontent.com/blitz-js/blitz/canary/assets/andreas.jpg" width="40px"/>
|
||||
</a></td>
|
||||
<td><a aria-label="Digas" href="https://digsas.com">
|
||||
<img alt="" src="https://raw.githubusercontent.com/blitz-js/blitz/canary/assets/digsas.svg" width="40px"/>
|
||||
</a></td>
|
||||
<td><a aria-label="userTrack" href="https://www.usertrack.net/?ref=blitzjs">
|
||||
<img alt="" src="https://raw.githubusercontent.com/blitz-js/blitz/canary/assets/usertrack.png" width="40px"/>
|
||||
</a></td>
|
||||
<td><a aria-label="MeetKai" href="https://meetkai.com/?ref=blitzjs">
|
||||
<img alt="" src="https://raw.githubusercontent.com/blitz-js/blitz/canary/assets/meetkai.png" width="40px"/>
|
||||
</a></td>
|
||||
<td>
|
||||
<a aria-label="Andreas Asprou" href="https://andreas.fyi">
|
||||
<img alt="" src="https://raw.githubusercontent.com/blitz-js/blitz/canary/assets/andreas.jpg" width="40px"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a aria-label="MeetKai" href="https://meetkai.com/?ref=blitzjs">
|
||||
<img alt="" src="https://raw.githubusercontent.com/blitz-js/blitz/canary/assets/meetkai.png" width="40px"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a aria-label="JDLT" href="https://jdlt.co.uk/?ref=blitzjs">
|
||||
<img alt="" src="https://raw.githubusercontent.com/blitz-js/blitz/canary/assets/jdlt.png" width="40px"/>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -234,6 +237,22 @@ _Issue triage, pull request triage, community encouragement and moderation, etc_
|
||||
</sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://www.saheen.me/">
|
||||
<img src="https://avatars.githubusercontent.com/shellord" width="100px;" alt="Saheen Shoukath avatar" /><br />
|
||||
<sub>
|
||||
<b>Saheen Shoukath</b>
|
||||
</sub>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://jahneer.me">
|
||||
<img src="https://avatars.githubusercontent.com/husnuljahneer" width="100px;" alt="Husnul Jahneer avatar" /><br />
|
||||
<sub>
|
||||
<b>Husnul Jahneer</b>
|
||||
</sub>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!-- markdownlint-enable -->
|
||||
@@ -288,7 +307,7 @@ Thanks to these wonderful people ([emoji key](https://allcontributors.org/docs/e
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/sonnypgs"><img src="https://avatars3.githubusercontent.com/u/1431300?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sonny</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sonnypgs" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/Zeko369"><img src="https://avatars3.githubusercontent.com/u/3064377?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Fran Zekan</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Zeko369" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=Zeko369" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/Zeko369"><img src="https://avatars3.githubusercontent.com/u/3064377?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Fran Zekan</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Zeko369" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=Zeko369" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=Zeko369" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="http://twitter.com/JanBaykara"><img src="https://avatars2.githubusercontent.com/u/237556?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jan Baykara</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=janbaykara" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://mikeattara.com"><img src="https://avatars1.githubusercontent.com/u/31483629?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mike Perry Y Attara</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=mikeattara" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://devanthe.dev"><img src="https://avatars0.githubusercontent.com/u/354652?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Devan</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=DevanB" title="Documentation">📖</a></td>
|
||||
@@ -329,7 +348,7 @@ Thanks to these wonderful people ([emoji key](https://allcontributors.org/docs/e
|
||||
<td align="center"><a href="http://anteprimorac.com.hr"><img src="https://avatars0.githubusercontent.com/u/972083?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ante Primorac</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=anteprimorac" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=anteprimorac" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://mykalmachon.dev"><img src="https://avatars1.githubusercontent.com/u/7844994?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mykal Machon</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=MykalMachon" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://jamiedavenport.dev"><img src="https://avatars2.githubusercontent.com/u/1329874?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jamie Davenport</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jamiedavenport" title="Code">💻</a> <a href="#maintenance-jamiedavenport" title="Maintenance">🚧</a></td>
|
||||
<td align="center"><a href="https://cloudnweb.dev/"><img src="https://avatars0.githubusercontent.com/u/17050715?v=4?s=100" width="100px;" alt=""/><br /><sub><b>GaneshMani</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ganeshmani" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://cloudnweb.dev/"><img src="https://avatars0.githubusercontent.com/u/17050715?v=4?s=100" width="100px;" alt=""/><br /><sub><b>GaneshMani</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ganeshmani" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=ganeshmani" title="Tests">⚠️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://ramonmorcillo.com"><img src="https://avatars3.githubusercontent.com/u/31936665?v=4?s=100" width="100px;" alt=""/><br /><sub><b>reymon359</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=reymon359" title="Code">💻</a></td>
|
||||
@@ -378,7 +397,7 @@ Thanks to these wonderful people ([emoji key](https://allcontributors.org/docs/e
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/jschepmans"><img src="https://avatars2.githubusercontent.com/u/5782977?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Johan Schepmans</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jschepmans" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://twitter.com/dillonraphael"><img src="https://avatars0.githubusercontent.com/u/3496193?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dillon Raphael</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=dillonraphael" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://twitter.com/dillonraphael"><img src="https://avatars0.githubusercontent.com/u/3496193?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dillon Raphael</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=dillonraphael" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=dillonraphael" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=dillonraphael" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/clgeoio"><img src="https://avatars2.githubusercontent.com/u/37571416?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Cody G</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=clgeoio" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=clgeoio" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/madflow"><img src="https://avatars0.githubusercontent.com/u/183248?v=4?s=100" width="100px;" alt=""/><br /><sub><b>madflow</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=madflow" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://twitter.com/nitaking_"><img src="https://avatars2.githubusercontent.com/u/10850034?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Satoshi Nitawaki</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=nitaking" title="Code">💻</a> <a href="#maintenance-nitaking" title="Maintenance">🚧</a> <a href="#question-nitaking" title="Answering Questions">💬</a> <a href="https://github.com/blitz-js/blitz/commits?author=nitaking" title="Documentation">📖</a></td>
|
||||
@@ -667,7 +686,7 @@ Thanks to these wonderful people ([emoji key](https://allcontributors.org/docs/e
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/ratson"><img src="https://avatars.githubusercontent.com/u/2682937?v=4?s=100" width="100px;" alt=""/><br /><sub><b>(◕ᴥ◕)</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ratson" title="Code">💻</a></td>
|
||||
<td align="center"><a href="maciejmyslinski.com"><img src="https://avatars.githubusercontent.com/u/11421186?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mat Milbury</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=maciejmyslinski" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://andreas.fyi"><img src="https://avatars.githubusercontent.com/u/8077469?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Andreas Asprou</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=andreasasprou" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://andreas.fyi"><img src="https://avatars.githubusercontent.com/u/8077469?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Andreas Asprou</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=andreasasprou" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=andreasasprou" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/kotx"><img src="https://avatars.githubusercontent.com/u/33439542?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kot</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=kotx" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=kotx" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=kotx" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/isaka1022"><img src="https://avatars.githubusercontent.com/u/28589716?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Amane</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=isaka1022" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="johnleung.com"><img src="https://avatars.githubusercontent.com/u/20699?v=4?s=100" width="100px;" alt=""/><br /><sub><b>John Leung</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=fuzzthink" title="Documentation">📖</a></td>
|
||||
@@ -740,6 +759,41 @@ Thanks to these wonderful people ([emoji key](https://allcontributors.org/docs/e
|
||||
<td align="center"><a href="https://github.com/c-ciobanu"><img src="https://avatars.githubusercontent.com/u/33382714?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Cristi Ciobanu</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=c-ciobanu" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://arpitdalal.dev"><img src="https://avatars.githubusercontent.com/u/61059807?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Arpit Dalal</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=arpitdalal" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/robertrisch"><img src="https://avatars.githubusercontent.com/u/73828816?v=4?s=100" width="100px;" alt=""/><br /><sub><b>robertrisch</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=robertrisch" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/dineshgadge"><img src="https://avatars.githubusercontent.com/u/186976?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dinesh Gadge</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=dineshgadge" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/maltekiessling"><img src="https://avatars.githubusercontent.com/u/30420110?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Malte Kießling</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=maltekiessling" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="ospfranco.com"><img src="https://avatars.githubusercontent.com/u/1634213?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Oscar Franco</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ospfranco" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="adamtrager.com"><img src="https://avatars.githubusercontent.com/u/1719791?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Adam Trager</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Nfinished" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://saheen.codes"><img src="https://avatars.githubusercontent.com/u/2632896?v=4?s=100" width="100px;" alt=""/><br /><sub><b>saheenshoukath</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=shellord" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://jahneer.me"><img src="https://avatars.githubusercontent.com/u/54552763?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Husnul Jahneer</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=husnuljahneer" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/ReykCS"><img src="https://avatars.githubusercontent.com/u/40463716?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Reyk</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ReykCS" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/Lokprakash-babu"><img src="https://avatars.githubusercontent.com/u/60031382?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lokprakash Babu</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Lokprakash-babu" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://mizle.net"><img src="https://avatars.githubusercontent.com/u/3516343?v=4?s=100" width="100px;" alt=""/><br /><sub><b>eai04191</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=eai04191" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://numanaral.github.io/?ref=github"><img src="https://avatars.githubusercontent.com/u/25233323?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Numan</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=numanaral" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/jscyo"><img src="https://avatars.githubusercontent.com/u/6310783?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Joel Coutinho</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jscyo" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/davidbarker"><img src="https://avatars.githubusercontent.com/u/1597139?v=4?s=100" width="100px;" alt=""/><br /><sub><b>David Barker</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=davidbarker" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://www.timfeeley.com/"><img src="https://avatars.githubusercontent.com/u/3246342?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tim Feeley</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=timfee" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/Caslus"><img src="https://avatars.githubusercontent.com/u/22855640?v=4?s=100" width="100px;" alt=""/><br /><sub><b>lucas philippe</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Caslus" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/the-bayer"><img src="https://avatars.githubusercontent.com/u/94391693?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Blake Bayer</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=the-bayer" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=the-bayer" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/rmassie"><img src="https://avatars.githubusercontent.com/u/7375518?v=4?s=100" width="100px;" alt=""/><br /><sub><b>R Massie</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=rmassie" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/paulm17"><img src="https://avatars.githubusercontent.com/u/387463?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Paul</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=paulm17" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://minho42.com"><img src="https://avatars.githubusercontent.com/u/15278512?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Min ho Kim</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=minho42" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/webdeb"><img src="https://avatars.githubusercontent.com/u/14992140?v=4?s=100" width="100px;" alt=""/><br /><sub><b>webdeb</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=webdeb" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/iDavidB"><img src="https://avatars.githubusercontent.com/u/32268383?v=4?s=100" width="100px;" alt=""/><br /><sub><b>David</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=iDavidB" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=iDavidB" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=iDavidB" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://jdlt.co.uk"><img src="https://avatars.githubusercontent.com/u/5058625?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jake Dowie</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jakedee" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/datner"><img src="https://avatars.githubusercontent.com/u/22598347?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Datner</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=datner" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=datner" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=datner" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/remlse"><img src="https://avatars.githubusercontent.com/u/54984957?v=4?s=100" width="100px;" alt=""/><br /><sub><b>remlse</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=remlse" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/sergous"><img src="https://avatars.githubusercontent.com/u/545151?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sergei Smirnov</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sergous" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://twitter.com/trensik"><img src="https://avatars.githubusercontent.com/u/18584155?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dawid Urbaniak</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Trancever" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=Trancever" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="kiri.dev"><img src="https://avatars.githubusercontent.com/u/29735836?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kacper Potyrała</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=SerekKiri" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="jcde.xyz"><img src="https://avatars.githubusercontent.com/u/31413538?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jeeho Ahn</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=iojcde" title="Documentation">📖</a> <a href="#tool-iojcde" title="Tools">🔧</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
@@ -6,5 +6,5 @@ TODO
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Email Brandon Bayer at b@bayer.ws to report a vulnerablity, and he will follow up with you asap.
|
||||
Email Brandon Bayer at b@bayer.ws to report a vulnerability, and he will follow up with you asap.
|
||||
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0)">
|
||||
<path d="M79.4831 1.95572C70.2813 -0.81923 55.2811 -0.617415 46.1549 2.4098L18.6125 11.5167C9.48627 14.5313 9.38542 19.7784 18.3856 23.1588L49.9743 35.028C58.9744 38.4084 73.6217 38.194 82.5084 34.5487L110.883 22.9192C119.782 19.2739 119.53 14.0267 110.316 11.2518L79.4831 1.95572Z" fill="url(#paint0_linear)"/>
|
||||
<path d="M84.235 38.6101C75.3357 42.2554 68.0625 53.1029 68.0625 62.727V113.635C68.0625 123.259 74.9071 127.245 83.2644 122.489L109.282 107.706C117.639 102.951 124.912 91.208 125.442 81.6092L127.837 37.8281C128.366 28.2167 121.509 23.3479 112.609 26.9932L84.235 38.6101Z" fill="url(#paint1_linear)"/>
|
||||
<path d="M0.0071345 37.8409C-0.257575 28.2295 6.877 23.1211 15.8771 26.5015L47.4658 38.3707C56.466 41.7511 63.8274 52.3842 63.8274 62.0082V112.916C63.8274 122.54 56.882 126.715 48.386 122.212L17.0998 105.6C8.60392 101.085 1.44415 89.5306 1.16683 79.9192L0.0071345 37.8409Z" fill="url(#paint2_linear)"/>
|
||||
</g>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear" x1="63.9326" y1="0" x2="63.9326" y2="124.497" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#036EB8"/>
|
||||
<stop offset="1" stop-color="#469196"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear" x1="63.9326" y1="0" x2="63.9326" y2="124.497" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#036EB8"/>
|
||||
<stop offset="1" stop-color="#469196"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint2_linear" x1="63.9326" y1="0" x2="63.9326" y2="124.497" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#036EB8"/>
|
||||
<stop offset="1" stop-color="#469196"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip0">
|
||||
<rect width="128" height="128" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB |
BIN
assets/jdlt.png
Normal file
BIN
assets/jdlt.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.4 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 30 KiB |
@@ -4,7 +4,6 @@
|
||||
* and then export it. That way you can import here and anywhere else
|
||||
* and use it straight away.
|
||||
*/
|
||||
import previewEmail from "preview-email"
|
||||
|
||||
type ResetPasswordMailer = {
|
||||
to: string
|
||||
@@ -38,6 +37,7 @@ export function forgotPasswordMailer({to, token}: ResetPasswordMailer) {
|
||||
throw new Error("No production email implementation in mailers/forgotPasswordMailer")
|
||||
} else {
|
||||
// Preview email in the browser
|
||||
const previewEmail = (await import("preview-email")).default
|
||||
await previewEmail(msg)
|
||||
}
|
||||
},
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@prisma/client": "2.24.1",
|
||||
"blitz": "0.45.0-canary.0",
|
||||
"blitz": "0.45.4",
|
||||
"final-form": "4.20.1",
|
||||
"passport-auth0": "1.4.0",
|
||||
"passport-github2": "0.1.12",
|
||||
|
||||
@@ -4,8 +4,7 @@
|
||||
* This seed function is executed when you run `blitz db seed`.
|
||||
*
|
||||
* Probably you want to use a library like https://chancejs.com
|
||||
* or https://github.com/Marak/Faker.js to easily generate
|
||||
* realistic data.
|
||||
* to easily generate realistic data.
|
||||
*/
|
||||
const seed = async () => {
|
||||
// for (let i = 0; i < 5; i++) {
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@prisma/client": "2.24.1",
|
||||
"blitz": "0.45.0-canary.0",
|
||||
"blitz": "0.45.4",
|
||||
"final-form": "4.20.1",
|
||||
"prisma": "2.24.1",
|
||||
"react": "0.0.0-experimental-6a589ad71",
|
||||
|
||||
@@ -4,8 +4,7 @@
|
||||
* This seed function is executed when you run `blitz db seed`.
|
||||
*
|
||||
* Probably you want to use a library like https://chancejs.com
|
||||
* or https://github.com/Marak/Faker.js to easily generate
|
||||
* realistic data.
|
||||
* to easily generate realistic data.
|
||||
*/
|
||||
const seed = async () => {
|
||||
// for (let i = 0; i < 5; i++) {
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
* and then export it. That way you can import here and anywhere else
|
||||
* and use it straight away.
|
||||
*/
|
||||
import previewEmail from "preview-email"
|
||||
|
||||
type ResetPasswordMailer = {
|
||||
to: string
|
||||
@@ -38,6 +37,7 @@ export function forgotPasswordMailer({ to, token }: ResetPasswordMailer) {
|
||||
throw new Error("No production email implementation in mailers/forgotPasswordMailer")
|
||||
} else {
|
||||
// Preview email in the browser
|
||||
const previewEmail = (await import("preview-email")).default
|
||||
await previewEmail(msg)
|
||||
}
|
||||
},
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@prisma/client": "2.24.1",
|
||||
"blitz": "0.45.0-canary.0",
|
||||
"blitz": "0.45.4",
|
||||
"final-form": "4.20.1",
|
||||
"react": "0.0.0-experimental-6a589ad71",
|
||||
"react-dom": "0.0.0-experimental-6a589ad71",
|
||||
|
||||
@@ -4,8 +4,7 @@
|
||||
* This seed function is executed when you run `blitz db seed`.
|
||||
*
|
||||
* Probably you want to use a library like https://chancejs.com
|
||||
* or https://github.com/Marak/Faker.js to easily generate
|
||||
* realistic data.
|
||||
* to easily generate realistic data.
|
||||
*/
|
||||
const seed = async () => {
|
||||
// for (let i = 0; i < 5; i++) {
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"blitz": "0.45.0-canary.0",
|
||||
"blitz": "0.45.4",
|
||||
"final-form": "4.20.1",
|
||||
"graphql": "15.5.0",
|
||||
"graphql-request": "3.4.0",
|
||||
|
||||
@@ -4,7 +4,7 @@ This example shows how to use [next-rosetta](https://www.npmjs.com/package/next-
|
||||
|
||||
## Getting started
|
||||
|
||||
### Install dependecies
|
||||
### Install dependencies
|
||||
|
||||
```
|
||||
# with npm
|
||||
|
||||
@@ -4,8 +4,7 @@
|
||||
* This seed function is executed when you run `blitz db seed`.
|
||||
*
|
||||
* Probably you want to use a library like https://chancejs.com
|
||||
* or https://github.com/Marak/Faker.js to easily generate
|
||||
* realistic data.
|
||||
* to easily generate realistic data.
|
||||
*/
|
||||
const seed = async () => {
|
||||
// for (let i = 0; i < 5; i++) {
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
* and then export it. That way you can import here and anywhere else
|
||||
* and use it straight away.
|
||||
*/
|
||||
import previewEmail from "preview-email"
|
||||
|
||||
type ResetPasswordMailer = {
|
||||
to: string
|
||||
@@ -38,6 +37,7 @@ export function forgotPasswordMailer({ to, token }: ResetPasswordMailer) {
|
||||
throw new Error("No production email implementation in mailers/forgotPasswordMailer")
|
||||
} else {
|
||||
// Preview email in the browser
|
||||
const previewEmail = (await import("preview-email")).default
|
||||
await previewEmail(msg)
|
||||
}
|
||||
},
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@prisma/client": "2.24.1",
|
||||
"blitz": "0.45.0-canary.0",
|
||||
"blitz": "0.45.4",
|
||||
"final-form": "4.20.1",
|
||||
"next-rosetta": "1.3.1",
|
||||
"react": "0.0.0-experimental-6a589ad71",
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"blitz": "0.45.0-canary.0",
|
||||
"blitz": "0.45.4",
|
||||
"knex": "0.21.16",
|
||||
"react": "0.0.0-experimental-6a589ad71",
|
||||
"react-dom": "0.0.0-experimental-6a589ad71",
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@prisma/client": "2.24.1",
|
||||
"blitz": "0.45.0-canary.0",
|
||||
"blitz": "0.45.4",
|
||||
"prisma": "2.24.1",
|
||||
"react": "0.0.0-experimental-6a589ad71",
|
||||
"react-dom": "0.0.0-experimental-6a589ad71"
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@prisma/client": "2.24.1",
|
||||
"blitz": "0.45.0-canary.0",
|
||||
"blitz": "0.45.4",
|
||||
"final-form": "4.20.1",
|
||||
"prisma": "2.24.1",
|
||||
"react": "0.0.0-experimental-6a589ad71",
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@prisma/client": "2.24.1",
|
||||
"blitz": "0.45.0-canary.0",
|
||||
"blitz": "0.45.4",
|
||||
"final-form": "4.20.1",
|
||||
"prisma": "2.24.1",
|
||||
"react": "0.0.0-experimental-6a589ad71",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "0.45.0-canary.0",
|
||||
"version": "0.45.4",
|
||||
"packages": ["packages/*"],
|
||||
"npmClient": "yarn",
|
||||
"useWorkspaces": true,
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
"lost": "8.3.1",
|
||||
"minimatch": "3.0.4",
|
||||
"moment": "^2.24.0",
|
||||
"node-fetch": "2.6.1",
|
||||
"node-fetch": "2.6.7",
|
||||
"node-notifier": "5.4.0",
|
||||
"node-sass": "5.0.0",
|
||||
"npm-run-all": "4.1.5",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "eslint-config-blitz",
|
||||
"version": "0.45.0-canary.0",
|
||||
"version": "0.45.4",
|
||||
"description": "Blitz.js eslint config",
|
||||
"main": "index.js",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@blitzjs/installer",
|
||||
"version": "0.45.0-canary.0",
|
||||
"version": "0.45.4",
|
||||
"description": "Package installation for the Blitz CLI",
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"license": "MIT",
|
||||
@@ -30,9 +30,9 @@
|
||||
"dependencies": {
|
||||
"@babel/core": "7.12.10",
|
||||
"@babel/plugin-transform-typescript": "7.12.1",
|
||||
"@blitzjs/generator": "0.45.0-canary.0",
|
||||
"@blitzjs/generator": "0.45.4",
|
||||
"@mrleebo/prisma-ast": "0.2.6",
|
||||
"@prisma/sdk": "2.19.0",
|
||||
"@prisma/sdk": "3.9.1",
|
||||
"@types/jscodeshift": "0.11.2",
|
||||
"ast-types": "0.14.2",
|
||||
"cross-spawn": "7.0.3",
|
||||
|
||||
161
nextjs/packages/installer/src/executors/run-command-executor.tsx
Normal file
161
nextjs/packages/installer/src/executors/run-command-executor.tsx
Normal file
@@ -0,0 +1,161 @@
|
||||
import { spawn } from 'cross-spawn'
|
||||
import { Box, Text } from 'ink'
|
||||
import Spinner from 'ink-spinner'
|
||||
import * as React from 'react'
|
||||
import { Newline } from '../components/newline'
|
||||
import { RecipeCLIArgs } from '../types'
|
||||
import { useEnterToContinue } from '../utils/use-enter-to-continue'
|
||||
import { useUserInput } from '../utils/use-user-input'
|
||||
import { Executor, ExecutorConfig, getExecutorArgument } from './executor'
|
||||
|
||||
export type CliCommand = string | [string, ...string[]]
|
||||
|
||||
export interface Config extends ExecutorConfig {
|
||||
command: CliCommand
|
||||
}
|
||||
export interface CommitChildProps {
|
||||
commandInstalled: boolean
|
||||
handleChangeCommitted: () => void
|
||||
command: CliCommand
|
||||
cliArgs: RecipeCLIArgs
|
||||
step: Config
|
||||
}
|
||||
|
||||
export const type = 'run-command'
|
||||
|
||||
function Command({
|
||||
command,
|
||||
loading,
|
||||
}: {
|
||||
command: CliCommand
|
||||
loading: boolean
|
||||
}) {
|
||||
return (
|
||||
<Text>
|
||||
{` `}
|
||||
{loading ? <Spinner /> : '✅'}
|
||||
{` ${typeof command === 'string' ? command : command.join(' ')}`}
|
||||
</Text>
|
||||
)
|
||||
}
|
||||
|
||||
const CommandList = ({
|
||||
lede = 'Hang tight! Running...',
|
||||
commandLoading = false,
|
||||
step,
|
||||
command,
|
||||
}: {
|
||||
lede?: string
|
||||
commandLoading?: boolean
|
||||
step: Config
|
||||
command: CliCommand
|
||||
}) => {
|
||||
return (
|
||||
<Box flexDirection="column">
|
||||
<Text>{lede}</Text>
|
||||
<Newline />
|
||||
<Command key={step.stepId} command={command} loading={commandLoading} />
|
||||
</Box>
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* INFO: Exported for unit testing purposes
|
||||
*
|
||||
* This function calls the defined command with their optional arguments if defined
|
||||
*
|
||||
* @param {CliCommand} input The Command and arguments
|
||||
* @return Promise<void>
|
||||
*
|
||||
* @example await executeCommand("ls")
|
||||
* @example await executeCommand(["ls"])
|
||||
* @example await executeCommand(["ls", ...["-a", "-l"]])
|
||||
*/
|
||||
export async function executeCommand(input: CliCommand): Promise<void> {
|
||||
// from https://stackoverflow.com/a/43766456/9950655
|
||||
const argsRegex = /("[^"\\]*(?:\\[\S\s][^"\\]*)*"|'[^'\\]*(?:\\[\S\s][^'\\]*)*'|\/[^/\\]*(?:\\[\S\s][^/\\]*)*\/[gimy]*(?=\s|$)|(?:\\\s|\S)+)/g
|
||||
const command: string[] = Array.isArray(input)
|
||||
? input
|
||||
: input.match(argsRegex) || []
|
||||
|
||||
if (command.length === 0) {
|
||||
throw new Error(`The command is too short: \`${JSON.stringify(input)}\``)
|
||||
}
|
||||
|
||||
await new Promise((resolve) => {
|
||||
const cp = spawn(command[0], command.slice(1), {
|
||||
stdio: ['inherit', 'pipe', 'pipe'],
|
||||
})
|
||||
cp.on('exit', resolve)
|
||||
})
|
||||
}
|
||||
|
||||
export const Commit: Executor['Commit'] = ({
|
||||
cliArgs,
|
||||
cliFlags,
|
||||
step,
|
||||
onChangeCommitted,
|
||||
}) => {
|
||||
const userInput = useUserInput(cliFlags)
|
||||
const [commandInstalled, setCommandInstalled] = React.useState(false)
|
||||
const executorCommand = getExecutorArgument((step as Config).command, cliArgs)
|
||||
|
||||
const handleChangeCommitted = React.useCallback(() => {
|
||||
onChangeCommitted(`Executed command ${executorCommand}`)
|
||||
}, [executorCommand, onChangeCommitted])
|
||||
|
||||
React.useEffect(() => {
|
||||
async function runCommand() {
|
||||
await executeCommand(executorCommand)
|
||||
setCommandInstalled(true)
|
||||
}
|
||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||
runCommand()
|
||||
}, [cliArgs, step, executorCommand])
|
||||
|
||||
React.useEffect(() => {
|
||||
if (commandInstalled) {
|
||||
handleChangeCommitted()
|
||||
}
|
||||
}, [commandInstalled, handleChangeCommitted])
|
||||
|
||||
const childProps: CommitChildProps = {
|
||||
commandInstalled,
|
||||
handleChangeCommitted,
|
||||
command: executorCommand,
|
||||
cliArgs,
|
||||
step: step as Config,
|
||||
}
|
||||
|
||||
if (userInput) return <CommitWithInput {...childProps} />
|
||||
else return <CommitWithoutInput {...childProps} />
|
||||
}
|
||||
|
||||
const CommitWithInput = ({
|
||||
commandInstalled,
|
||||
handleChangeCommitted,
|
||||
command,
|
||||
step,
|
||||
}: CommitChildProps) => {
|
||||
useEnterToContinue(handleChangeCommitted, commandInstalled)
|
||||
|
||||
return (
|
||||
<CommandList
|
||||
commandLoading={!commandInstalled}
|
||||
step={step}
|
||||
command={command}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
const CommitWithoutInput = ({
|
||||
commandInstalled,
|
||||
command,
|
||||
step,
|
||||
}: CommitChildProps) => (
|
||||
<CommandList
|
||||
commandLoading={!commandInstalled}
|
||||
step={step}
|
||||
command={command}
|
||||
/>
|
||||
)
|
||||
@@ -2,6 +2,7 @@ import * as AddDependencyExecutor from './executors/add-dependency-executor'
|
||||
import * as TransformFileExecutor from './executors/file-transform-executor'
|
||||
import * as NewFileExecutor from './executors/new-file-executor'
|
||||
import * as PrintMessageExecutor from './executors/print-message-executor'
|
||||
import * as RunCommandExecutor from './executors/run-command-executor'
|
||||
import { ExecutorConfigUnion, RecipeExecutor } from './recipe-executor'
|
||||
import { RecipeMeta } from './types'
|
||||
|
||||
@@ -22,6 +23,10 @@ export interface IRecipeBuilder {
|
||||
addTransformFilesStep(
|
||||
step: Omit<TransformFileExecutor.Config, 'stepType'>
|
||||
): IRecipeBuilder
|
||||
addRunCommandStep(
|
||||
step: Omit<RunCommandExecutor.Config, 'stepType'>
|
||||
): IRecipeBuilder
|
||||
|
||||
build(): RecipeExecutor<any>
|
||||
}
|
||||
|
||||
@@ -78,6 +83,13 @@ export function RecipeBuilder(): IRecipeBuilder {
|
||||
})
|
||||
return this
|
||||
},
|
||||
addRunCommandStep(step: Omit<RunCommandExecutor.Config, 'stepType'>) {
|
||||
steps.push({
|
||||
stepType: RunCommandExecutor.type,
|
||||
...step,
|
||||
})
|
||||
return this
|
||||
},
|
||||
build() {
|
||||
return new RecipeExecutor(meta as RecipeMeta, steps)
|
||||
},
|
||||
|
||||
@@ -7,6 +7,7 @@ import { Executor, ExecutorConfig, Frontmatter } from './executors/executor'
|
||||
import * as FileTransformExecutor from './executors/file-transform-executor'
|
||||
import * as NewFileExecutor from './executors/new-file-executor'
|
||||
import * as PrintMessageExecutor from './executors/print-message-executor'
|
||||
import * as RunCommandExecutor from './executors/run-command-executor'
|
||||
import { RecipeCLIArgs, RecipeCLIFlags, RecipeMeta } from './types'
|
||||
import { useEnterToContinue } from './utils/use-enter-to-continue'
|
||||
import { useUserInput } from './utils/use-user-input'
|
||||
@@ -32,6 +33,7 @@ const ExecutorMap: { [key: string]: Executor } = {
|
||||
[NewFileExecutor.type]: NewFileExecutor,
|
||||
[PrintMessageExecutor.type]: PrintMessageExecutor,
|
||||
[FileTransformExecutor.type]: FileTransformExecutor,
|
||||
[RunCommandExecutor.type]: RunCommandExecutor,
|
||||
} as const
|
||||
|
||||
interface State {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@blitzjs/env",
|
||||
"version": "0.45.0-canary.0",
|
||||
"version": "0.45.4",
|
||||
"keywords": [
|
||||
"react",
|
||||
"next",
|
||||
|
||||
@@ -50,6 +50,7 @@ const specialImports: Record<string, string> = {
|
||||
getAntiCSRFToken: 'next/data-client',
|
||||
useSession: 'next/data-client',
|
||||
useAuthenticatedSession: 'next/data-client',
|
||||
useRedirectAuthenticated: 'next/data-client',
|
||||
useAuthorize: 'next/data-client',
|
||||
useQuery: 'next/data-client',
|
||||
usePaginatedQuery: 'next/data-client',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "next",
|
||||
"version": "0.45.0-canary.0",
|
||||
"version": "0.45.4",
|
||||
"nextjsVersion": "11.1.0",
|
||||
"description": "The React Framework",
|
||||
"main": "./dist/server/next.js",
|
||||
@@ -73,7 +73,7 @@
|
||||
"dependencies": {
|
||||
"@babel/helper-module-imports": "^7.0.0",
|
||||
"@babel/runtime": "7.12.5",
|
||||
"@blitzjs/env": "0.45.0-canary.0",
|
||||
"@blitzjs/env": "0.45.4",
|
||||
"@hapi/accept": "5.0.2",
|
||||
"@next/polyfill-module": "11.1.0",
|
||||
"@next/react-dev-overlay": "11.1.0",
|
||||
@@ -107,7 +107,7 @@
|
||||
"image-size": "1.0.0",
|
||||
"jest-worker": "27.0.0-next.5",
|
||||
"native-url": "0.3.4",
|
||||
"node-fetch": "2.6.1",
|
||||
"node-fetch": "2.6.7",
|
||||
"node-html-parser": "1.4.9",
|
||||
"node-libs-browser": "^2.2.1",
|
||||
"npm-which": "^3.0.1",
|
||||
@@ -131,7 +131,7 @@
|
||||
"stream-http": "3.1.1",
|
||||
"string_decoder": "1.3.0",
|
||||
"styled-jsx": "4.0.0",
|
||||
"superjson": "1.7.5",
|
||||
"superjson": "1.8.1",
|
||||
"timers-browserify": "2.0.12",
|
||||
"tslog": "^3.1.1",
|
||||
"tty-browserify": "0.0.1",
|
||||
|
||||
@@ -62,6 +62,7 @@ export const baseLogger = (options?: ISettingsParam): Logger => {
|
||||
bigint: 'blue',
|
||||
boolean: 'blue',
|
||||
},
|
||||
colorizePrettyLogs: process.env.FORCE_COLOR === '0' ? false : true,
|
||||
maskValuesOfKeys: ['password', 'passwordConfirmation'],
|
||||
exposeErrorCodeFrame: process.env.NODE_ENV !== 'production',
|
||||
...options,
|
||||
|
||||
@@ -139,22 +139,6 @@ export const secureProxyMiddleware: Middleware = function (
|
||||
_res: MiddlewareResponse,
|
||||
next: (error?: Error) => void
|
||||
) {
|
||||
req.protocol = getProtocol(req)
|
||||
req.protocol = 'https'
|
||||
next()
|
||||
}
|
||||
|
||||
function getProtocol(req: MiddlewareRequest) {
|
||||
// @ts-ignore
|
||||
// For some reason there is no encrypted on socket while it is expected
|
||||
if (req.connection.encrypted) {
|
||||
return 'https'
|
||||
}
|
||||
const forwardedProto =
|
||||
req.headers &&
|
||||
((req.headers['forwarded'] as string)?.match(/(?<=proto=).+/g)?.[0] ||
|
||||
(req.headers['x-forwarded-proto'] as string))
|
||||
if (forwardedProto) {
|
||||
return forwardedProto.split(/\s*,\s*/)[0]
|
||||
}
|
||||
return 'http'
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import { queryClient } from '../data-client/react-query-utils'
|
||||
const debug = require('debug')('blitz:approot')
|
||||
|
||||
export type BlitzProviderProps = {
|
||||
children?: React.ReactNode
|
||||
client?: QueryClient
|
||||
contextSharing?: boolean
|
||||
dehydratedState?: unknown
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import SuperJson from 'superjson'
|
||||
import type { UrlObject } from 'url'
|
||||
|
||||
const errorProps = ['name', 'message', 'code', 'statusCode', 'meta']
|
||||
const errorProps = ['name', 'message', 'code', 'statusCode', 'meta', 'url']
|
||||
if (process.env.JEST_WORKER_ID === undefined) {
|
||||
SuperJson.allowErrorProps(...errorProps)
|
||||
}
|
||||
|
||||
@@ -59,29 +59,11 @@ describe('secure proxy middleware', () => {
|
||||
expect(reqSecure.protocol).toEqual('https')
|
||||
})
|
||||
|
||||
it('should set http protocol if X-Forwarded-Proto is http', () => {
|
||||
// @ts-ignore
|
||||
void secureProxyMiddleware(reqHttp, res, () => null)
|
||||
expect(reqHttp.protocol).toEqual('http')
|
||||
})
|
||||
|
||||
it('should set https protocol if Forwarded is proto=https', () => {
|
||||
// @ts-ignore
|
||||
void secureProxyMiddleware(reqForwardSecure, res, () => null)
|
||||
expect(reqForwardSecure.protocol).toEqual('https')
|
||||
})
|
||||
|
||||
it('should set http protocol if Forwarded is proto=http', () => {
|
||||
// @ts-ignore
|
||||
void secureProxyMiddleware(reqForwardHttp, res, () => null)
|
||||
expect(reqForwardHttp.protocol).toEqual('http')
|
||||
})
|
||||
|
||||
it('should set http protocol if X-Forwarded-Proto and Forwarded are absent', () => {
|
||||
// @ts-ignore
|
||||
void secureProxyMiddleware(reqNoHeader, res, () => null)
|
||||
expect(reqNoHeader.protocol).toEqual('http')
|
||||
})
|
||||
})
|
||||
|
||||
describe('handleRequestWithMiddleware', () => {
|
||||
|
||||
791
nextjs/yarn.lock
791
nextjs/yarn.lock
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "blitz",
|
||||
"description": "Blitz is a Rails-like framework for monolithic, full-stack React apps — built on Next.js",
|
||||
"version": "0.45.0-canary.0",
|
||||
"version": "0.45.4",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"test": "jest",
|
||||
@@ -51,9 +51,9 @@
|
||||
"url": "https://github.com/blitz-js/blitz"
|
||||
},
|
||||
"dependencies": {
|
||||
"@blitzjs/cli": "0.45.0-canary.0",
|
||||
"@blitzjs/generator": "0.45.0-canary.0",
|
||||
"@blitzjs/server": "0.45.0-canary.0",
|
||||
"@blitzjs/cli": "0.45.4",
|
||||
"@blitzjs/generator": "0.45.4",
|
||||
"@blitzjs/server": "0.45.4",
|
||||
"@testing-library/jest-dom": "5.11.9",
|
||||
"@testing-library/react": "11.2.5",
|
||||
"@testing-library/react-hooks": "^4.0.1",
|
||||
@@ -62,11 +62,11 @@
|
||||
"cross-spawn": "7.0.3",
|
||||
"debug": "4.3.1",
|
||||
"envinfo": "^7.7.3",
|
||||
"eslint-config-blitz": "0.45.0-canary.0",
|
||||
"eslint-config-blitz": "0.45.4",
|
||||
"jest": "^26.6.3",
|
||||
"jest-watch-typeahead": "^0.6.1",
|
||||
"minimist": "1.2.5",
|
||||
"next": "0.45.0-canary.0",
|
||||
"next": "0.45.4",
|
||||
"os-name": "^4.0.0",
|
||||
"pkg-dir": "^5.0.0",
|
||||
"react-test-renderer": "17.0.1",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@blitzjs/cli",
|
||||
"description": "Blitz.js CLI",
|
||||
"version": "0.45.0-canary.0",
|
||||
"version": "0.45.4",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"dev": "rimraf lib && tsc --watch --pretty --preserveWatchOutput",
|
||||
@@ -22,15 +22,15 @@
|
||||
"/lib"
|
||||
],
|
||||
"dependencies": {
|
||||
"@blitzjs/generator": "0.45.0-canary.0",
|
||||
"@blitzjs/installer": "0.45.0-canary.0",
|
||||
"@blitzjs/server": "0.45.0-canary.0",
|
||||
"@blitzjs/generator": "0.45.4",
|
||||
"@blitzjs/installer": "0.45.4",
|
||||
"@blitzjs/server": "0.45.4",
|
||||
"@oclif/command": "1.8.0",
|
||||
"@oclif/config": "1.17.0",
|
||||
"@oclif/plugin-autocomplete": "0.3.0",
|
||||
"@oclif/plugin-help": "3.2.1",
|
||||
"@oclif/plugin-not-found": "1.2.4",
|
||||
"@prisma/sdk": "2.19.0",
|
||||
"@prisma/sdk": "3.9.1",
|
||||
"@salesforce/lazy-require": "0.4.0",
|
||||
"camelcase": "^6.2.0",
|
||||
"chalk": "^4.1.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@blitzjs/generator",
|
||||
"version": "0.45.0-canary.0",
|
||||
"version": "0.45.4",
|
||||
"description": "File generation for the Blitz CLI",
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"license": "MIT",
|
||||
@@ -33,7 +33,7 @@
|
||||
"dependencies": {
|
||||
"@babel/core": "7.12.10",
|
||||
"@babel/plugin-transform-typescript": "7.12.1",
|
||||
"@blitzjs/server": "0.45.0-canary.0",
|
||||
"@blitzjs/server": "0.45.4",
|
||||
"@mrleebo/prisma-ast": "0.2.6",
|
||||
"@types/jscodeshift": "0.11.2",
|
||||
"chalk": "^4.1.0",
|
||||
|
||||
@@ -156,7 +156,7 @@ You can read more about it in the [File Structure](https://blitzjs.com/docs/file
|
||||
Blitz comes with a set of tools that corrects and formats your code, facilitating its future maintenance. You can modify their options and even uninstall them.
|
||||
|
||||
- **ESLint**: It lints your code: searches for bad practices and tell you about it. You can customize it via the `.eslintrc.js`, and you can install (or even write) plugins to have it the way you like it. It already comes with the [`blitz`](https://github.com/blitz-js/blitz/tree/canary/packages/eslint-config) config, but you can remove it safely. [Learn More](https://blitzjs.com/docs/eslint-config).
|
||||
- **Husky**: It adds [githooks](https://git-scm.com/docs/githooks), little pieces of code that get executed when certain Git events are triggerd. For example, `pre-commit` is triggered just before a commit is created. You can see the current hooks inside `.husky/`. If are having problems commiting and pushing, check out ther [troubleshooting](https://typicode.github.io/husky/#/?id=troubleshoot) guide. [Learn More](https://blitzjs.com/docs/husky-config).
|
||||
- **Husky**: It adds [githooks](https://git-scm.com/docs/githooks), little pieces of code that get executed when certain Git events are triggered. For example, `pre-commit` is triggered just before a commit is created. You can see the current hooks inside `.husky/`. If are having problems committing and pushing, check out ther [troubleshooting](https://typicode.github.io/husky/#/?id=troubleshoot) guide. [Learn More](https://blitzjs.com/docs/husky-config).
|
||||
- **Prettier**: It formats your code to look the same everywhere. You can configure it via the `.prettierrc` file. The `.prettierignore` contains the files that should be ignored by Prettier; useful when you have large files or when you want to keep a custom formatting. [Learn More](https://blitzjs.com/docs/prettier-config).
|
||||
|
||||
## Learn more
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { NotFoundError, SecurePassword, resolver } from "blitz"
|
||||
import { NotFoundError, SecurePassword, resolver, AuthenticationError } from "blitz"
|
||||
import db from "db"
|
||||
import { authenticateUser } from "./login"
|
||||
import { ChangePassword } from "../validations"
|
||||
@@ -10,7 +10,15 @@ export default resolver.pipe(
|
||||
const user = await db.user.findFirst({ where: { id: ctx.session.userId! } })
|
||||
if (!user) throw new NotFoundError()
|
||||
|
||||
await authenticateUser(user.email, currentPassword)
|
||||
try {
|
||||
await authenticateUser(user.email, currentPassword)
|
||||
} catch (error: any) {
|
||||
if (error instanceof AuthenticationError) {
|
||||
throw new Error("Invalid Password")
|
||||
}
|
||||
throw error
|
||||
}
|
||||
|
||||
|
||||
const hashedPassword = await SecurePassword.hash(newPassword.trim())
|
||||
await db.user.update({
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Head, BlitzLayout } from "blitz"
|
||||
|
||||
const Layout: BlitzLayout<{title?: string}> = ({ title, children }) => {
|
||||
const Layout: BlitzLayout<{title?: string, children?: React.ReactNode}> = ({ title, children }) => {
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
|
||||
@@ -4,8 +4,7 @@
|
||||
* This seed function is executed when you run `blitz db seed`.
|
||||
*
|
||||
* Probably you want to use a library like https://chancejs.com
|
||||
* or https://github.com/Marak/Faker.js to easily generate
|
||||
* realistic data.
|
||||
* to easily generate realistic data.
|
||||
*/
|
||||
const seed = async () => {
|
||||
// for (let i = 0; i < 5; i++) {
|
||||
|
||||
@@ -4,14 +4,13 @@
|
||||
* and then export it. That way you can import here and anywhere else
|
||||
* and use it straight away.
|
||||
*/
|
||||
import previewEmail from "preview-email"
|
||||
|
||||
type ResetPasswordMailer = {
|
||||
to: string
|
||||
token: string
|
||||
}
|
||||
|
||||
export function forgotPasswordMailer({ to, token }: ResetPasswordMailer) {
|
||||
export function forgotPasswordMailer({to, token}: ResetPasswordMailer) {
|
||||
// In production, set APP_ORIGIN to your production server origin
|
||||
const origin = process.env.APP_ORIGIN || process.env.BLITZ_DEV_SERVER_ORIGIN
|
||||
const resetUrl = `${origin}/reset-password?token=${token}`
|
||||
@@ -38,6 +37,7 @@ export function forgotPasswordMailer({ to, token }: ResetPasswordMailer) {
|
||||
throw new Error("No production email implementation in mailers/forgotPasswordMailer")
|
||||
} else {
|
||||
// Preview email in the browser
|
||||
const previewEmail = (await import("preview-email")).default
|
||||
await previewEmail(msg)
|
||||
}
|
||||
},
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
"dependencies": {
|
||||
"@prisma/client": "3.x",
|
||||
"blitz": "latest",
|
||||
"react-dom": "18.0.0-alpha-5ca4b0433-20211020",
|
||||
"react": "18.0.0-beta-149b420f6-20211119",
|
||||
"react-dom": "18.0.0",
|
||||
"react": "18.0.0",
|
||||
"zod": "3.x"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -26,13 +26,13 @@
|
||||
"dependencies": {
|
||||
"@prisma/client": "3.x",
|
||||
"blitz": "latest",
|
||||
"react-dom": "18.0.0-alpha-5ca4b0433-20211020",
|
||||
"react": "18.0.0-beta-149b420f6-20211119",
|
||||
"react-dom": "18.0.0",
|
||||
"react": "18.0.0",
|
||||
"zod": "3.x"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/preview-email": "2.x",
|
||||
"@types/react": "17.x",
|
||||
"@types/react": "18.0.1",
|
||||
"eslint": "7.x",
|
||||
"husky": "7.x",
|
||||
"lint-staged": "11.x",
|
||||
|
||||
@@ -30,7 +30,7 @@ export function render(
|
||||
) {
|
||||
if (!wrapper) {
|
||||
// Add a default context wrapper if one isn't supplied from the test
|
||||
wrapper = ({ children }) => (
|
||||
wrapper = ({ children }: { children: React.ReactNode }) => (
|
||||
<BlitzProvider dehydratedState={dehydratedState}>
|
||||
<RouterContext.Provider value={{ ...mockRouter, ...router }}>
|
||||
{children}
|
||||
|
||||
@@ -99,7 +99,7 @@ You can read more about it in the [File Structure](https://blitzjs.com/docs/file
|
||||
Blitz comes with a set of tools that corrects and formats your code, facilitating its future maintenance. You can modify their options and even uninstall them.
|
||||
|
||||
- **ESLint**: It lints your code: searches for bad practices and tell you about it. You can customize it via the `.eslintrc.js`, and you can install (or even write) plugins to have it the way you like it. It already comes with the [`blitz`](https://github.com/blitz-js/blitz/tree/canary/packages/eslint-config) config, but you can remove it safely. [Learn More](https://blitzjs.com/docs/eslint-config).
|
||||
- **Husky**: It adds [githooks](https://git-scm.com/docs/githooks), little pieces of code that get executed when certain Git events are triggerd. For example, `pre-commit` is triggered just before a commit is created. You can see the current hooks inside `.husky/`. If are having problems commiting and pushing, check out ther [troubleshooting](https://typicode.github.io/husky/#/?id=troubleshoot) guide. [Learn More](https://blitzjs.com/docs/husky-config).
|
||||
- **Husky**: It adds [githooks](https://git-scm.com/docs/githooks), little pieces of code that get executed when certain Git events are triggered. For example, `pre-commit` is triggered just before a commit is created. You can see the current hooks inside `.husky/`. If are having problems committing and pushing, check out ther [troubleshooting](https://typicode.github.io/husky/#/?id=troubleshoot) guide. [Learn More](https://blitzjs.com/docs/husky-config).
|
||||
- **Prettier**: It formats your code to look the same everywhere. You can configure it via the `.prettierrc` file. The `.prettierignore` contains the files that should be ignored by Prettier; useful when you have large files or when you want to keep a custom formatting. [Learn More](https://blitzjs.com/docs/prettier-config).
|
||||
|
||||
## Learn more
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"blitz": "latest",
|
||||
"react-dom": "18.0.0-alpha-5ca4b0433-20211020",
|
||||
"react": "18.0.0-beta-149b420f6-20211119"
|
||||
"react-dom": "18.0.0",
|
||||
"react": "18.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "7.x",
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"blitz": "latest",
|
||||
"react-dom": "18.0.0-alpha-5ca4b0433-20211020",
|
||||
"react": "18.0.0-beta-149b420f6-20211119"
|
||||
"react-dom": "18.0.0",
|
||||
"react": "18.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "17.x",
|
||||
"@types/react": "18.0.1",
|
||||
"eslint": "7.x",
|
||||
"husky": "7.x",
|
||||
"lint-staged": "11.x",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@blitzjs/server",
|
||||
"description": "Blitz.js server functionality",
|
||||
"version": "0.45.0-canary.0",
|
||||
"version": "0.45.4",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"test": "jest --passWithNoTests",
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0",
|
||||
"@blitzjs/installer": "0.45.4",
|
||||
"jscodeshift": "0.13.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0",
|
||||
"@blitzjs/installer": "0.45.4",
|
||||
"jscodeshift": "0.13.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0",
|
||||
"@blitzjs/installer": "0.45.4",
|
||||
"jscodeshift": "0.13.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0",
|
||||
"@blitzjs/installer": "0.45.4",
|
||||
"jscodeshift": "0.13.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0",
|
||||
"@blitzjs/installer": "0.45.4",
|
||||
"jscodeshift": "0.13.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0"
|
||||
"@blitzjs/installer": "0.45.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0"
|
||||
"@blitzjs/installer": "0.45.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0",
|
||||
"@blitzjs/installer": "0.45.4",
|
||||
"jscodeshift": "0.13.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0",
|
||||
"@blitzjs/installer": "0.45.4",
|
||||
"jscodeshift": "0.13.0",
|
||||
"uuid": "^8.3.1"
|
||||
},
|
||||
|
||||
@@ -23,6 +23,6 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0"
|
||||
"@blitzjs/installer": "0.45.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0",
|
||||
"@blitzjs/installer": "0.45.4",
|
||||
"jscodeshift": "0.13.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
12
recipes/next-ui/README.md
Normal file
12
recipes/next-ui/README.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# NextUi
|
||||
|
||||
Easily styling Blitz app using Next UI
|
||||
|
||||
# more information
|
||||
|
||||
- [Next UI](https://nextui.org)
|
||||
- [Github page](https://github.com/mochi-sann/blitz-app-with-Next-UI-app)
|
||||
|
||||
# contributors
|
||||
|
||||
- mochi-sann
|
||||
152
recipes/next-ui/index.ts
Normal file
152
recipes/next-ui/index.ts
Normal file
@@ -0,0 +1,152 @@
|
||||
import {addImport, paths, Program, RecipeBuilder} from "@blitzjs/installer"
|
||||
import type {NodePath} from "ast-types/lib/node-path"
|
||||
import j, {JSXIdentifier} from "jscodeshift"
|
||||
|
||||
// Copied from https://github.com/blitz-js/blitz/pull/805, let's add this to the @blitzjs/installer
|
||||
function wrapComponentWithChakraProvider(program: Program) {
|
||||
program
|
||||
.find(j.JSXElement)
|
||||
.filter(
|
||||
(path) =>
|
||||
path.parent?.parent?.parent?.value?.id?.name === "App" &&
|
||||
path.parent?.value.type === j.ReturnStatement.toString(),
|
||||
)
|
||||
.forEach((path: NodePath) => {
|
||||
const {node} = path
|
||||
path.replace(
|
||||
j.jsxElement(
|
||||
j.jsxOpeningElement(j.jsxIdentifier("NextUIProvider")),
|
||||
j.jsxClosingElement(j.jsxIdentifier("NextUIProvider")),
|
||||
[j.jsxText("\n"), node, j.jsxText("\n")],
|
||||
),
|
||||
)
|
||||
})
|
||||
return program
|
||||
}
|
||||
|
||||
function updateLabeledTextFieldWithInputComponent(program: Program) {
|
||||
program
|
||||
.find(j.TSInterfaceDeclaration)
|
||||
.find(j.TSExpressionWithTypeArguments)
|
||||
.forEach((path: j.ASTPath<j.TSExpressionWithTypeArguments>) => {
|
||||
path.replace(
|
||||
j.tsExpressionWithTypeArguments(
|
||||
j.identifier("ComponentPropsWithoutRef"),
|
||||
j.tsTypeParameterInstantiation([j.tsTypeQuery(j.identifier("Input"))]),
|
||||
),
|
||||
)
|
||||
})
|
||||
|
||||
return program
|
||||
}
|
||||
|
||||
function replaceInputWithChakraInput(program: Program) {
|
||||
program
|
||||
.find(j.JSXElement)
|
||||
.filter((path) => {
|
||||
const {node} = path
|
||||
const openingElementNameNode = node?.openingElement?.name as JSXIdentifier
|
||||
|
||||
return openingElementNameNode?.name === "input" && node?.openingElement?.selfClosing === true
|
||||
})
|
||||
.forEach((path) => {
|
||||
const {node} = path
|
||||
node.openingElement = j.jsxOpeningElement(
|
||||
j.jsxIdentifier("Input"),
|
||||
node.openingElement.attributes,
|
||||
node?.openingElement?.selfClosing,
|
||||
)
|
||||
})
|
||||
|
||||
return program
|
||||
}
|
||||
|
||||
function removeDefaultStyleElement(program: Program) {
|
||||
program
|
||||
.find(j.JSXElement)
|
||||
.filter((path) => {
|
||||
const {node} = path
|
||||
const openingElementNameNode = node?.openingElement?.name as JSXIdentifier
|
||||
// Assumes there's one style element at the point the user runs the recipe.
|
||||
return openingElementNameNode?.name === "style" && node?.openingElement?.selfClosing === false
|
||||
})
|
||||
.forEach((path) => {
|
||||
// Removes the node.
|
||||
path.replace()
|
||||
})
|
||||
|
||||
return program
|
||||
}
|
||||
|
||||
export default RecipeBuilder()
|
||||
.setName("Next UI")
|
||||
.setDescription(`This will install all necessary dependencies and configure Next UI for use.`)
|
||||
.setOwner("moyurusuto.mochi@gmail.com")
|
||||
.setRepoLink("https://github.com/blitz-js/blitz")
|
||||
.addAddDependenciesStep({
|
||||
stepId: "install",
|
||||
stepName: "Install Next UI",
|
||||
explanation: `Import the Next UI provider into _app, so it is accessible in the whole app`,
|
||||
packages: [
|
||||
{
|
||||
name: "@nextui-org/react",
|
||||
version: "latest",
|
||||
isDevDep: true,
|
||||
},
|
||||
],
|
||||
})
|
||||
.addTransformFilesStep({
|
||||
stepId: "importProviderAndReset",
|
||||
stepName: "Import NextUIProvider component",
|
||||
explanation: `Import the Next UI provider into _app, so it is accessible in the whole app`,
|
||||
singleFileSearch: paths.app(),
|
||||
transform(program) {
|
||||
const stylesImport = j.importDeclaration(
|
||||
[j.importSpecifier(j.identifier("NextUIProvider"))],
|
||||
j.literal("@nextui-org/react"),
|
||||
)
|
||||
|
||||
addImport(program, stylesImport)
|
||||
return wrapComponentWithChakraProvider(program)
|
||||
},
|
||||
})
|
||||
.addTransformFilesStep({
|
||||
stepId: "updateLabeledTextField",
|
||||
stepName: "Update the `LabeledTextField` with Next UI's `Input` component",
|
||||
explanation: `The LabeledTextField component uses Next UI's input component`,
|
||||
singleFileSearch: "app/core/components/LabeledTextField.tsx",
|
||||
transform(program) {
|
||||
// Add ComponentPropsWithoutRef import
|
||||
program.find(j.ImportDeclaration, {source: {value: "react"}}).forEach((path) => {
|
||||
let specifiers = path.value.specifiers || []
|
||||
if (
|
||||
!specifiers.some(
|
||||
(node) => (node as j.ImportSpecifier)?.imported?.name === "ComponentPropsWithoutRef",
|
||||
)
|
||||
) {
|
||||
specifiers.push(j.importSpecifier(j.identifier("ComponentPropsWithoutRef")))
|
||||
}
|
||||
})
|
||||
|
||||
const chakraInputImport = j.importDeclaration(
|
||||
[j.importSpecifier(j.identifier("Input"))],
|
||||
j.literal("@nextui-org/react"),
|
||||
)
|
||||
|
||||
addImport(program, chakraInputImport)
|
||||
|
||||
// Imperative steps to describe transformations
|
||||
|
||||
// 1. Update the type of `LabeledTextField`
|
||||
updateLabeledTextFieldWithInputComponent(program)
|
||||
|
||||
// 2. Remove the default <style jsx> styling
|
||||
removeDefaultStyleElement(program)
|
||||
|
||||
// 3. Replace `input` with `Next UI Ipnut`
|
||||
replaceInputWithChakraInput(program)
|
||||
|
||||
return program
|
||||
},
|
||||
})
|
||||
.build()
|
||||
33
recipes/next-ui/package.json
Normal file
33
recipes/next-ui/package.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"name": "@blitzjs/recipe-next-ui",
|
||||
"private": true,
|
||||
"version": "0.34.0-canary.0",
|
||||
"description": "The Blitz Recipe for installing Next UI",
|
||||
"main": "index.ts",
|
||||
"scripts": {
|
||||
"test": "echo \"No tests yet\""
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/blitz-js/blitz.git"
|
||||
},
|
||||
"keywords": [
|
||||
"blitz",
|
||||
"blitzjs",
|
||||
"next-ui"
|
||||
],
|
||||
"author": "mochi-sann <moyurusuto.mochi@gmail.com>",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/blitz-js/blitz/issues"
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.4",
|
||||
"jscodeshift": "0.13.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jscodeshift": "0.11.2",
|
||||
"ast-types": "0.14.2"
|
||||
}
|
||||
}
|
||||
@@ -23,6 +23,6 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0"
|
||||
"@blitzjs/installer": "0.45.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,6 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0"
|
||||
"@blitzjs/installer": "0.45.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0",
|
||||
"@blitzjs/installer": "0.45.4",
|
||||
"jscodeshift": "0.13.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -22,6 +22,6 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0"
|
||||
"@blitzjs/installer": "0.45.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0",
|
||||
"@blitzjs/installer": "0.45.4",
|
||||
"jscodeshift": "0.13.0",
|
||||
"uuid": "^8.3.1"
|
||||
},
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0",
|
||||
"@blitzjs/installer": "0.45.4",
|
||||
"jscodeshift": "0.13.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0",
|
||||
"@blitzjs/installer": "0.45.4",
|
||||
"jscodeshift": "0.13.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0",
|
||||
"@blitzjs/installer": "0.45.4",
|
||||
"jscodeshift": "0.13.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0",
|
||||
"@blitzjs/installer": "0.45.4",
|
||||
"jscodeshift": "0.13.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/blitz-js/blitz#readme",
|
||||
"dependencies": {
|
||||
"@blitzjs/installer": "0.45.0-canary.0",
|
||||
"@blitzjs/installer": "0.45.4",
|
||||
"jscodeshift": "0.13.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
Reference in New Issue
Block a user