1
0
mirror of synced 2026-02-03 18:01:02 -05:00

Compare commits

...

72 Commits

Author SHA1 Message Date
Blitz.js Bot
fa6e96731a (meta) updated @iojcde contributions 2022-07-25 08:36:58 -04:00
Blitz.js Bot
f59dfda878 (meta) added @iojcde as contributor 2022-07-22 10:43:55 -04:00
Blitz.js Bot
e15c62a8d8 (meta) added @SerekKiri as contributor 2022-07-20 02:12:31 -04:00
Blitz.js Bot
f97c123ddb (meta) updated @the-bayer contributions 2022-07-14 06:11:38 -04:00
Blitz.js Bot
7fd287f004 (meta) updated @Zeko369 contributions 2022-07-12 08:41:32 -04:00
Blitz.js Bot
f0bbdf561d (meta) added @Trancever as contributor 2022-07-11 05:35:13 -04:00
Brandon Bayer
a9c6bcc63f Update CODEOWNERS 2022-07-05 18:06:07 +02:00
Blitz.js Bot
e1fc695d24 (meta) updated @datner contributions 2022-06-30 05:05:37 -04:00
Blitz.js Bot
525e436b9d (meta) added @sergous as contributor 2022-06-20 07:19:40 -04:00
Blitz.js Bot
a98f972bef (meta) added @remlse as contributor 2022-06-20 06:50:14 -04:00
Blitz.js Bot
1c2fdfee37 (meta) added @datner as contributor 2022-06-19 12:13:48 -04:00
Blitz.js Bot
8102086400 (meta) added @jakedee as contributor 2022-06-19 08:49:58 -04:00
Blitz.js Bot
0366729a95 (meta) updated @andreasasprou contributions 2022-06-13 11:07:46 -04:00
Blitz.js Bot
352d2af366 (meta) added @iDavidB as contributor 2022-06-08 17:50:05 -04:00
Blitz.js Bot
9b8c4039f0 (meta) added @webdeb as contributor 2022-06-07 13:09:03 -04:00
Blitz.js Bot
262b647855 (meta) added @minho42 as contributor 2022-06-07 13:05:48 -04:00
Min ho Kim
03017046f7 Fix typos in docs (#3395)
(ignore)
2022-06-07 10:05:43 -07:00
Blitz.js Bot
28d2671ddb (meta) added @paulm17 as contributor 2022-06-07 13:02:32 -04:00
Blitz.js Bot
86da1612da (meta) added @rmassie as contributor 2022-06-07 12:59:17 -04:00
Blake Bayer
919465c9b6 Add try/catch in change password mutation (#3337)
* Revert "Update change password w/ try/catch"

This reverts commit 186532ef2d.

* Update changePassword.ts

* Update packages/generator/templates/app/app/auth/mutations/changePassword.ts

Co-authored-by: Aleksandra <alexsandra.sikora@gmail.com>

* Update changePassword.ts

* Apply suggestions from code review

Co-authored-by: Aleksandra <alexsandra.sikora@gmail.com>
2022-05-10 11:27:13 +02:00
Blitz.js Bot
b84ed74496 (meta) updated @ganeshmani contributions 2022-05-08 08:44:55 -04:00
Blitz.js Bot
dc86c78bd1 (meta) added @the-bayer as contributor 2022-04-29 08:31:27 -04:00
Blake Bayer
45b38cc836 Revert "Update change password w/ try/catch" (#3323)
This reverts commit 186532ef2d.
2022-04-29 14:31:23 +02:00
the-bayer
186532ef2d Update change password w/ try/catch 2022-04-27 11:30:25 -04:00
Blitz.js Bot
77858c5558 (meta) updated @dillonraphael contributions 2022-04-15 08:35:51 -04:00
Aleksandra
e9a98ffe3d bump recipe/example versions (ignore) 2022-04-12 12:46:49 +02:00
Aleksandra
2c06dd6f18 v0.45.4 2022-04-12 12:45:36 +02:00
Aleksandra
881d686233 Upgradereact and @types/react in new app templates, update types (#3282)
(newapp)
2022-04-12 12:38:49 +02:00
Blitz.js Bot
a7deaafbc7 (meta) updated @dillonraphael contributions 2022-04-07 12:46:42 -04:00
Blitz.js Bot
7c698f0b35 (meta) added @Caslus as contributor 2022-04-04 04:45:50 -04:00
Blitz.js Bot
09a8c94392 (meta) added @timfee as contributor 2022-04-04 04:36:59 -04:00
Tim Feeley
35b9ded76e Fix typo in recipe step name (#3265)
(ignore)
2022-04-04 10:36:54 +02:00
Blitz.js Bot
85c10b9d3f (meta) added @davidbarker as contributor 2022-04-04 04:20:49 -04:00
Blitz.js Bot
2675942c58 (meta) added @jscyo as contributor 2022-03-28 05:59:31 -04:00
Aleksandra
b3ad310f6f Add JDLT to sponsors list (#3226)
(meta)
2022-03-10 10:20:09 -05:00
Blitz.js Bot
d41385b592 (meta) added @numanaral as contributor 2022-03-06 14:37:25 -05:00
Husnul Jahneer
dfbab3919d Add @husnuljahneer as L1 Maintainer (#3142)
(meta)
2022-02-28 10:50:13 -05:00
Blitz.js Bot
e5c607164e (meta) added @eai04191 as contributor 2022-02-24 19:20:19 -05:00
John Vandivier
49d1e91a64 don't suggest faker.js in code comments (#3178)
(newapp)
2022-02-23 10:09:58 +01:00
Blitz.js Bot
19ea640705 (meta) added @Lokprakash-babu as contributor 2022-02-23 03:03:14 -05:00
Brandon Bayer
f2d814813f (newapp) change preview-email to just in time import so it doesn't need to be in production deps 2022-02-17 11:29:31 -05:00
dependabot[bot]
f99ebf5f37 Bump superjson from 1.7.5 to 1.8.1 in /nextjs (#3165)
Bumps [superjson](https://github.com/blitz-js/superjson) from 1.7.5 to 1.8.1.
- [Release notes](https://github.com/blitz-js/superjson/releases)
- [Commits](https://github.com/blitz-js/superjson/compare/v1.7.5...v1.8.1)

---
updated-dependencies:
- dependency-name: superjson
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-11 12:43:41 +01:00
Aleksandra
ef2c0cdd67 bump recipe/example versions (ignore) 2022-02-09 17:07:08 +01:00
Aleksandra
d658af7407 v0.45.3 2022-02-09 17:05:40 +01:00
Brandon Bayer
0f8f15f31c upgrade superjson (#3162)
(patch)
2022-02-09 10:51:50 -05:00
Brandon Bayer
600467035a fix blitz logging to respect FORCE_COLOR=0 (#3157)
(patch)
2022-02-09 12:40:12 +01:00
Aleksandra Sikora
d25aee1313 Bump @prisma/sdk in installer and cli packages (#3158)
(ignore)
2022-02-08 13:45:33 +01:00
dependabot[bot]
0cc2a3aab7 Bump node-fetch from 2.6.1 to 2.6.7 in /nextjs (#3156)
(ignore)
2022-02-08 11:09:14 +01:00
Mochi
75e6b9fb74 Add NextUI recipe (#3152)
(recipe)
2022-02-07 11:50:50 +01:00
Aleksandra Sikora
6e8a65fa7f Update sponsors list (#3153)
(ignore)
2022-01-28 17:01:24 +01:00
Blitz.js Bot
01dce6b09a (meta) added @ReykCS as contributor 2022-01-26 14:21:20 -05:00
Aleksandra Sikora
ceeed729c6 Remove outdated tests (#3141)
(ignore)
2022-01-24 13:16:40 +01:00
Blitz.js Bot
7f35af5bd2 (meta) added @husnuljahneer as contributor 2022-01-23 08:30:20 -05:00
Blitz.js Bot
c603195004 (meta) added @shellord as contributor 2022-01-21 05:45:44 -05:00
saheenshoukath
bac35e06c8 Add @shellord as L1 maintainer (#3140) 2022-01-21 11:45:39 +01:00
Aleksandra
7add9cad87 bump recipe/example versions (ignore) 2022-01-20 11:41:47 +01:00
Aleksandra
16dae9b081 v0.45.2 2022-01-20 11:40:16 +01:00
Brandon Bayer
9f52f36c18 Fix passport adapter secureProxy to always work regardless of request headers (#3135)
(patch)
2022-01-19 17:29:21 -05:00
Aleksandra
621d87fdb7 bump recipe/example versions (ignore) 2022-01-18 18:28:24 +01:00
Aleksandra
871e709076 v0.45.1 2022-01-18 18:27:00 +01:00
Brandon Bayer
1e3ae5d445 fix passport adapter to work behind cloudfront (#3132)
(patch)
2022-01-18 12:11:23 -05:00
Aleksandra Sikora
a344c1f89e Update Seedling Sponsors list (#3130)
(ignore)
2022-01-17 11:02:34 +01:00
Blitz.js Bot
ee742530d9 (meta) added @Nfinished as contributor 2022-01-10 07:17:38 -05:00
Adam Trager
f102f4c873 Fix useRedirectAuthenticatedSession is not a function (#3117)
(patch)
2022-01-10 13:17:32 +01:00
Aleksandra
eebeeee6b7 bump recipe/example versions (ignore) 2022-01-06 16:27:01 +01:00
Aleksandra
18842fd56f v0.45.0 2022-01-06 16:25:41 +01:00
Blitz.js Bot
ea1e75b355 (meta) added @ospfranco as contributor 2022-01-04 06:59:45 -05:00
Aleksandra Sikora
34ed51a0db Fix blitz g mutation creating a file with invalid name (#3104)
(patch)
2022-01-03 19:24:08 +01:00
Marcus Reinhardt
4ce4bb92bb Add addRunCommandStep to the recipe builder (#3090)
(recipes)
2022-01-03 17:00:05 +01:00
Blitz.js Bot
75ed86eafb (meta) added @maltekiessling as contributor 2022-01-01 15:57:06 -05:00
Blitz.js Bot
a4bcfb4737 (meta) added @dineshgadge as contributor 2021-12-29 13:05:08 -05:00
Dinesh Gadge
bfd3be403e Fix RedirectError not redirecting on the client (#3100)
(patch)
2021-12-29 19:05:03 +01:00
81 changed files with 1722 additions and 788 deletions

View File

@@ -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
View File

@@ -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

View File

@@ -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>

View File

@@ -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.

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -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)
}
},

View File

@@ -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",

View File

@@ -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++) {

View File

@@ -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",

View File

@@ -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++) {

View File

@@ -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)
}
},

View File

@@ -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",

View File

@@ -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++) {

View File

@@ -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",

View File

@@ -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

View File

@@ -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++) {

View File

@@ -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)
}
},

View File

@@ -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",

View File

@@ -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",

View File

@@ -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"

View File

@@ -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",

View File

@@ -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",

View File

@@ -1,5 +1,5 @@
{
"version": "0.45.0-canary.0",
"version": "0.45.4",
"packages": ["packages/*"],
"npmClient": "yarn",
"useWorkspaces": true,

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View 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}
/>
)

View File

@@ -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)
},

View File

@@ -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 {

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/env",
"version": "0.45.0-canary.0",
"version": "0.45.4",
"keywords": [
"react",
"next",

View File

@@ -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',

View File

@@ -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",

View File

@@ -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,

View File

@@ -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'
}

View File

@@ -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

View File

@@ -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)
}

View File

@@ -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', () => {

File diff suppressed because it is too large Load Diff

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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

View File

@@ -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({

View File

@@ -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>

View File

@@ -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++) {

View File

@@ -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)
}
},

View File

@@ -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": {

View File

@@ -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",

View File

@@ -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}

View File

@@ -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

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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": {

View File

@@ -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": {

View File

@@ -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": {

View File

@@ -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": {

View File

@@ -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": {

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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": {

View File

@@ -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"
},

View File

@@ -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"
}
}

View File

@@ -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
View 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
View 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()

View 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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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": {

View File

@@ -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"
}
}

View File

@@ -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"
},

View File

@@ -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": {

View File

@@ -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": {

View File

@@ -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": {

View File

@@ -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": {

View File

@@ -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": {

748
yarn.lock

File diff suppressed because it is too large Load Diff