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

Compare commits

...

1517 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
Brandon Bayer
bfd75229c1 bump recipe/example versions (ignore) 2021-12-24 12:54:12 -05:00
Brandon Bayer
91172b82d9 v0.45.0-canary.0 2021-12-24 12:52:42 -05:00
Blitz.js Bot
c9f416713a (meta) added @robertrisch as contributor 2021-12-23 09:24:26 -05:00
Blitz.js Bot
11eb4208e6 (meta) added @arpitdalal as contributor 2021-12-21 17:18:42 -05:00
Aleksandra Sikora
fbd387a30c Update sponsors list (#3089)
(ignore)
2021-12-21 17:44:56 +01:00
Blitz.js Bot
018e2405f2 (meta) added @c-ciobanu as contributor 2021-12-21 07:59:16 -05:00
Blitz.js Bot
c631f1ef15 (meta) added @sarahdayan as contributor 2021-12-20 12:21:38 -05:00
Sarah Dayan
3ce4f97de7 Update links to PostgreSQL guide (#3087)
(meta)
2021-12-20 18:21:33 +01:00
JuanM04
77ad2c02ce Update material-ui recipe — remove @mui/styles (#3076)
(recipe)
2021-12-20 15:19:51 +01:00
Aleksandra Sikora
ecf5a29e19 Support custom templates folder with blitz generate (#3068)
(minor)
2021-12-17 16:42:58 +01:00
Blitz.js Bot
ec8632a3e9 (meta) added @kreako as contributor 2021-12-16 09:11:53 -05:00
Blitz.js Bot
98f91e24c1 (meta) added @SofianeDjellouli as contributor 2021-12-14 05:56:59 -05:00
Blitz.js Bot
49c5a1e1be (meta) updated @zenhob contributions 2021-12-14 05:50:28 -05:00
Francesco Sardo
9a00412049 Fix inconsistent formatting in LoginForm component and Login page (#3063)
(newapp)
2021-12-13 16:48:04 +01:00
John Vandivier
03fd49bb29 Use free tier by default in Render recipe (#3060)
(recipe)
2021-12-13 12:41:13 +01:00
Brandon Bayer
8b607b9463 bump recipe/example versions (ignore) 2021-12-11 17:00:54 -05:00
Brandon Bayer
e3472171a5 v0.44.4 2021-12-11 16:59:28 -05:00
Aleksandra Sikora
5f1c6a4571 Move installer package to nextjs/packages (#3044)
(patch)
2021-12-10 13:26:54 +01:00
Mochi
d05f00c0a8 Update tailwindcss recipe to v3 (#3050)
(recipe)
2021-12-10 12:22:13 +01:00
Aleksandra Sikora
0715bb7a02 Load env vars for blitz new command - ignore cached variables (#3043)
(patch)
2021-12-09 19:30:49 +01:00
JuanM04
00d1ddff0b Set blitz version to latest in new apps templates (#3048)
(newapp)
2021-12-09 15:52:56 +01:00
Blitz.js Bot
0f99de91ae (meta) added @skotchpine as contributor 2021-12-08 13:18:08 -05:00
tyler
9cff223033 Load nested mutations and queries in blitz console (#3031)
(patch)
2021-12-08 19:18:02 +01:00
Aleksandra Sikora
1d6021dd36 Upgrade @mrleebo/prisma-ast version and fix breaking @db.Text (#3041)
(patch)
2021-12-08 18:20:04 +01:00
Aleksandra Sikora
c4df5d8d04 Remove nullish coalescing from post-install script (#3040)
(patch)
2021-12-08 16:25:02 +01:00
Brandon Bayer
9019f1cf27 bump recipe/example versions (ignore) 2021-12-06 18:19:46 -05:00
Brandon Bayer
d92b7efe00 v0.44.3 2021-12-06 18:18:25 -05:00
Brandon Bayer
daea45eeb2 relax some unnecessary type requirements for blitz.config.ts (#3036)
(patch)
2021-12-06 18:17:02 -05:00
Brandon Bayer
8dcc5ebe23 fix blitz build not loading production env by default (#3037)
(patch)
2021-12-06 18:16:41 -05:00
Brandon Bayer
d36138361d bump recipe/example versions (ignore) 2021-12-06 15:56:24 -05:00
Brandon Bayer
831b0d4bcd v0.44.2 2021-12-06 15:55:01 -05:00
Brandon Bayer
5d9fcd22be fix env file loading to default to development instead of production (#3033)
(patch)
2021-12-06 15:52:50 -05:00
Brandon Bayer
1c51ab403b fix so that blitz config env config values can be type string | undefined (#3034)
(patch)
2021-12-06 15:52:09 -05:00
Brandon Bayer
c3c9e89302 bump recipe/example versions (ignore) 2021-12-06 13:05:55 -05:00
Brandon Bayer
e842c9f224 v0.44.1 2021-12-06 13:04:26 -05:00
JuanM04
abeb0c5d14 Fix APP_ENV loading to not load all .env files (#3026)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2021-12-06 13:02:41 -05:00
Brandon Bayer
18d1a685a9 Fix windows incompatibility with nested dependency (#3030)
(patch)
2021-12-06 12:56:48 -05:00
Blitz.js Bot
9255050eee (meta) added @MukulKolpe as contributor 2021-12-06 12:20:37 -05:00
Mukul Kolpe
915f5fa479 Fix next_stdlib__WEBPACK_IMPORTED_MODULE_1__.connectMiddleware is not a function (#3024)
(patch)
2021-12-06 12:20:32 -05:00
Aleksandra Sikora
24dcac6978 Fix jest-preset syntax error (#3027)
(patch)
2021-12-06 11:50:04 -05:00
JuanM04
adef11ba8e Update default app blitz-env.d.ts 2021-12-05 19:45:18 -03:00
Blitz.js Bot
4233caa909 (meta) added @david-arteaga as contributor 2021-12-05 09:47:39 -05:00
Aleksandra
8f5cad91d4 bump recipe/example versions (ignore) 2021-12-03 22:55:11 +01:00
Aleksandra
ac5121beda v0.44.0 2021-12-03 22:53:40 +01:00
Aleksandra Sikora
5460fbb484 Move display package to nextjs fork (#2989)
(meta)
2021-12-03 16:46:55 -05:00
Aleksandra Sikora
ad71e15290 Make prefetching work with usePaginatedQuery and useInfiniteQuery (#3014)
(patch)
2021-12-03 20:54:40 +01:00
Aleksandra Sikora
4aba0d31f6 Load env variables based on APP_ENV or -e flag (#2878)
(minor)
2021-12-03 16:05:37 +01:00
Blitz.js Bot
19ad91709e (meta) added @divpreet as contributor 2021-12-03 08:23:32 -05:00
Blitz.js Bot
74efbad6d0 (meta) added @ajanth97 as contributor 2021-11-27 07:58:45 -05:00
Ilya
0fd6a4d5e3 Support RouteUrlObject as redirect.destination in GetServerSideProps/GetStaticProps (#2932)
(minor)
2021-11-24 14:12:47 +01:00
Blitz.js Bot
1c12da5495 (meta) added @davidchristie as contributor 2021-11-24 04:41:37 -05:00
Aleksandra Sikora
c4c90477c5 Upgrade react to 18-beta in new app templates (#2998)
(newapp)
2021-11-23 14:11:24 +01:00
dependabot[bot]
a9aaeec047 Bump tar from 2.2.2 to 4.4.18 in /nextjs (#2996)
(patch)
2021-11-22 13:33:28 +01:00
JuanM04
8420f6ddb8 Add "volta" settings to package.json and update node-version (#2994)
(meta)
2021-11-22 12:30:12 +01:00
Brandon Bayer
3a1ea75a55 fix missing BlitzConfig type (#2987)
(patch)
2021-11-19 18:11:28 +01:00
Blitz.js Bot
b23c2cdc36 (meta) added @noxify as contributor 2021-11-18 11:44:27 -05:00
Marcus Reinhardt
12c081b830 Add info about a required manual step to graphql-apollo-server recipe (#2905)
(recipe)
2021-11-18 17:44:21 +01:00
Aleksandra Sikora
11492dcfbd Upgrade typescript to 4.5 (#2973)
(newapp)
2021-11-18 15:50:43 +01:00
JuanM04
de874ca20e Fix lint warnings (#2968)
(meta)
2021-11-18 14:00:50 +01:00
Brandon Bayer
92ab9c3867 move blitz babel config into nextjs fork (#2903)
(patch)
2021-11-17 19:19:49 -05:00
Aleksandra
12c1b7331b bump recipe/example versions (ignore) 2021-11-17 17:29:35 +01:00
Aleksandra
c98788425d v0.43.0 2021-11-17 17:28:25 +01:00
Aleksandra Sikora
a279fb90af Update zod validators in new app template (#2971)
(newapp)
2021-11-17 13:06:48 +01:00
Aleksandra Sikora
4f868ad2ac Fix routes manifest location when using pnpm (#2963)
(patch)
2021-11-17 10:52:28 +01:00
Ilya
522da1a3d7 Add --file flag to blitz db seed command (#2962)
(minor)
2021-11-16 16:42:35 +01:00
JuanM04
e767f51182 Install recipes automatically (blitz install --yes) (#2954)
(minor)
2021-11-16 16:08:01 +01:00
JuanM04
3479686f44 Add vanilla-extract recipe (#2946)
(recipe)
2021-11-16 14:29:53 +01:00
Brandon Bayer
fafab00edc Move superjson integration from babel plugin into core (#2939)
(patch)
2021-11-15 22:19:33 -05:00
Aleksandra Sikora
fe7a3c3a85 Disable autoRun for jest extension by default (#2943)
(patch)
2021-11-15 13:44:51 +01:00
Aleksandra Sikora
252c9b11fe Add @damilolarandolph as L1 maintainer (#2953)
(meta)
2021-11-14 15:58:01 +01:00
Blitz.js Bot
9ddc85dbe3 (meta) added @rockmanvnx6 as contributor 2021-11-14 09:48:06 -05:00
JuanM04
ee07fc3b3f Unify recipes Program types and fix blitz install (#2952)
(patch)
2021-11-14 15:47:31 +01:00
JuanM04
18c6981958 @blitzjs/installer improvements (#2887) 2021-11-12 12:37:36 +01:00
Aleksandra Sikora
f85b0efc33 add meetkai as seedling sponsor (#2938)
(meta)
2021-11-11 18:28:21 +01:00
Blitz.js Bot
da8925ab51 (meta) added @coryhouse as contributor 2021-11-11 08:44:43 -05:00
Blitz.js Bot
23f85d6c27 (meta) added @danestves as contributor 2021-11-11 06:04:33 -05:00
Blitz.js Bot
58d566983a (meta) added @basilk76 as contributor 2021-11-10 12:56:35 -05:00
Aleksandra Sikora
6b59d21e2d Fix installing dependencies of styled-components recipe (#2934)
(recipe)
2021-11-10 14:15:57 +01:00
Blitz.js Bot
f2b2e5a414 (meta) added @5minpause as contributor 2021-11-10 07:37:47 -05:00
Blitz.js Bot
862e54b453 (meta) added @netwarex as contributor 2021-11-10 04:46:12 -05:00
Péter Nyári
32983cb454 Add Passenger recipe (#2890)
(recipe)
2021-11-10 10:46:06 +01:00
Blitz.js Bot
47c3c947ef (meta) added @NorfeldtAbtion as contributor 2021-11-09 14:13:41 -05:00
Blitz.js Bot
20e7c16237 (meta) updated @lovethebomb contributions 2021-11-08 12:16:32 -05:00
Blitz.js Bot
c512b7a29e (meta) added @lovethebomb as contributor 2021-11-08 11:53:04 -05:00
Lucas Heymès
5870251839 Add ability to set blitz logging type to json (#2888)
(patch)
2021-11-08 17:52:53 +01:00
Brandon Bayer
457015ae5b bump recipe/example versions (ignore) 2021-11-06 15:19:40 -04:00
Brandon Bayer
a19c480c19 v0.42.4 2021-11-06 15:18:19 -04:00
Brandon Bayer
2f397f0e99 v0.42.3 2021-11-06 14:57:41 -04:00
Brandon Bayer
c081599547 v0.42.2 2021-11-06 14:51:31 -04:00
Brandon Bayer
e3876b387e fix build TypeError: Cannot read property 'children' of undefined (#2924)
(patch)
2021-11-06 14:49:26 -04:00
Brandon Bayer
937e4061d6 bump recipe/example versions (ignore) 2021-11-06 13:15:12 -04:00
Brandon Bayer
3312b4316b v0.42.1 2021-11-06 13:14:15 -04:00
Brandon Bayer
6653f31b27 Fix build error: No QueryClient set (#2914)
(patch)
2021-11-06 13:09:47 -04:00
Blitz.js Bot
e109813b67 (meta) added @thisdotrob as contributor 2021-11-06 12:28:26 -04:00
Brandon Bayer
4384ce0514 (newapp) On login page, pass user to the onSuccess callback (#2919) 2021-11-05 17:32:51 -04:00
Blitz.js Bot
a1d8008cb5 (meta) added @chrisj-back2work as contributor 2021-11-05 13:42:51 -04:00
Blitz.js Bot
919e9f637d (meta) added @lucasvazq as contributor 2021-11-04 06:17:09 -04:00
Lucas Vazquez
d2f2e4b315 Show the error message from prisma generate when blitz codegen fails (#2891)
(patch)
2021-11-04 11:17:02 +01:00
Brandon Bayer
c91de5134e move Blitz eslint config into nextjs fork (#2902)
(meta)
2021-11-03 18:48:58 -04:00
Aleksandra
8fa479a991 bump recipe/example versions (ignore) 2021-11-03 16:37:05 +01:00
Aleksandra
6d93450ae0 v0.42.0 2021-11-03 16:35:08 +01:00
Brandon Bayer
c089980fca bump recipe/example versions (ignore) 2021-11-02 18:59:08 -04:00
Brandon Bayer
f4cf751b96 v0.41.2-canary.5 2021-11-02 18:58:02 -04:00
Brandon Bayer
46b8103b5f fix so middleware errors (like CSRFMissmatchError) don't crash the server (#2901)
(patch)
2021-11-02 18:08:20 -04:00
Brandon Bayer
9fc06a2279 update monorepo browserslist version (#2900)
(meta)
2021-11-02 16:51:24 -04:00
Aleksandra Sikora
731bf5451d Fix using HOCs in _app.js (#2897)
(patch)
2021-11-02 16:07:59 -04:00
Brandon Bayer
e660b7b89d update influxdb telemetry token
(ignore)
2021-11-02 15:23:18 -04:00
Blitz.js Bot
046587d025 (meta) added @devtombiz as contributor 2021-10-29 08:25:44 -04:00
Thomas Brenneur
2dd578a2db Add next-rosetta example (#2872)
(example)
2021-10-29 14:25:39 +02:00
Blitz.js Bot
afd6e3f914 (meta) added @dvnrsn as contributor 2021-10-28 08:06:35 -04:00
Devin Rasmussen
e183fb4afb Export MutateFunction type from blitz/react-query (#2882)
(patch)
2021-10-28 14:06:30 +02:00
Blitz.js Bot
aa008866cc (meta) added @cbejensen as contributor 2021-10-26 18:42:14 -04:00
Aleksandra Sikora
b388a50352 add prompt to blitz new to choose javascript or typescript (#2739) 2021-10-22 11:41:06 +02:00
Simon Knott
fa78180768 Update dehydrated state integration test for Map (#2649)
Co-authored-by: Cody George <cody.george@airtasker.com> (meta)
2021-10-21 18:15:51 -04:00
Blitz.js Bot
f8e9d75afd (meta) added @RobertBroersma as contributor 2021-10-21 12:01:38 -04:00
Aleksandra Sikora
797618e338 Fix blitz generate in javascript projects (#2859)
(patch)
2021-10-21 10:43:24 -04:00
Blitz.js Bot
52d569e47e (meta) added @cj as contributor 2021-10-21 06:45:11 -04:00
CJ Lazell
f85ae04953 Allow setting secureCookies in sessionMiddleware config (#2361)
(patch)
2021-10-21 12:45:05 +02:00
Brandon Bayer
2fc6c07133 bump recipe/example versions (ignore) 2021-10-20 19:33:34 -04:00
Brandon Bayer
feba2b6ea9 v0.41.2-canary.4 2021-10-20 19:32:17 -04:00
Brandon Bayer
51d91c3c9d Remove internal @blitzjs/config package and move @blitzjs/repl into core (meta) (#2860) 2021-10-20 19:30:59 -04:00
Brandon Bayer
a5d3d02275 bump recipe/example versions (ignore) 2021-10-20 18:43:00 -04:00
Brandon Bayer
5fcd1d5b23 v0.41.2-canary.3 2021-10-20 18:42:04 -04:00
Brandon Bayer
a808d3c120 fix broken route manifest in 0.41.2-canary.2 (#2870)
(patch)
2021-10-20 18:40:08 -04:00
Geoffrey
8fc8800088 Add support for async experimental.initServer() (#2798)
Co-authored-by: Brandon Bayer <b@bayer.ws> (minor)
2021-10-20 18:19:39 -04:00
Blitz.js Bot
4d1c997a56 (meta) added @vivek7405 as contributor 2021-10-20 18:13:56 -04:00
Vivek
90d96552be Add bulma recipe (recipe) (#2850)
Co-authored-by: Aleksandra Sikora <alexsandra.sikora@gmail.com>
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-10-20 18:13:51 -04:00
Blitz.js Bot
7c4e9c81a0 (meta) added @sitek94 as contributor 2021-10-20 15:26:41 -04:00
Blitz.js Bot
40a6c7d0aa (meta) added @camsloanftc as contributor 2021-10-20 15:12:00 -04:00
Brandon Bayer
60b9f444c0 pin react and react-dom versions in package.json (And I think fix the cannot find module react issue) (#2868)
(newapp)
2021-10-20 12:18:50 -04:00
Aleksandra Sikora
4d95e31013 Update seedling sponsors list in Readme (#2867)
(ignore)
2021-10-20 16:17:01 +02:00
Moyuru
eb4097be96 Update material-ui recipe, migrate from v4 to v5 (#2853)
(recipe)
2021-10-20 15:36:45 +02:00
Brandon Bayer
f1c000e8f1 bump recipe/example versions (ignore) 2021-10-19 18:25:08 -04:00
Brandon Bayer
13b7e6ab0b v0.41.2-canary.2 2021-10-19 18:23:49 -04:00
Brandon Bayer
6ac61768d9 Move internal @blitzjs/core package into nextjs fork core (meta) (#2857) 2021-10-19 18:22:14 -04:00
Brandon Bayer
f4f6fd91a9 bump recipe/example versions (ignore) 2021-10-19 18:11:16 -04:00
Brandon Bayer
8f653d9eda v0.41.2-canary.1 2021-10-19 18:09:09 -04:00
Brandon Bayer
291e8b904f v0.41.2-canary.0 2021-10-19 18:02:59 -04:00
Aleksandra Sikora
6f37571dab fix blitz generate --dry-run flag not being respected (#2858)
(patch)
2021-10-19 11:53:54 -04:00
JuanM04
4e6f82910b Update new apps dependencies, format files, improve readmes (#2849)
(newapp)
2021-10-19 11:57:58 +02:00
Blitz.js Bot
5fc4cbbdb2 (meta) updated @mochi-sann contributions 2021-10-19 05:23:21 -04:00
Aleksandra Sikora
dc05944074 Update L1 maintainers list in readme (#2856)
(ignore)
2021-10-18 16:50:39 +02:00
Blitz.js Bot
e2490b9528 (meta) added @mochi-sann as contributor 2021-10-18 07:13:05 -04:00
Moyuru
3c62425418 Allow user to select a recipe with blitz install command (#2828)
(minor)
2021-10-18 13:12:59 +02:00
Aleksandra Sikora
c29735fab8 add missing React import to LabeledTextField in fauna example (#2854)
(ignore)
2021-10-18 11:17:50 +02:00
Blitz.js Bot
8a5596f9b6 (meta) added @shawn-fetanat as contributor 2021-10-15 21:20:25 -04:00
JuanM04
1457ec8635 Add authenticated layout support with Layout.authenticate (#2825)
Co-authored-by: Brandon Bayer <b@bayer.ws> (minor)
2021-10-15 11:02:05 -04:00
Aleksandra Sikora
71be602fbd add a minimal app template (#2764)
(minor)
2021-10-15 13:05:55 +02:00
Blitz.js Bot
6a539a30ee (meta) added @p-siriphanthong as contributor 2021-10-15 06:23:49 -04:00
Punn Siriphanthong
df2c1dd6da Improve error message on a duplicate page name error (#2823)
(patch)
2021-10-15 12:23:43 +02:00
Aleksandra Sikora
3d17eae8b8 Add Cypress example (#2836) 2021-10-14 18:17:39 -04:00
Aleksandra
3db0f77463 bump recipe/example versions (ignore) 2021-10-13 17:10:21 +02:00
Aleksandra
93c03ea36e v0.41.1 2021-10-13 17:08:32 +02:00
Blitz.js Bot
fa7ac116f7 (meta) added @MuckHub as contributor 2021-10-12 17:17:20 -04:00
Piotrek Tomczewski
c2e69b5de8 Make blitz codegen generate prisma client if prisma is installed (#2830)
(minor)
2021-10-11 21:09:26 +02:00
JuanM04
f280035fa7 PR template update (#2833)
(ignore)
2021-10-11 18:49:38 +02:00
martinsaxa
48f762cb7a show an error if invalid model name is passed to blitz generate (#2802)
(patch)
2021-10-11 16:46:03 +02:00
Blitz.js Bot
f3f85b6831 (meta) added @maybebored as contributor 2021-10-11 08:39:31 -04:00
Mayuran
cfdfb69c45 add tsdoc comments for withRouter and useRouter functions (#2784)
(meta)
2021-10-11 14:39:26 +02:00
Blitz.js Bot
9e405aa8b8 (meta) added @Abduttayyeb as contributor 2021-10-08 06:19:31 -04:00
Abduttayyeb M.r
853254df2c Fix typo in rfc-docs/01-architecture.md file (#2824)
(ignore)
2021-10-08 12:19:26 +02:00
Blitz.js Bot
350a98da5f (meta) updated @namirsab contributions 2021-10-08 06:11:17 -04:00
Namir
3473cec6d4 Show an error if a reserved word is used for blitz generate's model name (#2813)
(patch)
2021-10-08 12:11:12 +02:00
Blitz.js Bot
baeefff47a (meta) updated @beerose contributions 2021-10-07 09:49:50 -04:00
Aleksandra Sikora
bdc560a1d4 Fix blitz new next steps message (#2818)
(patch)
2021-10-07 15:49:44 +02:00
Aleksandra Sikora
5b4413dd87 Prevent duplicated ComponentPropsWithoutRef import when installing chakra-ui (#2817)
(patch)
2021-10-07 15:17:33 +02:00
Abdullah Mzaien
cf448a801e Add missing information to stitches recipe README (#2812)
(meta)
2021-10-07 11:50:09 +02:00
Blitz.js Bot
c4f6f78dde (meta) added @scttcper as contributor 2021-10-06 18:34:14 -04:00
Blitz.js Bot
9e9c63d896 (meta) added @namirsab as contributor 2021-10-06 17:06:27 -04:00
Blitz.js Bot
e45822407f (meta) updated @Vandivier contributions 2021-10-06 11:49:09 -04:00
Aleksandra
ac4f9f3702 bump recipe/example versions (ignore) 2021-10-06 17:42:23 +02:00
Aleksandra
b6adb749ce v0.41.0 2021-10-06 17:40:56 +02:00
Blitz.js Bot
ea566b2c3a (meta) updated @g3offrey contributions 2021-10-06 07:04:45 -04:00
Geoffrey
87eefafb22 add a spinner during the blitz new version check (#2791)
(patch)

* add a spinner during the blitz new version check

* improve the ux on blitz new upgrade

* Apply suggestions from code review

Co-authored-by: Aleksandra Sikora <alexsandra.sikora@gmail.com>
2021-10-06 13:04:40 +02:00
Blitz.js Bot
6056ed85d9 (meta) added @Vandivier as contributor 2021-10-06 05:32:25 -04:00
John Vandivier
8fef7b7407 add support for shorthand uuid syntax in blitz generate (#2808)
(minor)
2021-10-06 11:32:20 +02:00
Blitz.js Bot
25cdbbbf53 (meta) added @9j as contributor 2021-10-05 12:14:33 -04:00
Bahk Chanhee
db2c28d014 Disable ink-spinner as a temporary measure (#2799)
(patch)

* fix: Disable ink-spinner as a temporary measure

* Update packages/installer/src/executors/add-dependency-executor.tsx

Co-authored-by: Aleksandra Sikora <alexsandra.sikora@gmail.com>
2021-10-05 18:14:28 +02:00
Blitz.js Bot
39e089bac2 (meta) updated @g3offrey contributions 2021-10-05 10:51:10 -04:00
Blitz.js Bot
17853ee542 (meta) updated @piotrski contributions 2021-10-05 10:44:18 -04:00
Piotrek Tomczewski
9dd420c313 Add README for theme-ui recipe (#2803)
(meta)
2021-10-05 16:44:13 +02:00
kimngan-bui
4d930541d9 Add README for reflexjs recipe (#2778)
(meta)
2021-10-05 11:01:09 +02:00
kimngan-bui
eaf4862915 Add README for render recipe (#2779)
(meta)
2021-10-05 11:00:25 +02:00
kimngan-bui
3bcfda462d Add README for secureheaders recipe (#2780)
(meta)
2021-10-05 10:59:34 +02:00
Blitz.js Bot
ef362299c6 (meta) added @kimngan-bui as contributor 2021-10-05 04:57:24 -04:00
kimngan-bui
d64cf5323a Add README for tailwind recipe (#2777)
(meta)
2021-10-05 10:57:19 +02:00
Blitz.js Bot
aa560d229e (meta) added @keevan as contributor 2021-10-04 05:40:56 -04:00
Kevin Pham
6ff9fd9196 Add README for styled-components recipe (#2776)
(meta)
2021-10-04 11:40:52 +02:00
Blitz.js Bot
99b5876c36 (meta) added @g3offrey as contributor 2021-10-04 05:38:08 -04:00
Geoffrey
62dc284abe display an error if loading a module fails in blitz console (#2792)
(patch)
2021-10-04 11:38:03 +02:00
Brandon Bayer
c0dc8f4d02 bump recipe/example versions (ignore) 2021-10-02 16:56:19 -04:00
Brandon Bayer
505c2cb9e6 v0.40.0 2021-10-02 16:55:18 -04:00
Brandon Bayer
5165bd1b20 bump recipe/example versions (ignore) 2021-10-02 16:44:47 -04:00
Brandon Bayer
86335620c1 v0.40.0-canary.10 2021-10-02 16:43:46 -04:00
JuanM04
e637a4908a Fix Yarn Berry gitignore for new apps (#2775)
(patch)
2021-10-02 16:32:26 -04:00
Abdullah Mzaien
e8874ff573 Add stitches recipe (#2773)
(recipe)
2021-10-02 16:31:50 -04:00
Brandon Bayer
2cc9f302da Fix ssr with auth pages failing on Vercel on canary release (#2787)
(patch)
2021-10-02 16:24:11 -04:00
Brandon Bayer
ad06a9f005 Fix failing session test (#2786)
(ignore)
2021-10-02 16:04:31 -04:00
Brandon Bayer
5105ed4650 Fix suspense/hydration bug (on canary) (#2785)
(patch)
2021-10-02 15:13:05 -04:00
Brandon Bayer
25782cd292 Fix CSRFTokenMissmatch error for anonymous sessions after significant time of inactivity (#2762)
(patch)
2021-10-02 12:28:46 -04:00
Blitz.js Bot
c28ecb6187 (meta) updated @johnmurphy01 contributions 2021-10-01 15:10:25 -04:00
John Murphy
5a46cc0438 Add README files to recipes (#2774) 2021-10-01 21:10:20 +02:00
Brandon Bayer
3040fd5d03 Fix CSRFTokenMismatchError on logout (#2761)
(patch)
2021-10-01 12:46:40 -04:00
John Murphy
fa0fa21444 add README to gh-action-yarn-postgres recipe (#2771)
(ignore)
2021-10-01 15:57:06 +02:00
John Murphy
61560a3e63 add README to gh-action-yarn-mariadb recipe (#2770)
(ignore)
2021-10-01 15:56:05 +02:00
John Murphy
2a6fab08a0 Add README to emotion recipe (#2769)
(ignore)
2021-10-01 15:55:18 +02:00
John Murphy
74e3776286 add README to bumbag ui recipe (#2768)
(ignore)
2021-10-01 15:52:34 +02:00
Aleksandra Sikora
99f146e54b jest-preset: handle static assets for next/image (#2763)
(patch)
2021-10-01 08:25:48 +02:00
Blitz.js Bot
f5829db520 (meta) added @ajwgeek as contributor 2021-09-30 19:44:53 -04:00
Blitz.js Bot
db611a1888 (meta) added @martinsaxa as contributor 2021-09-30 15:36:09 -04:00
martinsaxa
862b21ce9c passportAuth — improve error message if req.query.auth is undefined (#2766)
(patch)
2021-09-30 21:36:01 +02:00
Blitz.js Bot
3fb73272fa (meta) added @johnmurphy01 as contributor 2021-09-30 02:21:19 -04:00
John Murphy
b2f1a654af add README for Base Web recipe (#2760)
(ignore)
2021-09-30 08:21:13 +02:00
Mark Hughes
6b9fb74163 (recipe) add recipe for ghost cms (#2693)
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-09-29 11:25:52 -04:00
Blitz.js Bot
be4ac2ceb6 (meta) added @Fedeorlandau as contributor 2021-09-29 09:37:59 -04:00
Federico Joel Orlandau
810da1b490 Update fauna integration documentation (#2759)
(ignore)
2021-09-29 15:37:55 +02:00
Blitz.js Bot
41df687a96 (meta) added @davyengone as contributor 2021-09-29 08:35:02 -04:00
Aleksandra Sikora
805e2cf4b1 Retire @nitaking from L1 Maintainers (#2756)
(meta)
2021-09-28 19:03:33 +02:00
Aleksandra Sikora
06686a4c8b make jest-preset work in plain js projects (#2740)
(patch)
2021-09-27 12:12:38 +02:00
Blitz.js Bot
f79dad995a (meta) added @npverni as contributor 2021-09-24 17:30:04 -04:00
Blitz.js Bot
c95e0cc9c3 (meta) added @emilygracekz as contributor 2021-09-24 03:06:52 -04:00
Emily
db203e8a6f Update prisma 2.x to prisma 3.x (#2731)
(newapp)
2021-09-24 09:06:47 +02:00
Brandon Bayer
2ff4fcfe2f bump recipe/example versions (ignore) 2021-09-23 14:55:45 -04:00
Brandon Bayer
c5941bf703 v0.40.0-canary.9 2021-09-23 14:54:06 -04:00
Brandon Bayer
cd8914f285 Fix Internal Blitz Error: process.env.BLITZ_APP_DIR is not set (in canary release) (#2736)
(patch)
2021-09-23 14:49:26 -04:00
Blitz.js Bot
9f835f42f7 (meta) updated @s-r-x contributions 2021-09-23 13:37:27 -04:00
Ilya
dba9e4333d Add package manager prompt to blitz new (minor) (#2715)
* Add package manager prompt to blitz new

* make pnpm the default package manager in blitz new if pnpm is installed

* add yarn flag in blitz new

* add form flag in blitz new

* refactor the upgrade part in blitz new

* in blitz new when looking up for a globally installed blitz first try pnpm, then yarn, then npm

* replace yarn with pnpm install in commands/new test
2021-09-23 13:37:22 -04:00
Aleksandra Sikora
20eb67b27e remove tsc step from pre-push and ignore types.ts file in js apps (#2734)
(newapp)
2021-09-23 19:33:06 +02:00
Brandon Bayer
0bffe867b9 Fix broken vercel deployments on canary release (#2730)
(patch)
2021-09-23 13:25:49 -04:00
Aleksandra Sikora
fbc23ebd63 add @beerose as codeowner (#2735)
(meta)
2021-09-23 13:18:33 -04:00
Blitz.js Bot
a4975d10cf (meta) added @bcye as contributor 2021-09-23 04:58:08 -04:00
Bruce
f9e7d168b8 remove typescript bits from package.json generated for js projects (#1402)
(newapp)

Co-authored-by: Aleksandra <alexsandra.sikora@gmail.com>
2021-09-23 10:58:02 +02:00
Blitz.js Bot
554a91a2eb (meta) added @fuzzthink as contributor 2021-09-23 02:48:06 -04:00
John Leung
273f72076f update "Read the Documentation" link in Readme (#2733)
(meta)
2021-09-23 08:48:01 +02:00
Brandon Bayer
e704aca0ed add Aleksandra to core team as Lead Maintainer
(meta)
2021-09-22 11:08:22 -04:00
Blitz.js Bot
29b5b311cb (meta) added @isaka1022 as contributor 2021-09-21 11:38:21 -04:00
Amane
caea4d96f7 add sakura-ui recipe README (#2710) 2021-09-21 11:38:16 -04:00
Blitz.js Bot
89b0f96536 (meta) updated @kotx contributions 2021-09-11 08:40:53 -04:00
Brandon Bayer
ebf3f5d803 bump recipe/example versions (ignore) 2021-09-10 16:33:08 -04:00
Brandon Bayer
8b1008488f v0.40.0-canary.8 2021-09-10 16:29:40 -04:00
Blitz.js Bot
994cba856b (meta) added @kotx as contributor 2021-09-10 16:27:18 -04:00
Kot
1e92fe3b76 Fix internal middleware to use forwarded header to set protocol (#2705)
(patch)
2021-09-10 16:27:14 -04:00
Andreas Asprou
76c5a00eec Fix first build of custom server when customServer.hotReload: false (#2698)
* Fix custom-server hot reload on first run (patch)

We want to build custom-server, but only run watch if specified.

* Fix custom server - do not build twice in prd
2021-09-10 16:25:31 -04:00
Blitz.js Bot
927db971b9 (meta) added @andreasasprou as contributor 2021-09-10 16:08:52 -04:00
Andreas Asprou
93213387de Fix missing BLITZ_APP_DIR error when running a custom server (#2699)
BLITZ_APP_DIR is set to the appropriate values when running:

- Blitz routes CLI command
- next start
- next dev

But not when running a custom server. The above should fix it. (patch)
2021-09-10 16:08:48 -04:00
meehawk
4c00ddd741 fix(cli): blitz install to work with pnpm (#2702) 2021-09-08 18:46:01 -04:00
Brandon Bayer
b6cc8b1904 update fauna logo 2021-09-08 10:51:12 -04:00
depfu[bot]
15fe99ed56 🚨 [security] Update tar: 6.1.0 → 6.1.11 (patch) (#2687)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
2021-09-01 11:48:56 -04:00
Blitz.js Bot
5fe42c1204 (meta) added @maciejmyslinski as contributor 2021-08-30 19:26:12 -04:00
Brandon Bayer
285d76d3b2 git subrepo push nextjs
subrepo:
  subdir:   "nextjs"
  merged:   "a29d5fd3b"
upstream:
  origin:   "git@github.com:blitz-js/next.js.git"
  branch:   "canary"
  commit:   "a29d5fd3b"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596" (ignore)
2021-08-30 19:17:00 -04:00
Brandon Bayer
c261e5c987 update react-query to 3.21.1 (and fix an infinite loop bug) (#2684)
(patch)
2021-08-30 19:15:00 -04:00
Blitz.js Bot
0f027bd2c8 (meta) added @ratson as contributor 2021-08-30 19:14:36 -04:00
(◕ᴥ◕)
962b521ade (newapp) Use jest.config.ts for Typescript apps (#2663)
* Convert app template Jest config to TypeScript

* Add config for JS users

* Update packages/generator/templates/app/README.md

* Update packages/generator/templates/app/README.md

Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-08-30 19:14:32 -04:00
Brandon Bayer
3936039c38 bump recipe/example versions (ignore) 2021-08-27 16:53:18 -04:00
Brandon Bayer
5c219f1e60 v0.40.0-canary.7 2021-08-27 16:52:06 -04:00
Brandon Bayer
294bcd2de3 fix route manifest for mdx pages (#2678)
(patch)
2021-08-27 16:50:11 -04:00
Brandon Bayer
a131cf8502 bump recipe/example versions (ignore) 2021-08-27 15:17:21 -04:00
Brandon Bayer
961c73b23c v0.40.0-canary.6 2021-08-27 15:16:08 -04:00
Brandon Bayer
8c5a67cd28 git subrepo push nextjs
subrepo:
  subdir:   "nextjs"
  merged:   "1fde8e923"
upstream:
  origin:   "git@github.com:blitz-js/next.js.git"
  branch:   "canary"
  commit:   "1fde8e923"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596" (ignore)
2021-08-27 15:14:31 -04:00
Brandon Bayer
6be7bc48a2 Upgrade internal Typescript version and potentially improve TS perf (patch) (#2669)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-08-27 15:14:06 -04:00
Brandon Bayer
5a8ee866ba (newapp) Few improvements to LabeledTextField (#2677) 2021-08-27 15:08:18 -04:00
Brandon Bayer
4320589461 Fix usage with pnpm (#2673)
(patch)
2021-08-27 12:01:48 -04:00
Brandon Bayer
05f6a09ae1 fix missing BlitzScript.getInlineScriptSource in canary release (#2676)
(patch)
2021-08-27 12:01:12 -04:00
Daniel Bannert
723904bdf5 (recipe) removed unused htmlescape import in secureheaders recipe (#2675)
Co-authored-by: danielb <daniel.bannert@limango.de>
2021-08-27 11:22:36 -04:00
Brandon Bayer
83bcd441b0 add Boostry as bronze sponsor
(meta)
2021-08-27 09:51:29 -04:00
Roshan Manuel
ee97985859 Use parseAsync by default and add argument to parse sync to common zod validations (#2616)
* don't throw an error if checkYarn is null or checkYarn.stdout is null or undefined

* make sure to check if this version is less than the latest version

* fix forgotpassword test template, sync auth example tests

* revert to ensure monorepo tests work

* revert to original password and index tests

* remove merge reference

* fix merge issue

* Quirrel recipe: start > dev, double quote command

* add Suspense boundary

* Update packages/generator/templates/app/app/pages/_app.tsx

* send "blitz.js" in x-powered-by header

* Update test for powered-by-header

Considered making the test check to see if anything at all was present, but not needed for our use case right now

* Update test to check for x-powered-by

* update favicon to be orange in new blitz apps

* Support both NEXT_PUBLIC_ and BLITZ_PUBLIC_ 

Make webpack take environment variables prefixed with either NEXT_PUBLIC_ and BLITZ_PUBLIC_ to the frontends environemtn variables

* Revert "Support both NEXT_PUBLIC_ and BLITZ_PUBLIC_ "

This reverts commit 9760bcb70d.

* define parser type, add argument to resolver zod

* Add tests for argument, no value

* add ability to parse async, and tests

* Fix lint issue

* use fn overloads, return promise conditionally

* Update packages/core/src/server/resolver.ts

* fix linter issue

Co-authored-by: Roshan Manuel <Roshan,manuel@angelic-group.com>
Co-authored-by: Brandon Bayer <b@bayer.ws>

(major)
2021-08-25 11:54:23 -04:00
Brandon Bayer
8d98843573 (recipe) fix secureheaders recipe 2021-08-25 11:38:46 -04:00
Brandon Bayer
5441e59ac1 git subrepo push nextjs
subrepo:
  subdir:   "nextjs"
  merged:   "0cad51126"
upstream:
  origin:   "git@github.com:blitz-js/next.js.git"
  branch:   "canary"
  commit:   "0cad51126"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596" (ignore)
2021-08-24 19:24:03 -04:00
Brandon Bayer
af11aafd46 bump recipe/example versions (ignore) 2021-08-24 19:14:30 -04:00
Brandon Bayer
25fafd92f4 v0.40.0-canary.5 2021-08-24 19:13:23 -04:00
Brandon Bayer
e49da74a53 Fix <Link> not working correctly with i18n and basepath (#2668)
(patch)
2021-08-24 19:02:42 -04:00
Brandon Bayer
827bcf3afe 🎉 Remove custom blitz compiler - all custom features now in core framework! (#2662)
(minor)
2021-08-24 18:52:32 -04:00
Ilya
46b40881bc Fix useQuery hooks to not cache data during SSR (#2666)
(patch)
2021-08-23 12:28:42 -04:00
JuanM04
ff1572b37a Added BLITZ_TELEMETRY_DISABLED env variable (#2664)
(patch)
2021-08-23 12:16:49 -04:00
Blitz.js Bot
5cf84a699b (meta) added @mwcampbell as contributor 2021-08-22 12:56:30 -04:00
Brandon Bayer
1ed6dd1d39 bump recipe/example versions (ignore) 2021-08-20 09:55:25 -04:00
Brandon Bayer
c99b1fc9db v0.40.0-canary.4 2021-08-20 09:54:16 -04:00
Brandon Bayer
18b3f32abb Fix No matching version found for eslint-config-next
(patch)
2021-08-20 09:51:26 -04:00
Andreas Bollig
f9889367a6 Fix serialization of RedirectError (#2659)
Co-authored-by: Jeremy Liberman <jeremy@jeremyliberman.com> (patch)
2021-08-19 16:53:49 -04:00
Blitz.js Bot
2b2c9f1040 (meta) added @damilolarandolph as contributor 2021-08-19 16:48:17 -04:00
Blitz.js Bot
a8f5db494d (meta) added @hashimwarren as contributor 2021-08-19 16:47:28 -04:00
Brandon Bayer
468d03b51e bump recipe/example versions (ignore) 2021-08-19 10:15:03 -04:00
Brandon Bayer
f1c458fe12 v0.40.0-canary.3 2021-08-19 10:13:20 -04:00
Brandon Bayer
f434845f53 fix publish
(ignore)
2021-08-19 10:09:27 -04:00
Brandon Bayer
8e7d397965 v0.40.0-canary.2 2021-08-19 10:02:34 -04:00
Brandon Bayer
15de5ff1ab git subrepo push --force nextjs
subrepo:
  subdir:   "nextjs"
  merged:   "b76e72a2b"
upstream:
  origin:   "git@github.com:blitz-js/next.js.git"
  branch:   "canary"
  commit:   "b76e72a2b"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596" (ignore)
2021-08-19 09:56:56 -04:00
Brandon Bayer
cefb5c18ce Upgrade next.js to 11.1.0 (#2656)
(minor)
2021-08-18 22:32:39 -04:00
Andreas Bollig
99f3f83335 Fix RedirectError incorrectly failing Cypress tests (#2655)
(patch)
2021-08-18 17:39:20 -04:00
Brandon Bayer
fb41714083 bump recipe/example versions (ignore) 2021-08-17 19:53:40 -04:00
Brandon Bayer
18a8d7cdd9 v0.40.0-canary.1 2021-08-17 19:51:01 -04:00
Brandon Bayer
3e267be382 fix nextjs build 2021-08-17 19:30:44 -04:00
Brandon Bayer
b7dadba616 git subrepo push nextjs
subrepo:
  subdir:   "nextjs"
  merged:   "08cae3bd0"
upstream:
  origin:   "git@github.com:blitz-js/next.js.git"
  branch:   "canary"
  commit:   "08cae3bd0"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"
2021-08-17 11:07:40 -04:00
Brandon Bayer
aa85d1d47e bump recipe/example versions (ignore) 2021-08-16 18:59:27 -04:00
Brandon Bayer
44197a760c v0.40.0-canary.0 2021-08-16 18:58:06 -04:00
Brandon Bayer
f6354d2dd5 Next.js Fork Migration: Move query/mutation support into nextjs core (#2516)
(major)
2021-08-16 18:56:28 -04:00
Brandon Bayer
c9c995eafb bump recipe/example versions (ignore) 2021-08-13 12:31:43 -05:00
Brandon Bayer
1956acf36c v0.39.0 2021-08-13 12:30:25 -05:00
Blitz.js Bot
a6c83905cc (meta) updated @s-r-x contributions 2021-08-13 12:12:39 -04:00
Blitz.js Bot
0e62c1a5cc (meta) added @s-r-x as contributor 2021-08-13 12:10:27 -04:00
Ilya
36c85a7dcd Add support for Page.redirectAuthenticatedTo to be a function with access to session (#2634)
(minor)
2021-08-13 12:10:22 -04:00
bravo-kernel
595b2946c9 Fix indentation of json on blitz generate edit pages (#2652)
(patch)
2021-08-13 11:27:00 -04:00
Blitz.js Bot
4b9b6743c8 (meta) updated @prisis contributions 2021-08-13 11:15:32 -04:00
Cody G
4edc560f08 Fix dehydrateState does not apply server side props (#2617)
Co-authored-by: Simon Knott <info@simonknott.de> (patch)
2021-08-11 11:22:49 -04:00
Blitz.js Bot
4c33580a9e (meta) added @ravindranrahul as contributor 2021-08-10 10:02:37 -04:00
Rahul Ravindran
991b026bec Throw error if two pages have the same name (important for Routes to be accurate) (#2606)
(patch)
2021-08-10 10:02:32 -04:00
meehawk
b6816b2ece fix occasional ENOENT error during blitz recipe install (#2638)
(patch)
2021-08-10 10:01:04 -04:00
Blitz.js Bot
de8dd85ea1 (meta) added @meehawk as contributor 2021-08-09 17:20:16 -04:00
meehawk
99ebcda9ec Fix case where blitz new prints an error but continues creating app (#2637)
(patch)
2021-08-09 17:20:11 -04:00
Blitz.js Bot
d898b1f794 (meta) added @kenkuan as contributor 2021-08-05 16:11:04 -04:00
Ken Kuan
f62b3b871d Fix a bug when just 1 level deep inside yarn workspace (#2599)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2021-08-05 16:10:59 -04:00
Blitz.js Bot
4527cfc0e4 (meta) added @m5r as contributor 2021-08-04 16:06:53 -04:00
Blitz.js Bot
9d9e2e698d (meta) updated @Talor-A contributions 2021-08-03 12:35:18 -04:00
Brandon Bayer
a28216d067 bump recipe/example versions (ignore) 2021-07-31 09:35:30 -04:00
Brandon Bayer
1417154323 v0.39.0-canary.0 2021-07-31 09:34:16 -04:00
Blitz.js Bot
4376a25a81 (meta) updated @beerose contributions 2021-07-29 16:52:46 -04:00
Blitz.js Bot
355caccb84 (meta) added @zenhob as contributor 2021-07-29 14:59:42 -04:00
Zack Hobson
13571b437b (patch) Fix bug when no dependencies are defined in app package.json (#2607) 2021-07-29 14:59:38 -04:00
Blitz.js Bot
ae608412b1 (meta) updated @doncicuto contributions 2021-07-29 14:54:23 -04:00
Blitz.js Bot
d1b7e2b151 (meta) added @doncicuto as contributor 2021-07-29 14:51:35 -04:00
Miguel Cabrerizo
1d9948c59a Add ability to access req and res objects in blitz passport implementation (#2576)
(major)
2021-07-29 14:51:30 -04:00
Roshan Manuel
c3686f0c3e Add support for BLITZ_PUBLIC_ environment variables (NEXT_PUBLIC_ will continue to work) (#2611)
Co-authored-by: Roshan Manuel <Roshan,manuel@angelic-group.com>
Co-authored-by: Brandon Bayer <b@bayer.ws> (minor)
2021-07-29 14:50:26 -04:00
Blitz.js Bot
8c195a20f6 (meta) added @sam3d as contributor 2021-07-29 11:21:21 -04:00
Sam Holmes
aeb2a389ea Fix duplicate image types (requires adding line to global.d.ts) (#2597)
(patch)
2021-07-29 11:21:17 -04:00
Blitz.js Bot
c5ea23513d (meta) added @bravo-kernel as contributor 2021-07-29 11:16:43 -04:00
bravo-kernel
80c497dd5f (newapp) Fix image warning in index page (#2593) 2021-07-29 11:16:16 -04:00
Roshan Manuel
9afc07b12b Update favicon for new apps to be orange version of the blitz logo (#2602) 2021-07-28 15:37:14 -03:00
Brandon Bayer
6adf7c02d4 add GraphCMS as sponsor (meta) 2021-07-23 17:42:58 -04:00
Blitz.js Bot
334a771c86 (meta) added @rabbihossain as contributor 2021-07-22 11:30:33 -04:00
Brandon Bayer
8a88d91a73 bump recipe/example versions (ignore) 2021-07-21 18:37:31 -04:00
Brandon Bayer
8231668286 v0.38.6 2021-07-21 18:36:21 -04:00
Roshan Manuel
00cc05f9ae Set x-powered-by header to Blitz.js (#2586)
Co-authored-by: Roshan Manuel <Roshan,manuel@angelic-group.com>
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2021-07-21 18:34:34 -04:00
Nima Shoghi
7b2eeffc46 Fix useQuery types to support "select" prop (#2581)
(patch)
2021-07-21 18:33:49 -04:00
Blitz.js Bot
e799b08847 (meta) added @muyiwaolu as contributor 2021-07-16 18:55:56 -04:00
Muyiwa Olu
04fcf6316e Chakra-UI recipe updates the LabeledTextField with Chakra's native components (#2564)
(recipe)
2021-07-16 18:55:50 -04:00
Blitz.js Bot
0a3b71c4c1 (meta) added @medihack as contributor 2021-07-15 11:30:30 -04:00
Abu Uzayr
7d76f0ba5d Retire @malkomalko from L1 Maintainers (#2571)
(meta)
2021-07-14 16:48:21 -04:00
Brandon Bayer
107905ce39 Fix validateZodSchema bug: undefined is not an object (evaluating 'e[n]._errors[0]') (#2572)
(patch)
2021-07-14 16:48:02 -04:00
JuanM04
fee52d26c7 Removed React Bricks from the sponsors list 2021-07-14 13:24:18 -03:00
Blitz.js Bot
5e354c7ce1 (meta) added @msichterman as contributor 2021-07-11 11:13:51 -04:00
Blitz.js Bot
83ce0bdee0 (meta) added @anothernode as contributor 2021-07-10 10:49:41 -04:00
Brandon Bayer
3993a513ed bump recipe/example versions (ignore) 2021-07-08 17:48:22 -04:00
Brandon Bayer
3f901abbf0 v0.38.5 2021-07-08 17:47:06 -04:00
Brandon Bayer
4144f7841d Fix intermittent CSRFTokenMismatchError (anticsrf cooking being set to undefined) (#2561)
(patch)
2021-07-08 17:45:55 -04:00
Brandon Bayer
2e057cc107 bump recipe/example versions (ignore) 2021-07-07 19:42:09 -04:00
Brandon Bayer
5f2b5ac7fd v0.38.4 2021-07-07 19:40:51 -04:00
Brandon Bayer
2ca414097a Fix false "Found a change in blitz.config.js" message (#2559)
(patch)
2021-07-07 19:38:55 -04:00
Brandon Bayer
aef27ff9ec Fix blitz dev not working on Windows and add more Windows CI tests (#2554)
(patch)
2021-07-07 18:54:24 -04:00
Blitz.js Bot
43f9cc2fc8 (meta) added @ricardo-rp as contributor 2021-07-06 15:34:18 -04:00
Abu Uzayr
7b4dbda691 Remove @robdrosenberg from L2 Maintainers (#2553) 2021-07-06 09:42:41 -03:00
Abu Uzayr
4e8d1144c8 Add @abuuzayr as L1 maintainer (#2549)
(meta)
2021-07-05 18:55:38 -04:00
Brandon Bayer
8a4fdd9afe bump recipe/example versions (ignore) 2021-07-05 18:20:47 -04:00
Brandon Bayer
012fce30bb v0.38.3 2021-07-05 18:19:25 -04:00
Brandon Bayer
47db0c0252 (newapp) Remove <Suspense> from _app.js because it causes buggy redirect behavior (#2548) 2021-07-05 17:05:31 -04:00
Brandon Bayer
0448535ef0 Add test for Page.redirectAuthenticatedTo (#2531)
(meta)
2021-07-05 16:21:00 -04:00
Brandon Bayer
0df6aef3a3 fix broken api routes in canary release (#2545)
(patch)
2021-07-05 12:50:56 -04:00
Brandon Bayer
5ba2989592 fix cli npm build
(ignore)
2021-07-05 12:45:24 -04:00
Blitz.js Bot
9240d86ed6 (meta) added @esemeniuc as contributor 2021-07-05 12:09:51 -04:00
Eric Semeniuc
27e0dacdaf Route manifest replace nbsp with normal space (#2482)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2021-07-05 12:09:46 -04:00
Brandon Bayer
8dc1cd3ca8 Fix CSRF error when using session.$setPublicData (#2541)
(patch)
2021-07-05 11:03:16 -04:00
Brandon Bayer
413bc01676 bump recipe/example versions (ignore) 2021-06-24 21:11:02 -06:00
Brandon Bayer
7c025e9bd7 v0.38.3-canary.1 2021-06-24 21:09:13 -06:00
Brandon Bayer
24e51c7ae5 Next.js Fork Migration: Move blitz.config.(js|ts) support into nextjs core (patch) (#2532) 2021-06-24 23:06:55 -04:00
Brandon Bayer
b2f84f1224 bump recipe/example versions (ignore) 2021-06-24 11:40:33 -06:00
Brandon Bayer
8df18f24ad v0.38.3-canary.0 2021-06-24 11:39:25 -06:00
Brandon Bayer
d480d84e46 Move multiple pages folders support plus pages+api sibling into nextjs core (#2502)
(patch)
2021-06-24 13:37:34 -04:00
Brandon Bayer
f0a9fbeb14 bump recipe/example versions (ignore) 2021-06-24 10:00:19 -06:00
Brandon Bayer
fe8179b595 v0.38.2 2021-06-24 09:59:06 -06:00
Brandon Bayer
6eaed7a3b2 tweak internal tsconfig
(ignore)
2021-06-24 09:57:59 -06:00
Brandon Bayer
69e97017b1 Fix built in errors like RedirectError and AuthenticationError to not log as "uncaught" in browser console (#2522)
(patch)
2021-06-24 11:45:58 -04:00
Brandon Bayer
1aa2d79ef4 git subrepo push --force nextjs
subrepo:
  subdir:   "nextjs"
  merged:   "4be32b7a5"
upstream:
  origin:   "git@github.com:blitz-js/next.js.git"
  branch:   "canary"
  commit:   "4be32b7a5"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"
2021-06-23 18:54:24 -06:00
Brandon Bayer
194a3720ce build script (ignore) 2021-06-23 18:52:11 -06:00
Brandon Bayer
e21b22d672 git subrepo push nextjs
subrepo:
  subdir:   "nextjs"
  merged:   "018261ad9"
upstream:
  origin:   "git@github.com:blitz-js/next.js.git"
  branch:   "canary"
  commit:   "018261ad9"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"
2021-06-23 18:48:33 -06:00
Brandon Bayer
b634fe9587 Upgrade to Next.js 11.0.1 (#2526)
(patch)
2021-06-23 20:34:58 -04:00
t.kuriyama
9b35fcd018 Fix blitz db seed to print stack traces for any errors (#2528)
(patch)
2021-06-23 19:49:36 -04:00
Simon Knott
d16ed02a50 Fix prefetched dehydrated state to support Dates, Maps, etc (patch) (#2512)
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-06-21 13:23:26 -04:00
Blitz.js Bot
bdec5cffbf (meta) updated @Cristy94 contributions 2021-06-21 13:17:37 -04:00
Buleandra Cristian
be430e093d Update userTrack logo (sponsor) (#2517)
(meta)
2021-06-21 13:17:32 -04:00
Brandon Bayer
3deb0045f4 bump recipe/example versions (ignore) 2021-06-19 17:28:04 -06:00
Brandon Bayer
c19e71624e v0.38.1 2021-06-19 17:25:42 -06:00
Blitz.js Bot
b6fcba1c01 (meta) added @benjakugler96 as contributor 2021-06-19 18:11:54 -04:00
Benja Kugler
dbdb6a4199 Fix browser error when using prisma.$use() (#2514)
Co-authored-by: benjamin.kugler <benjamin.kugler@elliemae.com> (patch)
2021-06-19 18:11:49 -04:00
Brandon Bayer
c151b3571e fix lint warning, unused path in generated api routes (patch) (#2513) 2021-06-19 15:20:55 -04:00
Blitz.js Bot
6198025ce5 (meta) added @prisis as contributor 2021-06-19 14:19:34 -04:00
Daniel Bannert
c9dba04f56 Fix so that npm scripts don't run on blitz install recipes (#2498)
Co-authored-by: danielb <daniel.bannert@limango.de> (patch)
2021-06-19 14:19:29 -04:00
Blitz.js Bot
a2c6c9ce23 (meta) updated @ntgussoni contributions 2021-06-19 14:01:48 -04:00
Nicolas Torres
b09c188113 Add support for custom messages and icons in recipes (#2510)
Adds ability to customize the success message icon in recipes (patch)

Co-authored-by: Nicolas <ntorres.dev@gmail.com>
2021-06-19 14:01:22 -04:00
Dustin Bachrach
cdd71af1cf Fix blitz generate to regenerate the Routes manifest (#2504)
(patch)
2021-06-19 13:58:55 -04:00
Brandon Bayer
54647d0054 fix validateZodSchema() to pass if schema undefined (#2511)
(patch)
2021-06-19 13:57:47 -04:00
Blitz.js Bot
1e39604ae1 (meta) added @igeligel as contributor 2021-06-18 12:22:31 -04:00
Dustin Bachrach
2f890b72ca Fix blitz generate /new page does not use Routes (#2501)
(patch)
2021-06-18 12:03:42 -04:00
Brandon Bayer
2a9125def5 bump recipe/example versions (ignore) 2021-06-17 09:32:09 -04:00
Brandon Bayer
2111ca6fae v0.38.0 2021-06-17 09:30:01 -04:00
Brandon Bayer
a640b1112f fix build
(ignore)
2021-06-16 19:33:31 -04:00
Brandon Bayer
0243df5b6a fix formatZodError to work with arrays
(fix)
2021-06-16 19:29:58 -04:00
Brandon Bayer
4256f48fa6 add formatZodError() utility (#2494)
(minor)
2021-06-16 18:30:12 -04:00
Brandon Bayer
1c256c9c11 (newapp) Upgrade react@alpha react-dom@alpha 2021-06-16 18:02:02 -04:00
Brandon Bayer
e392a37985 fix a couple next.config.js string
(ignore)
2021-06-16 16:53:50 -04:00
Brandon Bayer
e2b6dd2779 git subrepo push --force nextjs
subrepo:
  subdir:   "nextjs"
  merged:   "8d1a527b8"
upstream:
  origin:   "git@github.com:blitz-js/next.js.git"
  branch:   "canary"
  commit:   "8d1a527b8"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"
2021-06-16 16:19:29 -04:00
Brandon Bayer
e4e3e757bc remove all nextjs/examples (meta) 2021-06-16 16:17:23 -04:00
Brandon Bayer
18438fb45c Upgrade to Next.js 11 (#2489)
(minor)
2021-06-16 16:11:23 -04:00
Blitz.js Bot
b80cf675b6 (meta) added @deini as contributor 2021-06-15 21:41:38 -04:00
Brandon Bayer
4db0f32156 improve sync script (ignore) 2021-06-15 11:57:25 -04:00
Brandon Bayer
a63e234ca4 git subrepo push nextjs
subrepo:
  subdir:   "nextjs"
  merged:   "3fafd4eeb"
upstream:
  origin:   "git@github.com:blitz-js/next.js.git"
  branch:   "canary"
  commit:   "3fafd4eeb"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"
2021-06-15 11:55:42 -04:00
Blitz.js Bot
5f2bf3ae55 (meta) added @ashikka as contributor 2021-06-15 11:53:58 -04:00
Ashikka Gupta
da39eca564 Change all user facing references of next.js to blitz.js (#2438)
* fix: Change all user facing references of next.js to blitz.js

* fix: fixed instances of next.js in unit test files

* fix: fixed instances of next.js in integration test files

* fix: next.js regex in test integration 9

* fixes

* fix

* fix a test

* fix dynamicrouting test

* more test fix

* bump

Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2021-06-15 11:53:53 -04:00
Mina Abadir
9fc358b0df Fix bug with <Image> and SSR for configured domains (#2474)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2021-06-15 11:09:20 -04:00
Blitz.js Bot
6e7111397f (meta) updated @dbachrach contributions 2021-06-15 07:04:08 -04:00
Blitz.js Bot
fc66d61f0c (meta) added @dbachrach as contributor 2021-06-14 22:09:28 -04:00
Dustin Bachrach
026d3d84a1 Fix edit page generated by blitz generate to not have buggy behavior (#2487)
(patch)
2021-06-14 22:09:24 -04:00
Brandon Bayer
bd43af1ba5 more fix CI
(ignore)
2021-06-14 21:33:21 -04:00
Brandon Bayer
86be2c122e fix CI by upgrading browserslist (#2488)
* fix CI by upgrading browserslist

* fix (ignore)
2021-06-14 20:07:46 -04:00
Brandon Bayer
e2a54b5904 fix Page.authenticate = {redirect: '/login'} not working correctly on logout AND add RedirectError (patch) (#2483) 2021-06-14 12:08:56 -04:00
Blitz.js Bot
2c3afcf407 (meta) updated @lksnmnn contributions 2021-06-14 11:41:05 -04:00
Lukas Neumann
f478f83e9d Add setPublicDataForUser() — useful for updating the role of another user (#2473)
Co-authored-by: Lukas Neumann <l.neumann@layer9.berlin>
Co-authored-by: Brandon Bayer <b@bayer.ws> (minor)
2021-06-14 11:41:00 -04:00
Brandon Bayer
4e9968a2db Add <ErrorBoundary> component (major) (#2480) 2021-06-11 17:20:50 -04:00
Blitz.js Bot
5d0998ab84 (meta) added @lksnmnn as contributor 2021-06-11 15:00:20 -04:00
Blitz.js Bot
b3f1598212 (meta) updated @swinner2 contributions 2021-06-11 14:49:31 -04:00
Brandon Bayer
503ec19c66 fix broken vercel deployments (patch) (#2479) 2021-06-11 14:35:49 -04:00
Blitz.js Bot
f20d7cf8ec (meta) updated @swinner2 contributions 2021-06-11 14:31:31 -04:00
Sean Winner
81118cd6a0 Add validateZodSchema() API for better form errors (#2441)
Co-authored-by: Brandon Bayer <b@bayer.ws> (minor)
2021-06-11 14:31:26 -04:00
Brandon Bayer
768562945e Rename DISABLE_CSRF_PROTECTION to DANGEROUSLY_DISABLE_CSRF_PROTECTION (patch) 2021-06-11 11:24:40 -04:00
Brandon Bayer
cac31cd1e6 fix pages to never render if Page.authenticate=true and logged out (patch) (#2476) 2021-06-10 17:35:57 -04:00
Brandon Bayer
3138fc5f6e fix GH actions to cancel existing actions on new push (meta) 2021-06-10 16:14:02 -04:00
Blitz.js Bot
2fa862ebf8 (meta) added @dangreaves as contributor 2021-06-10 12:32:36 -04:00
Dan Greaves
218bc15bd3 fix BlitzConfig type to allow extra fields (patch) (#2471) 2021-06-10 12:32:32 -04:00
Blitz.js Bot
be9f70850c (meta) added @kivi as contributor 2021-06-10 12:25:17 -04:00
kivi
ef6a6dbcc7 (newapp) move dev dependencies to devDependencies in package.json (better for Docker) (#2475) 2021-06-10 12:25:12 -04:00
Brandon Bayer
afa6792b66 bump recipe/example versions (ignore) 2021-06-08 14:32:26 -04:00
Brandon Bayer
7d5f437c7b v0.37.0 2021-06-08 14:31:05 -04:00
Brandon Bayer
a81f4518ae fix postinstall
(ignore)
2021-06-08 14:25:36 -04:00
Brandon Bayer
1407ddd7ad Fix one part of pnp issues (patch) (#2464) 2021-06-08 14:22:36 -04:00
Brandon Bayer
a510bd079b Fix webpack 5 support (Webpack 5 now used by default) (patch) (#2453)
Co-authored-by: Kristoffer K. <merceyz@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-06-08 13:31:52 -04:00
Blitz.js Bot
ff85cf1c17 (meta) updated @mabadir contributions 2021-06-08 13:03:39 -04:00
Mina Abadir
1ef378bff0 Fix to not build custom server during blitz start (#2408)
(patch)
2021-06-08 13:03:34 -04:00
Blitz.js Bot
22a845e13a (meta) added @garnerp as contributor 2021-06-08 11:57:50 -04:00
Brandon Bayer
8eb1509b9a Fix auth & middleware not working on Vercel (No longer need the path.resolve workaround) (patch) (#2463) 2021-06-07 20:26:59 -04:00
Brandon Bayer
c46decbbe7 (newapp) Update Prisma and React dependencies (#2462) 2021-06-07 15:59:09 -04:00
Blitz.js Bot
577206a404 (meta) updated @frankiesardo contributions 2021-06-07 15:12:15 -04:00
Francesco Sardo
8b245bef9a Fix Routes manifest for pages with parent & child relationships (patch) (#2424)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-06-07 15:12:09 -04:00
Blitz.js Bot
f2d41eff35 (meta) updated @markhughes contributions 2021-06-04 15:49:08 -04:00
Blitz.js Bot
f8ce548f4a (meta) added @sebastianhoitz as contributor 2021-06-04 14:11:52 -04:00
Sebastian Hoitz
d8aeb6b18f Fix CSRF 401 errors for HEAD requests (patch) (#2443) 2021-06-04 14:11:48 -04:00
Mark Hughes
f1de531124 Add ability to disable custom server hot reloading (#2447)
(minor)
2021-06-04 14:11:23 -04:00
Blitz.js Bot
9c54361cd6 (meta) added @max-programming as contributor 2021-06-04 14:08:53 -04:00
Max Programming
ee939ac7b8 Remove unneeded cd message during blitz install in some cases (#2451)
(patch)
2021-06-04 14:08:50 -04:00
Jeremy Liberman
3cf7d399cd Fix Prisma @@map in Enums break the model generator (#2445)
(patch)
2021-06-04 14:07:04 -04:00
Brandon Bayer
e4b788321b bump recipe/example versions (ignore) 2021-06-02 13:22:30 -04:00
Brandon Bayer
59272f7334 v0.36.4 2021-06-02 13:21:09 -04:00
Brandon Bayer
3416e097d8 Add helpful error when trying blitz export with blitz auth (patch) (#2435) 2021-06-02 13:11:22 -04:00
Brandon Bayer
49e7abbdfe add couple missing dependencies to @blitzjs/cli package (patch) (#2439) 2021-06-02 13:09:51 -04:00
Blitz.js Bot
a00f162bca (meta) added @swinner2 as contributor 2021-06-01 17:25:53 -04:00
Sean Winner
31498e2d46 Fix so blitz new always generates valid cookiePrefix (#2427)
Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> (patch)
2021-06-01 17:25:49 -04:00
Blitz.js Bot
6b463fcdd1 (meta) added @AntoineGuestin as contributor 2021-06-01 16:05:35 -04:00
Antoine G
e1785f97a9 add debug to blitz package (#2426)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-06-01 20:05:30 +00:00
Brandon Bayer
d4dc932bc3 remove CI from canary branch
(meta)
2021-06-01 15:33:03 -04:00
Brandon Bayer
750ba2e429 add to nextjs fork instructions
(ignore)
2021-06-01 14:43:00 -04:00
Brandon Bayer
a4e4cb2f64 git subrepo push --force nextjs
subrepo:
  subdir:   "nextjs"
  merged:   "9d5938e8f"
upstream:
  origin:   "git@github.com:blitz-js/next.js.git"
  branch:   "canary"
  commit:   "9d5938e8f"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"
2021-06-01 14:41:43 -04:00
Brandon Bayer
c5b461c641 fix nextjs subrepo
(ignore)
2021-06-01 10:26:46 -04:00
Brandon Bayer
174bf32c84 remove nextjs experimental react github action
(ignore)
2021-06-01 10:22:24 -04:00
Blitz.js Bot
cb432b6276 (meta) added @ormarek as contributor 2021-05-29 20:17:25 -04:00
Brandon Bayer
1ff0f00715 bump recipe/example versions (ignore) 2021-05-29 18:48:21 -04:00
Brandon Bayer
a3cf482e8f v0.36.3 2021-05-29 18:47:06 -04:00
Brandon Bayer
684b3f34c8 Fix broken Vercel deployments from version 0.35+ (patch) (#2419) 2021-05-29 18:45:14 -04:00
Brandon Bayer
f547f311f7 Fix third-party recipes not working (patch) (#2418) 2021-05-29 18:44:51 -04:00
Brandon Bayer
e7dc1b8352 Fix caught authentication errors showing as uncaught in Firefox (patch) (#2417) 2021-05-29 18:18:18 -04:00
Brandon Bayer
8fb8608e49 (newapp) Fix zod bug on /reset-password page
closes: #2414
2021-05-29 17:23:05 -04:00
Brandon Bayer
63e200e173 bump recipe/example versions (ignore) 2021-05-28 17:16:00 -04:00
Brandon Bayer
53bb153df8 v0.36.2 2021-05-28 17:14:14 -04:00
Brandon Bayer
3727385cd6 yet another fix
(ignore)
2021-05-28 17:11:44 -04:00
Brandon Bayer
1de36fd8dd v0.36.1 2021-05-28 17:10:05 -04:00
Brandon Bayer
5e2dafe519 another build fix
(ignore)
2021-05-28 17:07:12 -04:00
Brandon Bayer
8f08f38d80 fix build (ignore) 2021-05-28 17:06:02 -04:00
Brandon Bayer
61b8c95be8 v0.36.0 2021-05-28 17:03:39 -04:00
Brandon Bayer
a429013360 fix inability to install recipes for npm users (patch) (#2404) 2021-05-28 17:01:38 -04:00
Brandon Bayer
01c609be9e Add BlitzConfig type and add it to newapp template (#2411)
(minor)
2021-05-28 17:01:04 -04:00
Brandon Bayer
7e333955aa Upgrade nextjs to 10.2.3 (#2409)
(patch)
2021-05-28 16:18:58 -04:00
Brandon Bayer
0bfa5fdb7a add cross-spawn to blitz package (#2410)
(ignore)
2021-05-28 16:18:41 -04:00
JuanM04
27336d423a Upgrade templates to work with Zod v3 (#2375)
(minor)
2021-05-28 16:16:47 -04:00
Brandon Bayer
fa82ac913f git subrepo push nextjs
subrepo:
  subdir:   "nextjs"
  merged:   "17f3f0f88"
upstream:
  origin:   "git@github.com:blitz-js/next.js.git"
  branch:   "canary"
  commit:   "17f3f0f88"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"
2021-05-28 15:08:01 -04:00
Blitz.js Bot
65405b6f43 (meta) added @timbooker as contributor 2021-05-28 12:35:36 -04:00
Tim
ada67b5aed Fix queries & mutations to work with trailing slash config (patch) (#2392)
* Added trailingslash support for API endpoints.

* Accidentally RM'd actual condition it was meant to be based upon.

* simplify integration test

Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-05-28 16:35:31 +00:00
Blitz.js Bot
3dcc885186 (meta) added @guoqqqi as contributor 2021-05-28 11:12:22 -04:00
guoqqqi
0ce552c90e add contributor over time graph to CONTRIBUTOR_STATS (#2397)
(meta)
2021-05-28 11:12:17 -04:00
Mark Hughes
ec3930ca46 add support for nonce and crossOrigin in BlitzScript (#2377)
(minor)
2021-05-28 11:11:25 -04:00
Brandon Bayer
e3a5420cea Upgrade react-query and Fix CancelledError when clicking Logout (patch) (#2406) 2021-05-27 18:41:55 -04:00
Brandon Bayer
4156368b75 fix bug: cannot find module next/constants (patch) (#2402)
* fix bug of cannot find module `next/constants` (patch)

* fix

* fix

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-05-27 20:45:47 +00:00
Brandon Bayer
632df97342 bump recipe/example versions (ignore) 2021-05-26 17:39:24 -04:00
Brandon Bayer
eae332b0c7 v0.35.2 2021-05-26 17:38:14 -04:00
Brandon Bayer
7fdd07e598 (newapp) Fix typescript issue in forgotPassword.test.ts
closes: #2378
2021-05-26 17:34:50 -04:00
Blitz.js Bot
a328b6c19c (meta) updated @mabadir contributions 2021-05-26 17:30:25 -04:00
Mina Abadir
7e22f61079 Add Mina as L1 maintainer (#2391)
(meta)
2021-05-26 17:30:20 -04:00
Brandon Bayer
719d867eea remove debug log from cli (patch) 2021-05-26 17:29:23 -04:00
Brandon Bayer
3501f29521 bump recipe/example versions (ignore) 2021-05-26 17:15:57 -04:00
Brandon Bayer
d86b885897 v0.35.1 2021-05-26 16:14:40 -05:00
Blitz.js Bot
2302786e60 (meta) added @chronark as contributor 2021-05-26 06:50:25 -04:00
Brandon Bayer
0f4c2fb226 Only build blitz config when needed and Fix blitz.config.js not found error (patch) (#2389)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-05-25 16:00:21 -04:00
Blitz.js Bot
1e29525ef0 (meta) added @nimashoghi as contributor 2021-05-25 14:01:35 -04:00
Nima Shoghi
4a9776c94e Fixed blitz compile bug when noPropertyAccessFromIndexSignature is true (#2385)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-05-25 18:01:30 +00:00
Blitz.js Bot
ac67dc05e4 (meta) added @benbender as contributor 2021-05-25 11:57:49 -04:00
Benjamin Bender
662065380b Fix Regression on Tailwind Recipe purging in production (#2383)
Fix Regression on Tailwind Recipe for css-purging in production (originally fixed in #930, broken since #2304)
2021-05-25 11:57:45 -04:00
Blitz.js Bot
059e75ae08 (meta) added @Dipeshwagle as contributor 2021-05-25 11:41:03 -04:00
Dipesh Wagle
684f74bf6f Fix HEAD requests 'Cannot read property '$authorize' of undefined' (#2364)
(patch)
2021-05-25 11:40:58 -04:00
Brandon Bayer
573ffa7d34 disable the react@next cron workflow
(ignore)
2021-05-24 09:59:52 -05:00
Blitz.js Bot
e22a44ba77 (meta) added @enemycnt as contributor 2021-05-21 18:37:51 -04:00
Simon Knott
cea66f9f1b Allow passing Route Manifest result to Page.authenticate.redirectTo (#2359)
(patch)
2021-05-19 10:56:34 -04:00
Blitz.js Bot
2e05dec219 (meta) added @frankiesardo as contributor 2021-05-19 10:45:35 -04:00
Brandon Bayer
df2f83092a bump recipe/example versions (ignore) 2021-05-17 18:46:59 -04:00
Brandon Bayer
782a71026e v0.35.0 2021-05-17 18:45:44 -04:00
Blitz.js Bot
62fb61fa56 (meta) added @mabadir as contributor 2021-05-17 18:41:01 -04:00
Mina Abadir
af9df4cda4 Use cookie prefix from config.blitz.js instead of package.json name field (#2311)
Co-authored-by: Brandon Bayer <b@bayer.ws> (major)
2021-05-17 18:40:55 -04:00
Simon Knott
a535b7f458 Allow using Route Manifest for Page.redirectAuthenticatedTo (#2243)
(minor)
2021-05-17 18:29:36 -04:00
Simon Knott
79ca87ef71 Fix Routes.X is not a function when inside a monorepo
(patch)
2021-05-17 17:57:10 -04:00
Blitz.js Bot
1034b0189a (meta) added @Patil2099 as contributor 2021-05-17 17:18:32 -04:00
Blitz.js Bot
3ca262d5e3 (meta) added @swiftgaruda as contributor 2021-05-16 18:43:52 -04:00
Blitz.js Bot
b5d7095408 (meta) added @fernvilla as contributor 2021-05-14 11:21:52 -04:00
Fernando Villasenor
8ff005f9e6 Default dependencies parameter to empty object when undefined - fixes #2339 (#2340) 2021-05-14 15:21:47 +00:00
JuanM04
830e92e956 Added userTrack image to assets 2021-05-12 08:27:43 -03:00
Blitz.js Bot
f6ee4b4753 (meta) added @craigglennie as contributor 2021-05-11 06:28:17 -04:00
Brandon Bayer
6e9e787500 bump recipe/example versions (ignore) 2021-05-10 18:42:47 -04:00
Brandon Bayer
37f3c951d8 v0.35.0-canary.6 2021-05-10 18:41:39 -04:00
Brandon Bayer
c9be82c5f8 add ability to increase bodyParser size for queries & mutations (#2328)
(minor)
2021-05-10 18:40:13 -04:00
Brandon Bayer
e67291fa11 fix flaky cypress test
(ignore)
2021-05-10 18:39:05 -04:00
Brandon Bayer
93f7b8f981 fix incorrect csrf warning log
(ignore)
2021-05-10 18:39:05 -04:00
Brandon Bayer
0595a951b3 fix to not compile blitz.config.js if it is using tsconfig-paths/register (#2327)
(patch)
2021-05-10 18:14:11 -04:00
Brandon Bayer
0ec39efc3b fix custom server not being detected (#2326)
(patch)
2021-05-10 17:56:24 -04:00
Brandon Bayer
971013ae32 (newapp) move all devDependencies to regular dependencies (#2325) 2021-05-10 17:27:50 -04:00
Joe Edelman
d0a7e23231 allow useQuery to run during SSR or SSG (#1940)
Co-authored-by: Jeremy Liberman <jeremy@jeremyliberman.com>
Co-authored-by: Jeremy Liberman <mrleebo@msn.com> (minor)
2021-05-10 16:38:09 -04:00
Simon Knott
cf428bb563 Deserialize SuperJSON-ed pageProps before passing to dehydratedState (#2281)
Co-authored-by: Jeremy Liberman <mrleebo@msn.com>
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2021-05-10 16:31:11 -04:00
Blitz.js Bot
2ff44aa3e5 (meta) added @acornellier as contributor 2021-05-10 15:50:00 -04:00
acornellier
d3fcd285ff fix useInfiniteQuery return type when suspense is disabled (#2312)
(patch)
2021-05-10 15:49:56 -04:00
Blitz.js Bot
b6d173acc3 (meta) added @Hardik3296 as contributor 2021-05-10 15:43:15 -04:00
Blitz.js Bot
630b04f932 (meta) added @meepdeew as contributor 2021-05-09 08:42:37 -04:00
Blitz.js Bot
1c023dc85d (meta) updated @abuuzayr contributions 2021-05-06 11:16:00 -04:00
Brandon Bayer
2df4323df7 fix tailwind recipe
(ignore)
2021-05-06 10:58:51 -04:00
Blitz.js Bot
57ea77ea05 (meta) added @adblanc as contributor 2021-05-05 17:39:21 -04:00
Blanc Adrien
4201cdd3c8 Add helpful message when request is missing the anti-csrf header (patch) (#2113)
Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: Mina Abadir <mina@abadir.email>
2021-05-05 17:39:16 -04:00
Brandon Bayer
2d487820ae improve recipe install log message
(patch)
2021-05-05 15:49:15 -04:00
Brandon Bayer
ba1643f3b0 bump recipe/example versions (ignore) 2021-05-05 15:47:21 -04:00
Brandon Bayer
162a0a48d2 v0.35.0-canary.5 2021-05-05 15:46:09 -04:00
Blitz.js Bot
4e20f06099 (meta) added @Anjianto as contributor 2021-05-05 15:44:49 -04:00
Anjianto
ce2c092b51 Adding JIT mode for Tailwind recipe (#2304)
(recipe)
2021-05-05 15:44:45 -04:00
Brandon Bayer
e44bafb101 fix can't install recipes (#2307)
(patch)
2021-05-05 15:17:55 -04:00
Brandon Bayer
16d04901d4 bump recipe/example versions (ignore) 2021-05-04 16:43:09 -04:00
Brandon Bayer
6b995be962 v0.35.0-canary.4 2021-05-04 16:41:45 -04:00
Brandon Bayer
72b9b09aba Fix inability to create new app from canary AND fix Cannot find module 'react-dom' error (#2296)
(patch)
2021-05-04 15:18:53 -04:00
Brandon Bayer
95ef4d0cdb fix recipe
(patch)
2021-05-04 13:22:37 -04:00
Blitz.js Bot
faa6add473 (meta) added @agustif as contributor 2021-05-04 12:48:28 -04:00
Agusti Fernandez
55ab9ac6fc Adds bumbag recipe (#2298) 2021-05-04 12:48:23 -04:00
Brandon Bayer
aa121eb818 Fix inability to install recipe (#2297)
* remove react dep from installer

* fix flake (patch)
2021-05-03 20:33:29 -04:00
Blitz.js Bot
92b1d72c88 (meta) added @kirakik as contributor 2021-05-03 18:38:21 -04:00
Kenza Iraki
09194d1b89 Fix optional catch-all handling in routes codegen (#2290)
Co-authored-by: Kenza Iraki <kirakik@gmail.com> (patch)
2021-05-03 18:38:17 -04:00
Blitz.js Bot
0e479e4e21 (meta) updated @ericvicenti contributions 2021-05-03 17:37:54 -04:00
Eric Vicenti
3bc114949b (newapp) Update TypeScript Default Config: Safety for indexAccess (#2291) 2021-05-03 17:37:50 -04:00
Vytenis
ada8e2d425 (newapp) Update global.d.ts to reference types from nextjs (#1995)
* Update types.d.ts

Just use reference to nextjs typings. It is already includes such things as `module.scss` and more

* Update packages/generator/templates/app/types.d.ts

Co-authored-by: Brandon Bayer <b@bayer.ws>

Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-04-30 17:30:09 -04:00
Blitz.js Bot
0a37ea4de8 (meta) added @dawnofmidnight as contributor 2021-04-30 11:17:10 -04:00
Brandon Bayer
bd803f7c24 bump recipe/example versions (ignore) 2021-04-29 18:40:08 -04:00
Brandon Bayer
ea2137b928 v0.35.0-canary.3 2021-04-29 18:39:02 -04:00
Brandon Bayer
fe483be831 git subrepo push nextjs
subrepo:
  subdir:   "nextjs"
  merged:   "f485e5670"
upstream:
  origin:   "git@github.com:blitz-js/next.js.git"
  branch:   "canary"
  commit:   "f485e5670"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"
2021-04-29 18:36:20 -04:00
Brandon Bayer
9e96eaf6e7 Update next.js to 10.2.0 (#2285)
(minor)
2021-04-29 18:35:45 -04:00
Brandon Bayer
b08084cf9c git subrepo push --force nextjs
subrepo:
  subdir:   "nextjs"
  merged:   "fc094e6cb"
upstream:
  origin:   "git@github.com:blitz-js/next.js.git"
  branch:   "canary"
  commit:   "fc094e6cb"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"
2021-04-29 16:05:17 -04:00
Brandon Bayer
0086a1f2fc Add support for blitz.config.ts (#2283)
(minor)
2021-04-29 15:32:42 -04:00
Jeremy Liberman
4bb6ded00c Fix generators not support string ids (#2267)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2021-04-28 17:43:21 -04:00
Roshan Manuel
1d8f69df7e (newapp) Add a <Suspense> boundary to _app.tsx (#2277)
Co-authored-by: Roshan Manuel <Roshan,manuel@angelic-group.com>
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-04-27 17:24:06 -04:00
Jeremy Liberman
bece1d51b5 For building Recipes: New schema.prisma transform utilities (#2169)
Co-authored-by: Brandon Bayer <b@bayer.ws> (minor)
2021-04-27 17:08:19 -04:00
Blitz.js Bot
de70e1af00 (meta) updated @MrLeebo contributions 2021-04-27 16:59:53 -04:00
Blitz.js Bot
7cf85e2ec6 (meta) updated @mubaidr contributions 2021-04-27 16:59:01 -04:00
Brandon Bayer
aa26279fff bump recipe/example versions (ignore) 2021-04-27 15:50:49 -04:00
Brandon Bayer
b6b27166fb v0.35.0-canary.2 2021-04-27 15:49:25 -04:00
Brandon Bayer
6eb96a3190 bump recipe/example versions (ignore) 2021-04-27 15:46:50 -04:00
Brandon Bayer
03d3bef907 v0.35.0-canary.1 2021-04-26 15:11:45 -04:00
Blitz.js Bot
afd4e596d2 (meta) added @lumaxis as contributor 2021-04-26 15:08:34 -04:00
Lukas Spieß
de7361233e Fix formatting inconsistency in sponsors tables (#2275)
(meta)
2021-04-26 15:08:29 -04:00
Blitz.js Bot
a4b9005df3 (meta) added @mlabate as contributor 2021-04-25 14:00:24 -04:00
Blitz.js Bot
fa264b8d8c (meta) added @silicontwin as contributor 2021-04-24 18:00:35 -04:00
Nick Warren
e9e26653f3 Set Prettier as default formatter for VS Code users (#2266)
(newapp)
2021-04-24 18:00:31 -04:00
Blitz.js Bot
b007405648 (meta) added @mubaidr as contributor 2021-04-24 16:50:12 -04:00
Muhammad Ubaid Raza
92f769d344 Enable proxy support for cli/install (#2264)
Co-authored-by: Brandon Bayer <b@bayer.ws> (feat)
2021-04-24 16:50:07 -04:00
Brandon Bayer
b896a3c3e1 bump recipe/example versions (ignore) 2021-04-23 16:11:05 -04:00
Brandon Bayer
08afd85e7b v0.35.0-canary.0 2021-04-21 17:45:15 -04:00
Brandon Bayer
adcb08eb8f Add experimental.initServer hook for running code on server start (#2256)
* Add experimental.initServer hook for running code on server start

* fix ci (minor)
2021-04-21 16:17:20 -04:00
Brandon Bayer
6eeefcadb4 Add Typescript & esmodule support and hot reloading to custom servers (#2255)
(minor)
2021-04-21 15:44:50 -04:00
Brandon Bayer
cca9ba7ab7 bump recipe/example versions (ignore) 2021-04-21 12:23:00 -04:00
Brandon Bayer
ec3f871189 v0.34.3 2021-04-21 12:16:09 -04:00
Brandon Bayer
9cb37aac93 v0.34.2 2021-04-21 12:01:56 -04:00
Brandon Bayer
0222e1572d bump recipe/example versions (ignore) 2021-04-21 11:59:19 -04:00
Brandon Bayer
6ee30561e7 v0.34.2-canary.0 2021-04-21 11:58:01 -04:00
Robert Malko
958005c186 Fix blitz generate generating pages with bad links (#2245)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2021-04-21 11:56:13 -04:00
Brandon Bayer
0a14acaea9 Update README.md
(ignore)
2021-04-21 11:09:43 -04:00
Brandon Bayer
df1d648c5b add RIT as bronze sponsor
(meta)
2021-04-21 11:07:37 -04:00
Brandon Bayer
1857eb830f fix blitz console queries & mutations not loading (#2252)
(patch)
2021-04-20 19:47:23 -04:00
Brandon Bayer
fcb2782b33 fix blitz console circular dependency issues (#2251)
(patch)
2021-04-20 18:38:36 -04:00
Brandon Bayer
57b9b88380 Update bug_report.yml 2021-04-20 17:41:03 -04:00
Brandon Bayer
ab10fd408a Update bug_report.yml 2021-04-20 17:38:48 -04:00
Brandon Bayer
1869b9c9f5 fix useQuery infinite loop after logout (#2249)
* fix useQuery infinite loop after logout

* auto retry example app tests

* fix test (patch)
2021-04-20 16:40:43 -04:00
Brandon Bayer
b546754dd1 remove beta warning from CLI because it makes people get the wrong impression (#2250)
(patch)
2021-04-20 16:40:29 -04:00
Brandon Bayer
3dde672b5c Fix npm/yarn version auditing (#2247)
(patch)
2021-04-20 14:59:00 -04:00
Blitz.js Bot
848d961e1c (meta) added @Mokshit06 as contributor 2021-04-20 11:02:22 -04:00
Mokshit Jain
2cf32ad352 Throw an error if using a query with useMutation or a mutation with useQuery (#2223)
(patch)
2021-04-20 11:02:16 -04:00
Brandon Bayer
f62360834d bump recipe/example versions (ignore) 2021-04-19 19:53:38 -04:00
Brandon Bayer
6a3c2fffeb v0.34.1 2021-04-19 19:52:29 -04:00
Brandon Bayer
df8434cd9b add integration test for no-suspense mode (#2241)
(meta)
2021-04-19 18:52:31 -04:00
JuanM04
b7abca29ab Export BlitzApiHandler type (#2239)
(patch)
2021-04-19 18:18:41 -04:00
Brandon Bayer
559496af6b add couple integration tests for authentication (#2240) 2021-04-19 18:16:10 -04:00
Brandon Bayer
d15226e770 fix CI on windows (#2236)
(ignore)
2021-04-19 17:15:06 -04:00
Brandon Bayer
a377e6b94f fix type issues with Routes manifest (#2238)
* fix type of Routes manifest to not include null | undefined for pathname

* remove unused keys from from route manifest types (patch)
2021-04-19 16:02:47 -04:00
JuanM04
177dccdcba Fix Routes manifest type error. Change to string to string | number (#2228)
Co-authored-by: Simon Knott <info@simonknott.de> (patch)
2021-04-19 15:29:30 -04:00
Blitz.js Bot
0b06288210 (meta) added @frontsideair as contributor 2021-04-19 12:43:15 -04:00
Blitz.js Bot
36211b9968 (meta) added @antonykamp as contributor 2021-04-17 11:28:31 -04:00
Blitz.js Bot
a0c5209a94 (meta) added @TommasoBruno99 as contributor 2021-04-16 18:53:49 -04:00
Brandon Bayer
39a720df63 bump recipe/example versions (ignore) 2021-04-16 15:43:44 -04:00
Brandon Bayer
c335a1d968 v0.34.0 2021-04-16 15:42:33 -04:00
Brandon Bayer
de286205b1 fix so objects don't break telementry
(ignore)
2021-04-16 15:35:12 -04:00
Brandon Bayer
c86c0527a4 update release script
(ignore)
2021-04-15 16:48:58 -04:00
Brandon Bayer
8cdd56fc40 bump recipe/example versions 2021-04-15 16:48:15 -04:00
Brandon Bayer
617ab8c564 v0.34.0-canary.5 2021-04-15 16:46:55 -04:00
Brandon Bayer
92b90ee49c adjust build script
(ignore)
2021-04-15 16:45:51 -04:00
Brandon Bayer
ea26d8ecb8 Fix vercel deployments for canary release (#2226)
(patch)
2021-04-15 16:44:04 -04:00
Brandon Bayer
a18c00dbc3 bump recipe/example versions 2021-04-15 13:03:05 -04:00
Brandon Bayer
fdab34bee4 v0.34.0-canary.4 2021-04-15 13:02:18 -04:00
Brandon Bayer
cf7d34764e Revert "v0.34.0-y.0"
This reverts commit b6d264c294.
2021-04-15 13:01:48 -04:00
Brandon Bayer
6f8d25438d Revert "bump recipe/example versions"
This reverts commit c301d296a5.
2021-04-15 13:01:43 -04:00
Brandon Bayer
c301d296a5 bump recipe/example versions 2021-04-15 12:54:44 -04:00
Brandon Bayer
b6d264c294 v0.34.0-y.0 2021-04-15 12:54:06 -04:00
Blitz.js Bot
61d11e4c89 (meta) updated @sakulstra contributions 2021-04-15 12:52:22 -04:00
Lukas Strassel
39e738c240 Fix useInfiniteQuery suspense bug in canary release by upgrading react-query to 3.13.9 (patch) (#2197)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2021-04-15 12:52:17 -04:00
Brandon Bayer
d88fc0430f send anonymous analytics to to blitz collector instead of nextjs (#2224)
* send anonymous analytics to to blitz collector instead of nextjs

* turn off telementry in CI (patch)
2021-04-15 12:25:33 -04:00
Brandon Bayer
6bbe9b9720 remove aem as codeowner (retired maintainer)
(ignore)
2021-04-14 11:59:24 -04:00
Michael Ford
ec5cc08062 Fix crash when using Blitz inside iframes (#2219)
(patch)
2021-04-14 11:49:57 -04:00
0xflotus
fc216c283d fix: small errors in rfc docs (#2217)
(ignore)
2021-04-14 11:40:21 -04:00
Blitz.js Bot
03ebcb911d (meta) added @laubonghaudoi as contributor 2021-04-14 11:36:39 -04:00
Blitz.js Bot
2136ab7520 (meta) added @Dieman89 as contributor 2021-04-14 11:36:07 -04:00
Brandon Bayer
58b58d292c Add Kevin as L1 maintainer (was missing from here)
(ignore)
2021-04-14 11:21:09 -04:00
Brandon Bayer
f861dd6683 Retire a number of maintainers that haven't been active in long time
(meta)
2021-04-14 11:16:05 -04:00
Brandon Bayer
559d20d1a1 (patch) upgrade react-query to 3.13.6 (#2222) 2021-04-13 16:39:48 -04:00
Brandon Bayer
2ae313a43a Fix new app file logging and fix .npmrc not being generated in canary release (patch) (#2221)
(patch)
2021-04-13 15:35:18 -04:00
Blitz.js Bot
a8b3794a60 (meta) added @sean-brydon as contributor 2021-04-13 15:28:18 -04:00
Brandon Bayer
0bfd917b24 Fix "Failed to load config in getConfig" log message (#2220)
(patch)
2021-04-13 14:52:16 -04:00
Brandon Bayer
2e3116b58a fix blitz integration tests on CI
(ignore)
2021-04-13 11:09:04 -04:00
Brandon Bayer
b18fe2615c (newapp) Fix husky scripts to use npx for binaries instead of npm run (#2213) 2021-04-12 13:11:23 -04:00
Blitz.js Bot
8de82025d0 (meta) added @peterpalau as contributor 2021-04-12 12:42:56 -04:00
Pedro Enrique Palau Isaac
8822a38c60 (newapp) Rename types.d.ts to global.d.ts (#2205) 2021-04-12 12:42:52 -04:00
Brandon Bayer
3879ecde1f fix integration test types and fix nextjs pnpm test (#2212)
(meta)
2021-04-12 12:23:30 -04:00
Brandon Bayer
5b8dab3fb3 update PR template
(ignore)
2021-04-12 11:59:25 -04:00
Blitz.js Bot
e1276f93a0 (meta) added @Cristy94 as contributor 2021-04-11 07:22:40 -04:00
Buleandra Cristian
0c2abcb9de Fix userTrack sponsor link (#2204) 2021-04-11 07:22:35 -04:00
Brandon Bayer
3058d64dad bump recipe/example versions 2021-04-10 18:26:36 -04:00
Brandon Bayer
973c2384ec v0.34.0-canary.3 2021-04-10 18:24:00 -04:00
Brandon Bayer
0cba94dd2e Fix cannot find module 'next/constants' in 0.34.0-canary (#2203)
(patch)
2021-04-10 18:22:37 -04:00
Simon Knott
bf7eed62bd Add autogenerated Routes manifest for use with <Link> components (#2042)
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-04-10 16:22:58 -04:00
Blitz.js Bot
5fc813a64b (meta) added @simonelnahas as contributor 2021-04-10 16:05:38 -04:00
Brandon Bayer
9e78d1c7f6 add integration test for invalidateQuery (#2194)
(meta)
2021-04-08 19:13:57 -04:00
Brandon Bayer
fa8fd64921 add first blitz integration test for useQuery (#2193)
* add first blitz integration test for useQuery

* link to couple nextjs test files instead of duplicate

* CI name tweaks (meta)
2021-04-08 18:23:19 -04:00
Brandon Bayer
bc0c7287ec Add new integration test harness (#2189)
(meta)
2021-04-08 16:31:17 -04:00
Blitz.js Bot
3c3f10b201 (meta) added @jahredhope as contributor 2021-04-08 11:05:47 -04:00
Brandon Bayer
e1f7cf8bb4 bump recipe and example versions 2021-04-07 15:40:58 -04:00
Brandon Bayer
f3d0f7f79d v0.34.0-canary.2 2021-04-07 15:39:57 -04:00
Brandon Bayer
15ee721fc9 Upgrade our nextjs fork to 10.1.3 (#2186)
(minor)
2021-04-07 15:34:02 -04:00
Brandon Bayer
9a872ef14a update recipe/example blitz versions
(ignore)
2021-04-06 17:30:20 -04:00
Brandon Bayer
6df0db9b87 git subrepo push nextjs
subrepo:
  subdir:   "nextjs"
  merged:   "c5122c4c0"
upstream:
  origin:   "git@github.com:blitz-js/next.js.git"
  branch:   "canary"
  commit:   "c5122c4c0"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"
2021-04-06 16:50:13 -04:00
Brandon Bayer
48cca48e60 update next fork sync scripts
(ignore)
2021-04-06 16:49:25 -04:00
Brandon Bayer
65e67ffcc3 update deploy script
(ignore)
2021-04-06 16:48:29 -04:00
Brandon Bayer
4d42b462da v0.34.0-canary.1 2021-04-06 16:46:10 -04:00
Brandon Bayer
a17227d853 Prune unchanged nextjs packages from workspace & build (#2182)
(ignore)
2021-04-06 16:44:03 -04:00
Brandon Bayer
b3facfc9a5 fix dev script
(ignore)
2021-04-06 10:59:56 -04:00
Brandon Bayer
6527a14f28 Change Blitz to use our nextjs fork (no internal changes besides using our own build) (#2122)
(patch)
2021-04-06 10:52:34 -04:00
Brandon Bayer
5d473a2312 Update README.md
(ignore)
2021-04-05 18:49:43 -04:00
Brandon Bayer
0aa5280a0f Update README.md 2021-04-05 18:49:10 -04:00
Brandon Bayer
a3737aff3d (meta) add userTrack as seedling sponsor 2021-04-05 18:44:23 -04:00
Brandon Bayer
d8d12be249 v0.34.0-canary.0 2021-04-05 18:07:04 -04:00
Blitz.js Bot
af539332a1 (meta) updated @tundera contributions 2021-04-05 15:03:38 -04:00
Blitz.js Bot
563720bb57 (meta) updated @tundera contributions 2021-04-05 15:00:31 -04:00
tundera
d242056848 (major) Upgrade to React Query v3 (#2101)
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-04-05 15:00:27 -04:00
JuanM04
8f659f8b0b (newapp) Upgrade dependencies (#2176) 2021-04-05 14:12:01 -04:00
JuanM04
63af540c87 (newapp) Add .editorconfig and .vscode extension recomendations (#2142)
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-04-02 11:12:34 -04:00
Lukas Strassel
a26fdd8162 Fix shallow routing (#2173)
(patch)
2021-03-31 18:21:52 -04:00
JuanM04
04a157531f Fix query string spaces with useRouterQuery() (#2174)
(patch)
2021-03-31 18:17:35 -04:00
Jeremy Liberman
f099a88d38 Remove prisma 2.19 version upgrade from GQL recipe (#2167)
Redundant thanks to https://github.com/blitz-js/blitz/pull/2138 (recipe)
2021-03-31 18:16:11 -04:00
Roshan Manuel
f40c0f022e Fix quirrel install recipe (#2170)
Co-authored-by: Roshan Manuel <Roshan,manuel@angelic-group.com>
Co-authored-by: Brandon Bayer <b@bayer.ws> (recipe)
2021-03-31 18:12:14 -04:00
Blitz.js Bot
1d4695a17a (meta) updated @konradkalemba contributions 2021-03-31 18:09:43 -04:00
Justin Hall
a293d8bfa7 (meta) fix ultra scripts so they work on Windows (#2154)
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-03-29 16:53:57 -04:00
Kevin Langley Jr
18c1b9cb86 Switch to using @blitz/installer helper functions … (#2164)
(meta)
2021-03-29 16:52:43 -04:00
Justin Hall
32328b442d Update Emotion recipe to better leverage the installer package (#2156)
(meta)
2021-03-29 15:08:11 -04:00
Justin Hall
541b612fff Update findModuleExportsExpressions installer transform utility (#2155)
(meta)
2021-03-29 14:35:51 -04:00
Blitz.js Bot
cc7c72d1c1 (meta) added @andrearizzello as contributor 2021-03-28 17:19:20 -04:00
Brandon Bayer
46b6395870 git subrepo clone --force git@github.com:blitz-js/next.js.git nextjs
subrepo:
  subdir:   "nextjs"
  merged:   "ec12f1876"
upstream:
  origin:   "git@github.com:blitz-js/next.js.git"
  branch:   "canary"
  commit:   "ec12f1876"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"
2021-03-27 12:29:37 -04:00
Brandon Bayer
9a13b4e361 v0.33.1 2021-03-27 11:16:18 -04:00
Blitz.js Bot
3147394f86 (meta) added @markhughes as contributor 2021-03-27 11:12:18 -04:00
Mark Hughes
59f6f158e2 Fix bug when db folder is not present (#2152)
(patch)
2021-03-27 11:12:14 -04:00
JuanM04
2c548fa875 (newapp) Update react/react-dom to 0.0.0-experimental-6a589ad71 (#2149) 2021-03-26 11:28:33 -04:00
Blitz.js Bot
fa14a92bcb (meta) updated @gstranger contributions 2021-03-26 11:27:31 -04:00
Blitz.js Bot
5ba52be9f5 (meta) added @gstranger as contributor 2021-03-26 11:25:54 -04:00
gstranger
006cae4288 (recipe) Update render recipe with SESSION_SECRET_KEY (#2148)
As noted in this PR: https://github.com/blitz-js/blitzjs.com/pull/421 blitz requires a SESSION_SECRET_KEY when deployed to prod. This change will make it easier for new devs to deploy instantly to render using this template.
2021-03-26 11:24:45 -04:00
Blitz.js Bot
2e15ba2e82 (meta) added @Maastrich as contributor 2021-03-25 16:20:00 -04:00
Mathis Pinsault
5d56db5928 (meta) update PR template (#2141)
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-03-25 16:19:56 -04:00
Blitz.js Bot
4baa37ba38 (meta) updated @JuanM04 contributions 2021-03-25 16:14:16 -04:00
JuanM04
03d9711983 Fix query parameter decoding (#2143)
(patch)
2021-03-25 16:14:11 -04:00
Brandon Bayer
54796b6afd fix digas logo 2021-03-24 10:57:08 -04:00
Brandon Bayer
e826deb503 update digsas svg
(ignore)
2021-03-24 10:08:44 -04:00
Brandon Bayer
ee5cceb9c8 add Digsas.com as seedling sponsor
(meta)
2021-03-24 10:06:02 -04:00
Blitz.js Bot
1a28e5b1c0 (meta) added @amdolan as contributor 2021-03-23 19:25:00 -04:00
Alex Dolan
a0b53dc149 Upgrade prisma to 2.19, remove --preview-feature from migrate (#2138)
Co-authored-by: Blitz.js CLI <noop@blitzjs.com> (newapp)
2021-03-23 19:24:56 -04:00
Brandon Bayer
006ef89fbe fix apollo recipe
(ignore)
2021-03-22 18:13:33 -04:00
Jeremy Liberman
44aac3bb3a Add blitz install graphql-apollo-server recipe to implement a GraphQL API endpoint (#2073)
(recipe)
2021-03-22 18:12:14 -04:00
Blitz.js Bot
d5872d9b51 (meta) added @ericvicenti as contributor 2021-03-22 17:37:59 -04:00
Blitz.js Bot
e35d17d6a3 (meta) added @FarazPatankar as contributor 2021-03-21 11:20:40 -04:00
Blitz.js Bot
70cc8777d6 (meta) added @franky47 as contributor 2021-03-19 17:22:07 -04:00
Brandon Bayer
6cc4fb6c59 Update nextjs fork to 10.0.9 (#2121)
(ignore)
2021-03-17 17:45:00 -04:00
Brandon Bayer
d299d50364 v0.33.0 2021-03-17 15:21:14 -04:00
Blitz.js Bot
7f7dcd381f (meta) updated @Roesh contributions 2021-03-17 15:12:25 -04:00
Roshan Manuel
12f533972d Fix typescript jest issue in forgotPassword.test.ts (#2110)
* don't throw an error if checkYarn is null or checkYarn.stdout is null or undefined

* make sure to check if this version is less than the latest version (newapp)

* fix forgotpassword test template, sync auth example tests

* revert to ensure monorepo tests work

* revert to original password and index tests

* remove merge reference

Co-authored-by: Roshan Manuel <Roshan,manuel@angelic-group.com>
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-03-17 15:12:21 -04:00
Blitz.js Bot
c574e28c1a (meta) updated @remjx contributions 2021-03-17 15:06:34 -04:00
Mark Jackson
9616836303 use decodeURIComponent for router.query.next during page authentication redirect (#2114)
* use decodeURIComponent to fix bug where slashes in url path were not being converted from hex

* handle decodeURIComponent(undefined) case (newapp)

* fix type error

Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-03-17 15:06:30 -04:00
Blitz.js Bot
22cd691758 (meta) added @tmcw as contributor 2021-03-17 14:11:46 -04:00
Blitz.js Bot
e6b34a7771 (meta) updated @kevinlangleyjr contributions 2021-03-17 12:33:50 -04:00
Brandon Bayer
3b6a2a2f68 (meta) revert to typescript 4.1 because of nextjs integration issues 2021-03-16 16:03:03 -04:00
depfu[bot]
08f0a87088 Upgrade next: 10.0.7 → 10.0.9 (patch) (#2119)
* Update next to version 10.0.9

* fixes

Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-03-16 15:10:16 -04:00
Brandon Bayer
cae123dfda Add @reo777 as a contributor 2021-03-16 14:34:49 -04:00
Brandon Bayer
c20b3a19f6 Add @pavestru as a contributor 2021-03-16 14:34:41 -04:00
Brandon Bayer
45b281acb6 Add @pbteja1998 as a contributor 2021-03-16 14:34:35 -04:00
Brandon Bayer
85fec4f386 Add @Flavyoo as a contributor 2021-03-16 14:34:25 -04:00
Simon Knott
bfe3f90d2a Add blitz export command (#2043)
* Proxy "blitz export" to "next export" (minor)

* Add "static" example

* Fix manifest missing

* fix tsc error

* Fix version of Blitz for static example

* Use preconstructs monorepo build tooling

* Add type that static example needs for compilation

* Run "next export" on ".next", not on ".blitz/build/"

* Remove forgotten console.log o.O

* Don't change type of nextBuild[manifest]

* Update static example Blitz version

Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-03-16 14:28:32 -04:00
Blitz.js Bot
8bc3a402bc (meta) added @the-red as contributor 2021-03-16 13:42:09 -04:00
Blitz.js Bot
fb27225445 (meta) added @skn0tt as contributor 2021-03-16 13:37:53 -04:00
Kevin Langley Jr
7617579d9c Fixing recipe TODOs (#2112)
(meta)
2021-03-15 19:39:12 -04:00
Kevin Langley Jr
09da51c544 Add blitz install logrocket recipe (#2111)
* Adding initial recipe for LogRocket (recipe)

* Remove NodePath import since it is not used. Simplifying call to LogRocket.identify to just pass in the userId as the first parameter and sessionData object as the second parameter.

* Add comment to LogRocket config

* Fixing copy/paste comment for transform files step in LogRocket recipe

* Removing check for useRouter in blitz import as we are no longer using it. Removing variable declaration node, that is unused.

* Changing directory for logrocket.ts helpers from utils to integrations.
2021-03-15 19:37:10 -04:00
JuanM04
720ee606bd Fix duplicated Set-Cookie header (#2109)
(patch)
2021-03-15 18:27:28 -04:00
Pavel Struhar
7022505a60 Fix -d shorthand for --dry-run missing in blitz new (#2104)
(patch)
2021-03-12 12:19:17 -05:00
Brandon Bayer
ca7cf26891 (newapp) Update auth mutations to trim whitespace from email & password (#2103) 2021-03-11 15:36:58 -05:00
Brandon Bayer
3812b907a4 v0.32.1 2021-03-10 12:34:18 -05:00
Brandon Bayer
2d4f70786f (patch) fix useRouterQuery to not parse values (leave as string) (#2102) 2021-03-10 12:31:38 -05:00
Jack Zhao
5883de88b2 (patch) fix another bug with queries/mutations when using basePath (#2100) 2021-03-10 12:31:28 -05:00
Simon Knott
3ac92528f5 Fix not being able to use await in blitz console for some users (#2077)
(patch)
2021-03-10 12:28:54 -05:00
Brandon Bayer
3b114e0b37 v0.32.0 2021-03-09 16:59:48 -05:00
allcontributors[bot]
c79bcae95b docs: add Roesh as a contributor (#2097)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-03-09 10:29:10 -03:00
allcontributors[bot]
31155ea360 docs: add bugzpodder as a contributor (#2095)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-03-09 10:28:34 -03:00
Brandon Bayer
e3ed233bc2 (patch) fix build build failure in a weird nextjs edgecase (#2094) 2021-03-09 00:54:30 +00:00
Jack Zhao
6a5df1e315 (patch) fix queries & mutations when using basePath (#2082)
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-03-08 19:43:46 -05:00
Brandon Bayer
47ca5b92da (patch) fix extraneous console errors during tests (#2092) 2021-03-08 18:06:17 -05:00
allcontributors[bot]
c7c7e050a8 docs: add james2406 as a contributor (#2093)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-03-08 19:57:10 -03:00
Brandon Bayer
ec5c7746d5 (patch) Fix node 14 global install by removing use of peer dependencies (#2091) 2021-03-08 21:32:36 +00:00
blitzjs-bot[bot]
626f9d968d Added @james2406 as contributor (#2090)
* updated .all-contributorsrc

* updated README.md

Co-authored-by: blitzjs-bot[bot] <64611671+blitzjs-bot[bot]@users.noreply.github.com>
2021-03-08 15:52:45 -05:00
James Moran
ee7acd4924 Allow the ctx to be accessed within passport strategies (#2058)
* allow the session to be accessed within the passport strategy

* add callback to test types

* add environments type file to auth example

* replace environments type file with inline types

Co-authored-by: Brandon Bayer <b@bayer.ws> (minor)
2021-03-08 15:51:52 -05:00
Kevin Langley Jr
2cd377e10f Recipe: Styled Components (#2087)
* Adding recipe for styled-components.

* Adding all changes to _app.tsx. Adding basic util/theme.ts file to hold the theme and global styles. Still need to finish codeshift changes to _document.tsx

* Adding changes to _document.tsx

* Fixing var name

* Incrementing version of styled-components recipe.

* Adding back try/catch and sheet.seal()

* Adding babel plugin for styled-components recipe.

* Solve TODOs

Co-authored-by: Simon Knott <info@simonknott.de>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-03-08 19:49:28 +00:00
blitzjs-bot[bot]
5d69e92082 Added @flybayer as contributor (#2081)
* updated .all-contributorsrc

* updated README.md

Co-authored-by: blitzjs-bot[bot] <64611671+blitzjs-bot[bot]@users.noreply.github.com>
2021-03-06 18:40:23 -05:00
Brandon Bayer
fa10972e5a (meta) Integrate our new next.js fork into the monorepo at ./nextjs (#2079) 2021-03-06 18:39:22 -05:00
Brandon Bayer
af6d81413f (meta) eslint config maintenance (#2078) 2021-03-06 17:20:16 -05:00
Brandon Bayer
c699d4f021 Update bug_report.yml
(ignore)
2021-03-06 11:09:52 -05:00
Brandon Bayer
e97ba82de8 Update bug_report.yml
(meta)
2021-03-06 11:09:16 -05:00
blitzjs-bot[bot]
7ff1d2d052 Added @flybayer as contributor (#2069)
* updated .all-contributorsrc

* updated README.md

Co-authored-by: blitzjs-bot[bot] <64611671+blitzjs-bot[bot]@users.noreply.github.com>
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-03-05 13:12:07 -05:00
Brandon Bayer
9568d1c56c update release patch
(ignore)
2021-03-05 13:09:08 -05:00
Brandon Bayer
ca7ad291e6 v0.31.1 2021-03-05 13:06:09 -05:00
Brandon Bayer
c21445a268 Fix deployments to vercel (#2068)
* fix config (patch)

* try to fix flaky cypress
2021-03-05 13:02:46 -05:00
blitzjs-bot[bot]
b38ab9b0f6 Added @Kosai106 as contributor (#2067)
* updated .all-contributorsrc 

* updated README.md

Co-authored-by: blitzjs-bot[bot] <64611671+blitzjs-bot[bot]@users.noreply.github.com>
2021-03-05 11:29:40 -05:00
Brandon Bayer
90b44ee54d (recipe) change render.com recipe to build app before running migration 2021-03-05 09:36:01 -05:00
JuanM04
be9d712437 Update @akbo as a contributor 2021-03-04 22:46:24 -03:00
JuanM04
cc8a10fa8c Add @sbappan as a contributor 2021-03-04 22:46:12 -03:00
JuanM04
e4cebb2974 Add @chenkie as a contributor 2021-03-04 22:45:50 -03:00
allcontributors[bot]
ae4ca3982f docs: add heavygabriel as a contributor (#2061)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-03-04 19:45:26 -05:00
Gabriel Picard
c1a72f7e8a Update LICENSE year (#2060)
Changed the license year to the current year (meta)
2021-03-04 19:43:25 -05:00
Brandon Bayer
0f9b19cbef v0.31.0 2021-03-04 16:40:53 -05:00
allcontributors[bot]
7250a27916 docs: add kevinlangleyjr as a contributor (#2059)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-03-04 15:13:56 -05:00
Kevin Langley Jr
31fada7325 (recipe) Add blitz install gh-action-yarn-mariadb GH action config for testing a mariadb or mysql database (#2056) 2021-03-04 15:13:43 -05:00
Brandon Bayer
4be4c5181e remove blitz test command because almost no-one uses it (#2057)
(major)
2021-03-04 14:55:24 -05:00
Brandon Bayer
66cd76643c Major internal refactor + add multiple entry points + change all imports to be from blitz + rename getSessionContext to getSession + other fixes (#2039) 2021-03-04 14:55:07 -05:00
JuanM04
eaef66ba0f (meta) added husky initialization in pre-commit (#2051) 2021-03-04 10:50:19 -05:00
Brandon Bayer
bcec41832d refactor jest preset (meta) (#2049)
* refactor jest preset (meta)

* fix

* fix deps (meta)

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-03-03 23:18:46 +00:00
Brandon Bayer
efcd1da39a fix deps (meta) 2021-03-03 18:04:12 -05:00
Brandon Bayer
2178f11210 v0.30.7 2021-03-03 17:34:23 -05:00
Simon Knott
3565c57fca Bind to 127.0.0.1 by default instead of 0.0.0.0 (for security) (#2045)
(patch)
2021-03-03 17:13:38 -05:00
Simon Knott
e41401c744 Fix invoke return type (#2044)
(patch)
2021-03-03 17:12:35 -05:00
Brandon Bayer
63387ab2ee fix db.$reset to not spew prisma logs (patch) (#2041) 2021-03-03 00:16:14 +00:00
Brandon Bayer
e4a8a8b5b2 (meta) use ultra for running monorepo workspace commands (#2035) 2021-03-01 18:14:08 -05:00
Jeremy Liberman
b347a7d999 fix: remove bit of test code
accidentally left this in the PR from when I was testing
2021-03-01 16:55:11 -06:00
Brandon Bayer
b34368c690 (meta) add manypkg, a linter for monorepo dependencies (#2034)
* (meta) add manypkg, a linter for monorepo dependencies

* add lint to gh action

* refactor
2021-03-01 17:16:36 -05:00
Brandon Bayer
fe87534109 (meta) upgrade husky to v5 (#2033) 2021-03-01 16:31:41 -05:00
Brandon Bayer
328035bf22 (meta) Remove need to build framework code during development 🎉 (#2032) 2021-03-01 16:22:58 -05:00
Jeremy Liberman
e8551a0991 Add blitz install secureheaders recipe for setting secure headers (#2019)
(recipe)
2021-03-01 14:21:59 -05:00
allcontributors[bot]
50c50097aa docs: add Roesh as a contributor (#2029)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-03-01 12:32:10 -05:00
Roshan Manuel
d2e5368b5c Fix Cannot read property 'toString' of null for blitz new (#2025)
(patch)
2021-03-01 12:31:50 -05:00
allcontributors[bot]
2fcd6d88b6 docs: add mitchazj as a contributor (#2028)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-03-01 12:25:30 -05:00
Mitchell Johnson
ec6455920c Update .npmrc (#2021) 2021-03-01 12:25:17 -05:00
Brandon Bayer
2880fbba30 Switch from tsdx to preconstruct for DX/perf improvements (meta) (#2013)
* switch to preconstruct - still some issues

* working!

* cleanup

* updates

* use preconstruct for blitz package

* most tests working

* fix tests

* cleanup

* fix build script

* remove lodash from core

* fix

* fix example tests

* cleanup lodash

* cleanup

* clenaup

* fix another way

* fix lint
2021-02-28 01:30:16 +00:00
Brandon Bayer
cf6a906fc1 v0.30.6 2021-02-27 17:16:27 -05:00
Brandon Bayer
4203d94169 (newapp) change template to use typescript 4.1 because 4.2 is broken (#2018) 2021-02-27 17:09:54 -05:00
Brandon Bayer
34f249d259 fix some issues with blitz start using wrong build folder (#2017) 2021-02-27 21:00:13 +00:00
allcontributors[bot]
d3254d11f8 docs: add matthieu994 as a contributor (#2008)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-25 14:11:22 -05:00
Brandon Bayer
14ac3d9f3f v0.30.5 2021-02-25 11:27:08 -05:00
allcontributors[bot]
4c85bce781 docs: add FDiskas as a contributor (#2007)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-25 11:21:04 -05:00
marina
1a078c54d4 fix "role" of PublicData was lost by $setPublicData (#2005)
(patch)
2021-02-25 10:54:24 -05:00
Brandon Bayer
47438c8ccf v0.30.4 2021-02-24 15:34:46 -05:00
Brandon Bayer
13b8f1239d Fix Error deserializing __BLITZ__DATA__ in jest tests (patch) (#2004) 2021-02-24 15:32:57 -05:00
Brandon Bayer
5ed0f11734 fix hot reload for queries/mutations (patch) (#2003)
* fix hot reload for queries/mutations (patch)

* cleanup
2021-02-24 15:29:40 -05:00
JuanM04
48383ef363 docs: add remjx and lewisblackburnas a contributor (#2001) 2021-02-24 14:59:26 -05:00
Brandon Bayer
11fc19fee2 v0.30.3 2021-02-23 16:43:30 -05:00
Brandon Bayer
fb4a63acba Improve error message for missing _document page (patch) (#2000) 2021-02-23 16:39:24 -05:00
Hiren Chauhan
c3f8c7d07d Fix blitz install when using npm (patch) (#1986)
Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-02-23 16:20:58 -05:00
allcontributors[bot]
51519166ef docs: add hirenchauhan2 as a contributor (#1994)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-23 15:16:07 -05:00
depfu[bot]
113a3a04f3 Update superjson to version 1.7.2 (#1993)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-02-23 19:55:18 +00:00
depfu[bot]
eba2a8081d Update babel-plugin-superjson-next to version 0.2.2 (#1992)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
2021-02-23 17:27:08 +00:00
JuanM04
16d2cae5b8 Added @juanM04 as a L2 maintainer for website/docs (#1989)
(meta)
2021-02-23 12:07:20 -05:00
Brandon Bayer
c2bd242d46 Add @aditsachde as a contributor 2021-02-23 12:05:15 -05:00
Brandon Bayer
99966ab192 Add @andreadellacorte as a contributor 2021-02-22 16:48:59 -05:00
Brandon Bayer
387e6e420b add rob malko as seedling sponsor 2021-02-20 17:39:10 -05:00
Brandon Bayer
d39b461ddd v0.30.2 2021-02-20 15:39:25 -05:00
Brandon Bayer
0b7d463e7f fix error.statusCode missing in frontend (patch) (#1981) 2021-02-20 15:30:50 -05:00
Brandon Bayer
87c4ee058c fix blitz generate Windows Error: spawn prisma ENOENT (patch) (#1979) 2021-02-20 15:09:06 -05:00
allcontributors[bot]
177c2b0519 docs: add deniseyu as a contributor (#1975)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-19 15:56:57 -05:00
Denise Yu
31411baff5 Update bug_report.yml (#1974)
Fixes bug report YAML template
2021-02-19 15:56:48 -05:00
Brandon Bayer
2c4b803e7b v0.30.1 2021-02-18 21:14:34 -05:00
Brandon Bayer
117f0fda74 fix UnhandledPromiseRejectionWarning when renaming queries/mutations (patch) (#1967)
* fix UnhandledPromiseRejectionWarning when renaming queries/mutations

* log any watcher errors

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-02-19 01:35:27 +00:00
Brandon Bayer
f613e08866 fix blitz routes command interfering with the dev build (#1966) 2021-02-19 01:07:34 +00:00
Brandon Bayer
b696831e9f Try to fix windows EPERM issues (patch) (#1965)
* try to fix windows EPERM issue

* comment

* fix test

* bump test wait time

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-02-19 00:28:36 +00:00
Brandon Bayer
bd1781b99e Update @Mzaien as a contributor 2021-02-18 18:43:28 -05:00
depfu[bot]
9077397abe Upgrade next: 10.0.6 → 10.0.7 AND add isLocaleDomain to newapp template test/utils.ts (patch) (#1949)
* Update next to version 10.0.7

* fix

Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-02-18 23:37:24 +00:00
Cristian Granda
8e8fcffa2a Fix error if package.json doesn't have a "name" field (#1963) 2021-02-18 18:02:02 -05:00
allcontributors[bot]
364fb5e618 docs: add cristianbgp as a contributor (#1964)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-18 18:01:33 -05:00
Brandon Bayer
7678181bcf update issue template
(ignore)
2021-02-18 17:54:33 -05:00
Brandon Bayer
180d4cc4a1 update bug report 2021-02-18 17:52:19 -05:00
Brandon Bayer
2484b3a692 Update bug_report.yml
(ignore)
2021-02-18 17:50:33 -05:00
Brandon Bayer
f1e223cd47 add new issue form template
closes: #1704
(meta)
2021-02-18 17:47:51 -05:00
allcontributors[bot]
1a4dd4a2fe docs: add Immortalin as a contributor (#1962)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-18 17:18:35 -05:00
Immortalin
7f3fcf1489 Update gitignore (#1954)
(meta)
2021-02-18 17:18:25 -05:00
Brandon Bayer
219f069dba Add @gusgard as a contributor 2021-02-18 17:05:43 -05:00
Brandon Bayer
09bd6751fa Add @davetorbeck as a contributor 2021-02-18 16:50:59 -05:00
Brandon Bayer
f03fe566e5 Add @DecadentIpsum as a contributor 2021-02-17 13:12:18 -05:00
Brandon Bayer
4ed750a8f7 Add @oliverloops as a contributor 2021-02-17 13:10:46 -05:00
Brandon Bayer
39eb1cef9b Add @garytube as a contributor 2021-02-17 13:09:34 -05:00
Brandon Bayer
0a3c975b98 v0.30.0 2021-02-17 08:49:48 -05:00
Brandon Bayer
1b4119bb50 Update new app readme with latest file structure
(ignore)
2021-02-16 22:34:06 -05:00
Brandon Bayer
f0d880a4f2 v0.30.0-canary.15 2021-02-16 22:25:15 -05:00
Brandon Bayer
11a11be20b Update README.md
(ignore)
2021-02-16 21:38:27 -05:00
Brandon Bayer
0273e58749 Update README.md
(ignore)
2021-02-16 21:37:39 -05:00
Brandon Bayer
75c3dc635e tweak sponsors
(ignore)
2021-02-16 19:48:21 -05:00
Brandon Bayer
00e54948f2 fix reactbricks icon
(ignore)
2021-02-16 19:47:27 -05:00
Brandon Bayer
ffcd0b4243 fix error on blitz start for new project (patch) (#1952) 2021-02-16 11:35:53 -05:00
Brandon Bayer
6bc26128ee Upgrade prisma to 2.17 (patch) (#1951) 2021-02-16 10:55:25 -05:00
Brandon Bayer
f8b599aff4 v0.30.0-canary.14 2021-02-15 14:33:16 -05:00
Joe Edelman
fa09904d3a fix getQueryKey() to work on the server (patch) (#1624)
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-02-15 14:24:33 -05:00
allcontributors[bot]
7c6c7dfdb5 docs: add jxe as a contributor (#1946)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-15 14:24:18 -05:00
Brandon Bayer
ca850480ae fix blitz routes (#1945) 2021-02-15 18:56:28 +00:00
Brandon Bayer
f9006974bf fix blitz dev ENOENT error and mistaken console.log (patch) (#1942)
* fix `blitz dev` ENOENT error (patch)

* remove log
2021-02-15 13:01:37 -05:00
Brandon Bayer
5f6d296e37 Add @fmilani as a contributor 2021-02-15 12:54:38 -05:00
Brandon Bayer
5697173d5a Flavio retires from L1 maintainer (meta) 2021-02-15 12:52:23 -05:00
Brandon Bayer
69e5da6794 Fix type issue in blitz generate code (patch) (#1941) 2021-02-15 12:44:00 -05:00
Brandon Bayer
66e521e14b (newapp) add types.d.ts with type declarations for CSS/SCSS modules (#1929) 2021-02-15 12:41:15 -05:00
Brandon Bayer
2a25bab41c v0.30.0-canary.13 2021-02-13 21:25:08 -05:00
Brandon Bayer
c2fa1486df Fix file paths in blitz server logs to be the original path instead of compiled path (patch) (#1933) 2021-02-13 21:23:28 -05:00
Brandon Bayer
19cc7a1510 Hopefully fix Windows EPERM , EBUSY, ENOTEMPTY, ENOENT errors (patch) (#1931) 2021-02-13 18:39:28 -05:00
Brandon Bayer
b1ed61f96d Unify blitz build folder. Now .blitz/build is always used instead of .blitz/caches/dev or .blitz/caches/build (#1930)
(patch)
2021-02-13 16:48:18 -05:00
Brandon Bayer
a101964603 (newapp) remove browserslist from package.json because it only affects CSS (#1928)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-02-13 15:16:40 -05:00
Brandon Bayer
eeeab00f1b Add node 15 to CI test matrix (meta) (#1927) 2021-02-13 15:16:32 -05:00
Brandon Bayer
42bf665f44 Add @arenddeboer as a contributor 2021-02-13 15:07:53 -05:00
Brandon Bayer
abf4795395 remove all unneeded imports of React from templates (patch) (#1925)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-02-13 14:44:29 -05:00
Brandon Bayer
d48891a144 change blitz generate delete mutation to use db.deleteMany instead of db.delete (#1924) 2021-02-13 19:26:21 +00:00
Brandon Bayer
57f1e7d703 v0.30.0-canary.12 2021-02-12 14:10:31 -05:00
Brandon Bayer
2d3e46fd79 Fix query cache being deleted on login instead of being invalidated (#1917)
* fix querycache being deleted on login instead of being invalidated

* fix ci (patch)
2021-02-12 14:08:50 -05:00
Brandon Bayer
984de2cab1 v0.30.0-canary.11 2021-02-11 19:54:41 -05:00
Brandon Bayer
fca7791c47 Fix error name fields not being sent to the client (#1916)
(patch)
2021-02-11 19:51:51 -05:00
Brandon Bayer
c389a7ad6b fix useQuery hooks enabled flag not working (#1915)
(patch)
2021-02-11 18:49:05 -05:00
Brandon Bayer
a4320fd974 v0.30.0-canary.10 2021-02-11 17:17:22 -05:00
Brandon Bayer
157c397959 Fix to accept the previous, misspelled anti-csrf cookie for seamless transition for existing apps (#1914)
(patch)
2021-02-11 17:14:08 -05:00
Brandon Bayer
d7804089e1 Fix type of options for useQuery hooks (#1913)
(patch)
2021-02-11 17:07:48 -05:00
Brandon Bayer
04b0cd356c v0.30.0-canary.9 2021-02-11 15:56:49 -05:00
JuanM04
cd615f58bd Automatically clear console on blitz dev (can disable with cli.clearConsoleOnBlitzDev = false in blitz.config.js (#1909)
* Clear console

* Removed clearConsole on blitz start

* Moved no-clear-console to blitz.config.js

* Changed imports

* increase default jest timeout to 10000 for server env

Co-authored-by: Brandon Bayer <b@bayer.ws> (minor)
2021-02-11 15:54:03 -05:00
Brandon Bayer
c49da040b5 add useAuthenticatedSession() hook and fix publicData types for authenticated sessions (#1910)
(minor)
2021-02-11 15:50:52 -05:00
allcontributors[bot]
da6685cd2d docs: add JuanM04 as a contributor (#1912)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-11 15:49:04 -05:00
allcontributors[bot]
0f4de7761e docs: add JuanM04 as a contributor (#1911)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-11 15:41:32 -05:00
Brandon Bayer
3114e8bc4a fix error message grammar
(patch)
2021-02-11 14:32:21 -05:00
Brandon Bayer
e2383fbb5f v0.30.0-canary.8 2021-02-10 19:22:34 -05:00
Brandon Bayer
a4ea513a76 Change blitz generate default syntax from default[value] to default=value (#1906)
* change type:default[true] to type:default=true (major)

* update test

* update cli help
2021-02-10 19:20:11 -05:00
Brandon Bayer
9e1860d8b3 remove some old docs
(ignore)
2021-02-10 19:03:42 -05:00
Brandon Bayer
05673fbdb5 Create SECURITY.md
(ignore)
2021-02-10 19:02:29 -05:00
Brandon Bayer
a2cdcf4a74 Create codeql-analysis.yml
(ignore)
2021-02-10 19:01:06 -05:00
Kevin Østerkilde
9ff56beebf Remove requirement of publicData.roles, change new app to use publicData.role, and fix public data types (#1788)
Co-authored-by: Brandon Bayer <b@bayer.ws> (minor)
2021-02-10 18:25:59 -05:00
Brandon Bayer
b238bae52c Add @beerose as a contributor 2021-02-10 16:29:26 -05:00
Brandon Bayer
caf3d260c8 Fix page props not being copied to the Blitz wrapper from last PR (#1905)
(ignore)
2021-02-10 16:19:03 -05:00
Brandon Bayer
b108c5720f Add page.authenticate, page.redirectAuthenticatedTo, and page.suppressFirstRenderFlicker (#1901)
(minor)
2021-02-10 14:06:04 -05:00
depfu[bot]
8ccc744c5f Upgrade superjson: 1.6.0 → 1.6.2 (patch) (#1904)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
2021-02-10 14:03:11 -05:00
Brandon Bayer
b0ed47e1b8 add useAuthorize and useRedirectAuthenticated hooks (#1900)
(minor)
2021-02-10 12:42:19 -05:00
Brian Liu
ae43a07b4d Fix useQuery hooks return type when enabled or suspense could be false (patch) (#1893)
Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-02-10 12:30:01 -05:00
allcontributors[bot]
0ba81b6474 docs: add LBrian as a contributor (#1903)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-10 12:21:42 -05:00
Brandon Bayer
190bc65c53 fix newapp type issue in last PR
(ignore)
2021-02-10 12:20:12 -05:00
Brandon Bayer
85bd4ec286 (newapp) fix react-hook-form reset password page (#1902) 2021-02-10 16:37:16 +00:00
Brandon Bayer
1792cc6788 v0.30.0-canary.7 2021-02-09 19:36:42 -05:00
Michael Ford
dc88bc68d2 Change useSession to use suspense by default (#1888)
Co-authored-by: Brandon Bayer <b@bayer.ws> (major)
2021-02-09 19:21:09 -05:00
allcontributors[bot]
37348f2595 docs: add mtford90 as a contributor (#1899)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-09 18:53:25 -05:00
Brandon Bayer
bec3cd6cde Add internal BlitzAppRoot component (meta) (#1898) 2021-02-09 18:45:19 -05:00
Brandon Bayer
a9c1171a14 Fix vercel deployments with 0.30-canary (#1897)
(patch)
2021-02-09 18:26:53 -05:00
allcontributors[bot]
b46a245f08 docs: add rodrigoehlers as a contributor (#1896)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-09 17:20:39 -05:00
Rodrigo Ehlers
a5208e2b96 Fix useSession return type to have userId: number | null (#1895)
(patch)
2021-02-09 17:20:24 -05:00
Camilo Gonzalez
4fefbcbbb0 Automatically prompt to run prisma migrate after blitz generate (minor) (#1894)
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-02-09 12:58:22 -05:00
engelkes-finstreet
258c0491dd Add initialPublicData option to useSession for use with SSR (minor) (#1807)
* Add initial parameter to useSession hook to remove flickering if session is loaded via server side.

* Use better naming.

* Update packages/core/src/supertokens.ts

* fix and cleanup types

Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-02-09 17:12:51 +00:00
allcontributors[bot]
8ec0d929d8 docs: add lcswillems as a contributor (#1892)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-08 17:24:46 -05:00
Lucas Willems
adfc529852 Fix typo in anti-csrf cookie name (#1889)
(patch)
2021-02-08 17:24:31 -05:00
depfu[bot]
aebc79fe9c Update all Yarn dependencies (2021-02-08) (#1886)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com> (patch)
2021-02-08 17:18:38 -05:00
Brandon Bayer
da6393c538 v0.30.0-canary.6 2021-02-06 19:06:28 -05:00
Brandon Bayer
e51a002892 Add SimpleRolesIsAuthorized<RoleType> type so session.$authorize() can type check the roles AND update new app template accordingly (#1883)
* add `SimpleRolesIsAuthorized<RoleType>` type so `session.$authorize()` can type check the roles AND update new app template accordingly (minor)

* fix type
2021-02-06 19:00:08 -05:00
Brandon Bayer
d73750be0c Fix all known resolver.pipe type issues AND update getModelNames template to use resolver.pipe (#1881)
(patch)
2021-02-06 18:23:29 -05:00
allcontributors[bot]
95781eb6ba docs: add alii as a contributor (#1882)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-06 18:06:06 -05:00
Alistair Smith
afcd47569c Fix blitz install [RECIPE] not working (#1880)
(patch)
2021-02-06 18:05:44 -05:00
Brandon Bayer
f405b5b4df update auth example project pages from latest templates
(meta)
2021-02-06 17:07:31 -05:00
Brandon Bayer
a0d7378642 v0.30.0-canary.5 2021-02-05 15:51:24 -05:00
Brandon Bayer
60bba38919 fix dependency issue (ignore) 2021-02-05 15:49:27 -05:00
Stratulat Alexandru
901d1cad7e Add paginate resolver utility and add it to blitz generate template (#1199)
Co-authored-by: Brandon Bayer <b@bayer.ws> (minor)
2021-02-05 15:47:16 -05:00
Brandon Bayer
383034d1fe change jest-preset to use .server.test.ts instead of .test.server.ts (ignore) (#1875)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-02-05 14:15:16 -05:00
Brandon Bayer
bd6f37a6b0 (recipe) add gh-action-yarn-postgres recipe which adds a production github action config (#1876) 2021-02-05 11:39:37 -05:00
Brandon Bayer
b1116b6052 end g2i sponsor trial
(ignore)
2021-02-04 21:01:26 -05:00
Brandon Bayer
85c91e2e2e update jest preset with auto client/server environments and ability to use file.test.server.ts (minor) (#1873)
* update jest preset with auto client/server environments and ability to use `file.test.server.ts`

* cleanup
2021-02-05 01:58:20 +00:00
Brandon Bayer
0bad1f181b Massive update to blitz generate templates to generate production ready code (#1870)
(minor)
2021-02-04 20:35:22 -05:00
Brandon Bayer
971e695b30 Change blitz start to blitz dev and blitz start --production to blitz start (#1872)
* Change `blitz start` to `blitz dev` and `blitz start --production` to `blitz start`

* fix alias

* fix help msg (major)
2021-02-04 18:26:29 -05:00
Brandon Bayer
c0e1246dc0 add blitz generate mutation (minor) (#1871) 2021-02-04 18:05:58 -05:00
Brandon Bayer
bce9822d13 Revert "Change blitz start to blitz dev and blitz start --production to blitz start"
This reverts commit e41219944c.
2021-02-04 17:57:19 -05:00
Brandon Bayer
e41219944c Change blitz start to blitz dev and blitz start --production to blitz start 2021-02-04 17:56:30 -05:00
Brandon Bayer
fe0d958368 (newapp) upgrade prisma to 2.16 and change @prisma/cli to new prisma name (#1864)
* (newapp) upgrade prisma to 2.16 and change `@prisma/cli` to new `prisma` name

* fix cli

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-02-04 18:27:19 +00:00
depfu[bot]
06248f6005 Upgrade next: 10.0.5 → 10.0.6 and refactor runtime require statements (patch) (#1828)
* Update next to version 10.0.6

* type fixes

* big refactor to fix resolve config

* more refactor and fix

* fix jest

* fixes

* fix import

Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-02-04 18:06:15 +00:00
TagawaHirotaka
24b85b0108 Add cypress for e2e cli testing (meta) (#1846)
* install cypress

* change describe

* refactor tsconfig.json

* Move cypress dependency to the very root package.json of the repo

* Move e2e test scripts to packages/cli/package.json

* Remove package.json

* forget to add it

* setting cypress.json

* fix cypress install

Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-02-04 17:31:31 +00:00
Brandon Bayer
7804d3ea77 Add @lcswillems as a contributor 2021-02-04 12:06:51 -05:00
allcontributors[bot]
6dca78a8ed docs: add merodiro as a contributor (#1862)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-04 11:56:38 -05:00
Amr A.Mohammed
92679cfa03 (newapp) Add legacy-peer-deps to .npmrc for npm v7 compatibility (#1859) 2021-02-04 11:56:28 -05:00
allcontributors[bot]
46cb60a962 docs: add wafuwafu13 as a contributor (#1861)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-04 11:46:03 -05:00
depfu[bot]
012d146fd9 Upgrade superjson: 1.5.2 → 1.6.0 (patch) (#1854)
* Update superjson to version 1.6.0

* fix

Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-02-03 20:58:01 +00:00
Brandon Bayer
5015693ddd fix db.$reset() error "cached plan must not change result type" (patch) (#1855) 2021-02-03 20:34:47 +00:00
depfu[bot]
e2ab39ed75 Update tslog to version 3.1.1 (#1853)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-02-03 16:54:10 +00:00
Andreas Bollig
64ced80f77 fix blitz new for people without global git config (patch) (#1847)
* fix blitz new for people without global git config

* adjusted test to reflect changed git parameters in blitz new

* Update packages/generator/src/generators/app-generator.ts

* Update packages/generator/test/generators/app-generator.test.ts

Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-02-03 16:33:54 +00:00
allcontributors[bot]
050c4f7127 docs: add ajmarkow as a contributor (#1852)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-03 11:08:31 -05:00
allcontributors[bot]
86de3303bf docs: add akbo as a contributor (#1851)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-03 11:07:16 -05:00
allcontributors[bot]
31724c7b2a docs: add Gim3l as a contributor (#1849)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-02-02 16:30:26 -05:00
Gimel Dick
d7647ad2be Add to new app template (#1844) 2021-02-02 16:30:15 -05:00
depfu[bot]
0a3836b30b Update all dependencies (2021-02-01) (#1839)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com> (patch)
2021-02-01 18:15:09 -05:00
t.kuriyama
1fccb1dc19 Fix several compiler bugs like ENOENT, file rename broken, default export not component, etc (#1835)
(patch)
2021-02-01 18:02:41 -05:00
Brandon Bayer
7195aaea66 Add @queq1890 as a contributor 2021-02-01 17:51:23 -05:00
Brandon Bayer
d1c4553ddd (newapp) small tweak to error fallback in _app.tsx 2021-02-01 17:50:31 -05:00
Brandon Bayer
8ee5642fb6 v0.30.0-canary.4 2021-01-29 21:28:53 -05:00
Brandon Bayer
7a5695105a Fix bug in resolver.authorize() type (#1834)
(ignore)
2021-01-29 21:26:54 -05:00
Brandon Bayer
d0008711c6 (newapp) update _app.tsx to use new ErrorFallbackProps for better typing (#1833) 2021-01-29 21:16:35 -05:00
Brandon Bayer
83dc0e3e2d Fix enhancePrisma with TS strict:true (#1827)
Co-authored-by: Piotr Monwid-Olechnowicz <hasparus@gmail.com> (patch)
2021-01-29 20:44:52 -05:00
Piotr Monwid-Olechnowicz
89ab77a862 Fix resolver.authorize( doesn't work as type guard (with great effort) (#1831)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2021-01-29 20:44:34 -05:00
Kazuma Suzuki
b59fbeb0a7 Fix blitz install error message when recipe doesn't exist (patch) (#1815)
* fix error message when recipe doesn't exist

* returns exit code 1 on error

* Update packages/cli/src/commands/install.ts

* some tweaks

Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-01-29 20:15:14 -05:00
allcontributors[bot]
c012c75c87 docs: add rince as a contributor (#1825)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-01-29 14:56:01 -05:00
Brandon Bayer
a0615be285 v0.30.0-canary.3 2021-01-29 13:54:58 -05:00
Brandon Bayer
4d7dc8680f Remove resolver.authorizeIf AND remove second options arg to session.$authorize() (major) (#1824)
* remove `resolver.authorizeIf` AND remove second options arg to `session.$authorize()`

* update
2021-01-29 13:47:40 -05:00
Brandon Bayer
9a735f6dd7 tweak PULL_REQUEST_TEMPLATE
(ignore)
2021-01-29 13:32:19 -05:00
Brandon Bayer
0b885c2f57 fix broken API routes because of babel-plugin-superjson-next bug (patch) (#1823)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-01-29 17:36:11 +00:00
Brandon Bayer
3bd030af73 Fix type of resolver.pipe when one of the pipe functions returns a promise (#1822)
(patch)
2021-01-29 12:15:17 -05:00
Brandon Bayer
9ea5d0f259 Rename resolver pipe fns: pipe.resolver to resolver.pipe, pipe.zod to resolver.zod, etc (#1821)
(major)
2021-01-29 11:54:19 -05:00
Brandon Bayer
91886728cf v0.30.0-canary.2 2021-01-27 21:21:31 -05:00
Brandon Bayer
6babea9c15 (newapp) update mutations to use the new pipe functions (#1811)
* (newapp) update mutations to use the new pipe functions

* tweak
2021-01-27 21:19:08 -05:00
Brandon Bayer
8e91c52a12 Fix new app and blitz generate templates to use new session.$ prefix (patch) (#1810)
* fix `blitz generate` templates to use new `session.$authorize()` name (patch)

* more fixes
2021-01-27 20:13:14 -05:00
Brandon Bayer
fb8a13b04c v0.30.0-canary.1 2021-01-27 17:13:51 -05:00
Brandon Bayer
ac55bc453f (newapp) Fix typo in resetPassword.test.ts - create => $create 2021-01-27 17:01:52 -05:00
Brandon Bayer
fcb7884aef fix session.$isAuthorized to not have assertion return type (#1809) 2021-01-27 21:57:23 +00:00
Brandon Bayer
4ec37a5b0b (newapp) fix PublicData typo in types.ts 2021-01-27 16:30:18 -05:00
Brandon Bayer
68488e529f Fix to properly handle http errors (no more Failed to parse json from request to /api/users/queries/getCurrentUser) (patch) (#1808)
* fix to properly handle http errors

* refactor

* fix
2021-01-27 21:28:00 +00:00
Brandon Bayer
d006b0bcd9 update release script
(ignore)
2021-01-27 12:45:57 -05:00
Brandon Bayer
ebc6d47832 v0.30.0-canary.0 2021-01-27 12:31:20 -05:00
Brandon Bayer
50b597ef9f Simplify type definition for PublicData (breaking change) (#1806)
(major)
2021-01-27 12:26:58 -05:00
depfu[bot]
6a6f1f7b2c Update superjson to version 1.5.2 (#1805)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
2021-01-27 15:11:29 +00:00
Brandon Bayer
cfca59e6ea Add pipe.resolver(), pipe.zod(), pipe.authorize(), and pipe.authorizeIf() for queries/mutations (#1801)
(minor)
2021-01-27 09:43:16 -05:00
Brandon Bayer
57cb14b1ba Improvements to isAuthorized: (1) Ability to strongly type, (2) Change first arg to have ctx, (3) Allow multiple params, (4) add conditional $authorize() (#1796)
Co-authored-by: Aleksandra Sikora <aleksandra@hasura.io> (minor)
2021-01-26 21:29:19 -05:00
Steffan Harris
10a0bed302 (newapp) Update <Form> to easily hide default submit button by making submitText optional (#1800) 2021-01-26 18:48:34 -05:00
Brandon Bayer
9898c578b1 add project model files to auth example
(ignore)
2021-01-26 18:06:35 -05:00
allcontributors[bot]
acc61d2bee docs: add thakkaryash94 as a contributor (#1798)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-01-26 16:01:41 -05:00
Flavio
7cc97a1e63 Fix blitz console not working in vanilla JS projects (#1686)
Co-authored-by: Enzo Ferey <enzo.ferey@chance.co>
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2021-01-26 15:50:58 -05:00
allcontributors[bot]
85fe7429a5 docs: add marina-ki as a contributor (#1797)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-01-26 15:27:33 -05:00
marina
a3b5e87a96 Fix not all folder names kebab-case from blitz generate (#1790)
(patch)
2021-01-26 15:27:23 -05:00
Brandon Bayer
96793d360c Major improvement to blitz install UX (#1782)
Co-authored-by: David Kramer <davidkramer@me.com> (patch)
2021-01-26 11:45:01 -05:00
depfu[bot]
5d644632e7 Update all dependencies (2021-01-25) (#1792)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com> (meta)
2021-01-25 19:31:57 -05:00
Brandon Bayer
8d2e7aba30 Add @jonasthiesen as a contributor 2021-01-25 17:50:22 -05:00
Brandon Bayer
bbec5903d8 change all references/links to Slack over to our new Discord
(meta)
2021-01-25 13:36:14 -05:00
Brandon Bayer
f99a982783 fix blitz/babel preset not passing options through to next/babel (#1789)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-01-24 01:59:29 +00:00
Brandon Bayer
980a0a9ee2 Prefix all ctx.session methods with $ and move publicData fields to top level of ctx.session (#1779)
* make it work

* fix

* finish changing apis in examples (major)
2021-01-23 20:39:16 -05:00
Brandon Bayer
25811cf04b add prisma issue to new issue page (meta) 2021-01-23 13:22:19 -05:00
Jeremy Liberman
05613e8559 docs: Add READMEs to packages that were missing them (#1780)
(meta)
2021-01-22 18:35:35 -05:00
David Kramer
780febd377 Rename chakra recipe to chakra-ui (#1775) 2021-01-22 18:26:49 -05:00
Brandon Bayer
5619dcca97 Change normal resolver logging to log serializer duration (minor) (#1778)
* Change normal resolver logging to log serializer duration

* better
2021-01-22 20:57:04 +00:00
Brandon Bayer
f61ae6e3c6 retry example e2e tests one time if they fail
(meta)
2021-01-22 15:20:19 -05:00
Brandon Bayer
92f67459df Add blitz/babel preset which includes babel-plugin-superjson-next (#1771)
(minor)
2021-01-22 13:19:45 -05:00
Satoshi Nitawaki
b17f9b8e70 Change package.json engines version 12.20 to 12 (#1773)
(meta)
2021-01-22 10:56:51 -05:00
Brandon Bayer
c962b36f2f Add missing type exports like GetStaticPropsContext (patch) (#1772)
* Add missing type exports like `InferGetServerSidePropsType` (patch)

* fix

* more fix

* fix

* reduce example logging

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-01-22 01:48:23 +00:00
Brandon Bayer
d69ca33094 (meta) fix some code formatting 2021-01-21 20:25:30 -05:00
Piotr Monwid-Olechnowicz
9536caa073 Fix type of enhancePrisma constructor args (#1770)
(patch)
2021-01-21 19:18:22 -05:00
Simon Knott
f02cfcee00 Add Quirrel recipe AND add Plain-Text Transformer to recipe APIs (#1764)
(recipe)
2021-01-21 14:26:37 -05:00
Brandon Bayer
7ab1d73f7b Fix prisma errors missing code & meta properties (#1766)
(patch)
2021-01-21 11:35:05 -05:00
Brandon Bayer
933e0f5847 Fix API duration log to include serialization time AND add log serialization duration at DEBUG log level (patch) (#1765) 2021-01-21 11:34:53 -05:00
Brandon Bayer
771bd96706 🎉 Add Forgot Password code to new app template (#1127)
Co-authored-by: aaronfulkerson <31112737+aaronfulkerson@users.noreply.github.com> (newapp)
2021-01-20 21:04:56 -05:00
Brandon Bayer
2f07ae3e80 Change makeServerOnlyPrisma to enhancePrisma which adds db.$reset() for use in tests (#1762)
(minor)
2021-01-20 17:36:17 -05:00
Brandon Bayer
cda62ca155 Fix relative imports from within API routes (patch) (#1761) 2021-01-20 17:09:21 -05:00
Brandon Bayer
7f5d1dcb4e Update blitz generate templates for Prisma 2.15 AND update newapp/examples to Prisma 2.15 (#1759)
* Update `blitz generate` templates for Prisma 2.15 AND update newapp/examples to Prisma 2.15

* fix type error

* actually fix that TS error

* fix

* more fix

(minor)
2021-01-20 16:08:05 -05:00
Brandon Bayer
817b760ab7 Lori retires as L1 maintainer
(meta)
2021-01-20 16:07:24 -05:00
depfu[bot]
4ac527d29f Fix logging issues: Update tslog: 3.0.5 → 3.1.0 (patch) (#1760)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
2021-01-20 16:04:25 -05:00
tarunama
b87506ae30 chore: unify spell of TypeScript (#1731)
Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-01-20 04:43:28 +00:00
Brandon Bayer
654d9378ad Update jest preset to runInBand and auto disconnect Prisma client after tests (#1753) 2021-01-19 23:05:06 +00:00
Brandon Bayer
fbf9439415 Drastically simplify eslint integration with new eslint-config-blitz package (#1749)
(minor)
2021-01-19 14:54:35 -05:00
depfu[bot]
4bae636085 Update dependencies (2021-01-19) (#1736)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2021-01-19 12:56:12 -05:00
Brandon Bayer
837d3a3126 Fix all queries not being refetched on login (patch) (#1748) 2021-01-19 12:18:50 -05:00
Brandon Bayer
e5baf8c256 Add @marina-ki as a contributor 2021-01-19 11:29:45 -05:00
Brandon Bayer
04ed4952e4 Add @mikeesto as a contributor 2021-01-19 11:27:44 -05:00
Brandon Bayer
39ebadccc1 Change session cookies to have a unique prefixed based on package.json name field (major) (#1743)
* change session cookies to have a unique prefixed based on package.json name field

* fix test
2021-01-19 01:24:09 +00:00
Brandon Bayer
9636017262 (newapp) Add changePassword mutation (#1741) 2021-01-18 18:45:35 -05:00
Brandon Bayer
2fc04d3f02 (newapp) Remove app/auth/auth-utils.ts by moving code into the login mutation (#1740) 2021-01-18 18:44:03 -05:00
allcontributors[bot]
fb8a352349 docs: add bacongravy as a contributor (#1742)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-01-18 18:43:53 -05:00
David Kramer
a3a32bbbf4 Automatically disable useQuery suspense when not using concurrent mode (#1735)
(patch)
2021-01-18 18:42:30 -05:00
Robert Malko
d39a9e60a5 Add .yalc folder to ignore paths (#1734)
(patch)
2021-01-18 16:22:17 -05:00
allcontributors[bot]
a6247fb570 docs: add tarunama as a contributor (#1739)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-01-18 16:21:28 -05:00
t.kuriyama
9f22ff7525 Fix blitz generate bug when model name ends with number (#1727)
(patch)
2021-01-18 16:18:15 -05:00
Brandon Bayer
cc3c1f1205 Drastically simplify Jest integration with a Blitz jest preset and by moving test dependencies into blitz. (#1725)
(major)
2021-01-16 15:25:13 -05:00
Robert Malko
66d8aa48a7 Add @malkomalko as L1 Maintainer (#1728)
(meta)
2021-01-16 10:40:29 -05:00
Brandon Bayer
c6ee429e61 fix makeServerOnlyPrisma() not working in Jest tests (patch) (#1726) 2021-01-16 00:25:19 +00:00
Brandon Bayer
b243da00ec Add makeServerOnlyPrisma() utility, allow db in client bundle, and update new app template (#1720)
(major)
2021-01-15 14:51:32 -05:00
Brandon Bayer
38bc98755b Change blitz generate to generate all pages in app/pages/ and update new app structure with app/core/ (#1719)
(major)
2021-01-15 14:50:12 -05:00
Robert Malko
a959ae5b58 Remove console.log from reflexjs recipe (#1722)
(recipe)
2021-01-15 13:58:11 -05:00
Brandon Bayer
7b102f654c Add generateToken() and hash256() utilities (#1721) (minor)
* add `generateToken()` and `hash256()` utilities

* fix bundle size
2021-01-14 18:10:47 -05:00
Brandon Bayer
4b293abc41 v0.29.2 2021-01-13 18:32:01 -05:00
Brandon Bayer
82fe3a0eb5 Fix logout not triggering re-renders for all queries (patch) (#1717) 2021-01-13 18:29:10 -05:00
Brandon Bayer
db7a3e5451 Fix: blitz db seed should not run prisma migrations (#1718) 2021-01-13 18:21:37 -05:00
Brandon Bayer
484f434d8e fix blitz compiler to ignore sqlite files (#1716) 2021-01-13 22:29:16 +00:00
Robert Malko
ddb434f847 (newapp) Fix studio package.json script to use new blitz prisma command (#1709) 2021-01-13 11:04:23 -05:00
Brandon Bayer
103609cf0b v0.29.1 2021-01-12 19:29:18 -05:00
Brandon Bayer
8dbb0bbbdb Fix new apps failing to initialize the database in 0.29.0 (patch) (#1707)
* wip

* more stuff

* more
2021-01-13 00:27:34 +00:00
Brandon Bayer
58a68c83fd fix --help flag for blitz prisma command not being sent to prisma (#1706) 2021-01-12 23:07:48 +00:00
Brandon Bayer
a2a5564a96 v0.29.0 2021-01-12 17:32:14 -05:00
Brandon Bayer
2aab361dbc Add isReady: true to mockRouter in test/utils.tsx for Next.js 10.0.5 (newapp) 2021-01-12 15:01:08 -05:00
allcontributors[bot]
a0f827a351 docs: add ranjan-purbey as a contributor (#1705)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-01-12 14:38:37 -05:00
Ranjan Purbey
f4bda9f52f Fix extra ms in API log message (#1702)
(patch)
2021-01-12 14:37:20 -05:00
t.kuriyama
92abe2b0b9 Update .eslintrc.js on examples/custom-server to add @typescript-eslint parser/plugin config (#1700)
(meta)
2021-01-12 14:34:31 -05:00
Joaquin Bravo Contreras
62efe3f4ee Prisma 2.13+ Support: Remove all blitz db commands except blitz db seed and use prisma CLI directly (major) (#1661)
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-01-11 21:41:04 -05:00
allcontributors[bot]
17e08de16b docs: add jackbravo as a contributor (#1699)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-01-11 19:15:12 -05:00
allcontributors[bot]
31a88aca89 docs: add rembrandtreyes as a contributor (#1698)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-01-11 18:52:45 -05:00
Rembrandt Reyes
aa06d4bf1a Add some tests to @blitzjs/installer (meta) (#1690) 2021-01-11 18:52:15 -05:00
allcontributors[bot]
26c8bfb215 docs: add malkomalko as a contributor (#1697)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-01-11 18:49:43 -05:00
Robert Malko
2b0e12a08e Pin versions in chakra recipe (#1695)
(recipe)
2021-01-11 18:49:32 -05:00
depfu[bot]
0d8c0a16b6 Update all Yarn dependencies (2021-01-11) (#1692)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com> (meta)
2021-01-11 15:07:08 -05:00
allcontributors[bot]
a9bf1fd3a0 docs: add koolii as a contributor (#1689)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-01-09 15:52:00 -05:00
t.kuriyama
c0a392ac4e Update jest config for a deprecated option (#1687)
(meta)
2021-01-09 15:51:22 -05:00
Brandon Bayer
dcb5edc72c Add @doi-t as a contributor 2021-01-09 12:06:16 -05:00
Brandon Bayer
5b57277808 v0.29.0-canary.0 2021-01-08 18:30:43 -05:00
depfu[bot]
9ff878a107 Upgrade next: 10.0.4 → 10.0.5 (patch) (NOTE: need to add isReady to mockRouter in test/utils.ts) (#1681)
* Update next to version 10.0.5

* few fixes

Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-01-08 23:28:39 +00:00
Brandon Bayer
87af792e41 Add blitz prisma CLI command for Prisma 2.13+ support (#1685)
* add `blitz prisma` command

* fix type case
2021-01-08 23:07:05 +00:00
Alex Johansson
a957d2f227 Add custom server support! (#1492)
Co-authored-by: Brandon Bayer <b@bayer.ws> (minor)
2021-01-08 17:29:05 -05:00
depfu[bot]
2efcb71d2e Update tslog to version 3.0.5 (#1680)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
2021-01-07 17:15:11 +00:00
Brandon Bayer
3a94cc10c1 Add SecurePassword utilities to core so you can remove them from auth-utils.ts (minor) (#1667)
(minor)
2021-01-06 18:59:00 -05:00
allcontributors[bot]
afc77338ef docs: add rembrandtreyes as a contributor (#1679)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-01-06 17:59:05 -05:00
Rembrandt Reyes
948fad7996 Add config option for cookie domain to sessionMiddleware (#1673)
(minor)
2021-01-06 17:58:49 -05:00
allcontributors[bot]
295436c7e5 docs: add kyken as a contributor (#1678)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-01-06 17:54:02 -05:00
Tsuyoshi Osawa
3f95ad3bbf Fix bug preventing a semicolon in session publicData (#1676)
(patch)
2021-01-06 17:53:49 -05:00
Brandon Bayer
396f7e551f Add @creimers as a contributor 2021-01-05 16:18:46 -05:00
Brandon Bayer
2284dd8621 v0.28.0 2021-01-04 15:20:20 -05:00
Brandon Bayer
25d057dd90 Add @linbudu599 as a contributor 2021-01-02 15:00:20 -05:00
Brandon Bayer
9be0d74816 v0.28.0-canary.2 2021-01-01 17:36:09 -05:00
Brandon Bayer
27974e4268 Change a number of dependencies to use ranges to help reduce size of installed node_modules (patch) (#1665)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-01-01 22:13:56 +00:00
Brandon Bayer
c700ee4b9a Change log message from "alpha software" to "beta software" (patch) 2021-01-01 16:54:26 -05:00
Brandon Bayer
da2916fccf (newapp) Update a few dependencies including React to 0.0.0-experimental-3310209d0 (#1662)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-01-01 21:48:43 +00:00
Steffan Harris
59c839c65f Remove unnecessary log message about git core.excludesFiles (patch) (#1663)
* Removed build console message about core.excludesFiles

* Update parse-chokidar-rules-from-gitignore.ts

Co-authored-by: Brandon Bayer <b@bayer.ws>
2021-01-01 21:29:35 +00:00
Brandon Bayer
1341b10e57 Upgrade all dependencies (patch) (#1657) 2020-12-31 18:56:34 -05:00
Kevin Østerkilde
da678523d8 (newapp) Change Final Form <LabeledTextField/> to properly parse numbers (#1658)
See https://github.com/blitz-js/blitz/issues/1636
2020-12-31 16:46:48 -05:00
depfu[bot]
34145212ad Upgrade Node.js to version 12.20.0 (#1655)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
2020-12-30 22:37:59 +00:00
Brandon Bayer
e4fd4a8990 fix a false duplicate error with .coverage directory in your project (#1654)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-12-30 21:13:18 +00:00
Brandon Bayer
682664bd0c Improve error message from useQuery for case of incorrect resolver location (patch) (#1653)
* improve error message for useQuery

* tweak
2020-12-30 20:54:46 +00:00
Alex Johansson
384b847b39 Remove unused packages from @blitzjs/server (patch) (#1634)
* Remove unused packages from `packages/server`

* lodash-es

Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-12-29 23:25:13 +00:00
Alex Johansson
db0cddf5ed Remove pretty-ms dependency (move code into core) (patch) (#1628)
* Remove `pretty-ms` dep

* naïve prettyMs-fn

* use `Date.now` shorthand

* fmt negative numbers as well

Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-12-29 23:08:34 +00:00
Simon Knott
01754dcbbd Fix bug preventing imports from files/libraries ending in "pages" or "api" (patch) (#1649)
* Add regression example

* Dont rewrite file-imports that end in /pages or /api

Only import directory imports (where import "someDir/pages" actually means "someDir/pages/index.js").

Closes #1646

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-12-29 22:52:28 +00:00
Alex Johansson
387ffc6a80 Remove implicit auto-build with blitz start --production. blitz build now a pre-requisite (major) (#1623)
* Remove auto-build

* remove `folder-hash` dep

* build before start

Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-12-29 22:35:45 +00:00
Arjun Dubey
303fad2853 Fix blitz db commands showing incorrect error (patch) (#1648)
* update db.ts

* updated db.ts

* Update packages/cli/src/commands/db.ts

Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-12-29 22:18:49 +00:00
Alex Johansson
a1227ee37a Remove unused packages from core (patch) (#1630)
* Remove unused packages from `core`

* update lockfile

* lodash-es

Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-12-29 21:41:51 +00:00
Brandon Bayer
b31e1ac245 Add @timReynolds as a contributor 2020-12-29 16:20:46 -05:00
Brandon Bayer
4e79196222 Add @phillipkregg as a contributor 2020-12-29 16:16:42 -05:00
Brandon Bayer
9b57078d31 bump yarn.lock
(ignore)
2020-12-23 14:22:30 -05:00
Brandon Bayer
cb80788734 v0.28.0-canary.1 2020-12-23 14:21:42 -05:00
depfu[bot]
845d171721 Upgrade next: 10.0.3 → 10.0.4 (patch) (#1644)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-12-23 14:18:16 -05:00
Alex Johansson
5f57f3c9ea only use node-fetch (#1642)
next.js bundles it

Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-12-23 19:17:19 +00:00
Brandon Bayer
96a0fffa00 fix broken css module imports (#1645)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-12-23 18:50:59 +00:00
Alex Johansson
6d71a60154 Remove unsued dep node-fetch (#1632)
Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-12-23 18:22:19 +00:00
Alex Johansson
dd5a6b8273 Remove unused packages from file-pipeline (#1631)
Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-12-23 18:05:42 +00:00
Alex Johansson
a3452937c3 remove hasha dependency (#1627)
Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-12-23 17:47:58 +00:00
Brandon Bayer
6826920184 update codeowners again
(ignore)
2020-12-23 12:29:30 -05:00
Brandon Bayer
0dc9feeb1e update codeowners
(ignore)
2020-12-23 12:23:15 -05:00
Alex Johansson
12b5161918 Remove unused packages from @blitzjs/installer (patch) (#1633)
Co-authored-by: Brandon Bayer <b@bayer.ws>
2020-12-23 12:17:22 -05:00
Brandon Bayer
e72b602600 Fix CI windows example test and other CI maintenance (#1639) 2020-12-23 11:46:04 -05:00
Brandon Bayer
a271fe9267 Change all agnosticSource tests to not run on windows (#1643)
(meta)
2020-12-22 18:51:15 -05:00
Alex Johansson
75758f8130 Timeout example testing after 20mins (#1640)
(meta)
2020-12-22 18:36:15 -05:00
Brandon Bayer
d48161d203 improve release script patch
(meta)
2020-12-22 13:55:56 -05:00
Reo Ishiyama
1682ce0474 Added Reo as L1 Maintainer to the README (#1637)
(meta)
2020-12-22 13:53:43 -05:00
Alex Johansson
bc7970690c Skip flaky windows packages test (#1635)
(meta)
2020-12-22 13:49:40 -05:00
Brandon Bayer
d9c5299436 v0.28.0-canary.0 2020-12-17 16:24:02 -05:00
Brandon Bayer
bc829d6bd4 update release patch auto categorize allcontributors
(meta)
2020-12-17 16:20:36 -05:00
allcontributors[bot]
ec71d2ad0d docs: add chanand as a contributor (#1621)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-12-17 16:17:48 -05:00
chanand
b18393bcab Fix: allow numbers and underscore in names for blitz generate model (#1618)
(patch)
2020-12-17 16:15:27 -05:00
allcontributors[bot]
2eb26617bc docs: add arjundubey-cr as a contributor (#1620)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-12-17 16:12:04 -05:00
Arjun Dubey
95988755ed Fix bug where cancelling blitz install still outputs success message (#1616)
(patch)
2020-12-17 16:11:50 -05:00
allcontributors[bot]
87ad97ce2b docs: add Kosai106 as a contributor (#1619)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-12-17 16:09:45 -05:00
Kevin Østerkilde
a58685229f Add missing exports for LinkProps, ImageProps, and ErrorProps (#1613)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2020-12-17 16:09:31 -05:00
Brandon Bayer
2ad5b68eab Dylan Brookes retires from core team
(meta)
2020-12-17 13:09:10 -05:00
allcontributors[bot]
8ac511aba3 docs: add jackbravo as a contributor (#1614)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-12-16 11:05:06 -05:00
Steffan Harris
12d93c7532 Removed unstable_ prefix from session middleware (#1607)
(major)
2020-12-15 17:17:18 -05:00
Brandon Bayer
e53f1b21bc fix render logo
(ignore)
2020-12-15 11:42:46 -05:00
Brandon Bayer
b0a4bed5e3 update render logo
(ignore)
2020-12-15 11:40:25 -05:00
Brandon Bayer
a4a672645c update render link
(ignore)
2020-12-14 16:46:47 -05:00
Brandon Bayer
88f9b4b5e5 fix readme logo size
(ignore)
2020-12-14 16:42:12 -05:00
Brandon Bayer
b62dce39dd add Render.com as a Bronze Sponsor!
(meta)
2020-12-14 16:39:48 -05:00
allcontributors[bot]
2b9b79ca2d docs: add mattfwood as a contributor (#1601)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-12-12 17:26:43 -05:00
Matt Wood
aba8492fc0 Minor typo fix in chakra recipe explanation (#1597)
(recipe)
2020-12-12 17:26:31 -05:00
dependabot[bot]
34f5b08101 Bump ini from 1.3.5 to 1.3.8 (#1599)
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8)
(meta)
Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-12 17:24:37 -05:00
Brandon Bayer
322fc6d0a9 fix readme
(ignore)
2020-12-12 11:30:24 -05:00
Brandon Bayer
34ee44e0bf Add Andreas Asprou as a seedling sponsor
(meta)
2020-12-12 11:26:02 -05:00
Brandon Bayer
4517a675a5 Fix bug where "db" in a path name will break client side imports (patch) (#1594) 2020-12-10 19:01:28 -05:00
Brandon Bayer
6ce248f694 (newapp) Change prisma version to be pinned to a minor version (#1595) 2020-12-10 18:54:42 -05:00
allcontributors[bot]
e68eb6d118 docs: add beeplin as a contributor (#1593)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-12-10 17:51:50 -05:00
tundera
ab81073003 Add Reflexjs recipe (#1585)
Co-authored-by: Brandon Bayer <b@bayer.ws> (recipe)
2020-12-10 17:48:18 -05:00
tundera
78410abe82 Fix and improve Theme UI recipe (#1583)
Co-authored-by: Brandon Bayer <b@bayer.ws> (recipe)
2020-12-10 17:43:20 -05:00
allcontributors[bot]
7d76f646d0 docs: add rayandrews as a contributor (#1592)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-12-10 17:35:36 -05:00
allcontributors[bot]
e97e964099 docs: add AkifumiSato as a contributor (#1591)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-12-10 17:33:38 -05:00
Akifumi Sato
fa358cd328 Remove error stack from console output on testing (#1540)
Co-authored-by: Brandon Bayer <b@bayer.ws> (meta)
2020-12-10 17:31:28 -05:00
Ray Andrew
5360a839d8 Add blitz routes command to see all routes (#1478)
Co-authored-by: Brandon Bayer <b@bayer.ws>
2020-12-10 17:28:25 -05:00
Brandon Bayer
a7493258eb Add G2i as sponsor
(meta)
2020-12-08 18:17:46 -05:00
Brandon Bayer
909f3b3392 fix theme-ui recipe
(ignore)
2020-12-05 19:15:23 -05:00
Brandon Bayer
688b05df78 v0.27.0 2020-12-05 19:07:30 -05:00
allcontributors[bot]
ec301dc22e docs: add markylaing as a contributor (#1578)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-12-05 18:55:35 -05:00
markylaing
df5271c1f0 Change passport adapter to accept an array of objects with authenticate options for each strategy (#1564)
Co-authored-by: Brandon Bayer <b@bayer.ws> (major)
2020-12-05 18:54:29 -05:00
allcontributors[bot]
bad2e3758e docs: add tundera as a contributor (#1577)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-12-05 18:45:53 -05:00
tundera
23b36b83f8 Add Theme UI recipe (including MDX!) (#1366)
Co-authored-by: Brandon Bayer <b@bayer.ws> (recipe)
2020-12-05 18:44:25 -05:00
allcontributors[bot]
94d9daf215 docs: add Khaledgarbaya as a contributor (#1576)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-12-05 18:32:34 -05:00
Khaled Garbaya
aae261c589 Fix blitz generate folder names to always be kebab-case (#1554)
(patch)
2020-12-05 18:31:20 -05:00
Brandon Bayer
4e3261d776 Fix module not found issues by moving isomorphic resolver imports behind experimental flag (#1574)
* move resolver isomorphic imports into an experimental flag

* maybe fix flaky windows test

* fix store test (patch)
2020-12-05 17:29:44 -05:00
Brandon Bayer
74083f704c v0.27.0-canary.3 2020-12-03 18:57:56 -05:00
Brandon Bayer
68e1abf727 add missing dependency
(ignore)
2020-12-03 18:54:53 -05:00
Brandon Bayer
1d3ca10164 v0.27.0-canary.2 2020-12-03 18:48:42 -05:00
Brandon Bayer
0c1cd9cc3f Fix broken blitz install (#1571) 2020-12-03 18:46:49 -05:00
depfu[bot]
e186f86389 Upgrade next.js: 10.0.2 → 10.0.3 (patch) (#1568)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
2020-12-02 09:37:37 -05:00
Brandon Bayer
6954f448ad v0.27.0-canary.1 2020-12-01 13:01:25 -05:00
Brandon Bayer
656414369c (newapp) Change useCurrentUser hook to not use useSession (fixes UX) (#1563) 2020-12-01 12:57:11 -05:00
Brandon Bayer
760ab549c8 Fix broken blitz install (#1562)
(patch)
2020-12-01 12:56:02 -05:00
Justin Hall
de37d606a3 Update Emotion recipe to v11 (#1559)
(recipe)
2020-12-01 12:04:40 -05:00
Brandon Bayer
e58dbf3486 Add @saintmalik as a contributor 2020-12-01 11:53:33 -05:00
Brandon Bayer
6bb5b04199 Add @ugogo as a contributor 2020-12-01 11:49:53 -05:00
Brandon Bayer
85c2aa280d v0.27.0-canary.0 2020-11-28 13:29:52 -05:00
allcontributors[bot]
f8138f0d4d docs: add jonstuebe as a contributor (#1553)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-11-28 13:24:43 -05:00
Jon Stuebe
894bd7f06d Fix message in the blitz generate pages edit page (#1552)
(patch)
2020-11-28 13:24:28 -05:00
Brandon Bayer
ba7c8c5785 Add log level option to blitz.config.js (#1551)
(minor)
2020-11-28 13:21:29 -05:00
Brandon Bayer
05431ec7b5 v0.26.2 2020-11-27 15:38:21 -05:00
Brandon Bayer
005904e863 Change auth-utils.ts to be side-effect free (newapp) (#1549) 2020-11-27 15:33:57 -05:00
Brandon Bayer
c330651f35 Another try at fixing flaky windows test (meta) (#1548)
* another try at fixing flaky windows test

* revert last test changes and add logs
2020-11-27 15:31:57 -05:00
Brandon Bayer
8af274817d Fix regression in 0.26.1 if you have a test folder inside app/ (patch) (#1547)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-11-27 15:31:48 -05:00
Brandon Bayer
f06fd070ef Add yalc for testing blitz locally (meta) (#1542) 2020-11-27 14:56:04 -05:00
Brandon Bayer
b9d3f439e8 Add a second css module integration test (meta) (#1538)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-11-27 14:54:58 -05:00
Brandon Bayer
e49a6c29d1 Fix a flaky file-pipeline test (meta) (#1541) 2020-11-27 13:47:49 -05:00
Brandon Bayer
0b5ca09c7f v0.26.1 2020-11-27 12:22:28 -05:00
allcontributors[bot]
c6f480705d docs: add tpatel as a contributor (#1537)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (patch)
2020-11-27 11:20:27 -05:00
Thibaut Patel
7c3adc460b Fix blitz compiler to ignore gitignored files during processing (#1534)
(patch)
2020-11-27 11:19:07 -05:00
Simon Knott
e8da527325 Fix tree shaking for imports from queries/mutations (#1532)
(patch)
2020-11-27 11:15:29 -05:00
allcontributors[bot]
39d7f092ec docs: add sakulstra as a contributor (#1536)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-11-27 11:09:12 -05:00
Lukas Strassel
6732fa374b fix: add postcss to tailwind recipe (#1533)
I just tried blitz.js the first time and wanted to play around with the recipes.
Installing the tailwindcss recipe broke the app due to to css import errors displaying a prompt to also install postcss which solved the issue, so I guess it makes sense to fix at the recipe level?
2020-11-27 11:07:54 -05:00
Konrad Kalemba
cceae6efa2 Fix to allow for unicode chars in session data (#1527)
(patch)
2020-11-26 11:16:18 -05:00
Brandon Bayer
016af57a07 Add @williamkwao as a contributor 2020-11-26 11:05:33 -05:00
Brandon Bayer
a9ea76e43c update yarn.lock (ignore) 2020-11-24 11:04:25 -05:00
Brandon Bayer
394d7df094 v0.26.0 2020-11-24 11:00:44 -05:00
depfu[bot]
78007fc967 Upgrade @prisma/client: 2.12.0-dev.53 → 2.12.0 (patch) (#1522)
* Update @prisma/client to version 2.12.0

* fix

Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Co-authored-by: Brandon Bayer <b@bayer.ws>
2020-11-24 15:48:49 +00:00
Brandon Bayer
c1ac5b027e Change prisma.findOne to prisma.findFirst for Prisma 2.12 compatibility (#1525)
(minor)
2020-11-24 10:19:19 -05:00
depfu[bot]
b6b898c9b3 Upgrade @prisma/sdk: 2.10.0 → 2.12.0 (example) (#1524)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
2020-11-24 10:18:31 -05:00
depfu[bot]
f96bcb80d0 Upgrade @prisma/cli: 2.10.0 → 2.12.0 (example) (#1523)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
2020-11-24 10:18:18 -05:00
Alex Johansson
1194ffde82 Change useParam / useParams to always return undefined for empty/invalid values instead of "" and NaN (patch) (#1491)
* do parsing in useParams instead of useParam

* simplify

# Conflicts:
#	packages/core/src/use-params.ts

* fix typescript error

Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-11-24 15:16:41 +00:00
allcontributors[bot]
24082d53e0 docs: add Mzaien as a contributor (#1526)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-11-24 10:00:29 -05:00
Abdullah Mzaien
61bbc43497 (recipe) Update tailwind recipe to v2 (#1486)
Co-authored-by: Mzaien <s201540840@kfupm.edu.sa>
Co-authored-by: Brandon Bayer <b@bayer.ws>
2020-11-24 09:58:25 -05:00
allcontributors[bot]
3dcf2bffe2 docs: add rap2hpoutre as a contributor (#1520)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-11-23 21:28:07 -05:00
Raphaël Huchet
653b93b089 Fix bug where blitz db seed will error silently (#1510)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2020-11-23 21:26:47 -05:00
Alex Johansson
1b663c0e8b Fix lint warnings (#1515)
(meta)
2020-11-23 19:55:02 -05:00
Brandon Bayer
5747642055 Update blitz generate templates for Prisma 2.12.0 compatibility (#1518)
(minor)
2020-11-23 19:24:26 -05:00
Brandon Bayer
53b2e273b4 update fauna link in fauna example readme
(ignore)
2020-11-23 14:25:17 -05:00
Brandon Bayer
3ed4844d87 v0.25.1-canary.3 2020-11-20 21:31:30 -05:00
Ray Andrew
b6b37f4661 Automatically clear .blitz cache when you change blitz versions (#1446)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2020-11-20 21:29:16 -05:00
Brandon Bayer
236415222d Fix broken css modules imports on canary (patch) (#1499)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-11-20 21:20:22 -05:00
allcontributors[bot]
bd76ff6049 docs: add rayandrews as a contributor (#1502)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-11-20 21:09:10 -05:00
Alex Johansson
a51757c174 Change useParam() to always return undefined if param doesn’t exist (#1474)
(minor)
2020-11-20 21:03:32 -05:00
allcontributors[bot]
9d8f63df3d docs: add dmzza as a contributor (#1501)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-11-20 21:01:59 -05:00
David Mazza
4890a7cf5b Fix File not found with singular glob (#1493)
(patch)
2020-11-20 21:01:31 -05:00
allcontributors[bot]
8089ec7d15 docs: add KATT as a contributor (#1500)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-11-20 20:59:05 -05:00
Alex Johansson
f6fd1d0285 Cleanup unused args in server (#1494)
(meta)
2020-11-20 20:58:51 -05:00
Brandon Bayer
f655410167 v0.25.1-canary.2 2020-11-20 19:44:22 -05:00
Brandon Bayer
8f20b0729a Add @rap2hpoutre as a contributor 2020-11-20 19:41:07 -05:00
Brandon Bayer
f37e6e8ebc (newapp) Add .next and .blitz to .prettierignore (#1498) 2020-11-20 19:40:36 -05:00
Brandon Bayer
5a934c3211 Fix an import edgecase by only rewriting relative paths imports for files in special folders (patch) (#1496)
* change to only change relative paths for files in special folders

* fix for windows
2020-11-21 00:35:14 +00:00
Brandon Bayer
b079c6e944 update kodiak again
(ignore)
2020-11-20 19:16:21 -05:00
Brandon Bayer
2f0ca0f549 update kodiak config
(ignore)
2020-11-20 19:03:24 -05:00
Brandon Bayer
555ea5bac7 set up Kodiak for PR automerging
(meta)
2020-11-20 18:49:12 -05:00
Brandon Bayer
75b63ed087 yarn.lock
(ignore)
2020-11-18 21:36:42 -05:00
Brandon Bayer
ded2e2a546 v0.25.1-canary.1 2020-11-18 21:35:13 -05:00
Brandon Bayer
f70d8d9a15 Rudi Yardley retired as core member
(meta)
2020-11-18 19:21:12 -05:00
Simon Knott
4d54e89621 Fix ability to import from pages, API routes, and queries/mutations (#1456)
Co-authored-by: Brandon Bayer <b@bayer.ws> (fix)
2020-11-18 19:11:43 -05:00
Brandon Bayer
69b91223d7 Add new Image component from Next.js 10 (#1423)
(minor)
2020-11-18 19:10:11 -05:00
Brandon Bayer
8c5061ead5 Remove undocumented hasOne and hasMany options from blitz generate model (#1476)
(patch)
2020-11-18 17:46:00 -05:00
depfu[bot]
19ffe20330 Upgrade next: 10.0.1 → 10.0.2 (patch) (#1481)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
2020-11-18 15:27:08 -05:00
Brandon Bayer
9819543f47 v0.25.1-canary.0 2020-11-17 21:47:30 -05:00
Brandon Bayer
b42eec1b66 Fix issue where blitz start --production rebuilds during deployment (#1477)
(patch)
2020-11-17 21:23:58 -05:00
Brandon Bayer
0ef8d16da5 Fix image component external domains not working in production (#1463) 2020-11-17 12:29:39 -05:00
Flavio
37e1ff3427 Added Flavio as L1 Maintainer to the README (#1469)
* Added Flavio as L1 Maintainer to the READMe

* Added Flavio's correct  photo to L1 Maintainer section
2020-11-15 15:06:03 -05:00
allcontributors[bot]
63b0682f06 docs: add piotrski as a contributor (#1467)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-11-14 20:45:13 -05:00
Piotrek Tomczewski
735d2f628b Update Chakra UI Recipe for 1.0 (#1466)
(recipe)
2020-11-14 20:44:55 -05:00
Fran Zekan
d2a3f1a0b1 Only run Lambda warm-up HEAD requests when target is serverless (#159)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2020-11-14 20:43:36 -05:00
Brandon Bayer
b54cbadebe Fix initial migration for new apps is not included in the initial git commit (#1464)
(patch)
2020-11-14 19:26:53 -05:00
Brandon Bayer
1126b139a9 Add @cwray-tech as a contributor 2020-11-14 10:35:08 -05:00
Brandon Bayer
db44295738 Add Fauna Example (#1458)
(example)
2020-11-14 09:48:01 -05:00
Brandon Bayer
539f457207 v0.25.0 2020-11-11 18:33:47 -05:00
Brandon Bayer
383e856e33 Fix infinite loop with multiple tabs open (#1453)
(patch)
2020-11-11 18:26:59 -05:00
Brandon Bayer
7d05d4e4c4 update bytes newsletter link
(ignore)
2020-11-11 08:59:26 -05:00
Brandon Bayer
1555d09a45 v0.25.0-canary.6 2020-11-10 20:56:28 -05:00
Brandon Bayer
05bf388d8d (newapp) Upgrade react version to 0.0.0-experimental-4ead6b530 (#1451) 2020-11-10 20:50:15 -05:00
Brandon Bayer
41ad93b327 Improve error message for invalid RPC requests (#1450)
(patch)
2020-11-10 20:50:01 -05:00
Brandon Bayer
56b18e40df Add Bytes Newsletter signup banner 2020-11-10 20:48:00 -05:00
Brandon Bayer
e2acb1a6a1 Fix broken static pre-rendering with useQuery (#1444)
(patch)
2020-11-10 20:13:39 -05:00
Brandon Bayer
680c44180c v0.25.0-canary.5 2020-11-09 21:37:28 -05:00
Brandon Bayer
158b6684a7 truly fix the corrupted build this time
(patch)
2020-11-09 21:35:24 -05:00
Brandon Bayer
2a4a209de9 v0.25.0-canary.4 2020-11-09 21:28:51 -05:00
Brandon Bayer
4f862f04b0 fix corrupted build
(patch)
2020-11-09 21:27:20 -05:00
Brandon Bayer
7eb7943b55 v0.25.0-canary.3 2020-11-09 21:09:13 -05:00
Brandon Bayer
bf009c2e3e Fix CLI cannot find module get-latest-version error (#1442)
(patch)
2020-11-09 21:04:17 -05:00
allcontributors[bot]
94ff1da4de docs: add akirabaruah as a contributor (#1441)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-11-09 20:25:06 -05:00
Akira Baruah
a6f4ca0068 Improve error message about git and git config (#1432)
(patch)
2020-11-09 20:24:47 -05:00
dependabot[bot]
533e0cbaae Bump next from 9.5.1 to 10.0.1 in /examples/plain-js (#1431)
Bumps [next](https://github.com/vercel/next.js) from 9.5.1 to 10.0.1.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v9.5.1...v10.0.1)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (meta)
2020-11-07 17:30:28 -05:00
Brandon Bayer
25df2c0c29 Revert react query to 2.5.12 because of concurrent mode bugs (#1430)
(minor)
2020-11-07 16:59:49 -05:00
Brandon Bayer
c4d759304d Add @Talor-A as a contributor 2020-11-07 10:47:00 -05:00
allcontributors[bot]
a856304062 docs: add benediktms as a contributor (#1429)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-11-07 10:43:11 -05:00
Benedikt Schnatterbeck
be7d0ee723 Cypress test fix (#1369)
Co-authored-by: Brandon Bayer <b@bayer.ws> (meta)
2020-11-07 10:42:57 -05:00
Brandon Bayer
91aebf44bc Fix: disable useQuery on first render, when router params don't exist yet AND fix TS type for useRouter() (#1422)
(patch)
2020-11-07 10:38:04 -05:00
Hiroki Isogai
6d45d52f7a Fix cannot read property '_clientVersion' of undefined (#1419)
(patch)
2020-11-05 20:14:08 -05:00
allcontributors[bot]
c451a5d55e docs: add wobsoriano as a contributor (#1420)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-11-05 08:56:54 -05:00
Robert Soriano
646e8ae0f6 Remove React imports from page templates (#1418)
(patch)
2020-11-05 08:56:34 -05:00
Brandon Bayer
28ded0c1b1 v0.25.0-canary.2 2020-11-04 21:58:07 -05:00
Brandon Bayer
8c9de5a1de Fix useInfiniteQuery bug on canary where page params are empty (#1416)
(patch)
2020-11-04 21:50:22 -05:00
Brandon Bayer
a3c468b779 Switch to superjson for error serialization (enables using instanceof) (#1414)
(patch)
2020-11-04 21:04:14 -05:00
Brandon Bayer
6907e92d14 Add @leggsimon as a contributor 2020-11-04 20:49:09 -05:00
Brandon Bayer
418173849b Add @ericsakmar as a contributor 2020-11-04 20:44:08 -05:00
Abu Uzayr
087230e800 Upon blitz new, prompt user for upgrade if blitz version is outdated (#1397)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2020-11-04 20:01:26 -05:00
Brandon Bayer
1ccfc7e5ba Add @matamatanot as a contributor 2020-11-04 19:15:00 -05:00
allcontributors[bot]
cdbe9e3cef docs: add isoppp as a contributor (#1412)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-11-04 18:56:53 -05:00
Hiroki Isogai
a254b70139 Remove as prop from blitz generate page templates (#1411)
(patch)
2020-11-04 18:56:39 -05:00
depfu[bot]
c3c0e55597 Upgrade next: 10.0.0 → 10.0.1 (#1409)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com> (minor)
2020-11-04 18:54:55 -05:00
depfu[bot]
26f8e97b25 Upgrade @prisma/sdk: 2.6.0 → 2.10.0 (#1393)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com> (meta)
2020-11-03 09:16:26 -05:00
depfu[bot]
353e4efea6 Upgrade @prisma/cli: 2.4.1 → 2.10.0 (minor) (#1394)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com> (example)
2020-10-30 18:37:15 -04:00
depfu[bot]
ae934bc6b7 Upgrade @prisma/client: 2.8.0 → 2.10.0 (minor) (#1395)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com> (example)
2020-10-28 22:01:55 -04:00
Brandon Bayer
8ebb383764 commit yarn.lock 2020-10-27 22:19:00 -04:00
Brandon Bayer
8f7b064cee v0.25.0-canary.1 2020-10-27 22:18:13 -04:00
Brandon Bayer
73fa209e9f Fix useInfiniteQuery broken cache (#1391)
(patch)
2020-10-27 22:16:21 -04:00
sirmyron
3372307112 Add sirmyron l1 maintainer (#1389)
Co-authored-by: Myron Davis <myron@dizari.com> (meta)
2020-10-27 21:02:31 -04:00
depfu[bot]
c1e771d8a7 Upgrade next: 9.5.5 → 10.0.0 (major) (#1385)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
2020-10-27 20:55:46 -04:00
Brandon Bayer
0dc2891387 Remove tailwind example app (#1384)
(example)
2020-10-27 20:54:47 -04:00
allcontributors[bot]
819929e2f6 docs: add mweibel as a contributor (#1382)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-25 16:16:31 -04:00
Michael Weibel
e76f23dc3d (newapp) Move typescript to production dependencies (so blitz db seed works on prod deploy) (#1377) 2020-10-25 16:16:11 -04:00
allcontributors[bot]
33c6d8e5e1 docs: add maciekgrzybek as a contributor (#1381)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-25 15:57:49 -04:00
maciek_grzybek
f927aa05ee Fix inconsistencies with the CLI -h flag (#1257)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2020-10-25 15:57:33 -04:00
Jirka Svoboda
2efbe7bd51 Added eslint import sorting (#1345)
(meta)
2020-10-25 15:32:32 -04:00
allcontributors[bot]
c0e88cb509 docs: add machadolucasvp as a contributor (#1380)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-25 15:31:43 -04:00
Lucas Machado
cb8c268a14 (newapp) Move tsc from pre-commit to pre-push hook (#1362) 2020-10-25 15:31:28 -04:00
Brandon Bayer
6df771c86e Update @nksaraf as a contributor 2020-10-25 15:29:15 -04:00
Brandon Bayer
dbef6f9389 Add @goleary as a contributor 2020-10-25 15:28:32 -04:00
Brandon Bayer
f4eaebb52a v0.25.0-canary.0 2020-10-21 09:11:26 -05:00
allcontributors[bot]
4df2dfd5fc docs: add nemesv as a contributor (#1373)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-21 09:08:19 -05:00
Viktor Nemes
f20de5ad53 Fix blitz db seed not working (#1363)
(patch)
2020-10-21 09:08:04 -05:00
allcontributors[bot]
005edc089a docs: add sirmyron as a contributor (#1361)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-18 16:44:35 -05:00
sirmyron
ddab8d063d Added useMemo call for response from useRouter (#1352)
Co-authored-by: Myron Davis <myron@dizari.com> (patch)
2020-10-18 16:44:13 -05:00
Brandon Bayer
308744681b Fix your jest tests failing because of useQuery error message (#1357)
(patch)
2020-10-18 16:35:28 -05:00
allcontributors[bot]
291b988c05 docs: add markhaehnel as a contributor (#1360)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-18 16:33:31 -05:00
Mark Hähnel
7fdd97bb7d Fix blitz CLI not using proper exit codes (#1316)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2020-10-18 16:33:16 -05:00
allcontributors[bot]
02af10133c docs: add dulcehc as a contributor (#1359)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-18 16:30:02 -05:00
Dulce Hernández
de01a52886 (newapp) Add incremental:true to tsconfig.json (#1350) 2020-10-18 16:29:39 -05:00
Brandon Bayer
cbcbeefd40 Add @zanedb as a contributor 2020-10-18 16:21:40 -05:00
allcontributors[bot]
7083da0297 docs: add nksaraf as a contributor (#1358)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-18 16:12:30 -05:00
Nikhil Saraf
83b08f00eb Fix db.connect error when using without prisma (#1342)
(patch)
2020-10-18 16:12:17 -05:00
Rafael Nunes
3e7bf85750 Adds test to assert useMutation validation (#1351)
(meta)
2020-10-18 15:32:48 -05:00
Brandon Bayer
e9d626d495 (newapp) Fix tests not found if app has blitz in the name (#1355) 2020-10-18 15:30:26 -05:00
André Ericson
bc9983a31e Add setQueryData to react-query-utils AND rename mutate to setQueryData (#1291)
(major)
2020-10-18 10:35:41 -05:00
depfu[bot]
c798d39c4b Fix error stack trace regression by upgrading tslog: 2.9.0 → 2.9.1 (patch) (#1348)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com> (patch)
2020-10-17 18:50:06 -05:00
depfu[bot]
0394ced3ff Upgrade superjson: 1.2.3 → 1.3.0 (#1347)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com> (patch)
2020-10-17 17:24:13 -05:00
Brandon Bayer
fc40c9dc23 v0.24.3 2020-10-16 12:07:55 -04:00
Jose Felix
728ef2d2a6 Add loading progress indicator to blitz console (#1336)
(patch)
2020-10-16 12:05:28 -04:00
Victor Nahuel Chaves
bc725db4ec Fix can't install any recipe (#1339)
(patch)
2020-10-16 11:51:30 -04:00
allcontributors[bot]
6cd3bb32a7 docs: add sewerynkalemba as a contributor (#1332)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-14 19:06:06 -04:00
Seweryn Kalemba
14faf68a0b Export missing AuthenticatedSessionContext type (#1330)
(patch)
2020-10-14 19:05:48 -04:00
allcontributors[bot]
e7bdafc2c5 docs: add ntgussoni as a contributor (#1328)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-14 17:24:32 -04:00
Nicolas Torres
241a62e465 Fix .gitignore files not being ignored by blitz (#1150)
Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: Rudi Yardley <contact@rudiyardley.com> (patch)
2020-10-14 17:23:00 -04:00
Konrad Kalemba
5118be3ddd Add Recipe for Base Web - a UI framework from Uber (#1319)
(recipe)
2020-10-14 17:02:41 -04:00
allcontributors[bot]
eebe8bcdfb docs: add peter50216 as a contributor (#1327)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-14 17:01:12 -04:00
Peter Shih
e4983c6f2e (newapp) Fix tests not working out of box (#1323) 2020-10-14 17:00:14 -04:00
André Ericson
3d3bb20365 Remove incorrect deprecation warning when using useMutation (#1320)
(patch)
2020-10-14 16:31:26 -04:00
Konrad Kalemba
77f9e60a9c Fix recipes to add their providers at the root of App's return function (#1324)
(recipe)
2020-10-14 16:29:08 -04:00
Brandon Bayer
66111f74bf v0.24.2 2020-10-13 21:10:24 -04:00
allcontributors[bot]
c2bb7728b2 docs: add nahue as a contributor (#1321)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-13 19:30:46 -04:00
Victor Nahuel Chaves
d5c2fa15e0 Update Ink dependencies (#1171)
Co-authored-by: Brandon Bayer <b@bayer.ws> (meta)
2020-10-13 19:28:26 -04:00
allcontributors[bot]
f93208e75f docs: add wanjuntham as a contributor (#1317)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-13 09:42:27 -04:00
wanjuntham
660c7fbb5e Update Next.js from 9.5.3 to 9.5.5 (#1289)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
Co-authored-by: Cody G <37571416+clgeoio@users.noreply.github.com>
Co-authored-by: engelkes-finstreet <36962022+engelkes-finstreet@users.noreply.github.com>
Co-authored-by: André Ericson <de.ericson@gmail.com>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Konrad Kalemba <konrad_kal@hotmail.com>
Co-authored-by: Domantas Mauruča <domantas.mauruca@gmail.com>
Co-authored-by: Carlos Fernández <c.fernandez@rpalatam.com.pe>
Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: Stratulat Alexandru <alexanderstratulat97@gmail.com>
Co-authored-by: Bruno Crosier <bruno.crosier@gmail.com>

(patch)
2020-10-13 09:39:31 -04:00
allcontributors[bot]
bcb88c72ea docs: add jamiedavenport as a contributor (#1314)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-12 21:00:43 -04:00
allcontributors[bot]
b81a3dd314 docs: add engelkes-finstreet as a contributor (#1313)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-12 20:59:53 -04:00
allcontributors[bot]
51bdaa118a docs: add sandulat as a contributor (#1312)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-12 20:58:59 -04:00
Satoshi Nitawaki
59cf61a26a Remove Ivan from L1 maintainers & Add Patrick Engelkes as Level1 maintainer (#1310)
(meta)
2020-10-12 20:31:05 -04:00
allcontributors[bot]
876eb8327f docs: add nitaking as a contributor (#1311)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-12 20:30:01 -04:00
allcontributors[bot]
018e462ce8 docs: add davidlutta as a contributor (#1307)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-12 18:23:47 -04:00
David Ezekiel Lutta
74cde8a871 Add getConfig export from core for next/config (#1304)
(minor)
2020-10-12 18:22:41 -04:00
Jamie Davenport
bc9f0e9d85 Add Jamie Davenport as a L1 maintainer (#1301)
(meta)
2020-10-12 17:46:46 -04:00
allcontributors[bot]
683c251693 docs: add alexnaiman as a contributor (#1299)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-11 15:11:34 -04:00
Alexandru Naiman
1d02efb21d Fix circular dependencies in blitz core (#1249)
Co-authored-by: Brandon Bayer <b@bayer.ws> (meta)
2020-10-11 15:08:37 -04:00
allcontributors[bot]
f35da93d6d docs: add aaronfulkerson as a contributor (#1295)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-10 18:50:33 -04:00
Bruno Crosier
cd2e29b286 Remove "--experimental" from "blitz db studio" (#1272)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2020-10-10 17:12:20 -04:00
Stratulat Alexandru
82e4f7fd95 Remove Simon Debbarma and Jack Clancy from L1 maintainers. (#1290)
(meta)
2020-10-10 17:06:00 -04:00
Brandon Bayer
99e64fa2e0 Update @aericson as a contributor 2020-10-10 16:45:55 -04:00
Brandon Bayer
9b0dd2ccaa Add @Kosai106 as a contributor 2020-10-10 16:45:46 -04:00
allcontributors[bot]
0235395e54 docs: add cajotafer as a contributor (#1293)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-10 16:38:01 -04:00
Carlos Fernández
67ba766a87 (newapp) Add yarn/npx to global install instructions in readme (#1285) 2020-10-10 16:36:54 -04:00
Domantas Mauruča
85216555fc Fix to allow babel config modification in Recipes (#1280)
(patch)
2020-10-10 16:13:50 -04:00
Konrad Kalemba
25ebbc919b Fix all recipes to add their context providers above getLayout() (#1279)
(recipes)
2020-10-10 16:11:05 -04:00
allcontributors[bot]
312dc3a1a9 docs: add aericson as a contributor (#1292)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-10 16:09:17 -04:00
André Ericson
f31d2a9770 (newapp) Fix validateDOMNesting error from default home page (#1277) 2020-10-10 16:08:28 -04:00
engelkes-finstreet
0199605d07 Fix blitz generate model to add fields to existing model instead of duplicating (#1251)
(patch)
2020-10-10 16:01:44 -04:00
Cody G
092775a3f2 Fix to not run husky during new app creation (#1270)
(patch)
2020-10-10 15:44:45 -04:00
Cody G
aea6c88b1e Adds tests for useSession in core super tokens (#1258)
(meta)
2020-10-10 15:43:16 -04:00
Stratulat Alexandru
846194a5b1 Add Alexandru Stratulat as L1 Maintainer (#1271)
(meta)
2020-10-07 10:06:19 -04:00
Brandon Bayer
814ed2d59a v0.24.1 2020-10-06 20:33:25 -04:00
Brandon Bayer
41106588ff Fix page template to use useMutation (#1269)
(patch)
2020-10-06 20:32:04 -04:00
Brandon Bayer
6f50d77756 update patch for release script
(meta)
2020-10-06 19:28:52 -04:00
Brandon Bayer
99bf898cdc v0.24.0 2020-10-06 19:24:50 -04:00
Brandon Bayer
4ef7d81018 Few improvements to log colors (#1267)
(patch)
2020-10-06 19:19:56 -04:00
Brandon Bayer
37ce99a37a Fix global CLI on canary by dynamically require server package (#1265)
(patch)
2020-10-06 19:00:10 -04:00
Simon Knott
2f3be902e4 Promote Simon to L2 Maintainership (#1264)
(meta)
2020-10-06 13:55:24 -04:00
Brandon Bayer
968f1d0cb9 v0.24.0-canary.4 2020-10-06 12:11:31 -04:00
Brandon Bayer
0b103bccca Revert "Prefix session cookies with app name (#1229)"
This reverts commit 3d827c8506.
2020-10-06 12:07:42 -04:00
Brandon Bayer
406b643f94 Add @sandulat as a contributor 2020-10-06 12:01:40 -04:00
Brandon Bayer
33c7bec41f v0.24.0-canary.3 2020-10-06 11:23:48 -04:00
Stratulat Alexandru
3d827c8506 Prefix session cookies with app name (#1229)
(minor)
2020-10-06 11:21:46 -04:00
allcontributors[bot]
b04c6d7469 docs: add Dohxis as a contributor (#1261)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-06 11:18:54 -04:00
Domantas Mauruča
242e2eadee Add tests for add-dependency-executor (#1259)
(meta)
2020-10-06 11:17:02 -04:00
Brandon Bayer
08303d337b Add back RouterContext and BlitzRouter which got lost in last canary release (#1260)
(patch)
2020-10-06 11:13:46 -04:00
Brandon Bayer
be861c7919 v0.24.0-canary.2 2020-10-05 19:13:19 -04:00
allcontributors[bot]
092045e807 docs: add Alucard17 as a contributor (#1256)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-05 18:59:41 -04:00
Alucard17
1e0f17c93a Changed @blitzjs/core to only export public API (#1246)
Co-authored-by: Brandon Bayer <b@bayer.ws> (meta)
2020-10-05 18:58:57 -04:00
Jamie Davenport
310079b3bc Fix Safari compatibility: shim requestIdleCallback (#1247)
(patch)
2020-10-05 18:46:06 -04:00
Brandon Bayer
a81252aeb4 Fix regression on canary of loss of Prisma error code (#1254)
(patch)
2020-10-05 18:15:02 -04:00
allcontributors[bot]
cc58c72d94 docs: add konradkalemba as a contributor (#1255)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-05 18:14:09 -04:00
Konrad Kalemba
2162e1c6b4 Fix DocumentContext import in Material UI recipe (#1253)
(recipe)
2020-10-05 18:13:12 -04:00
अभिनाश (Avinash)
d46d860338 (newapp) Fix docs link on default homepage (#1250) 2020-10-05 18:10:55 -04:00
Satoshi Nitawaki
c65360de09 Fix name of blitz db seed command (was blitz seed) (#1239)
(patch)
2020-10-05 17:57:08 -04:00
Kotaro Chikuba
9873fc22de Fix isBlitzRoot() for blank deps/devDeps (#1242)
(patch)
2020-10-05 17:55:31 -04:00
allcontributors[bot]
e6954fbca8 docs: add mizchi as a contributor (#1252)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-05 10:03:03 -04:00
Kotaro Chikuba
048ba5f5cb Fix middleware test for win and mac (#1245)
(meta)
2020-10-05 10:01:14 -04:00
Brandon Bayer
bd1063a965 Upgrade prisma version in examples apps (#1238)
(meta)
2020-10-03 12:34:11 -04:00
Brandon Bayer
ae6b22f4f0 v0.24.0-canary.1 2020-10-02 21:57:55 -04:00
Brandon Bayer
f45d2d5ee3 Change log color of query/mutation input args to yellow (#1237)
(minor)
2020-10-02 21:56:02 -04:00
Brandon Bayer
7bc8a249b4 Make ctx.session.authorize() a type guard (#1222)
(minor)
2020-10-02 20:55:51 -04:00
Brandon Bayer
742ff71a97 Add ability to strongly type PublicData! (#1219)
Co-authored-by: Piotr Monwid-Olechnowicz <hasparus@gmail.com> (major)
2020-10-02 20:35:39 -04:00
Brandon Bayer
9291ae3b38 Upgrade monorepo typescript from 3.8 to 4.0 (#1236)
(meta)
2020-10-02 19:22:48 -04:00
allcontributors[bot]
5a5656078b docs: add hasparus as a contributor (#1235)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>(meta)
2020-10-02 18:35:05 -04:00
Brandon Bayer
ea815e83fa Upgrade superjson to 1.2.3 (#1230)
(patch)
2020-10-02 17:19:59 -04:00
Weilbyte
869c00c950 Fix blitz new --js #1208 (#1211)
(patch)
2020-10-02 16:58:24 -04:00
Brandon Bayer
a670693e9d v0.24.0-canary.0 2020-10-02 16:29:22 -04:00
allcontributors[bot]
5de91ad57b docs: add phillippschmedt as a contributor (#1228)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-02 16:21:56 -04:00
Phillipp Schmedt
31899458de Enforce NodeJS Version >= 12 for CLI (#1213)
(patch)
2020-10-02 16:21:40 -04:00
Jamie Davenport
dce462ba53 Improve error message when attempting useQuery with regular functions (#1223)
(patch)
2020-10-02 16:20:15 -04:00
Brandon Bayer
5ebed4b05d Update @engelkes-finstreet as a contributor 2020-10-02 16:17:48 -04:00
Brandon Bayer
13353793af Update @engelkes-finstreet as a contributor 2020-10-02 16:17:27 -04:00
Cody G
3583a59aa8 Refactor and add tests for public data store (#1204)
(meta)
2020-10-02 16:14:35 -04:00
Brandon Bayer
1c5aee7c67 Add invalidateQuery utility (#1226)
(minor)
2020-10-02 16:09:34 -04:00
Justin Hall
c87883dbe8 Fix logout mutation usage in generated app index page (#1201)
(newapp)
2020-10-02 16:09:22 -04:00
allcontributors[bot]
7d84561690 docs: add hmajid2301 as a contributor (#1227)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-10-02 16:08:41 -04:00
Haseeb Majid
3f43ffd4fe Don't run prettier is blitz new fails (#1202)
Co-authored-by: Haseeb Majid <haseeb.majid@sky.uk> (patch)
2020-10-02 16:08:26 -04:00
Bruno Crosier
1ac2092129 Change all generated file paths to be kebab-case (#1197)
(minor)
2020-10-02 16:06:57 -04:00
Brandon Bayer
579807ff20 Add getQueryKey utility (#1224)
* done

* fix the bug

* fix infinite query key to be url first like everything else (minor)
2020-10-02 15:50:22 -04:00
Brandon Bayer
566e8be3c3 Fix query cache not being invalidated on route navigation (#1225)
(patch)
2020-10-02 15:10:20 -04:00
Brandon Bayer
1b9eb77964 Rename ssrQuery to invokeWithMiddleware (#1218)
(major)
2020-10-02 12:23:32 -04:00
Brandon Bayer
9f24ba10b2 Add invoke() — the new way to imperatively call queries/mutations (#1217)
(minor)
2020-10-02 11:41:23 -04:00
Brandon Bayer
f5237c31c4 Lots of logging & error improvements!! Remove result logs, redact passwords, etc (#1212)
(minor)
2020-10-02 11:12:32 -04:00
Brandon Bayer
3ddb3870b9 Fix session race condition that would result in CSRF errors or users being logged out (#1209)
(patch)
2020-10-01 21:03:06 -04:00
Brandon Bayer
763252a5ed Fix husky pre-push script for new apps (#1207)
(patch)
2020-10-01 14:29:49 -04:00
Brandon Bayer
6a37f32322 Update @brunocrosier as a contributor 2020-10-01 14:27:35 -04:00
John Cantrell
48e27be1a7 Fix bug with creating new session after revoking current one (#1200)
(patch)
2020-09-30 18:20:11 -04:00
Brandon Bayer
90df4e8409 v0.23.2-canary.3 2020-09-30 11:50:04 -04:00
Brandon Bayer
3b46d96ec8 Minor updates to pages/queries/mutations templates (add useMutation and use db.findFirst) (#1195)
(minor)
2020-09-30 11:47:58 -04:00
Brandon Bayer
13c5a9b802 Fix a resolver type build error (on canary) (#1194)
(patch)
2020-09-30 11:40:34 -04:00
allcontributors[bot]
e6ddebadf5 docs: add ntgussoni as a contributor (#1189)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-09-29 22:13:48 -04:00
allcontributors[bot]
1bb4cf33ff docs: add clgeoio as a contributor (#1190)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-09-29 22:12:56 -04:00
Cody G
36dfbe42f5 Adds tests for core parsePublicDataToken (#1184)
(meta)
2020-09-29 22:09:07 -04:00
Satoshi Nitawaki
6c06f0b62c (newapp) Fix tests not working out of the box (#1165) 2020-09-29 21:49:16 -04:00
Stratulat Alexandru
a83536be21 Reduce re-renders by memoizing useParams and useRouterQuery (#1157)
(patch)
2020-09-29 09:07:51 -04:00
Brandon Bayer
07f9e26827 v0.23.2-canary.2 2020-09-28 18:58:29 -04:00
Brandon Bayer
c5e6221ebb Fix types for useQuery that were broken with useMutation addition (#1181)
(patch)
2020-09-28 18:48:12 -04:00
Brandon Bayer
2b0fe98cf5 v0.23.2-canary.1 2020-09-28 17:32:23 -04:00
allcontributors[bot]
58386ffe2c docs: add lukebennett as a contributor (#1180)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-09-28 17:25:16 -04:00
Luke Bennett
23fc27027a Use npm for husky pre-push hook instead of yarn (#1179)
(newapp)
2020-09-28 17:24:28 -04:00
Brandon Bayer
e4c00094e5 Disable automatic query request cancellation (#1177)
(patch)
2020-09-28 17:14:53 -04:00
Brandon Bayer
a357fd0445 Fix useQuery's mutate and router.push in same frame will cause error (#1176)
* fix mutate

* fix test

* add comment (patch)
2020-09-28 16:54:27 -04:00
Brandon Bayer
c43967984b Add @Kamshak as a contributor 2020-09-28 11:28:52 -04:00
Rudi Yardley
e47d947dc0 Fix bug in dev where files were not being removed correctly when deleted (#1161)
(patch)
2020-09-28 11:06:05 -04:00
Satoshi Nitawaki
ffb54ec064 Add .node-version (#1148)
(meta)
2020-09-28 11:04:46 -04:00
Brandon Bayer
08abc33494 v0.23.2-canary.0 2020-09-26 22:21:14 -04:00
Brandon Bayer
34722f952c 🔥 Add useMutation() and strong typing for ctx and ctx.session (#1160)
(major)
2020-09-26 22:12:29 -04:00
Brandon Bayer
4003b8ac01 Big refactor of internal types for react-query, RPC, and resolvers (#1172)
(meta)
2020-09-26 21:19:19 -04:00
allcontributors[bot]
160b5fc062 docs: add brunocrosier as a contributor (#1159)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-09-24 20:29:01 -04:00
Bruno Crosier
b722c39f79 (newapp) Add "restart server" to instruction to index page (#1140)
Co-authored-by: Brandon Bayer <b@bayer.ws>
2020-09-24 20:28:14 -04:00
allcontributors[bot]
8da7bd7cd4 docs: add jorisre as a contributor (#1158)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Brandon Bayer <b@bayer.ws> (meta)
2020-09-24 20:26:00 -04:00
Joris
712cb172eb Fix: pass undefined through the RPC layer (#1156) 2020-09-24 20:24:57 -04:00
Brandon Bayer
d623d8cc33 v0.23.1-canary.0 2020-09-23 22:26:52 -04:00
Brandon Bayer
5ca38ca6d8 Fix ES5 compatibility: upgrade superjson to 1.2.2 (#1147)
(patch)
2020-09-23 22:22:08 -04:00
Brandon Bayer
db0128c971 Upgrade react-query to 2.23.0 (#945)
(patch)
2020-09-23 22:14:29 -04:00
Mohamed Shaban
856aa53843 Fix blitz console not closing on first Ctrl+D (#1142)
Co-authored-by: Fran Zekan <zekan.fran369@gmail.com>
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2020-09-23 21:57:13 -04:00
Fran Zekan
f9c3f82b27 Add blitz db seed for seeding data in your database (#678)
Co-authored-by: Brandon Bayer <b@bayer.ws> (minor)
2020-09-23 21:42:32 -04:00
allcontributors[bot]
97d5f396de docs: add drmas as a contributor (#1146)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-09-23 21:38:33 -04:00
Rudi Yardley
760fba77ab Speed up blitz start by 40% by adding incremental dev cache (#1137)
(patch)
2020-09-23 21:35:18 -04:00
Brandon Bayer
f83ce0bd72 Redirect MAINTAINERS.md to the new page in the docs 2020-09-23 21:07:15 -04:00
Brandon Bayer
7425952616 (newapp) Improve Form typing: remove need to pass schema type (#1144) 2020-09-23 19:55:27 -04:00
Brandon Bayer
7fac0134b3 Add @kitze as a contributor 2020-09-23 10:24:38 -04:00
Brandon Bayer
df46939fe3 back out no-for-of eslint rule
(meta)
2020-09-22 19:45:11 -04:00
Brandon Bayer
9e88b11496 v0.23.0 2020-09-22 19:28:46 -04:00
Ricardo Trejos
c427ae23d4 Add a timeout to the "retrieving freshest dependencies" step for blitz new(#1132)
(patch)
2020-09-21 20:58:32 -04:00
Enrico Schaaf
cb849c5ba9 Fix blitz autocomplete adding alpha warning message to the shell config (#1122)
(patch)
2020-09-21 19:35:34 -04:00
अभिनाश (Avinash)
6e777dd72a add lint rule to prevent Object.fromEntries in core package (#1129)
(meta)
2020-09-21 19:34:16 -04:00
Brandon Bayer
80ab4876f2 Improve error message for missing SESSION_SECRET_KEY (#1136)
(patch)
2020-09-21 16:00:59 -04:00
Brandon Bayer
cd0bf1f970 (newapp) Change signup & login to lowerCase emails before saving and verifying (#1135) 2020-09-21 14:56:38 -04:00
allcontributors[bot]
5f5a5c8ef7 docs: add enricoschaaf as a contributor (#1128)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-09-19 22:27:51 -04:00
Enrico Schaaf
9a1e0d0de7 Update Taiwind recipe to opt in to future Tailwind CSS changes (#1118)
(recipe)
2020-09-19 22:27:34 -04:00
Brandon Bayer
fb44203510 v0.22.3-canary.0 2020-09-19 22:01:38 -04:00
Brandon Bayer
010057b34c Fix ES5 compatibility (#1124)
(patch)
2020-09-19 21:10:50 -04:00
Brandon Bayer
575e862ae3 Remove prisma client generation from blitz in favor of new package.json schema config (Requires Prisma 2.7.0+ & new field in pkg.json)) (#1121)
(major)
2020-09-19 19:30:03 -04:00
Satoshi Nitawaki
aed6b8875a Fix slack channel name in MAINTAINERS.md (#1117)
(meta)
2020-09-19 10:59:40 -04:00
Satoshi Nitawaki
10b6f859fd Fix blitz new spewing out all the database migration logs (#1116)
(patch)
2020-09-19 10:54:26 -04:00
Brandon Bayer
9ac856c0ee Update @cardotrejos as a contributor 2020-09-19 10:50:09 -04:00
अभिनाश (Avinash)
1ff7f36482 Enable automatic network request cancelation for queries/mutations (#1092)
Co-authored-by: Brandon Bayer <b@bayer.ws> (minor)
2020-09-19 10:47:58 -04:00
Brandon Bayer
df150da37e Fix cli cache file to be in temp directory instead of project directory (#1087)
(patch)
2020-09-19 10:45:37 -04:00
Bhanu Teja Pachipulusu
eb7409c0b3 Add --force flag for blitz db reset command (#1107)
(minor)
2020-09-19 10:44:22 -04:00
Brandon Bayer
1411a1d366 🎉 Add Satoshi Nitawaki as L1 Maintainer (#1119)
(meta)
2020-09-19 10:35:59 -04:00
allcontributors[bot]
ec95cb40de docs: add hardfire as a contributor (#1113)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-09-18 18:15:07 -04:00
Brandon Bayer
b502d7ea1e Add dotenv-flow to jest config for new apps (#1112)
(newapp)
2020-09-18 18:08:03 -04:00
allcontributors[bot]
74bf2a9e4c docs: add doeixd as a contributor (#1109)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-09-18 15:36:03 -04:00
Brandon Bayer
1ee637c367 Revert "add dotenv-flow to jest setup file for new apps"
This reverts commit 23a33f1c3d.
2020-09-18 15:15:41 -04:00
Brandon Bayer
c08771b57e Revert "move it to jest config"
This reverts commit 8a468e4f79.
2020-09-18 15:15:01 -04:00
Brandon Bayer
8a468e4f79 move it to jest config 2020-09-18 15:14:31 -04:00
Brandon Bayer
23a33f1c3d add dotenv-flow to jest setup file for new apps 2020-09-18 15:12:37 -04:00
Brandon Bayer
b3767861a2 Fix inability to have a /test page (#1111)
(patch)
2020-09-18 13:46:56 -04:00
Patrick G
65acfff0ff Add test, tests, spec, specs to build hash ignore list (#1102)
Co-authored-by: Brandon Bayer <b@bayer.ws> (patch)
2020-09-18 11:23:45 -04:00
Brandon Bayer
ab3fc26409 Add @sergiodxa as a contributor 2020-09-18 11:11:05 -04:00
Brandon Bayer
7b7039e0e3 bump CI cache key
(ignore)
2020-09-18 11:05:04 -04:00
engelkes-finstreet
e93f24452c Fix blitz generate pages to use kebab-case for all url paths (#1089)
(patch)
2020-09-18 10:21:00 -04:00
Brandon Bayer
63c9375331 add "recipe" and "newapp" type to release patch
(meta)
2020-09-18 10:01:57 -04:00
Brandon Bayer
adfb486004 Tweaks to new app template pkg scripts: add tsc to pre-commit and lint to pre-push (#1104)
(minor)
2020-09-18 09:58:04 -04:00
Brandon Bayer
5828736369 Improve Recipe for Render.com (#1108)
(recipe)
2020-09-18 09:53:25 -04:00
Brandon Bayer
40a93ee62d Add @tsriram as a contributor 2020-09-18 09:52:42 -04:00
Brandon Bayer
8fa82c7661 Revert "Tweaks to new app template pkg scripts: add tsc to pre-commit and lint to pre-push"
This reverts commit 141003df89.
2020-09-17 16:46:01 -04:00
Brandon Bayer
141003df89 Tweaks to new app template pkg scripts: add tsc to pre-commit and lint to pre-push 2020-09-17 16:44:10 -04:00
Brandon Bayer
6ef7b8a2de Improve rendering of errors in generated Final Form <LabeledTextField> (#1095)
(patch)
2020-09-16 17:09:06 -04:00
allcontributors[bot]
6ade33b849 docs: add taylorcjohnson as a contributor (#1093)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> (meta)
2020-09-16 09:23:56 -04:00
Taylor Johnson
02d3aa8259 Change the new app schema provider to be just sqlite instead of an array (#1091)
(patch)
2020-09-16 09:23:11 -04:00
5145 changed files with 529184 additions and 32658 deletions

File diff suppressed because it is too large Load Diff

55
.eslintignore Normal file
View File

@@ -0,0 +1,55 @@
node_modules
reports
*.log
.nyc_output
**/coverage
tsconfig.tsbuildinfo
**/.blitz/**
**/.next/**
**/dist/**
**/.vercel/**
**/.test*
/examples/auth2
prettier.config.*
jest.config.*
jest.setup.*
babel.config.*
eslint.config.*
/__mocks__
/__fixturse
/assets
/patches
/rfc-docs
/scripts
/types
/recipes/*/templates
/packages/generator/templates
/packages/cli/lib
/packages/babel-preset/src/fix-node-file-trace/tests/**
/test/integration/**/out/**
/nextjs/packages/create-next-app
// COPIED FROM nextjs/.eslintignore
/nextjs/**/.next/**
/nextjs/**/_next/**
/nextjs/**/dist/**
/nextjs/examples/**
/nextjs/packages/next/bundles/webpack/packages/*.runtime.js
/nextjs/packages/next/compiled/**/*
/nextjs/packages/react-refresh-utils/**/*.js
/nextjs/packages/react-dev-overlay/lib/**
/nextjs/**/__tmp__/**
/nextjs/.github/actions/next-stats-action/.work
/nextjs/packages/next-codemod/transforms/__testfixtures__/**/*
/nextjs/packages/next-codemod/transforms/__tests__/**/*
/nextjs/packages/next-codemod/**/*.js
/nextjs/packages/next-codemod/**/*.d.ts
/nextjs/packages/next-env/**/*.d.ts
/nextjs/packages/next/build/swc/tests/fixture/**
/nextjs/test/integration/async-modules/**
/nextjs/test/integration/eslint/**
/nextjs/test/integration/babel/**
/nextjs/test-timings.json

View File

@@ -1,14 +1,27 @@
module.exports = {
parser: "@typescript-eslint/parser",
parser: "@babel/eslint-parser",
env: {
browser: true,
commonjs: true,
es6: true,
node: true,
},
parserOptions: {
ecmaVersion: 6,
requireConfigFile: false,
sourceType: "module",
ecmaFeatures: {
jsx: true,
},
project: `./tsconfig.json`,
babelOptions: {
presets: ["@babel/preset-env", "@babel/preset-react"],
caller: {
// Eslint supports top level await when a parser for it is included. We enable the parser by default for Babel.
supportsTopLevelAwait: true,
},
},
},
plugins: ["@typescript-eslint", "import", "unicorn"],
plugins: ["import", "unicorn", "simple-import-sort"],
extends: ["react-app"],
rules: {
"react/react-in-jsx-scope": "off", // React is always in scope with Blitz
@@ -23,18 +36,84 @@ module.exports = {
case: "kebabCase",
},
],
"@typescript-eslint/no-floating-promises": "error",
"no-use-before-define": ["error", {functions: false, classes: false}],
"simple-import-sort/imports": [
"warn",
{
groups: [
[
// Side effect imports.
"^\\u0000",
// Packages.
// Things that start with a letter (or digit or underscore), or `@` followed by a letter.
"^@?\\w",
// Absolute imports and other imports such as Vue-style `@/foo`.
// Anything that does not start with a dot.
"^[^.]",
// Relative imports.
// Anything that starts with a dot.
"^\\.",
],
],
},
],
},
ignorePatterns: ["packages/cli/", "packages/generator/templates", ".eslintrc.js"],
overrides: [
{
files: ["examples/**", "packages/gui/**", "recipes/**"],
files: ["**/*.ts", "**/*.tsx"],
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaVersion: 6,
sourceType: "module",
ecmaFeatures: {
jsx: true,
},
project: `./tsconfig.eslint.json`,
},
plugins: ["@typescript-eslint"],
rules: {
"@typescript-eslint/no-floating-promises": "error",
// note you must disable the base rule as it can report incorrect errors
"no-use-before-define": "off",
// "@typescript-eslint/no-use-before-define": ["error"],
// note you must disable the base rule as it can report incorrect errors
"no-redeclare": "off",
"@typescript-eslint/no-redeclare": ["error"],
},
},
{
files: ["examples/**", "recipes/**"],
rules: {
"import/no-default-export": "off",
"unicorn/filename-case": "off",
"@typescript-eslint/no-floating-promises": "off",
},
},
{
files: ["examples/**"],
plugins: ["cypress"],
parserOptions: {
project: null,
},
env: {
"cypress/globals": true,
},
rules: {
"simple-import-sort/imports": "off",
},
},
{
files: ["packages/cli/src/commands/**/*"],
rules: {
"require-await": "off",
},
},
{
files: ["test/**", "**/__fixtures__/**"],
rules: {
"import/no-default-export": "off",
"require-await": "off",
"unicorn/filename-case": "off",
},
},
],
}

13
.github/CODEOWNERS vendored
View File

@@ -1,11 +1,8 @@
# https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners
* @flybayer
*.md @merelinguist
* @beerose
packages/server/**/* @ryardley
packages/file-pipeline/**/* @ryardley
packages/cli/**/* @aem
packages/generator/**/* @aem
packages/generator/templates**/* @flybayer
packages/installer/**/* @aem
# packages/cli/**/* @aem, @flybayer
# packages/generator/**/* @aem @flybayer
# packages/generator/templates**/* @flybayer
# packages/installer/**/* @aem @flybayer

View File

@@ -1,23 +0,0 @@
---
name: Bug report
about: Something is not working right. Or error messages are unclear.
title: ''
labels: ''
assignees: ''
---
### What is the problem?
### Steps to Reproduce
1.
### Versions
```
output of `blitz --version --verbose`
```
### Other
Please include applicable logs and screenshots that show your problem.

48
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,48 @@
name: Bug Report
description: Something is not working right. Or error messages are unclear.
labels: "kind/bug, status/triage"
body:
- type: markdown
attributes:
value: Thanks for taking the time to file a bug report! Please fill out this form as completely as possible.
- type: textarea
attributes:
label: What is the problem?
validations:
required: true
- type: textarea
attributes:
label: "Paste all your error logs here:"
value: |
```
PASTE_HERE (leave the ``` marks)
```
validations:
required: true
- type: textarea
attributes:
label: "Paste all relevant code snippets here:"
value: |
```
PASTE_HERE (leave the ``` marks)
```
validations:
required: true
- type: textarea
attributes:
label: What are detailed steps to reproduce this?
value: "1."
validations:
required: true
- type: textarea
attributes:
label: "Run `blitz -v` and paste the output here:"
value: |
```
PASTE_HERE (leave the ``` marks)
```
validations:
required: true
- type: textarea
attributes:
label: "Please include below any other applicable logs and screenshots that show your problem:"

View File

@@ -1,5 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Question or Discussion
- name: Prisma issue?
url: https://github.com/prisma/prisma/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc
about: All Prisma issues should be opened in the Prisma Github
- name: Question, Discussion, Idea?
url: https://github.com/blitz-js/blitz/discussions/new
about: Ask questions and discuss with other community members

View File

@@ -2,7 +2,7 @@
name: Feature/change request
about: Something new or better!
title: ""
labels: ""
labels: "status/triage"
assignees: ""
---

View File

@@ -1,10 +1,19 @@
Closes: ??
<!--
Thanks for opening a PR! Your contribution is much appreciated.
To make sure your PR is handled as smoothly as possible please:
- Link issue via "Closes #[issue_number]
- Choose & follow the right checklist for the change that you're making:
-->
Closes: ?
### What are the changes and their implications?
### Checklist
## Bug Checklist
- [ ] Tests added for changes
- [ ] PR submitted to [blitzjs.com](https://github.com/blitz-js/blitzjs.com) for any user facing changes
- [ ] Integration test added (see [test docs](https://blitzjs.com/docs/contributing#running-tests) if needed)
<!-- IMPORTANT: Make sure to check the "Allow edits from maintainers" box below this window -->
## Feature Checklist
- [ ] Integration test added (see [test docs](https://blitzjs.com/docs/contributing#running-tests) if needed)
- [ ] Documentation added/updated (submit PR to [blitzjs.com repo `canary` branch](https://github.com/blitz-js/blitzjs.com/tree/canary))

View File

@@ -1,25 +1,26 @@
name: Compressed Size
name: Size Check
on:
pull_request:
branches: [master, canary]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Compressed Size
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node and Yarn
uses: actions/setup-node@v1
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: "12.x"
- name: Install dependencies
run: |
yarn && yarn build
env:
CI: true
node-version: "14"
- name: Count size
uses: preactjs/compressed-size-action@v2
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
exclude: "{./nextjs/**}"

View File

@@ -1,14 +1,14 @@
name: Continuous Integration
# https://github.com/vercel/next.js/commits/canary/.github/workflows/build_test_deploy.yml
name: CI
on:
push:
branches:
- master
- canary
pull_request:
branches:
- master
- canary
types: [opened, synchronize]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
@@ -17,9 +17,9 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v1
uses: actions/setup-node@v2
with:
node-version: "12.16.1"
node-version: "14"
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
@@ -30,31 +30,40 @@ jobs:
path: |
${{ steps.yarn-cache-dir-path.outputs.dir }}
**/node_modules
/home/runner/.cache/Cypress
C:\Users\runneradmin\AppData\Local\Cypress\Cache
key: ${{ runner.os }}-yarn-v2-${{ hashFiles('yarn.lock') }}
key: ${{ runner.os }}-${{ runner.node_version}}-yarn-v14-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-v2-
${{ runner.os }}-${{ runner.node_version}}-yarn-v14-
- name: Install dependencies
run: yarn install --frozen-lockfile --silent
env:
CI: true
- name: manypkg lint
run: yarn manypkg check
env:
CI: true
- name: Build packages
run: yarn build
env:
CI: true
- name: yarn lint
run: yarn lint
env:
CI: true
build_and_test_pkgs:
name: Build & Test Packages
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
build-linux:
name: Build
runs-on: ubuntu-latest
env:
BLITZ_TELEMETRY_DISABLED: 1
steps:
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: "12.16.1"
fetch-depth: 25
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: "14"
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
@@ -64,64 +73,405 @@ jobs:
with:
path: |
${{ steps.yarn-cache-dir-path.outputs.dir }}
/home/runner/.cache/Cypress
C:\Users\runneradmin\AppData\Local\Cypress\Cache
key: ${{ runner.os }}-yarn-v2-${{ hashFiles('yarn.lock') }}
**/node_modules
key: ${{ runner.os }}-${{ runner.node_version}}-yarn-v14-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-v2-
- name: Install dependencies
run: yarn install --frozen-lockfile --silent
env:
CI: true
- name: Setup kernel to increase watchers
if: matrix.os == 'ubuntu-latest'
run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
- name: Build packages
${{ runner.os }}-${{ runner.node_version}}-yarn-v14-
- run: yarn install --frozen-lockfile --check-files
- name: Build Packages
run: yarn build
env:
CI: true
- uses: actions/cache@v2
id: cache-build
with:
path: ./*
key: ${{ runner.os }}-${{ github.sha }}
testBlitzPackages:
name: Blitz - Test Packages
needs: build-linux
runs-on: ubuntu-latest
env:
BLITZ_TELEMETRY_DISABLED: 1
steps:
- uses: actions/cache@v2
id: restore-build
with:
path: ./*
key: ${{ runner.os }}-${{ github.sha }}
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: "14"
- name: Setup kernel to increase watchers
if: runner.os == 'Linux'
run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
- name: Test Blitz Packages
run: yarn testonly:packages
env:
CI: true
build_and_test_examples:
name: Build & Test Examples
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
testNextPackages:
name: Next - Test Packages
defaults:
run:
working-directory: nextjs
needs: build-linux
runs-on: ubuntu-latest
env:
BLITZ_TELEMETRY_DISABLED: 1
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
id: restore-build
with:
path: ./*
key: ${{ runner.os }}-${{ github.sha }}
- name: Use Node.js
uses: actions/setup-node@v1
uses: actions/setup-node@v2
with:
node-version: "12.16.1"
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Cache node_modules
id: yarn-cache
uses: actions/cache@v2
with:
path: |
${{ steps.yarn-cache-dir-path.outputs.dir }}
/home/runner/.cache/Cypress
C:\Users\runneradmin\AppData\Local\Cypress\Cache
key: ${{ runner.os }}-yarn-v2-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-v2-
- name: Install dependencies
run: yarn install --frozen-lockfile --silent
env:
CI: true
node-version: "14"
- name: Setup kernel to increase watchers
if: matrix.os == 'ubuntu-latest'
if: runner.os == 'Linux'
run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
- name: Build packages
run: yarn build
- name: Test Next Packages
run: yarn testonly:packages
env:
CI: true
testBlitzExamples:
timeout-minutes: 30
name: Blitz - Test Example Apps (ubuntu-latest)
needs: build-linux
runs-on: ubuntu-latest
env:
BLITZ_TELEMETRY_DISABLED: 1
DEBUG: blitz:session
steps:
- uses: actions/cache@v2
id: restore-build
with:
path: ./*
key: ${{ runner.os }}-${{ github.sha }}
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: "14"
# Needed to get cypress binary
- run: yarn cypress install
- name: Install sass
run: yarn install -W sass
- name: Setup kernel to increase watchers
if: runner.os == 'Linux'
run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
- name: Test examples
run: yarn testonly:examples
env:
CI: true
testBlitzExamplesWin:
timeout-minutes: 30
name: Blitz - Test Example Apps (windows-latest)
runs-on: windows-latest
env:
BLITZ_TELEMETRY_DISABLED: 1
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 25
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: "14"
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
# - name: Get yarn cache directory path
# id: yarn-cache-dir-path
# run: echo "::set-output name=dir::$(yarn cache dir)"
# - name: Cache node_modules
# id: yarn-cache
# uses: actions/cache@v2
# with:
# path: |
# ${{ steps.yarn-cache-dir-path.outputs.dir }}
# **/node_modules
# key: ${{ runner.os }}-${{ runner.node_version}}-yarn-v14-${{ hashFiles('yarn.lock') }}
# restore-keys: |
# ${{ runner.os }}-${{ runner.node_version}}-yarn-v14-
- run: yarn install --frozen-lockfile --check-files
- name: Build Packages
run: yarn build
# Needed to get cypress binary
- run: yarn cypress install
- name: Install sass
run: yarn install -W sass
- name: Test examples
run: yarn testonly:examples
env:
CI: true
checkPrecompiled:
name: Check Pre-compiled
defaults:
run:
working-directory: nextjs
runs-on: ubuntu-latest
needs: build-linux
env:
BLITZ_TELEMETRY_DISABLED: 1
steps:
- uses: actions/cache@v2
id: restore-build
with:
path: ./*
key: ${{ runner.os }}-${{ github.sha }}
- run: ./scripts/check-pre-compiled.sh
testUnit:
name: Nextjs - Test Unit
defaults:
run:
working-directory: nextjs
runs-on: ubuntu-latest
needs: build-linux
env:
BLITZ_TELEMETRY_DISABLED: 1
NEXT_TEST_JOB: 1
HEADLESS: true
steps:
- uses: actions/cache@v2
id: restore-build
with:
path: ./*
key: ${{ runner.os }}-${{ github.sha }}
- run: node run-tests.js --type unit -g 1/1
testIntegrationBlitz:
name: Blitz - Test Integration
needs: build-linux
runs-on: ubuntu-latest
env:
BLITZ_TELEMETRY_DISABLED: 1
NEXT_TEST_JOB: 1
HEADLESS: true
steps:
- uses: actions/cache@v2
id: restore-build
with:
path: ./*
key: ${{ runner.os }}-${{ github.sha }}
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: "14"
# TODO: remove after we fix watchpack watching too much
- name: Setup kernel to increase watchers
if: runner.os == 'Linux'
run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
- run: xvfb-run node nextjs/run-tests.js -c 3
testIntegrationBlitzWin:
name: Blitz - Test Integration (Windows)
runs-on: windows-latest
env:
BLITZ_TELEMETRY_DISABLED: 1
NEXT_TEST_JOB: 1
HEADLESS: true
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 25
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: "14"
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
# - name: Get yarn cache directory path
# id: yarn-cache-dir-path
# run: echo "::set-output name=dir::$(yarn cache dir)"
# - name: Cache node_modules
# id: yarn-cache
# uses: actions/cache@v2
# with:
# path: |
# ${{ steps.yarn-cache-dir-path.outputs.dir }}
# **/node_modules
# key: ${{ runner.os }}-${{ runner.node_version}}-yarn-v14-${{ hashFiles('yarn.lock') }}
# restore-keys: |
# ${{ runner.os }}-${{ runner.node_version}}-yarn-v14-
- run: yarn install --frozen-lockfile --check-files
- name: Build Packages
run: yarn build
- run: node nextjs/run-tests.js
testIntegration:
name: Nextjs - Test Integration
defaults:
run:
working-directory: nextjs
runs-on: ubuntu-latest
needs: build-linux
env:
BLITZ_TELEMETRY_DISABLED: 1
NEXT_TEST_JOB: 1
HEADLESS: true
strategy:
fail-fast: false
matrix:
group: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
steps:
- uses: actions/cache@v2
id: restore-build
with:
path: ./*
key: ${{ runner.os }}-${{ github.sha }}
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: "14"
# TODO: remove after we fix watchpack watching too much
- name: Setup kernel to increase watchers
if: runner.os == 'Linux'
run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
- run: xvfb-run node run-tests.js -g ${{ matrix.group }}/20 -c 3
testIntegrationWin:
name: Nextjs - Test Integration (Windows)
runs-on: windows-latest
env:
BLITZ_TELEMETRY_DISABLED: 1
NEXT_TEST_JOB: 1
HEADLESS: true
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 25
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: "14"
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
# - name: Get yarn cache directory path
# id: yarn-cache-dir-path
# run: echo "::set-output name=dir::$(yarn cache dir)"
# - name: Cache node_modules
# id: yarn-cache
# uses: actions/cache@v2
# with:
# path: |
# ${{ steps.yarn-cache-dir-path.outputs.dir }}
# **/node_modules
# key: ${{ runner.os }}-${{ runner.node_version}}-yarn-v14-${{ hashFiles('yarn.lock') }}
# restore-keys: |
# ${{ runner.os }}-${{ runner.node_version}}-yarn-v14-
- run: yarn install --frozen-lockfile --check-files
- name: Build Packages
run: yarn build
- run: node run-tests.js test/integration/basic/test/index.test.js test/integration/production/test/index.test.js test/integration/multi-pages/test/index.test.js
working-directory: nextjs
testElectron:
name: Nextjs - Test Electron
defaults:
run:
working-directory: nextjs
runs-on: ubuntu-latest
needs: build-linux
env:
BLITZ_TELEMETRY_DISABLED: 1
NEXT_TEST_JOB: 1
HEADLESS: true
TEST_ELECTRON: 1
steps:
- uses: actions/cache@v2
id: restore-build
with:
path: ./*
key: ${{ runner.os }}-${{ github.sha }}
# TODO: remove after we fix watchpack watching too much
- name: Setup kernel to increase watchers
run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
- run: cd test/integration/with-electron/app && yarn
- run: xvfb-run node run-tests.js test/integration/with-electron/test/index.test.js
testsPass:
name: thank you, next
runs-on: ubuntu-latest
needs:
[
checkPrecompiled,
testIntegration,
testIntegrationBlitz,
testIntegrationBlitzWin,
testUnit,
testBlitzPackages,
testNextPackages,
testBlitzExamples,
testBlitzExamplesWin,
]
steps:
- run: exit 0
testFirefox:
name: Nextjs - Test Firefox (production)
defaults:
run:
working-directory: nextjs
runs-on: ubuntu-latest
needs: build-linux
env:
HEADLESS: true
BROWSER_NAME: "firefox"
BLITZ_TELEMETRY_DISABLED: 1
steps:
- uses: actions/cache@v2
id: restore-build
with:
path: ./*
key: ${{ runner.os }}-${{ github.sha }}
- run: node run-tests.js -c 1 test/integration/production/test/index.test.js
testSafari:
name: Nextjs - Test Safari (production)
defaults:
run:
working-directory: nextjs
runs-on: ubuntu-latest
needs: build-linux
env:
BROWSERSTACK: true
BROWSER_NAME: "safari"
BLITZ_TELEMETRY_DISABLED: 1
SKIP_LOCAL_SELENIUM_SERVER: true
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
steps:
- uses: actions/cache@v2
id: restore-build
with:
path: ./*
key: ${{ runner.os }}-${{ github.sha }}
- run: '[[ -z "$BROWSERSTACK_ACCESS_KEY" ]] && echo "Skipping for PR" || node run-tests.js -c 1 test/integration/production/test/index.test.js'
testSafariOld:
name: Nextjs - Test Safari 10.1 (nav)
defaults:
run:
working-directory: nextjs
runs-on: ubuntu-latest
needs: [build-linux, testSafari]
env:
BROWSERSTACK: true
LEGACY_SAFARI: true
BROWSERNAME: "safari"
BLITZ_TELEMETRY_DISABLED: 1
SKIP_LOCAL_SELENIUM_SERVER: true
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
steps:
- uses: actions/cache@v2
id: restore-build
with:
path: ./*
key: ${{ runner.os }}-${{ github.sha }}
- run: '[[ -z "$BROWSERSTACK_ACCESS_KEY" ]] && echo "Skipping for PR" || node run-tests.js test/integration/production-nav/test/index.test.js'

16
.gitignore vendored
View File

@@ -1,7 +1,7 @@
.log
.DS_Store
.idea
.jest-*
lib
node_modules
reports
*.log
@@ -20,3 +20,17 @@ dist
**/.envrc
.blitz-*
.blitz-cli-cache
.vscode
.tsbuildinfo
.nvmrc
**/.test*
examples/auth2
.idea
.ultra.cache.json
db.sqlite-journal
test/integration/**/db.json
test/**/*/out
test/**/blitz-env.d.ts
examples/**/blitz-env.d.ts
.blitz**

1
.husky/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
_

5
.husky/pre-commit Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
yarn lint-staged
yarn pretty-quick --staged

5
.kodiak.toml Normal file
View File

@@ -0,0 +1,5 @@
# .kodiak.toml
# Minimal config. version is the only required field.
version = 1
merge.automerge_label = "0 - <(^_^)> - merge it! ✌️"
approve.auto_approve_usernames = ["flybayer", "beerose", "depfu"]

1
.node-version Normal file
View File

@@ -0,0 +1 @@
14.18.1

View File

@@ -4,7 +4,7 @@
.log
.DS_Store
.jest-*
lib
packages/cli/lib
node_modules
reports
*.log
@@ -19,3 +19,7 @@ bin
!packages/blitz/src/bin
packages/generator/templates/**
.github/ISSUE_TEMPLATE/bug_report.md
nextjs/packages/next/compiled/**
// Because file from nextjs upstream isn't formatted properly
nextjs/packages/next/build/webpack-config.ts

View File

@@ -1,3 +1,91 @@
# Contributing
[Read the Contributing Guide at Blitzjs.com](https://blitzjs.com/docs/contributing)
## Notes For Core Team
### To Publish a new NPM Package under `@blitzjs/` namespace
1. cd into the package directory
2. Run `npm publish --tag danger --access public`
- `--access public` is required because scoped packages are set to private by default
### Syncing Next.js Fork
1. Run `yarn push-nextjs`
- If it fails with an error of `git-subrepo: Can't commit: 'subrepo/nextjs' doesn't contain upstream HEAD:`, then run `yarn push-nextjs --force` (see https://github.com/ingydotnet/git-subrepo/issues/530)
2. Create new git branch for the upgrade
3. In the forked repo (https://github.com/blitz-js/next.js), run:
1. `git pull`
2. `git fetch --all`
3. `git merge v10.2.0` (change the version to be the version you are updating to)
4. Run `rm -rf examples && git add examples`
5. To resolve conflict with their version for a path, like docs, run this:
- `git checkout --theirs docs && git add docs`
6. Resolve all merge conflicts and complete merge
7. Run `yarn` and make sure all builds complete
8. Run `yarn lint` and fix any issues
9. Commit all changes to finish merge
10. `git push`
4. Run `yarn pull-nextjs`
5. Run `yarn`
6. Run `yarn manypkg check` and optionally `yarn manypkg fix` to fix any issues
7. Under `nextjs/`, run `./scripts/check-pre-compiled.sh` and commit the changes
8. Run `yarn build:nextjs`
9. Run `yarn lint` - fix any issues
10. Run `yarn build` - fix any issues
11. Run `yarn test:nextjs-size` and update tests if there are any failures
12. Open PR and fix any failing tests
13. Update any references to nextjs in new code including imports like `next/image`, etc.
14. Any doc updates needed?
15. Merge PR
16. `yarn push-nextjs`
#### Troubleshooting
##### yarn lint - Failed to load parser
Caused by invalid version of `@babel/eslint-parser`. `7.13.14` is a working version. I think it may be an incompatibility between this version and the version of eslint?
- change version of eslint-parser
- run `yarn --check-files`
- run `./scripts/check-pre-compiled.sh` from `./nextjs/`
- run `yarn build:nextjs` from root
- Try linting again
```
~/c/blitz> yarn lint
yarn run v1.22.10
$ eslint --ext ".js,.ts,.tsx" .
Oops! Something went wrong! :(
ESLint: 7.21.0
Error: Failed to load parser './parser.js' declared in 'examples/auth/.eslintrc.js » eslint-config-blitz » eslint-config-next': Cannot find module '@babel/parser'
at webpackEmptyContext (/Users/b/c/blitz/nextjs/packages/next/dist/compiled/babel/bundle.js:1:33258)
at Object.73139 (/Users/b/c/blitz/nextjs/packages/next/dist/compiled/babel/bundle.js:2194:783181)
at __nccwpck_require__ (/Users/b/c/blitz/nextjs/packages/next/dist/compiled/babel/bundle.js:2194:1065271)
at Object.eslintParser (/Users/b/c/blitz/nextjs/packages/next/dist/compiled/babel/bundle.js:1:43676)
at Object.<anonymous> (/Users/b/c/blitz/nextjs/packages/next/dist/compiled/babel/eslint-parser.js:1:100)
at Module._compile (/Users/b/c/blitz/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Module.require (internal/modules/cjs/loader.js:887:19)
error Command failed with exit code 2.
```
##### Failed to compile - LICENSE
This error occurs sometimes when you import code from packages/next/build/utils.ts into some other code like config-shared.ts. Solution is to move the code into another file.
```
Failed to compile.
../../../packages/next/dist/compiled/webpack/LICENSE
Module parse failed: Unexpected token (1:10)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See webpack.js.org/concepts#loaders
> Copyright JS Foundation and other contributors
|
| Permission is hereby granted, free of charge, to any person obtaining
```

3
CONTRIBUTOR_STATS.md Normal file
View File

@@ -0,0 +1,3 @@
# Contributor over time
[![Contributor over time](https://contributor-graph-api.apiseven.com/contributors-svg?chart=contributorOverTime&repo=blitz-js/blitz)](https://www.apiseven.com/en/contributor-graph?chart=contributorOverTime&repo=blitz-js/blitz)

View File

@@ -1,11 +0,0 @@
# Blitz.js Governance
_From Brandon Bayer (@flybayer), the creator:_
Currently at this very early stage it's basically a [BDFL situation](https://opensource.guide/leadership-and-governance/#what-are-some-of-the-common-governance-structures-for-open-source-projects), with me having the final say in decisions.
However we will move away from BDFL to something that looks more like Ember.js. It's extremely important to me (Brandon) that Blitz.js is a long-term, sustainable, and community-run project.
I would love some mentorship from people with experience in large open-source projects on making this transition.
Also, it's possible I will create one or more business around Blitz, perhaps similar to how Taylor Otwell has around Laravel, but Blitz itself will always remain a separate community-run project.

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2020 Brandon Bayer
Copyright (c) 2021 Brandon Bayer
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -1,104 +0,0 @@
# ❤️ Blitz Maintainers
Aside from the core team, there are two levels of maintainers, described below.
## Becoming a Maintainer
We always need more level 1 maintainers! The main requirement is that you can show empathy when communicating online. We'll train you as needed on the other specifics. **This is a great role if you have limited time, because you can spend just as much time as you have without any ongoing responsibilities (unlike level 2)**
Level 2 maintainers have a much higher responsibility, so usually you will spend time as a level 1 maintainer before moving to level 2.
Please DM a core team member (Brandon Bayer, Rudi Yardley, or Dylan Brookes) in Slack if you're interested in becoming an official maintainer!
## Level 1 Maintainers
Level 1 maintainers are critical for a healthy Blitz community and project. They take a lot of burden off the core team and level 2 maintainers so they can focus on higher level things with longer term impact.
The primary responsibilities of level 1 maintainers are:
- Being a friendly, welcoming voice for the Blitz community
- Issue triage
- Pull request triage
- Monitor and answer the `#-help` slack channel
- Community encouragement
- Community moderation
- Tracking and ensuring progress of key issues
## Level 2 Maintainers
Level 2 maintainers are the backbone of the project. They are watchdogs over the code, ensuring code quality, correctness, and security. They also facilitate a rapid pace of progress.
The primary responsibilities of level 2 maintainers are:
- Code ownership over specific parts of the project
- Maintaining and improving the architecture of what they own
- Final pull request reviews
- Merging pull requests
- Tracking and ensuring progress of open pull requests
## ⚠️ Fundamentals
Maintainers are the face of the project and the front-line touch point for the community. Therefore maintainers have the very important responsibility of making people feel welcome, valued, understood, and appreciated.
**Please take time to read and understand everything outlined in this [guide on building welcoming communities](https://opensource.guide/building-community)**
Some especially important points:
- **Gratitude:** immediately express gratitude when someone opens an issue or PR. This takes effort/time and we appreciate it
- **Responsiveness:** during issue/PR triage, even if we cant do a full review right away, leave a comment thanking them and saying well review it soon
- **Understanding:** it's critical to ensure you understand exactly what someone is saying before you respond. Ask plenty of questions if needed. It's very bad if someone has to reply to your response and say "actually I was asking about X"
- In fact, at least one question is almost always required before you can respond appropriately  — whether in Github or in Slack
## Slack
- All `#-*` channels are for Blitz users
- All `#dev-*` channels are for Blitz internal development
If someone that's not a maintainer post in the wrong area, that's fine. Don't tell them they posted in the wrong place. But as a maintainer, you should for sure post in the right channel :)
## Issue Triage
#### If a bug report:
- Does it have enough information? Versions? Logs? Some way to reproduce?
- Has this already been fixed in a previous release?
- Is there already an existing issue for this?
### If a feature/change request:
- Is it clear what the request is and what the benefit will be?
- Is this an obvious win for Blitz? Then accept it
- If not obvious, then pull in a core team member or level 2 maintainer for more review
### Actions
1. Add tags:
- Add a `kind/*` tag
- Add a `scope/*` tag
- Add a `status/*` tag
- Add a good first/second issue tag if appropriate
## Pull Request Triage
- Are the changes covered by tests?
- Do the changes look ok? Make sure there's no obvious issues
### Actions
1. Kindly request any changes if needed
2. Else add a Github approval so that level 2 maintainers know it's already had an initial review
## Final PR Review & Merging (Level 2 maintainers)
As a level 2 maintainer, it is your responsibility to make sure broken code and regressions never reach the canary branch.
1. Ensure the PR'ed code fully works as intended and that there are no regressions in related code
1. If not fully covered by automated tests, you need to pull down the code locally and manually verify everything (the Github CLI helps with this!)
2. During squash & merge:
1. Change the commit title to be public friendly - this exact text will go in the release notes
2. Add the commit type in the description, in parenthesis like `(patch)`. Commit types:
- `major` - major breaking change
- `minor` - minor feature addition
- `patch` - patches, bug fixes, perf improvements, etc
- `example` - change to an example app
- `meta` - internal meta change related to the Blitz repo/project

View File

@@ -1,3 +0,0 @@
# Manifesto
[The Manifesto has been moved to Blitzjs.com](https://blitzjs.com/docs/manifesto)

769
README.md
View File

@@ -2,11 +2,11 @@
<!-- prettier-ignore-start -->
<p align="center">
<a aria-label="Join our Slack Community" href="https://slack.blitzjs.com">
<a aria-label="Join our Discord Community" href="https://discord.blitzjs.com">
<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-114-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">
@@ -22,15 +22,15 @@
<h1 align="center">The Fullstack React Framework</h1>
<h5 align="center">"Zero-API" Data Layer — Built on Next.js — Inspired by Ruby on Rails</h3>
<h3 align="center">Makes you far more productive than you ever dreamed was possible 😉</h3>
<h3 align="center"><a href="https://blitzjs.com" target="_blank">Read the Documentation</a></h3>
<h3 align="center"><a href="https://blitzjs.com/docs/get-started" target="_blank">Read the Documentation</a></h3>
<br>
“Zero-API” data layer **lets you import server code directly into your React components** instead of having to manually add API endpoints and do client-side fetching and caching.
Includes everything you need for production apps. **Everything end-to-end from the database to the frontend.**
New Blitz apps come with **all the boring stuff already set up for you!** Like ESLint, Prettier, Jest, user sign up, log in, and password reset.
Provides **helpful defaults and conventions** for things like routing, file structure, and authentication while also being extremely flexible.
Blitz brings back the **simplicity and conventions** of server-rendered frameworks like Ruby on Rails while preserving everything we love about React and client-side rendering!
<br>
@@ -40,41 +40,27 @@ You need Node.js 12 or newer
#### Install Blitz
Run `npm install -g blitz`
Run `npm install -g blitz` or `yarn global add blitz`
_You can alternatively use [`npx`](https://www.npmjs.com/package/npx)_
#### Create a New App
1. `blitz new myAppName`
2. `cd myAppName`
3. `blitz start`
4. View your baby app at http://localhost:3000
3. `blitz dev`
4. View your brand new app at http://localhost:3000
<br><br>
![Architecture diagram](https://blitzjs.now.sh/img/architecture-diagram.png)
<a aria-label="Bytes Newsletter" href="https://ui.dev/bytes/?r=blitzjs">
<img alt="Bytes Newsletter" src="https://files-8wtskjofb.vercel.app/smarter-16x1.jpg">
</a>
<br><br>
**Features:**<br>
⚡️ Built on Next.js<br>
⚡️ Don't have to build an API for client-side rendering<br>
⚡️ Client-side rendering, Server-side rendering, and fully static pages all in the same app<br>
⚡️ Full Typescript support with static, end-to-end typing (no code generation step needed like with GraphQL)<br>
⚡️ React Concurrent Mode enabled<br>
⚡️ Database/ORM agnostic, but Prisma 2 is default<br>
⚡️ CLI with code scaffolding, Rails-style console REPL, etc<br>
⚡️ GraphQL Ready<br>
⚡️ Deploy serverless or serverful<br>
⚡️ Highly secure authentication <br>
⚡️ Authorization you can use on both server and client<br>
⚡️ Recipes for easily adding libraries like Tailwind, CSS-in-JS, etc.<br>
**Other key features coming:**<br>
⚡️ Model validation you can use on both server and client<br>
⚡️ React native support<br>
⚡️ GUI so you don't have to use the CLI<br>
<br>
### The Foundational Principles
@@ -102,7 +88,7 @@ While we currently only support web, we are pursuing the dream of a single monol
The Blitz community is warm, safe, diverse, inclusive, and fun! LGBTQ+, women, and minorities are especially welcome. Please read our [Code of Conduct](https://blitzjs.com/docs/code-of-conduct).
[Join our Slack Community](https://slack.blitzjs.com) where we help each other build Blitz apps. It's also where we collaborate on building Blitz itself.
[Join our Discord Community](https://discord.blitzjs.com) where we help each other build Blitz apps. It's also where we collaborate on building Blitz itself.
For questions and longer form discussions, [post in our forum](https://github.com/blitz-js/blitz/discussions).
@@ -116,34 +102,70 @@ Your financial contributions help ensure Blitz continues to be developed and mai
👉 View options and contribute at [GitHub Sponsors](https://github.com/sponsors/blitz-js), [PayPal](https://paypal.me/thebayers), or [Open Collective](https://opencollective.com/blitzjs)
### 🌱 Seedling Sponsors
<a aria-label="React Bricks" href="https://reactbricks.com/?utm_source=blitzjs&utm_medium=sponsorship&utm_campaign=blitzjs_sponsorship">
<img alt="" src="https://reactbricks.com/reactbricks_icon.svg" width="30px">
</a>
<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="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>
### 🥉 Bronze Sponsors
<a aria-label="Your Company" href="#">
<img alt="" src="https://dummyimage.com/1000x330/efe8ff/000000.png&text=Your+Logo+Here" width="100px">
</a>
<table>
<tr>
<td><a aria-label="Render.com" href="https://render.com?utm_source=BlitzJS&utm_medium=sponsorship&utm_campaign=BlitzJS_Sponsorship_2020">
<img alt="" src="https://raw.githubusercontent.com/blitz-js/blitz/canary/assets/render-logo-color2.png" width="200px">
</a></td>
<td><a aria-label="RIT" href="https://rit-inc.co.jp/?utm_source=BlitzJS&utm_medium=sponsorship&utm_campaign=BlitzJS_Sponsorship_2021">
<img alt="" src="https://raw.githubusercontent.com/blitz-js/blitz/canary/assets/rit_logo.png" width="200px">
</a></td>
<td><a aria-label="Boostry" href="https://boostry.co.jp/?utm_source=BlitzJS&utm_medium=sponsorship&utm_campaign=BlitzJS_Sponsorship_2021">
<img alt="" src="https://raw.githubusercontent.com/blitz-js/blitz/canary/assets/boostry.svg" width="200px">
</a></td>
</tr>
</table>
### 🥈 Silver Sponsors
<table>
<tr>
<td>
<a aria-label="Fauna" href="https://dashboard.fauna.com/accounts/register?utm_source=BlitzJS&utm_medium=sponsorship&utm_campaign=BlitzJS_Sponsorship_2020">
<img alt="" src="https://raw.githubusercontent.com/blitz-js/blitz/canary/assets/Fauna_Logo_Blue.png" width="200px">
<img alt="" src="https://raw.githubusercontent.com/blitz-js/blitz/canary/assets/Fauna_Logo_Blue.png" width="300px">
</a>
</td>
</tr>
</table>
### 🏆 Gold Sponsors
<a aria-label="Your Company" href="#">
<img alt="" src="https://dummyimage.com/1000x330/efe8ff/000000.png&text=Your+Logo+Here" width="300px">
<img alt="" src="https://dummyimage.com/1000x330/efe8ff/000000.png&text=Your+Logo+Here" width="400px">
</a>
### 💎 Diamond Sponsors
<a aria-label="Your Company" href="#">
<img alt="" src="https://dummyimage.com/1000x330/efe8ff/000000.png&text=Your+Logo+Here" width="400px">
<img alt="" src="https://dummyimage.com/1000x330/efe8ff/000000.png&text=Your+Logo+Here" width="500px">
</a>
<br>
@@ -154,8 +176,8 @@ Your financial contributions help ensure Blitz continues to be developed and mai
<table>
<tr>
<td align="center"><a href="https://twitter.com/flybayer"><img src="https://avatars3.githubusercontent.com/u/8813276?v=4" width="100px;" alt=""/><br /><sub><b>Brandon Bayer</b></sub></a><br />Creator</td>
<td align="center"><a href="https://medium.com/@ryardley"><img src="https://avatars0.githubusercontent.com/u/1256409?v=4" width="100px;" alt=""/><br /><sub><b>Rudi Yardley</b></sub></a><br />Node.js Wizard</td>
<td align="center"><a href="https://merelinguist.now.sh"><img src="https://avatars3.githubusercontent.com/u/24858006?v=4" width="100px;" alt=""/><br /><sub><b>Dylan Brookes</b></sub></a><br />Friendly Generalist</td>
<td align="center"><a href="http://aleksandra.codes"><img src="https://avatars.githubusercontent.com/u/9019397?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Aleksandra Sikora</b></sub></a><br />Lead Maintainer</td>
</tr>
</table>
<!-- markdownlint-enable -->
@@ -166,14 +188,14 @@ Your financial contributions help ensure Blitz continues to be developed and mai
## Maintainers (Level 2) ✨
_Code ownership, pull request approvals and merging, etc_ (see [MAINTAINERS.md](./MAINTAINERS.md))
_Code ownership, pull request approvals and merging, etc_ (see [Maintainers L2](https://blitzjs.com/docs/maintainers#level-2-maintainers))
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://github.com/aem"><img src="https://avatars0.githubusercontent.com/u/1909883?v=4" width="100px;" alt=""/><br /><sub><b>Adam Markon</b></sub></a><br />CLI</td>
<td align="center"><a href="http://robdrosenberg.com"><img src="https://avatars0.githubusercontent.com/u/20813991?v=4" width="100px;" alt=""/><br /><sub><b>Robert Rosenberg</b></sub></a><br />Website/Docs</td>
<td align="center"><a href="http://simonknott.de"><img src="https://avatars1.githubusercontent.com/u/14912729?v=4" width="100px;" alt=""/><br /><sub><b>Simon Knott</b></sub></a><br />SuperJSON</td>
<td align="center"><a href="https://juanm04.com"><img src="https://avatars0.githubusercontent.com/u/16712703?v=4" width="100px;" alt=""/><br /><sub><b>Juan Martín Seery</b></sub></a><br />Website/Docs</td>
</tr>
</table>
<!-- markdownlint-enable -->
@@ -183,23 +205,54 @@ _Code ownership, pull request approvals and merging, etc_ (see [MAINTAINERS.md](
## Maintainers (Level 1) ✨
_Issue triage, pull request triage, community encouragement and moderation, etc_ (see [MAINTAINERS.md](./MAINTAINERS.md))
_Issue triage, pull request triage, community encouragement and moderation, etc_ (see [Maintainers L1](https://blitzjs.com/docs/maintainers#level-1-maintainers))
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://github.com/LoriKarikari"><img src="https://avatars1.githubusercontent.com/u/7902980?v=4" width="100px;" alt=""/><br /><sub><b>Lori Karikari</b></sub></a></td>
<td align="center"><a href="https://corey-brown.com"><img src="https://avatars1.githubusercontent.com/u/12791148?v=4" width="100px;" alt=""/><br /><sub><b>Corey Brown</b></sub></a></td>
<td align="center"><a href="http://simonknott.de"><img src="https://avatars1.githubusercontent.com/u/14912729?v=4" width="100px;" alt=""/><br /><sub><b>Simon Knott</b></sub></a></td>
<td align="center"><a href="http://jeremyliberman.com/"><img src="https://avatars3.githubusercontent.com/u/2754163?v=4" width="100px;" alt=""/><br /><sub><b>Jeremy Liberman</b></td>
<td align="center"><a href="http://jagascript.com"><img src="https://avatars0.githubusercontent.com/u/4562878?v=4" width="100px;" alt=""/><br /><sub><b>Jaga Santagostino</b></sub></a></td>
<td align="center"><a href="https://simonpeterdebbarma.com"><img src="https://avatars3.githubusercontent.com/u/31207418?v=4" width="100px;" alt=""/><br /><sub><b>Simon Debbarma</b></sub></a></td>
<td align="center"><a href="https://github.com/jclancy93"><img src="https://avatars2.githubusercontent.com/u/7850202?v=4" width="100px;" alt=""/><br /><sub><b>Jack Clancy</b></sub></a></td>
</tr>
<tr>
<td align="center"><a href="https://twitter.com/ivandevp"><img src="https://avatars3.githubusercontent.com/u/9284690?v=4" width="100px;" alt=""/><br /><sub><b>Ivan Medina</b></sub></a></td>
<td align="center">
<a href="https://mina.ca">
<img src="https://avatars.githubusercontent.com/mabadir" width="100px;" alt="Mina Abadir avatar" /><br />
<sub>
<b>Mina Abadir</b>
</sub>
</a>
</td>
<td align="center">
<a href="https://builtforfifty.com">
<img src="https://avatars.githubusercontent.com/abuuzayr" width="100px;" alt="Abu Uzayr avatar" /><br />
<sub>
<b>Abu Uzayr</b>
</sub>
</a>
</td>
<td align="center">
<a href="https://damilolarandolph.com/">
<img src="https://avatars.githubusercontent.com/damilolarandolph" width="100px;" alt="Damilola Randolph avatar" /><br />
<sub>
<b>Damilola Randolph</b>
</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 -->
@@ -217,156 +270,534 @@ Thanks to these wonderful people ([emoji key](https://allcontributors.org/docs/e
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://twitter.com/flybayer"><img src="https://avatars3.githubusercontent.com/u/8813276?v=4" width="100px;" alt=""/><br /><sub><b>Brandon Bayer</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=flybayer" title="Code">💻</a> <a href="#content-flybayer" title="Content">🖋</a> <a href="#ideas-flybayer" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3Aflybayer" title="Reviewed Pull Requests">👀</a></td>
<td align="center"><a href="https://medium.com/@ryardley"><img src="https://avatars0.githubusercontent.com/u/1256409?v=4" width="100px;" alt=""/><br /><sub><b>Rudi Yardley</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ryardley" title="Code">💻</a> <a href="#ideas-ryardley" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3Aryardley" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/blitz-js/blitz/commits?author=ryardley" title="Tests">⚠️</a></td>
<td align="center"><a href="https://merelinguist.me"><img src="https://avatars3.githubusercontent.com/u/24858006?v=4" width="100px;" alt=""/><br /><sub><b>Dylan Brookes</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=merelinguist" title="Code">💻</a> <a href="#ideas-merelinguist" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3Amerelinguist" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/blitz-js/blitz/commits?author=merelinguist" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=merelinguist" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/aem"><img src="https://avatars0.githubusercontent.com/u/1909883?v=4" width="100px;" alt=""/><br /><sub><b>Adam Markon</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=aem" title="Code">💻</a> <a href="#ideas-aem" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3Aaem" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/blitz-js/blitz/commits?author=aem" title="Tests">⚠️</a> <a href="#maintenance-aem" title="Maintenance">🚧</a></td>
<td align="center"><a href="https://corey-brown.com"><img src="https://avatars1.githubusercontent.com/u/12791148?v=4" width="100px;" alt=""/><br /><sub><b>Corey Brown</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=coreybrown89" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3Acoreybrown89" title="Reviewed Pull Requests">👀</a> <a href="#maintenance-coreybrown89" title="Maintenance">🚧</a></td>
<td align="center"><a href="https://github.com/LoriKarikari"><img src="https://avatars1.githubusercontent.com/u/7902980?v=4" width="100px;" alt=""/><br /><sub><b>Lori Karikari</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=LoriKarikari" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3ALoriKarikari" title="Reviewed Pull Requests">👀</a> <a href="#maintenance-LoriKarikari" title="Maintenance">🚧</a> <a href="https://github.com/blitz-js/blitz/commits?author=LoriKarikari" title="Documentation">📖</a></td>
<td align="center"><a href="https://twitter.com/GeggsElias"><img src="https://avatars3.githubusercontent.com/u/22719177?v=4" width="100px;" alt=""/><br /><sub><b>Elias Johansson</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=eliasjohansson" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3Aeliasjohansson" title="Reviewed Pull Requests">👀</a> <a href="#maintenance-eliasjohansson" title="Maintenance">🚧</a></td>
<td align="center"><a href="https://twitter.com/flybayer"><img src="https://avatars3.githubusercontent.com/u/8813276?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Brandon Bayer</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=flybayer" title="Code">💻</a> <a href="#content-flybayer" title="Content">🖋</a> <a href="#ideas-flybayer" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3Aflybayer" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/blitz-js/blitz/commits?author=flybayer" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=flybayer" title="Documentation">📖</a></td>
<td align="center"><a href="https://medium.com/@ryardley"><img src="https://avatars0.githubusercontent.com/u/1256409?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Rudi Yardley</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ryardley" title="Code">💻</a> <a href="#ideas-ryardley" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3Aryardley" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/blitz-js/blitz/commits?author=ryardley" title="Tests">⚠️</a></td>
<td align="center"><a href="https://merelinguist.me"><img src="https://avatars3.githubusercontent.com/u/24858006?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dylan Brookes</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=merelinguist" title="Code">💻</a> <a href="#ideas-merelinguist" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3Amerelinguist" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/blitz-js/blitz/commits?author=merelinguist" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=merelinguist" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/aem"><img src="https://avatars0.githubusercontent.com/u/1909883?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Adam Markon</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=aem" title="Code">💻</a> <a href="#ideas-aem" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3Aaem" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/blitz-js/blitz/commits?author=aem" title="Tests">⚠️</a> <a href="#maintenance-aem" title="Maintenance">🚧</a></td>
<td align="center"><a href="https://corey-brown.com"><img src="https://avatars1.githubusercontent.com/u/12791148?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Corey Brown</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=coreybrown89" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3Acoreybrown89" title="Reviewed Pull Requests">👀</a> <a href="#maintenance-coreybrown89" title="Maintenance">🚧</a></td>
<td align="center"><a href="https://github.com/LoriKarikari"><img src="https://avatars1.githubusercontent.com/u/7902980?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lori Karikari</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=LoriKarikari" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3ALoriKarikari" title="Reviewed Pull Requests">👀</a> <a href="#maintenance-LoriKarikari" title="Maintenance">🚧</a> <a href="https://github.com/blitz-js/blitz/commits?author=LoriKarikari" title="Documentation">📖</a></td>
<td align="center"><a href="https://twitter.com/GeggsElias"><img src="https://avatars3.githubusercontent.com/u/22719177?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Elias Johansson</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=eliasjohansson" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3Aeliasjohansson" title="Reviewed Pull Requests">👀</a> <a href="#maintenance-eliasjohansson" title="Maintenance">🚧</a></td>
</tr>
<tr>
<td align="center"><a href="https://fabulas.io"><img src="https://avatars1.githubusercontent.com/u/14793389?v=4" width="100px;" alt=""/><br /><sub><b>Michael Edelman </b></sub></a><br /><a href="#infra-medelman17" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/blitz-js/blitz/commits?author=medelman17" title="Code">💻</a></td>
<td align="center"><a href="http://www.geistinteractive.com"><img src="https://avatars2.githubusercontent.com/u/316792?v=4" width="100px;" alt=""/><br /><sub><b>Todd Geist</b></sub></a><br /><a href="#financial-toddgeist" title="Financial">💵</a> <a href="https://github.com/blitz-js/blitz/commits?author=toddgeist" title="Code">💻</a></td>
<td align="center"><a href="http://robdrosenberg.com"><img src="https://avatars0.githubusercontent.com/u/20813991?v=4" width="100px;" alt=""/><br /><sub><b>Robert Rosenberg</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=robdrosenberg" title="Code">💻</a> <a href="#maintenance-robdrosenberg" title="Maintenance">🚧</a> <a href="https://github.com/blitz-js/blitz/commits?author=robdrosenberg" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/quirk0o"><img src="https://avatars3.githubusercontent.com/u/5123725?v=4" width="100px;" alt=""/><br /><sub><b>Beata Obrok</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=quirk0o" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/tsawan"><img src="https://avatars3.githubusercontent.com/u/3263082?v=4" width="100px;" alt=""/><br /><sub><b>Tahir Awan</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=tsawan" title="Code">💻</a></td>
<td align="center"><a href="https://raluce.com"><img src="https://avatars1.githubusercontent.com/u/2454632?v=4" width="100px;" alt=""/><br /><sub><b>Camilo Gonzalez</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=camilo86" title="Code">💻</a></td>
<td align="center"><a href="http://da.nielkempner.com"><img src="https://avatars3.githubusercontent.com/u/2532112?v=4" width="100px;" alt=""/><br /><sub><b>Daniel Kempner</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=dkempner" title="Code">💻</a></td>
<td align="center"><a href="https://fabulas.io"><img src="https://avatars1.githubusercontent.com/u/14793389?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Edelman </b></sub></a><br /><a href="#infra-medelman17" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/blitz-js/blitz/commits?author=medelman17" title="Code">💻</a></td>
<td align="center"><a href="http://www.geistinteractive.com"><img src="https://avatars2.githubusercontent.com/u/316792?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Todd Geist</b></sub></a><br /><a href="#financial-toddgeist" title="Financial">💵</a> <a href="https://github.com/blitz-js/blitz/commits?author=toddgeist" title="Code">💻</a></td>
<td align="center"><a href="http://robdrosenberg.com"><img src="https://avatars0.githubusercontent.com/u/20813991?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Robert Rosenberg</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=robdrosenberg" title="Code">💻</a> <a href="#maintenance-robdrosenberg" title="Maintenance">🚧</a> <a href="https://github.com/blitz-js/blitz/commits?author=robdrosenberg" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/quirk0o"><img src="https://avatars3.githubusercontent.com/u/5123725?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Beata Obrok</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=quirk0o" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/tsawan"><img src="https://avatars3.githubusercontent.com/u/3263082?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tahir Awan</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=tsawan" title="Code">💻</a></td>
<td align="center"><a href="https://raluce.com"><img src="https://avatars1.githubusercontent.com/u/2454632?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Camilo Gonzalez</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=camilo86" title="Code">💻</a></td>
<td align="center"><a href="http://da.nielkempner.com"><img src="https://avatars3.githubusercontent.com/u/2532112?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Daniel Kempner</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=dkempner" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="http://gielcobben.com"><img src="https://avatars0.githubusercontent.com/u/2663212?v=4" width="100px;" alt=""/><br /><sub><b>Giel</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=gielcobben" title="Code">💻</a></td>
<td align="center"><a href="http://jeremyliberman.com/"><img src="https://avatars3.githubusercontent.com/u/2754163?v=4" width="100px;" alt=""/><br /><sub><b>Jeremy Liberman</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=MrLeebo" title="Code">💻</a> <a href="#maintenance-MrLeebo" title="Maintenance">🚧</a> <a href="https://github.com/blitz-js/blitz/commits?author=MrLeebo" title="Tests">⚠️</a></td>
<td align="center"><a href="https://jimthedev.com"><img src="https://avatars0.githubusercontent.com/u/108938?v=4" width="100px;" alt=""/><br /><sub><b>Jim Cummins</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jimthedev" title="Code">💻</a></td>
<td align="center"><a href="http://kristinamatuska.com/"><img src="https://media-exp1.licdn.com/dms/image/C5603AQHVPAjV21gw9g/profile-displayphoto-shrink_200_200/0?e=1591228800&v=beta&t=0MlbmiYhNvGv1xjLD_fOhOFjVDZ7ltNwfGNeJ4DHedQ" width="100px;" alt=""/><br /><sub><b>Kristina Matuška</b></sub></a><br /><a href="#design" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/jasonblalock"><img src="https://avatars0.githubusercontent.com/u/5899929?v=4" width="100px;" alt=""/><br /><sub><b>Jason Blalock</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jasonblalock" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/aej11a"><img src="https://avatars2.githubusercontent.com/u/10066422?v=4" width="100px;" alt=""/><br /><sub><b>aej11a</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=aej11a" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/marcoseoane"><img src="https://avatars0.githubusercontent.com/u/28088807?v=4" width="100px;" alt=""/><br /><sub><b>marcoseoane</b></sub></a><br /><a href="#ideas-marcoseoane" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center"><a href="http://gielcobben.com"><img src="https://avatars0.githubusercontent.com/u/2663212?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Giel</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=gielcobben" title="Code">💻</a></td>
<td align="center"><a href="http://jeremyliberman.com/"><img src="https://avatars3.githubusercontent.com/u/2754163?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jeremy Liberman</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=MrLeebo" title="Code">💻</a> <a href="#maintenance-MrLeebo" title="Maintenance">🚧</a> <a href="https://github.com/blitz-js/blitz/commits?author=MrLeebo" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=MrLeebo" title="Documentation">📖</a></td>
<td align="center"><a href="https://jimthedev.com"><img src="https://avatars0.githubusercontent.com/u/108938?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jim Cummins</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jimthedev" title="Code">💻</a></td>
<td align="center"><a href="http://kristinamatuska.com/"><img src="https://media-exp1.licdn.com/dms/image/C5603AQHVPAjV21gw9g/profile-displayphoto-shrink_200_200/0?e=1591228800&v=beta&t=0MlbmiYhNvGv1xjLD_fOhOFjVDZ7ltNwfGNeJ4DHedQ?s=100" width="100px;" alt=""/><br /><sub><b>Kristina Matuška</b></sub></a><br /><a href="#design" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/jasonblalock"><img src="https://avatars0.githubusercontent.com/u/5899929?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jason Blalock</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jasonblalock" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/aej11a"><img src="https://avatars2.githubusercontent.com/u/10066422?v=4?s=100" width="100px;" alt=""/><br /><sub><b>aej11a</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=aej11a" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/marcoseoane"><img src="https://avatars0.githubusercontent.com/u/28088807?v=4?s=100" width="100px;" alt=""/><br /><sub><b>marcoseoane</b></sub></a><br /><a href="#ideas-marcoseoane" title="Ideas, Planning, & Feedback">🤔</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/rishabhpoddar"><img src="https://avatars2.githubusercontent.com/u/2976287?v=4" width="100px;" alt=""/><br /><sub><b>Rishabh Poddar</b></sub></a><br /><a href="#ideas-rishabhpoddar" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center"><a href="https://github.com/lorenzorapetti"><img src="https://avatars1.githubusercontent.com/u/2632174?v=4" width="100px;" alt=""/><br /><sub><b>Lorenzo Rapetti</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=lorenzorapetti" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/wKovacs64"><img src="https://avatars1.githubusercontent.com/u/1288694?v=4" width="100px;" alt=""/><br /><sub><b>Justin Hall</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=wKovacs64" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=wKovacs64" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/sijad"><img src="https://avatars3.githubusercontent.com/u/7693001?v=4" width="100px;" alt=""/><br /><sub><b>Sajjad Hashemian</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sijad" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/ETLopes"><img src="https://avatars3.githubusercontent.com/u/34959471?v=4" width="100px;" alt=""/><br /><sub><b>Eduardo Lopes</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ETLopes" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/mattleff"><img src="https://avatars0.githubusercontent.com/u/120155?v=4" width="100px;" alt=""/><br /><sub><b>Matthew Leffler</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=mattleff" title="Documentation">📖</a></td>
<td align="center"><a href="https://hew.tools"><img src="https://avatars0.githubusercontent.com/u/3103241?v=4" width="100px;" alt=""/><br /><sub><b>Matt</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=hew" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/rishabhpoddar"><img src="https://avatars2.githubusercontent.com/u/2976287?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Rishabh Poddar</b></sub></a><br /><a href="#ideas-rishabhpoddar" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center"><a href="https://github.com/lorenzorapetti"><img src="https://avatars1.githubusercontent.com/u/2632174?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lorenzo Rapetti</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=lorenzorapetti" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/wKovacs64"><img src="https://avatars1.githubusercontent.com/u/1288694?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Justin Hall</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=wKovacs64" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=wKovacs64" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/sijad"><img src="https://avatars3.githubusercontent.com/u/7693001?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sajjad Hashemian</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sijad" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/ETLopes"><img src="https://avatars3.githubusercontent.com/u/34959471?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Eduardo Lopes</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ETLopes" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/mattleff"><img src="https://avatars0.githubusercontent.com/u/120155?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matthew Leffler</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=mattleff" title="Documentation">📖</a></td>
<td align="center"><a href="https://hew.tools"><img src="https://avatars0.githubusercontent.com/u/3103241?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matt</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=hew" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/sonnypgs"><img src="https://avatars3.githubusercontent.com/u/1431300?v=4" 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" 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="http://twitter.com/JanBaykara"><img src="https://avatars2.githubusercontent.com/u/237556?v=4" 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" 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" 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>
<td align="center"><a href="https://github.com/jclancy93"><img src="https://avatars2.githubusercontent.com/u/7850202?v=4" width="100px;" alt=""/><br /><sub><b>Jack Clancy</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jclancy93" title="Code">💻</a> <a href="#maintenance-jclancy93" title="Maintenance">🚧</a></td>
<td align="center"><a href="https://github.com/ntgussoni"><img src="https://avatars0.githubusercontent.com/u/10161067?v=4" width="100px;" alt=""/><br /><sub><b>Nicolas Torres</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ntgussoni" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=ntgussoni" title="Code">💻</a></td>
<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> <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>
<td align="center"><a href="https://github.com/jclancy93"><img src="https://avatars2.githubusercontent.com/u/7850202?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jack Clancy</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jclancy93" title="Code">💻</a> <a href="#maintenance-jclancy93" title="Maintenance">🚧</a></td>
<td align="center"><a href="https://github.com/ntgussoni"><img src="https://avatars0.githubusercontent.com/u/10161067?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nicolas Torres</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ntgussoni" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=ntgussoni" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3Antgussoni" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/blitz-js/blitz/commits?author=ntgussoni" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="http://simonknott.de"><img src="https://avatars1.githubusercontent.com/u/14912729?v=4" width="100px;" alt=""/><br /><sub><b>Simon Knott</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Skn0tt" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=Skn0tt" title="Tests">⚠️</a> <a href="#maintenance-Skn0tt" title="Maintenance">🚧</a></td>
<td align="center"><a href="http://jagascript.com"><img src="https://avatars0.githubusercontent.com/u/4562878?v=4" width="100px;" alt=""/><br /><sub><b>Jaga Santagostino</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=kandros" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=kandros" title="Documentation">📖</a> <a href="#maintenance-kandros" title="Maintenance">🚧</a></td>
<td align="center"><a href="http://www.joaoportela.com"><img src="https://avatars0.githubusercontent.com/u/1010018?v=4" width="100px;" alt=""/><br /><sub><b>João Portela</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jportela" title="Code">💻</a></td>
<td align="center"><a href="http://dajin.dev"><img src="https://avatars0.githubusercontent.com/u/7122182?v=4" width="100px;" alt=""/><br /><sub><b>Da-Jin Chu</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=dajinchu" title="Code">💻</a></td>
<td align="center"><a href="https://shinyaigeek.dev/"><img src="https://avatars1.githubusercontent.com/u/42742053?v=4" width="100px;" alt=""/><br /><sub><b>Shinobu Hayashi</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Shinyaigeek" title="Code">💻</a></td>
<td align="center"><a href="http://karankiri.com"><img src="https://avatars2.githubusercontent.com/u/19989161?v=4" width="100px;" alt=""/><br /><sub><b>Karan Kiri</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=karankiri" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/fullmetalengineer"><img src="https://avatars2.githubusercontent.com/u/5294903?v=4" width="100px;" alt=""/><br /><sub><b>Alan Long</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=fullmetalengineer" title="Documentation">📖</a></td>
<td align="center"><a href="http://simonknott.de"><img src="https://avatars1.githubusercontent.com/u/14912729?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Simon Knott</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Skn0tt" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=Skn0tt" title="Tests">⚠️</a> <a href="#maintenance-Skn0tt" title="Maintenance">🚧</a> <a href="https://github.com/blitz-js/blitz/commits?author=Skn0tt" title="Documentation">📖</a></td>
<td align="center"><a href="http://jagascript.com"><img src="https://avatars0.githubusercontent.com/u/4562878?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jaga Santagostino</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=kandros" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=kandros" title="Documentation">📖</a> <a href="#maintenance-kandros" title="Maintenance">🚧</a></td>
<td align="center"><a href="http://www.joaoportela.com"><img src="https://avatars0.githubusercontent.com/u/1010018?v=4?s=100" width="100px;" alt=""/><br /><sub><b>João Portela</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jportela" title="Code">💻</a></td>
<td align="center"><a href="http://dajin.dev"><img src="https://avatars0.githubusercontent.com/u/7122182?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Da-Jin Chu</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=dajinchu" title="Code">💻</a></td>
<td align="center"><a href="https://shinyaigeek.dev/"><img src="https://avatars1.githubusercontent.com/u/42742053?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Shinobu Hayashi</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Shinyaigeek" title="Code">💻</a></td>
<td align="center"><a href="http://karankiri.com"><img src="https://avatars2.githubusercontent.com/u/19989161?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Karan Kiri</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=karankiri" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/fullmetalengineer"><img src="https://avatars2.githubusercontent.com/u/5294903?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alan Long</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=fullmetalengineer" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="http://codingsh.xyz"><img src="https://avatars2.githubusercontent.com/u/57037080?v=4" width="100px;" alt=""/><br /><sub><b>codingsh</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=developerfred" title="Code">💻</a></td>
<td align="center"><a href="http://twitter.com/peaonunes"><img src="https://avatars0.githubusercontent.com/u/3356720?v=4" width="100px;" alt=""/><br /><sub><b>Rafael Nunes</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3Apeaonunes" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/blitz-js/blitz/commits?author=peaonunes" title="Code">💻</a></td>
<td align="center"><a href="https://simonpeterdebbarma.com"><img src="https://avatars3.githubusercontent.com/u/31207418?v=4" width="100px;" alt=""/><br /><sub><b>Simon Debbarma</b></sub></a><br /><a href="#design-0ww" title="Design">🎨</a> <a href="#maintenance-0ww" title="Maintenance">🚧</a> <a href="https://github.com/blitz-js/blitz/commits?author=0ww" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/0xflotus"><img src="https://avatars3.githubusercontent.com/u/26602940?v=4" width="100px;" alt=""/><br /><sub><b>0xflotus</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=0xflotus" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=0xflotus" title="Documentation">📖</a></td>
<td align="center"><a href="https://dev.to/tmns"><img src="https://avatars3.githubusercontent.com/u/35785003?v=4" width="100px;" alt=""/><br /><sub><b>tmns</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=tmns" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=tmns" title="Documentation">📖</a></td>
<td align="center"><a href="http://jruharris.com"><img src="https://avatars1.githubusercontent.com/u/8636691?v=4" width="100px;" alt=""/><br /><sub><b>Jru Harris</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=harris1717" title="Documentation">📖</a></td>
<td align="center"><a href="https://twitter.com/ivandevp"><img src="https://avatars3.githubusercontent.com/u/9284690?v=4" width="100px;" alt=""/><br /><sub><b>Ivan Medina</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ivandevp" title="Code">💻</a> <a href="#maintenance-ivandevp" title="Maintenance">🚧</a></td>
<td align="center"><a href="http://codingsh.xyz"><img src="https://avatars2.githubusercontent.com/u/57037080?v=4?s=100" width="100px;" alt=""/><br /><sub><b>codingsh</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=developerfred" title="Code">💻</a></td>
<td align="center"><a href="http://twitter.com/peaonunes"><img src="https://avatars0.githubusercontent.com/u/3356720?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Rafael Nunes</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3Apeaonunes" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/blitz-js/blitz/commits?author=peaonunes" title="Code">💻</a></td>
<td align="center"><a href="https://simonpeterdebbarma.com"><img src="https://avatars3.githubusercontent.com/u/31207418?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Simon Debbarma</b></sub></a><br /><a href="#design-0ww" title="Design">🎨</a> <a href="#maintenance-0ww" title="Maintenance">🚧</a> <a href="https://github.com/blitz-js/blitz/commits?author=0ww" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/0xflotus"><img src="https://avatars3.githubusercontent.com/u/26602940?v=4?s=100" width="100px;" alt=""/><br /><sub><b>0xflotus</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=0xflotus" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=0xflotus" title="Documentation">📖</a></td>
<td align="center"><a href="https://dev.to/tmns"><img src="https://avatars3.githubusercontent.com/u/35785003?v=4?s=100" width="100px;" alt=""/><br /><sub><b>tmns</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=tmns" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=tmns" title="Documentation">📖</a></td>
<td align="center"><a href="http://jruharris.com"><img src="https://avatars1.githubusercontent.com/u/8636691?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jru Harris</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=harris1717" title="Documentation">📖</a></td>
<td align="center"><a href="https://twitter.com/ivandevp"><img src="https://avatars3.githubusercontent.com/u/9284690?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ivan Medina</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ivandevp" title="Code">💻</a> <a href="#maintenance-ivandevp" title="Maintenance">🚧</a></td>
</tr>
<tr>
<td align="center"><a href="https://www.dwightwatson.com"><img src="https://avatars3.githubusercontent.com/u/1100408?v=4" width="100px;" alt=""/><br /><sub><b>Dwight Watson</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=dwightwatson" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=dwightwatson" title="Documentation">📖</a></td>
<td align="center"><a href="http://is2ei.com/"><img src="https://avatars3.githubusercontent.com/u/3948353?v=4" width="100px;" alt=""/><br /><sub><b>Horie Issei</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=is2ei" title="Code">💻</a></td>
<td align="center"><a href="https://twitter.com/lednhatkhanh"><img src="https://avatars2.githubusercontent.com/u/9303093?v=4" width="100px;" alt=""/><br /><sub><b>Nhat Khanh</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=lednhatkhanh" title="Code">💻</a></td>
<td align="center"><a href="https://builtforfifty.com"><img src="https://avatars1.githubusercontent.com/u/19371989?v=4" width="100px;" alt=""/><br /><sub><b>Abu Uzayr</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=abuuzayr" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/nabi009"><img src="https://avatars0.githubusercontent.com/u/3170831?v=4" width="100px;" alt=""/><br /><sub><b>Nabiullah elham</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=nabi009" title="Code">💻</a></td>
<td align="center"><a href="https://lachlanjc.com"><img src="https://avatars1.githubusercontent.com/u/5074763?v=4" width="100px;" alt=""/><br /><sub><b>Lachlan Campbell</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=lachlanjc" title="Code">💻</a></td>
<td align="center"><a href="http://enzoferey.com"><img src="https://avatars1.githubusercontent.com/u/10673347?v=4" width="100px;" alt=""/><br /><sub><b>Enzo Ferey</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=enzoferey" title="Code">💻</a></td>
<td align="center"><a href="https://www.dwightwatson.com"><img src="https://avatars3.githubusercontent.com/u/1100408?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dwight Watson</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=dwightwatson" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=dwightwatson" title="Documentation">📖</a></td>
<td align="center"><a href="http://is2ei.com/"><img src="https://avatars3.githubusercontent.com/u/3948353?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Horie Issei</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=is2ei" title="Code">💻</a></td>
<td align="center"><a href="https://twitter.com/lednhatkhanh"><img src="https://avatars2.githubusercontent.com/u/9303093?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nhat Khanh</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=lednhatkhanh" title="Code">💻</a></td>
<td align="center"><a href="https://builtforfifty.com"><img src="https://avatars1.githubusercontent.com/u/19371989?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Abu Uzayr</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=abuuzayr" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=abuuzayr" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/nabi009"><img src="https://avatars0.githubusercontent.com/u/3170831?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nabiullah elham</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=nabi009" title="Code">💻</a></td>
<td align="center"><a href="https://lachlanjc.com"><img src="https://avatars1.githubusercontent.com/u/5074763?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lachlan Campbell</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=lachlanjc" title="Code">💻</a></td>
<td align="center"><a href="http://enzoferey.com"><img src="https://avatars1.githubusercontent.com/u/10673347?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Enzo Ferey</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=enzoferey" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/pgrimaud"><img src="https://avatars1.githubusercontent.com/u/1866496?v=4" width="100px;" alt=""/><br /><sub><b>Pierre Grimaud</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=pgrimaud" title="Code">💻</a></td>
<td align="center"><a href="https://pixelmord.github.io"><img src="https://avatars2.githubusercontent.com/u/224168?v=4" width="100px;" alt=""/><br /><sub><b>Andreas Adam</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=pixelmord" title="Code">💻</a></td>
<td align="center"><a href="https://kevo.dev"><img src="https://avatars3.githubusercontent.com/u/15717067?v=4" width="100px;" alt=""/><br /><sub><b>Kevin Tovar</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=kevotovar" title="Code">💻</a></td>
<td align="center"><a href="http://anteprimorac.com.hr"><img src="https://avatars0.githubusercontent.com/u/972083?v=4" 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" 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" 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></td>
<td align="center"><a href="https://cloudnweb.dev/"><img src="https://avatars0.githubusercontent.com/u/17050715?v=4" 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://github.com/pgrimaud"><img src="https://avatars1.githubusercontent.com/u/1866496?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Pierre Grimaud</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=pgrimaud" title="Code">💻</a></td>
<td align="center"><a href="https://pixelmord.github.io"><img src="https://avatars2.githubusercontent.com/u/224168?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Andreas Adam</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=pixelmord" title="Code">💻</a></td>
<td align="center"><a href="https://kevo.dev"><img src="https://avatars3.githubusercontent.com/u/15717067?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kevin Tovar</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=kevotovar" title="Code">💻</a></td>
<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> <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" 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>
<td align="center"><a href="https://www.linkedin.com/in/gregory-vasquez-96413b184/"><img src="https://avatars1.githubusercontent.com/u/36422346?v=4" width="100px;" alt=""/><br /><sub><b>gvasquez11</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=gvasquez11" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/josemiguelo"><img src="https://avatars1.githubusercontent.com/u/15330034?v=4" width="100px;" alt=""/><br /><sub><b> José Miguel Ochoa</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=josemiguelo" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/osirvent"><img src="https://avatars2.githubusercontent.com/u/5927133?v=4" width="100px;" alt=""/><br /><sub><b>Oscar Sirvent</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=osirvent" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=osirvent" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/donni106"><img src="https://avatars0.githubusercontent.com/u/1942953?v=4" width="100px;" alt=""/><br /><sub><b>Daniel Molnar</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=donni106" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=donni106" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/exclipy"><img src="https://avatars1.githubusercontent.com/u/508799?v=4" width="100px;" alt=""/><br /><sub><b>Kevin Wu Won</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=exclipy" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/tehnuge"><img src="https://avatars1.githubusercontent.com/u/1928236?v=4" width="100px;" alt=""/><br /><sub><b>John Duong</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=tehnuge" title="Code">💻</a></td>
<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>
<td align="center"><a href="https://www.linkedin.com/in/gregory-vasquez-96413b184/"><img src="https://avatars1.githubusercontent.com/u/36422346?v=4?s=100" width="100px;" alt=""/><br /><sub><b>gvasquez11</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=gvasquez11" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/josemiguelo"><img src="https://avatars1.githubusercontent.com/u/15330034?v=4?s=100" width="100px;" alt=""/><br /><sub><b> José Miguel Ochoa</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=josemiguelo" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/osirvent"><img src="https://avatars2.githubusercontent.com/u/5927133?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Oscar Sirvent</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=osirvent" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=osirvent" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/donni106"><img src="https://avatars0.githubusercontent.com/u/1942953?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Daniel Molnar</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=donni106" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=donni106" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/exclipy"><img src="https://avatars1.githubusercontent.com/u/508799?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kevin Wu Won</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=exclipy" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/tehnuge"><img src="https://avatars1.githubusercontent.com/u/1928236?v=4?s=100" width="100px;" alt=""/><br /><sub><b>John Duong</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=tehnuge" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://noahfleischmann.com"><img src="https://avatars0.githubusercontent.com/u/23707137?v=4" width="100px;" alt=""/><br /><sub><b>Noah Fleischmann</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=fnoah" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/toshi1127"><img src="https://avatars3.githubusercontent.com/u/32378535?v=4" width="100px;" alt=""/><br /><sub><b>Matsumoto Toshi</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=toshi1127" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=toshi1127" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/simonedelmann"><img src="https://avatars2.githubusercontent.com/u/2821076?v=4" width="100px;" alt=""/><br /><sub><b>Simon Edelmann</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=simonedelmann" title="Code">💻</a></td>
<td align="center"><a href="https://shaun.church"><img src="https://avatars3.githubusercontent.com/u/571764?v=4" width="100px;" alt=""/><br /><sub><b>Shaun Church</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=shaunchurch" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=shaunchurch" title="Code">💻</a></td>
<td align="center"><a href="https://styfle.dev"><img src="https://avatars1.githubusercontent.com/u/229881?v=4" width="100px;" alt=""/><br /><sub><b>Steven</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=styfle" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/SigurdMW"><img src="https://avatars3.githubusercontent.com/u/6359003?v=4" width="100px;" alt=""/><br /><sub><b>Sigurd Moland Wahl</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=SigurdMW" title="Code">💻</a></td>
<td align="center"><a href="https://brianandrews.dev/"><img src="https://avatars1.githubusercontent.com/u/6384100?v=4" width="100px;" alt=""/><br /><sub><b>Brian Andrews</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sbardian" title="Documentation">📖</a></td>
<td align="center"><a href="https://noahfleischmann.com"><img src="https://avatars0.githubusercontent.com/u/23707137?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Noah Fleischmann</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=fnoah" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/toshi1127"><img src="https://avatars3.githubusercontent.com/u/32378535?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matsumoto Toshi</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=toshi1127" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=toshi1127" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/simonedelmann"><img src="https://avatars2.githubusercontent.com/u/2821076?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Simon Edelmann</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=simonedelmann" title="Code">💻</a></td>
<td align="center"><a href="https://shaun.church"><img src="https://avatars3.githubusercontent.com/u/571764?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Shaun Church</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=shaunchurch" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=shaunchurch" title="Code">💻</a></td>
<td align="center"><a href="https://styfle.dev"><img src="https://avatars1.githubusercontent.com/u/229881?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Steven</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=styfle" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/SigurdMW"><img src="https://avatars3.githubusercontent.com/u/6359003?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sigurd Moland Wahl</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=SigurdMW" title="Code">💻</a></td>
<td align="center"><a href="https://brianandrews.dev/"><img src="https://avatars1.githubusercontent.com/u/6384100?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Brian Andrews</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sbardian" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="http://garrisonsnelling.com"><img src="https://avatars0.githubusercontent.com/u/5100597?v=4" width="100px;" alt=""/><br /><sub><b>Garrison Snelling</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=garrisons" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/tylangesmith"><img src="https://avatars1.githubusercontent.com/u/22609577?v=4" width="100px;" alt=""/><br /><sub><b>Ty Lange-Smith</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=tylangesmith" title="Code">💻</a></td>
<td align="center"><a href="https://rubenmoya.dev"><img src="https://avatars3.githubusercontent.com/u/905225?v=4" width="100px;" alt=""/><br /><sub><b>Rubén Moya</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=rubenmoya" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=rubenmoya" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/robertgrzonka"><img src="https://avatars0.githubusercontent.com/u/35585466?v=4" width="100px;" alt=""/><br /><sub><b>robertgrzonka</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=robertgrzonka" title="Code">💻</a> <a href="#infra-robertgrzonka" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center"><a href="https://github.com/agoxlea"><img src="https://avatars3.githubusercontent.com/u/1240841?v=4" width="100px;" alt=""/><br /><sub><b>Alex Orr</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=agoxlea" title="Code">💻</a></td>
<td align="center"><a href="https://christse.io"><img src="https://avatars1.githubusercontent.com/u/250450?v=4" width="100px;" alt=""/><br /><sub><b>Chris Tse</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=chris-tse" title="Code">💻</a></td>
<td align="center"><a href="http://twitter.com/nettofarah"><img src="https://avatars1.githubusercontent.com/u/270688?v=4" width="100px;" alt=""/><br /><sub><b>Netto Farah</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=nettofarah" title="Code">💻</a></td>
<td align="center"><a href="http://garrisonsnelling.com"><img src="https://avatars0.githubusercontent.com/u/5100597?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Garrison Snelling</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=garrisons" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/tylangesmith"><img src="https://avatars1.githubusercontent.com/u/22609577?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ty Lange-Smith</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=tylangesmith" title="Code">💻</a></td>
<td align="center"><a href="https://rubenmoya.dev"><img src="https://avatars3.githubusercontent.com/u/905225?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Rubén Moya</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=rubenmoya" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=rubenmoya" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/robertgrzonka"><img src="https://avatars0.githubusercontent.com/u/35585466?v=4?s=100" width="100px;" alt=""/><br /><sub><b>robertgrzonka</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=robertgrzonka" title="Code">💻</a> <a href="#infra-robertgrzonka" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center"><a href="https://github.com/agoxlea"><img src="https://avatars3.githubusercontent.com/u/1240841?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alex Orr</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=agoxlea" title="Code">💻</a></td>
<td align="center"><a href="https://christse.io"><img src="https://avatars1.githubusercontent.com/u/250450?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Chris Tse</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=chris-tse" title="Code">💻</a></td>
<td align="center"><a href="http://twitter.com/nettofarah"><img src="https://avatars1.githubusercontent.com/u/270688?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Netto Farah</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=nettofarah" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/rohanjulka19"><img src="https://avatars0.githubusercontent.com/u/19673968?v=4" width="100px;" alt=""/><br /><sub><b>Rohan Julka</b></sub></a><br /><a href="#infra-rohanjulka19" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center"><a href="https://www.ivansantos.me"><img src="https://avatars3.githubusercontent.com/u/301291?v=4" width="100px;" alt=""/><br /><sub><b>Ivan Santos</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=pragmaticivan" title="Code">💻</a></td>
<td align="center"><a href="https://able.bio"><img src="https://avatars0.githubusercontent.com/u/12991390?v=4" width="100px;" alt=""/><br /><sub><b>Soumyajit Pathak</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=drenther" title="Code">💻</a></td>
<td align="center"><a href="http://www.sebastiankurpiel.com"><img src="https://avatars2.githubusercontent.com/u/16307737?v=4" width="100px;" alt=""/><br /><sub><b>Sebastian Kurpiel</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=SebastianKurp" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/scisteffan"><img src="https://avatars2.githubusercontent.com/u/2676185?v=4" width="100px;" alt=""/><br /><sub><b>Steffan</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=scisteffan" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=scisteffan" title="Documentation">📖</a> <a href="#financial-scisteffan" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/kripod"><img src="https://avatars3.githubusercontent.com/u/14854048?v=4" width="100px;" alt=""/><br /><sub><b>Kristóf Poduszló</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=kripod" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Weilbyte"><img src="https://avatars1.githubusercontent.com/u/43392677?v=4" width="100px;" alt=""/><br /><sub><b>Weilbyte</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Weilbyte" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=Weilbyte" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/rohanjulka19"><img src="https://avatars0.githubusercontent.com/u/19673968?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Rohan Julka</b></sub></a><br /><a href="#infra-rohanjulka19" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center"><a href="https://www.ivansantos.me"><img src="https://avatars3.githubusercontent.com/u/301291?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ivan Santos</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=pragmaticivan" title="Code">💻</a></td>
<td align="center"><a href="https://able.bio"><img src="https://avatars0.githubusercontent.com/u/12991390?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Soumyajit Pathak</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=drenther" title="Code">💻</a></td>
<td align="center"><a href="http://www.sebastiankurpiel.com"><img src="https://avatars2.githubusercontent.com/u/16307737?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sebastian Kurpiel</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=SebastianKurp" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/scisteffan"><img src="https://avatars2.githubusercontent.com/u/2676185?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Steffan</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=scisteffan" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=scisteffan" title="Documentation">📖</a> <a href="#financial-scisteffan" title="Financial">💵</a></td>
<td align="center"><a href="https://github.com/kripod"><img src="https://avatars3.githubusercontent.com/u/14854048?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kristóf Poduszló</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=kripod" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Weilbyte"><img src="https://avatars1.githubusercontent.com/u/43392677?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Weilbyte</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Weilbyte" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=Weilbyte" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="http://ricardotrejos.tech"><img src="https://avatars1.githubusercontent.com/u/8602086?v=4" width="100px;" alt=""/><br /><sub><b>Ricardo Trejos</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=cardotrejos" title="Code">💻</a></td>
<td align="center"><a href="https://gkaragkiaouris.tech/"><img src="https://avatars0.githubusercontent.com/u/8822835?v=4" width="100px;" alt=""/><br /><sub><b>George Karagkiaouris</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=karaggeorge" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=karaggeorge" title="Documentation">📖</a></td>
<td align="center"><a href="https://www.linkedin.com/in/brady-pascoe-3bba6b13a/"><img src="https://avatars0.githubusercontent.com/u/18705892?v=4" width="100px;" alt=""/><br /><sub><b>Brady Pascoe</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=bpas247" title="Code">💻</a></td>
<td align="center"><a href="https://www.yeahcoach.com"><img src="https://avatars1.githubusercontent.com/u/761766?v=4" width="100px;" alt=""/><br /><sub><b>Jirka Svoboda</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=svobik7" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/alan2207"><img src="https://avatars3.githubusercontent.com/u/12713315?v=4" width="100px;" alt=""/><br /><sub><b>Alan Alickovic</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=alan2207" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=alan2207" title="Documentation">📖</a></td>
<td align="center"><a href="https://yngve.hoiseth.net"><img src="https://avatars0.githubusercontent.com/u/8469540?v=4" width="100px;" alt=""/><br /><sub><b>Yngve Høiseth</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=yhoiseth" title="Documentation">📖</a></td>
<td align="center"><a href="https://twitter.com/bruno_crosier"><img src="https://avatars1.githubusercontent.com/u/18399089?v=4" width="100px;" alt=""/><br /><sub><b>Bruno Crosier</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=brunocrosier" title="Documentation">📖</a></td>
<td align="center"><a href="http://ricardotrejos.tech"><img src="https://avatars1.githubusercontent.com/u/8602086?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ricardo Trejos</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=cardotrejos" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=cardotrejos" title="Documentation">📖</a></td>
<td align="center"><a href="https://gkaragkiaouris.tech/"><img src="https://avatars0.githubusercontent.com/u/8822835?v=4?s=100" width="100px;" alt=""/><br /><sub><b>George Karagkiaouris</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=karaggeorge" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=karaggeorge" title="Documentation">📖</a></td>
<td align="center"><a href="https://www.linkedin.com/in/brady-pascoe-3bba6b13a/"><img src="https://avatars0.githubusercontent.com/u/18705892?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Brady Pascoe</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=bpas247" title="Code">💻</a></td>
<td align="center"><a href="https://www.yeahcoach.com"><img src="https://avatars1.githubusercontent.com/u/761766?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jirka Svoboda</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=svobik7" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/alan2207"><img src="https://avatars3.githubusercontent.com/u/12713315?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alan Alickovic</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=alan2207" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=alan2207" title="Documentation">📖</a></td>
<td align="center"><a href="https://yngve.hoiseth.net"><img src="https://avatars0.githubusercontent.com/u/8469540?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Yngve Høiseth</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=yhoiseth" title="Documentation">📖</a></td>
<td align="center"><a href="https://twitter.com/bruno_crosier"><img src="https://avatars1.githubusercontent.com/u/18399089?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Bruno Crosier</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=brunocrosier" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/jschepmans"><img src="https://avatars2.githubusercontent.com/u/5782977?v=4" 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" 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://github.com/clgeoio"><img src="https://avatars2.githubusercontent.com/u/37571416?v=4" 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></td>
<td align="center"><a href="https://github.com/madflow"><img src="https://avatars0.githubusercontent.com/u/183248?v=4" 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" 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></td>
<td align="center"><a href="https://github.com/sirmyron"><img src="https://avatars2.githubusercontent.com/u/1430136?v=4" width="100px;" alt=""/><br /><sub><b>sirmyron</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sirmyron" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/engelkes-finstreet"><img src="https://avatars1.githubusercontent.com/u/36962022?v=4" width="100px;" alt=""/><br /><sub><b>engelkes-finstreet</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=engelkes-finstreet" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=engelkes-finstreet" title="Documentation">📖</a></td>
<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> <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>
<td align="center"><a href="https://github.com/sirmyron"><img src="https://avatars2.githubusercontent.com/u/1430136?v=4?s=100" width="100px;" alt=""/><br /><sub><b>sirmyron</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sirmyron" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=sirmyron" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/engelkes-finstreet"><img src="https://avatars1.githubusercontent.com/u/36962022?v=4?s=100" width="100px;" alt=""/><br /><sub><b>engelkes-finstreet</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=engelkes-finstreet" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=engelkes-finstreet" title="Code">💻</a> <a href="#maintenance-engelkes-finstreet" title="Maintenance">🚧</a></td>
</tr>
<tr>
<td align="center"><a href="http://twitter.com/pixelscommander"><img src="https://avatars2.githubusercontent.com/u/810671?v=4" width="100px;" alt=""/><br /><sub><b>Denis Radin</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3APixelsCommander" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/blitz-js/blitz/commits?author=PixelsCommander" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=PixelsCommander" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/xiaoyu-tamu"><img src="https://avatars3.githubusercontent.com/u/33362998?v=4" width="100px;" alt=""/><br /><sub><b>Michael Li</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=xiaoyu-tamu" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/yuta0801"><img src="https://avatars2.githubusercontent.com/u/21266306?v=4" width="100px;" alt=""/><br /><sub><b>yuta0801</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=yuta0801" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Obii-bit"><img src="https://avatars2.githubusercontent.com/u/67339820?v=4" width="100px;" alt=""/><br /><sub><b>Obadja Ris</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Obii-bit" title="Documentation">📖</a></td>
<td align="center"><a href="http://jfelix.info"><img src="https://avatars2.githubusercontent.com/u/21092519?v=4" width="100px;" alt=""/><br /><sub><b>Jose Felix </b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=JoseRFelix" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/johncantrell97"><img src="https://avatars3.githubusercontent.com/u/41305919?v=4" width="100px;" alt=""/><br /><sub><b>John Cantrell</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=johncantrell97" title="Code">💻</a></td>
<td align="center"><a href="http://kwuang.me"><img src="https://avatars1.githubusercontent.com/u/10319942?v=4" width="100px;" alt=""/><br /><sub><b>Kwuang Tang</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=cktang88" title="Code">💻</a></td>
<td align="center"><a href="http://twitter.com/pixelscommander"><img src="https://avatars2.githubusercontent.com/u/810671?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Denis Radin</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/pulls?q=is%3Apr+reviewed-by%3APixelsCommander" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/blitz-js/blitz/commits?author=PixelsCommander" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=PixelsCommander" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/xiaoyu-tamu"><img src="https://avatars3.githubusercontent.com/u/33362998?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Li</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=xiaoyu-tamu" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/yuta0801"><img src="https://avatars2.githubusercontent.com/u/21266306?v=4?s=100" width="100px;" alt=""/><br /><sub><b>yuta0801</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=yuta0801" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Obii-bit"><img src="https://avatars2.githubusercontent.com/u/67339820?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Obadja Ris</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Obii-bit" title="Documentation">📖</a></td>
<td align="center"><a href="http://jfelix.info"><img src="https://avatars2.githubusercontent.com/u/21092519?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jose Felix </b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=JoseRFelix" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/johncantrell97"><img src="https://avatars3.githubusercontent.com/u/41305919?v=4?s=100" width="100px;" alt=""/><br /><sub><b>John Cantrell</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=johncantrell97" title="Code">💻</a></td>
<td align="center"><a href="http://kwuang.me"><img src="https://avatars1.githubusercontent.com/u/10319942?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kwuang Tang</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=cktang88" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/johnletey"><img src="https://avatars1.githubusercontent.com/u/62398724?v=4" width="100px;" alt=""/><br /><sub><b>John Letey</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=johnletey" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/ditorojuan"><img src="https://avatars0.githubusercontent.com/u/22530892?v=4" width="100px;" alt=""/><br /><sub><b>Juan Di Toro</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ditorojuan" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/johnletey"><img src="https://avatars1.githubusercontent.com/u/62398724?v=4?s=100" width="100px;" alt=""/><br /><sub><b>John Letey</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=johnletey" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/ditorojuan"><img src="https://avatars0.githubusercontent.com/u/22530892?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Juan Di Toro</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ditorojuan" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/taylorcjohnson"><img src="https://avatars0.githubusercontent.com/u/10552296?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Taylor Johnson</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=taylorcjohnson" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=taylorcjohnson" title="Documentation">📖</a></td>
<td align="center"><a href="https://twitter.com/tsriram"><img src="https://avatars3.githubusercontent.com/u/450559?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sriram Thiagarajan</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=tsriram" title="Documentation">📖</a></td>
<td align="center"><a href="https://sergiodxa.com"><img src="https://avatars2.githubusercontent.com/u/1312018?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sergio Xalambrí</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sergiodxa" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/doeixd"><img src="https://avatars3.githubusercontent.com/u/13461122?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Patrick G</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=doeixd" title="Code">💻</a></td>
<td align="center"><a href="http://avinash.com.np"><img src="https://avatars3.githubusercontent.com/u/513457?v=4?s=100" width="100px;" alt=""/><br /><sub><b>अभिनाश (Avinash)</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=hardfire" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="http://enricoschaaf.com"><img src="https://avatars1.githubusercontent.com/u/54645197?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Enrico Schaaf</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=enricoschaaf" title="Code">💻</a></td>
<td align="center"><a href="http://kitze.io"><img src="https://avatars0.githubusercontent.com/u/1160594?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kitze</b></sub></a><br /><a href="#ideas-kitze" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center"><a href="https://github.com/drmas"><img src="https://avatars3.githubusercontent.com/u/644440?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mohamed Shaban</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=drmas" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/jorisre"><img src="https://avatars1.githubusercontent.com/u/7545547?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Joris</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jorisre" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Kamshak"><img src="https://avatars3.githubusercontent.com/u/337968?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Valentin Funk</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Kamshak" title="Documentation">📖</a></td>
<td align="center"><a href="https://lukebennett.com"><img src="https://avatars1.githubusercontent.com/u/135390?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Luke Bennett</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=lukebennett" title="Code">💻</a></td>
<td align="center"><a href="https://haseebmajid.dev"><img src="https://avatars0.githubusercontent.com/u/998807?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Haseeb Majid</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=hmajid2301" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/phillippschmedt"><img src="https://avatars0.githubusercontent.com/u/16028406?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Phillipp Schmedt</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=phillippschmedt" title="Code">💻</a></td>
<td align="center"><a href="https://haspar.us"><img src="https://avatars0.githubusercontent.com/u/15332326?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Piotr Monwid-Olechnowicz</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=hasparus" title="Code">💻</a></td>
<td align="center"><a href="https://mizchi.dev"><img src="https://avatars2.githubusercontent.com/u/73962?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kotaro Chikuba</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=mizchi" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=mizchi" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/konradkalemba"><img src="https://avatars0.githubusercontent.com/u/8682104?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Konrad Kalemba</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=konradkalemba" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=konradkalemba" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/Alucard17"><img src="https://avatars1.githubusercontent.com/u/26205172?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alucard17</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Alucard17" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Dohxis"><img src="https://avatars2.githubusercontent.com/u/8768909?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Domantas Mauruča</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Dohxis" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=Dohxis" title="Code">💻</a></td>
<td align="center"><a href="https://sandulat.com/"><img src="https://avatars0.githubusercontent.com/u/7345874?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Stratulat Alexandru</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sandulat" title="Code">💻</a> <a href="#maintenance-sandulat" title="Maintenance">🚧</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/aericson"><img src="https://avatars3.githubusercontent.com/u/692542?v=4?s=100" width="100px;" alt=""/><br /><sub><b>André Ericson</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=aericson" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=aericson" title="Documentation">📖</a></td>
<td align="center"><a href="http://Cajotafer.com"><img src="https://avatars2.githubusercontent.com/u/41461969?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Carlos Fernández</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=cajotafer" title="Documentation">📖</a></td>
<td align="center"><a href="https://oesterkilde.dk/"><img src="https://avatars1.githubusercontent.com/u/6379824?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kevin Østerkilde</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Kosai106" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=Kosai106" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/aaronfulkerson"><img src="https://avatars0.githubusercontent.com/u/31112737?v=4?s=100" width="100px;" alt=""/><br /><sub><b>aaronfulkerson</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=aaronfulkerson" title="Code">💻</a> <a href="#question-aaronfulkerson" title="Answering Questions">💬</a></td>
<td align="center"><a href="https://github.com/alexnaiman"><img src="https://avatars3.githubusercontent.com/u/25799714?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alexandru Naiman</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=alexnaiman" title="Code">💻</a></td>
<td align="center"><a href="https://davidlutta.github.io/portfolio/"><img src="https://avatars2.githubusercontent.com/u/14890315?v=4?s=100" width="100px;" alt=""/><br /><sub><b>David Ezekiel Lutta</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=davidlutta" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/wanjuntham"><img src="https://avatars1.githubusercontent.com/u/49380551?v=4?s=100" width="100px;" alt=""/><br /><sub><b>wanjuntham</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=wanjuntham" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="http://www.nahuelchaves.xyz"><img src="https://avatars3.githubusercontent.com/u/96837?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Victor Nahuel Chaves</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=nahue" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/peter50216"><img src="https://avatars3.githubusercontent.com/u/891109?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Peter Shih</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=peter50216" title="Code">💻</a></td>
<td align="center"><a href="http://seweryn.kale.mba"><img src="https://avatars3.githubusercontent.com/u/37031328?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Seweryn Kalemba</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sewerynkalemba" title="Code">💻</a></td>
<td align="center"><a href="https://nksaraf.github.io"><img src="https://avatars2.githubusercontent.com/u/11255148?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nikhil Saraf</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=nksaraf" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=nksaraf" title="Documentation">📖</a></td>
<td align="center"><a href="https://zane.sh"><img src="https://avatars0.githubusercontent.com/u/16865690?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Zane</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=zanedb" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/dulcehc"><img src="https://avatars1.githubusercontent.com/u/19391835?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dulce Hernández</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=dulcehc" title="Code">💻</a></td>
<td align="center"><a href="https://markhaehnel.de"><img src="https://avatars2.githubusercontent.com/u/1516205?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mark Hähnel</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=markhaehnel" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="http://stackoverflow.com/users/872395/nemesv"><img src="https://avatars0.githubusercontent.com/u/251330?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Viktor Nemes</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=nemesv" title="Code">💻</a></td>
<td align="center"><a href="http://gabeoleary.com"><img src="https://avatars1.githubusercontent.com/u/16123225?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gabe O'Leary</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=goleary" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/machadolucasvp"><img src="https://avatars0.githubusercontent.com/u/44952113?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lucas Machado</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=machadolucasvp" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/maciekgrzybek"><img src="https://avatars2.githubusercontent.com/u/16546428?v=4?s=100" width="100px;" alt=""/><br /><sub><b>maciek_grzybek</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=maciekgrzybek" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/mweibel"><img src="https://avatars1.githubusercontent.com/u/307427?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Weibel</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=mweibel" title="Code">💻</a></td>
<td align="center"><a href="https://isoppp.com"><img src="https://avatars0.githubusercontent.com/u/16318727?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hiroki Isogai</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=isoppp" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/matamatanot"><img src="https://avatars2.githubusercontent.com/u/39780486?v=4?s=100" width="100px;" alt=""/><br /><sub><b>matamatanot</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=matamatanot" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/ericsakmar"><img src="https://avatars3.githubusercontent.com/u/5620709?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Eric Sakmar</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ericsakmar" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/leggsimon"><img src="https://avatars2.githubusercontent.com/u/11544418?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Simon Legg</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=leggsimon" title="Documentation">📖</a></td>
<td align="center"><a href="https://robsoriano.com"><img src="https://avatars3.githubusercontent.com/u/13049130?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Robert Soriano</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=wobsoriano" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/benediktms"><img src="https://avatars2.githubusercontent.com/u/48836135?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Benedikt Schnatterbeck</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=benediktms" title="Code">💻</a></td>
<td align="center"><a href="http://taloranderson.com"><img src="https://avatars2.githubusercontent.com/u/11509865?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Talor Anderson</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Talor-A" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=Talor-A" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/akirabaruah"><img src="https://avatars2.githubusercontent.com/u/6751517?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Akira Baruah</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=akirabaruah" title="Code">💻</a></td>
<td align="center"><a href="https://chriswray.dev/"><img src="https://avatars0.githubusercontent.com/u/53663762?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Christopher Wray</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=cwray-tech" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/piotrski"><img src="https://avatars0.githubusercontent.com/u/244174?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Piotrek Tomczewski</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=piotrski" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=piotrski" title="Documentation">📖</a></td>
<td align="center"><a href="http://raph.site"><img src="https://avatars3.githubusercontent.com/u/1575946?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Raphaël Huchet</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=rap2hpoutre" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=rap2hpoutre" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=rap2hpoutre" title="Code">💻</a></td>
<td align="center"><a href="http://kattcorp.com"><img src="https://avatars1.githubusercontent.com/u/459267?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=KATT" title="Code">💻</a></td>
<td align="center"><a href="http://davidmazza.com"><img src="https://avatars0.githubusercontent.com/u/120893?v=4?s=100" width="100px;" alt=""/><br /><sub><b>David Mazza</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=dmzza" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/rayandrews"><img src="https://avatars1.githubusercontent.com/u/4437323?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ray Andrew</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=rayandrews" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=rayandrews" title="Documentation">📖</a></td>
<td align="center"><a href="http://Dal.Design"><img src="https://avatars3.githubusercontent.com/u/43112535?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Abdullah Mzaien</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Mzaien" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=Mzaien" title="Documentation">📖</a></td>
<td align="center"><a href="http://kwao.io"><img src="https://avatars2.githubusercontent.com/u/8839514?v=4?s=100" width="100px;" alt=""/><br /><sub><b>William Kwao</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=williamkwao" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/sakulstra"><img src="https://avatars3.githubusercontent.com/u/4396533?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lukas Strassel</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sakulstra" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=sakulstra" title="Tests">⚠️</a></td>
<td align="center"><a href="https://thibpat.com"><img src="https://avatars3.githubusercontent.com/u/494686?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Thibaut Patel</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=tpatel" title="Code">💻</a></td>
<td align="center"><a href="http://jonstuebe.com"><img src="https://avatars0.githubusercontent.com/u/156722?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jon Stuebe</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jonstuebe" title="Code">💻</a></td>
<td align="center"><a href="https://ugogo.dev"><img src="https://avatars2.githubusercontent.com/u/5040476?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ugo Onali</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ugogo" title="Documentation">📖</a></td>
<td align="center"><a href="https://saintmalik.me"><img src="https://avatars1.githubusercontent.com/u/37118134?v=4?s=100" width="100px;" alt=""/><br /><sub><b>SaintMalik</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=saintmalik" title="Documentation">📖</a></td>
<td align="center"><a href="https://khaledgarbaya.net"><img src="https://avatars1.githubusercontent.com/u/1156093?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Khaled Garbaya</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Khaledgarbaya" title="Code">💻</a></td>
<td align="center"><a href="https://tundera.dev"><img src="https://avatars0.githubusercontent.com/u/61833561?v=4?s=100" width="100px;" alt=""/><br /><sub><b>tundera</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=tundera" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=tundera" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=tundera" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/markylaing"><img src="https://avatars2.githubusercontent.com/u/41469221?v=4?s=100" width="100px;" alt=""/><br /><sub><b>markylaing</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=markylaing" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=markylaing" title="Documentation">📖</a></td>
<td align="center"><a href="https://akfm.dev/"><img src="https://avatars2.githubusercontent.com/u/25711332?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Akifumi Sato</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=AkifumiSato" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/beeplin"><img src="https://avatars3.githubusercontent.com/u/13058150?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Beep LIN</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=beeplin" title="Code">💻</a></td>
<td align="center"><a href="https://mattwood.tech/"><img src="https://avatars1.githubusercontent.com/u/22530815?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matt Wood</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=mattfwood" title="Code">💻</a></td>
<td align="center"><a href="http://joaquin.axai.mx"><img src="https://avatars1.githubusercontent.com/u/15214?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Joaquin Bravo Contreras</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jackbravo" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/arjundubey-cr"><img src="https://avatars0.githubusercontent.com/u/40758425?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Arjun Dubey</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=arjundubey-cr" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/chanand"><img src="https://avatars0.githubusercontent.com/u/1317789?v=4?s=100" width="100px;" alt=""/><br /><sub><b>chanand</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=chanand" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/phillipkregg"><img src="https://avatars0.githubusercontent.com/u/1066044?v=4?s=100" width="100px;" alt=""/><br /><sub><b>phillipkregg</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=phillipkregg" title="Documentation">📖</a></td>
<td align="center"><a href="http://timothyreynolds.co.uk"><img src="https://avatars1.githubusercontent.com/u/168870?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tim Reynolds</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=timReynolds" title="Documentation">📖</a></td>
<td align="center"><a href="https://linbudu.top/"><img src="https://avatars0.githubusercontent.com/u/48507806?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Linbudu</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=linbudu599" title="Documentation">📖</a></td>
<td align="center"><a href="http://www.superservice-international.com"><img src="https://avatars0.githubusercontent.com/u/6090492?v=4?s=100" width="100px;" alt=""/><br /><sub><b>C Reimers</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=creimers" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/kyken"><img src="https://avatars2.githubusercontent.com/u/20137120?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tsuyoshi Osawa</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=kyken" title="Code">💻</a></td>
<td align="center"><a href="https://rembrandtreyes.com/"><img src="https://avatars1.githubusercontent.com/u/15057964?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Rembrandt Reyes</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=rembrandtreyes" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=rembrandtreyes" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=rembrandtreyes" title="Tests">⚠️</a></td>
<td align="center"><a href="https://doi-t.net"><img src="https://avatars2.githubusercontent.com/u/5877477?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Toshiya Doi</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=doi-t" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://www.koolii.net/"><img src="https://avatars1.githubusercontent.com/u/3866581?v=4?s=100" width="100px;" alt=""/><br /><sub><b>t.kuriyama</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=koolii" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/malkomalko"><img src="https://avatars3.githubusercontent.com/u/763?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Robert Malko</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=malkomalko" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/ranjan-purbey"><img src="https://avatars3.githubusercontent.com/u/6953187?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ranjan Purbey</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ranjan-purbey" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/tarunama"><img src="https://avatars3.githubusercontent.com/u/6047881?v=4?s=100" width="100px;" alt=""/><br /><sub><b>tarunama</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=tarunama" title="Code">💻</a></td>
<td align="center"><a href="http://www.bacongravy.net/"><img src="https://avatars3.githubusercontent.com/u/16848768?v=4?s=100" width="100px;" alt=""/><br /><sub><b>David Kramer</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=bacongravy" title="Code">💻</a></td>
<td align="center"><a href="https://mikeesto.com"><img src="https://avatars1.githubusercontent.com/u/21051488?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Esteban</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=mikeesto" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/marina-ki"><img src="https://avatars0.githubusercontent.com/u/54174518?v=4?s=100" width="100px;" alt=""/><br /><sub><b>marina</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=marina-ki" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=marina-ki" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/jonasthiesen"><img src="https://avatars.githubusercontent.com/u/23408018?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jonas Thiesen</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jonasthiesen" title="Documentation">📖</a></td>
<td align="center"><a href="https://thakkaryash94.github.io/"><img src="https://avatars.githubusercontent.com/u/7349778?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Yash Thakkar</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=thakkaryash94" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/rince"><img src="https://avatars.githubusercontent.com/u/933895?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kazuma Suzuki</b></sub></a><br /><a href="#design-rince" title="Design">🎨</a> <a href="https://github.com/blitz-js/blitz/commits?author=rince" title="Code">💻</a></td>
<td align="center"><a href="http://queq1890.info"><img src="https://avatars.githubusercontent.com/u/32263803?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Yuji Matsumoto</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=queq1890" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/Gim3l"><img src="https://avatars.githubusercontent.com/u/46765702?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gimel Dick</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Gim3l" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/akbo"><img src="https://avatars.githubusercontent.com/u/1926271?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Andreas Bollig</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=akbo" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=akbo" title="Documentation">📖</a></td>
<td align="center"><a href="https://ajm.codes"><img src="https://avatars.githubusercontent.com/u/66390428?v=4?s=100" width="100px;" alt=""/><br /><sub><b>AJ Markow</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ajmarkow" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=ajmarkow" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://wafuwafu13.hateblo.jp/"><img src="https://avatars.githubusercontent.com/u/50798936?v=4?s=100" width="100px;" alt=""/><br /><sub><b>TagawaHirotaka</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=wafuwafu13" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=wafuwafu13" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/merodiro"><img src="https://avatars.githubusercontent.com/u/17033502?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Amr A.Mohammed</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=merodiro" title="Code">💻</a></td>
<td align="center"><a href="http://www.lucaswillems.com"><img src="https://avatars.githubusercontent.com/u/5437552?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lucas Willems</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=lcswillems" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=lcswillems" title="Code">💻</a></td>
<td align="center"><a href="https://alistair.cloud"><img src="https://avatars.githubusercontent.com/u/25351731?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alistair Smith</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=alii" title="Code">💻</a></td>
<td align="center"><a href="https://rodrigoehlers.com"><img src="https://avatars.githubusercontent.com/u/19683042?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Rodrigo Ehlers</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=rodrigoehlers" title="Code">💻</a></td>
<td align="center"><a href="https://www.builtopen.com/"><img src="https://avatars.githubusercontent.com/u/1734057?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Ford</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=mtford90" title="Code">💻</a></td>
<td align="center"><a href="https://brianypliu.com"><img src="https://avatars.githubusercontent.com/u/3888780?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Brian Liu</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=LBrian" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="http://aleksandra.codes"><img src="https://avatars.githubusercontent.com/u/9019397?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Aleksandra Sikora</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=beerose" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=beerose" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=beerose" title="Tests">⚠️</a></td>
<td align="center"><a href="https://juanm04.com"><img src="https://avatars.githubusercontent.com/u/16712703?v=4?s=100" width="100px;" alt=""/><br /><sub><b>JuanM04</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=JuanM04" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=JuanM04" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=JuanM04" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/arenddeboer"><img src="https://avatars.githubusercontent.com/u/7022204?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Arend de Boer</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=arenddeboer" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/fmilani"><img src="https://avatars.githubusercontent.com/u/1580375?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Felipe Milani</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=fmilani" title="Documentation">📖</a></td>
<td align="center"><a href="http://nxhx.org"><img src="https://avatars.githubusercontent.com/u/13018?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Joe Edelman</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jxe" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/garytube"><img src="https://avatars.githubusercontent.com/u/3823504?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gary</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=garytube" title="Documentation">📖</a></td>
<td align="center"><a href="http://oliverloops.com"><img src="https://avatars.githubusercontent.com/u/33361399?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Oliver Lopez </b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=oliverloops" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://decadentIpsum.me"><img src="https://avatars.githubusercontent.com/u/32861532?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Andreas Zaralis</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=DecadentIpsum" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/davetorbeck"><img src="https://avatars.githubusercontent.com/u/5829885?v=4?s=100" width="100px;" alt=""/><br /><sub><b>David Torbeck</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=davetorbeck" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/gusgard"><img src="https://avatars.githubusercontent.com/u/2577356?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gustavo Gard</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=gusgard" title="Documentation">📖</a></td>
<td align="center"><a href="https://narrationbox.com"><img src="https://avatars.githubusercontent.com/u/7126128?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Immortalin</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Immortalin" title="Code">💻</a></td>
<td align="center"><a href="https://cristianbgp.com"><img src="https://avatars.githubusercontent.com/u/8507974?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Cristian Granda</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=cristianbgp" title="Code">💻</a></td>
<td align="center"><a href="https://deniseyu.io"><img src="https://avatars.githubusercontent.com/u/8420094?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Denise Yu</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=deniseyu" title="Code">💻</a></td>
<td align="center"><a href="http://dellacorte.me"><img src="https://avatars.githubusercontent.com/u/295683?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Andrea Della Corte</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=andreadellacorte" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="http://aditsachde.com"><img src="https://avatars.githubusercontent.com/u/23707194?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Adit Sachde</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=aditsachde" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/hirenchauhan2"><img src="https://avatars.githubusercontent.com/u/8999668?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hiren Chauhan</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=hirenchauhan2" title="Code">💻</a></td>
<td align="center"><a href="http://remjx.com/"><img src="https://avatars.githubusercontent.com/u/35121685?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mark Jackson</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=remjx" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=remjx" title="Code">💻</a></td>
<td align="center"><a href="https://lewisb.cloud/"><img src="https://avatars.githubusercontent.com/u/51877955?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lewis Blackburn</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=lewisblackburn" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/FDiskas"><img src="https://avatars.githubusercontent.com/u/468006?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Vytenis</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=FDiskas" title="Code">💻</a></td>
<td align="center"><a href="https://portfolio.matthieupetit.com"><img src="https://avatars.githubusercontent.com/u/12969089?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matthieu</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=matthieu994" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=matthieu994" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/mitchazj"><img src="https://avatars.githubusercontent.com/u/15032956?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mitchell Johnson</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=mitchazj" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://roshan.page/"><img src="https://avatars.githubusercontent.com/u/31125563?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Roshan Manuel</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Roesh" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=Roesh" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=Roesh" title="Tests">⚠️</a></td>
<td align="center"><a href="https://kevinlangleyjr.com"><img src="https://avatars.githubusercontent.com/u/877634?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kevin Langley Jr.</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=kevinlangleyjr" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=kevinlangleyjr" title="Documentation">📖</a></td>
<td align="center"><a href="https://projet-test-99df0.firebaseapp.com/"><img src="https://avatars.githubusercontent.com/u/51029779?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gabriel Picard</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=heavygabriel" title="Documentation">📖</a></td>
<td align="center"><a href="http://ryanchenkie.com/"><img src="https://avatars.githubusercontent.com/u/1847678?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ryan Chenkie</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=chenkie" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/sbappan"><img src="https://avatars.githubusercontent.com/u/12586088?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Santhosh B. Appan</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sbappan" title="Documentation">📖</a></td>
<td align="center"><a href="http://stackoverflow.com/users/5207233/james-moran"><img src="https://avatars.githubusercontent.com/u/10858584?v=4?s=100" width="100px;" alt=""/><br /><sub><b>James Moran</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=james2406" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=james2406" title="Documentation">📖</a></td>
<td align="center"><a href="http://fb.me/yz"><img src="https://avatars.githubusercontent.com/u/14841421?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=bugzpodder" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/the-red"><img src="https://avatars.githubusercontent.com/u/4494300?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hisaki Akaza</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=the-red" title="Documentation">📖</a></td>
<td align="center"><a href="http://flavioander.com/"><img src="https://avatars.githubusercontent.com/u/14948074?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Flavio</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Flavyoo" title="Code">💻</a></td>
<td align="center"><a href="https://bhanuteja.dev/"><img src="https://avatars.githubusercontent.com/u/17903466?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Bhanu Teja Pachipulusu</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=pbteja1998" title="Code">💻</a></td>
<td align="center"><a href="https://twitter.com/pavestru"><img src="https://avatars.githubusercontent.com/u/10186479?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Pavel Struhar</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=pavestru" title="Code">💻</a></td>
<td align="center"><a href="https://in-thepink.com/"><img src="https://avatars.githubusercontent.com/u/42126368?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Reo Ishiyama</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=reo777" title="Code">💻</a></td>
<td align="center"><a href="https://macwright.com/"><img src="https://avatars.githubusercontent.com/u/32314?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tom MacWright</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=tmcw" title="Documentation">📖</a></td>
<td align="center"><a href="https://francoisbest.com"><img src="https://avatars.githubusercontent.com/u/1174092?v=4?s=100" width="100px;" alt=""/><br /><sub><b>François Best</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=franky47" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/FarazPatankar"><img src="https://avatars.githubusercontent.com/u/10681116?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Faraz Patankar</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=FarazPatankar" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/ericvicenti"><img src="https://avatars.githubusercontent.com/u/1483597?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Eric Vicenti</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ericvicenti" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=ericvicenti" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/amdolan"><img src="https://avatars.githubusercontent.com/u/2552275?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alex Dolan</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=amdolan" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=amdolan" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=amdolan" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/Maastrich"><img src="https://avatars.githubusercontent.com/u/58431775?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mathis Pinsault</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Maastrich" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/gstranger"><img src="https://avatars.githubusercontent.com/u/36181416?v=4?s=100" width="100px;" alt=""/><br /><sub><b>gstranger</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=gstranger" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=gstranger" title="Documentation">📖</a></td>
<td align="center"><a href="http://twitter.com/_markeh"><img src="https://avatars.githubusercontent.com/u/1357323?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mark Hughes</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=markhughes" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=markhughes" title="Documentation">📖</a></td>
<td align="center"><a href="www.andrearizzello.work"><img src="https://avatars.githubusercontent.com/u/10348930?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Andrea Rizzello</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=andrearizzello" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="jahred.com.au"><img src="https://avatars.githubusercontent.com/u/13903378?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jahred Hope</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jahredhope" title="Documentation">📖</a></td>
<td align="center"><a href="simonelnahas.github.io/"><img src="https://avatars.githubusercontent.com/u/29279201?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Simon El Nahas</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=simonelnahas" title="Documentation">📖</a></td>
<td align="center"><a href="www.usertrack.net"><img src="https://avatars.githubusercontent.com/u/1384885?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Buleandra Cristian</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Cristy94" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=Cristy94" title="Code">💻</a></td>
<td align="center"><a href="http://palauisaac.me/"><img src="https://avatars.githubusercontent.com/u/12257885?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Pedro Enrique Palau Isaac</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=peterpalau" title="Code">💻</a></td>
<td align="center"><a href="www.seanbrydon.me"><img src="https://avatars.githubusercontent.com/u/55134778?v=4?s=100" width="100px;" alt=""/><br /><sub><b>sean-brydon</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sean-brydon" title="Documentation">📖</a></td>
<td align="center"><a href="buonerba.dev"><img src="https://avatars.githubusercontent.com/u/28837891?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alessandro</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Dieman89" title="Documentation">📖</a></td>
<td align="center"><a href="www.jyutping.org"><img src="https://avatars.githubusercontent.com/u/11172180?v=4?s=100" width="100px;" alt=""/><br /><sub><b>laubonghaudoi</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=laubonghaudoi" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/TommasoBruno99"><img src="https://avatars.githubusercontent.com/u/61512591?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tommaso Bruno</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=TommasoBruno99" title="Documentation">📖</a></td>
<td align="center"><a href="antonykamp.de"><img src="https://avatars.githubusercontent.com/u/45163503?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Antony</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=antonykamp" title="Documentation">📖</a></td>
<td align="center"><a href="https://blog.6nok.org"><img src="https://avatars.githubusercontent.com/u/868283?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Fatih Altinok</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=frontsideair" title="Documentation">📖</a></td>
<td align="center"><a href="https://mokshitjain.co/"><img src="https://avatars.githubusercontent.com/u/50412128?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mokshit Jain</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Mokshit06" title="Code">💻</a></td>
<td align="center"><a href="https://mubaidr.github.io"><img src="https://avatars.githubusercontent.com/u/2222702?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Muhammad Ubaid Raza</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=mubaidr" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=mubaidr" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/silicontwin"><img src="https://avatars.githubusercontent.com/u/121665?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nick Warren</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=silicontwin" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/mlabate"><img src="https://avatars.githubusercontent.com/u/17139676?v=4?s=100" width="100px;" alt=""/><br /><sub><b>mlabate</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=mlabate" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/lumaxis"><img src="https://avatars.githubusercontent.com/u/406937?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lukas Spieß</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=lumaxis" title="Documentation">📖</a></td>
<td align="center"><a href="https://dawnofmidnight.vercel.app"><img src="https://avatars.githubusercontent.com/u/78233879?v=4?s=100" width="100px;" alt=""/><br /><sub><b>DawnOfMidnight</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=dawnofmidnight" title="Documentation">📖</a></td>
<td align="center"><a href="https://www.linkedin.com/in/kenzairaki/"><img src="https://avatars.githubusercontent.com/u/17203119?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kenza Iraki</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=kirakik" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=kirakik" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/agustif"><img src="https://avatars.githubusercontent.com/u/6601142?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Agusti Fernandez</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=agustif" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Anjianto"><img src="https://avatars.githubusercontent.com/u/61521141?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Anjianto</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Anjianto" title="Code">💻</a></td>
<td align="center"><a href="https://adrienblanc.com"><img src="https://avatars.githubusercontent.com/u/41756894?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Blanc Adrien</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=adblanc" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/meepdeew"><img src="https://avatars.githubusercontent.com/u/43303008?v=4?s=100" width="100px;" alt=""/><br /><sub><b>meepdeew</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=meepdeew" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/Hardik3296"><img src="https://avatars.githubusercontent.com/u/20360325?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hardik Gaur</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Hardik3296" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/acornellier"><img src="https://avatars.githubusercontent.com/u/8725423?v=4?s=100" width="100px;" alt=""/><br /><sub><b>acornellier</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=acornellier" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/craigglennie"><img src="https://avatars.githubusercontent.com/u/149281?v=4?s=100" width="100px;" alt=""/><br /><sub><b>craigglennie</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=craigglennie" title="Documentation">📖</a></td>
<td align="center"><a href="http://www.fernvillasenor.com"><img src="https://avatars.githubusercontent.com/u/5857808?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Fernando Villasenor</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=fernvilla" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/swiftgaruda"><img src="https://avatars.githubusercontent.com/u/16741392?v=4?s=100" width="100px;" alt=""/><br /><sub><b>swiftgaruda</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=swiftgaruda" title="Documentation">📖</a></td>
<td align="center"><a href="https://pplife.home.blog"><img src="https://avatars.githubusercontent.com/u/35653876?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Pankaj Patil</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Patil2099" title="Documentation">📖</a></td>
<td align="center"><a href="minaabadir.ca"><img src="https://avatars.githubusercontent.com/u/3389914?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mina Abadir</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=mabadir" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=mabadir" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=mabadir" title="Tests">⚠️</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/frankiesardo"><img src="https://avatars.githubusercontent.com/u/1476561?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Francesco Sardo</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=frankiesardo" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=frankiesardo" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/enemycnt"><img src="https://avatars.githubusercontent.com/u/320313?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nikolay</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=enemycnt" title="Documentation">📖</a></td>
<td align="center"><a href="https://dipeshwagle.com"><img src="https://avatars.githubusercontent.com/u/4191022?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dipesh Wagle</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Dipeshwagle" title="Code">💻</a></td>
<td align="center"><a href="https://codepoet.de"><img src="https://avatars.githubusercontent.com/u/462455?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Benjamin Bender</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=benbender" title="Code">💻</a></td>
<td align="center"><a href="https://nima.sh"><img src="https://avatars.githubusercontent.com/u/3728170?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nima Shoghi</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=nimashoghi" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/chronark"><img src="https://avatars.githubusercontent.com/u/18246773?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Andreas Thomas</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=chronark" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/guoqqqi"><img src="https://avatars.githubusercontent.com/u/72343596?v=4?s=100" width="100px;" alt=""/><br /><sub><b>guoqqqi</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=guoqqqi" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/timbooker"><img src="https://avatars.githubusercontent.com/u/612681?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tim</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=timbooker" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=timbooker" title="Tests">⚠️</a></td>
<td align="center"><a href="http://orlowski.me/"><img src="https://avatars.githubusercontent.com/u/16357457?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Marek Orłowski</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ormarek" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/AntoineGuestin"><img src="https://avatars.githubusercontent.com/u/70888750?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Antoine G</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=AntoineGuestin" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/swinner2"><img src="https://avatars.githubusercontent.com/u/6707308?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sean Winner</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=swinner2" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=swinner2" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=swinner2" title="Documentation">📖</a></td>
<td align="center"><a href="https://usman-s.me"><img src="https://avatars.githubusercontent.com/u/51731966?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Max Programming</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=max-programming" title="Code">💻</a></td>
<td align="center"><a href="https://makemake.sh"><img src="https://avatars.githubusercontent.com/u/353768?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sebastian Hoitz</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sebastianhoitz" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=sebastianhoitz" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/garnerp"><img src="https://avatars.githubusercontent.com/u/737307?v=4?s=100" width="100px;" alt=""/><br /><sub><b>garnerp</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=garnerp" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/kivi"><img src="https://avatars.githubusercontent.com/u/366163?v=4?s=100" width="100px;" alt=""/><br /><sub><b>kivi</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=kivi" title="Code">💻</a></td>
<td align="center"><a href="http://dangreaves.com"><img src="https://avatars.githubusercontent.com/u/1036142?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dan Greaves</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=dangreaves" title="Code">💻</a></td>
<td align="center"><a href="lksnmnn.com"><img src="https://avatars.githubusercontent.com/u/4983285?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lukas Neumann</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=lksnmnn" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=lksnmnn" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=lksnmnn" title="Tests">⚠️</a></td>
<td align="center"><a href="dbachrach.com"><img src="https://avatars.githubusercontent.com/u/45016?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dustin Bachrach</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=dbachrach" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=dbachrach" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/ashikka"><img src="https://avatars.githubusercontent.com/u/58368421?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ashikka Gupta</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ashikka" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=ashikka" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/deini"><img src="https://avatars.githubusercontent.com/u/2752665?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Daniel Almaguer</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=deini" title="Documentation">📖</a></td>
<td align="center"><a href="https://www.kevinpeters.net/about/"><img src="https://avatars.githubusercontent.com/u/12736734?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kevin Peters</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=igeligel" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="http://anolilab.de"><img src="https://avatars.githubusercontent.com/u/2716058?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Daniel Bannert</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=prisis" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=prisis" title="Documentation">📖</a></td>
<td align="center"><a href="https://benjakugler96.github.io/"><img src="https://avatars.githubusercontent.com/u/53273645?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Benja Kugler</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=benjakugler96" title="Code">💻</a></td>
<td align="center"><a href="https://semeniuc.ml/"><img src="https://avatars.githubusercontent.com/u/3838856?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Eric Semeniuc</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=esemeniuc" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=esemeniuc" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/ricardo-rp"><img src="https://avatars.githubusercontent.com/u/30808767?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ricardo Romero</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ricardo-rp" title="Documentation">📖</a></td>
<td align="center"><a href="exocortex.anothernode.com"><img src="https://avatars.githubusercontent.com/u/3286144?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Moritz Reiter</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=anothernode" title="Documentation">📖</a></td>
<td align="center"><a href="https://msich.dev"><img src="https://avatars.githubusercontent.com/u/38794918?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matt Sichterman</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=msichterman" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/medihack"><img src="https://avatars.githubusercontent.com/u/120626?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kai Schlamp</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=medihack" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://muyiwa.me"><img src="https://avatars.githubusercontent.com/u/6832244?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Muyiwa Olu</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=muyiwaolu" title="Code">💻</a></td>
<td align="center"><a href="http://2hr.me/"><img src="https://avatars.githubusercontent.com/u/4346154?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Rabbi Hossain</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=rabbihossain" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/bravo-kernel"><img src="https://avatars.githubusercontent.com/u/230500?v=4?s=100" width="100px;" alt=""/><br /><sub><b>bravo-kernel</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=bravo-kernel" title="Code">💻</a></td>
<td align="center"><a href="https://samholmes.net"><img src="https://avatars.githubusercontent.com/u/8385528?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sam Holmes</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sam3d" title="Code">💻</a></td>
<td align="center"><a href="https://doncicuto.medium.com"><img src="https://avatars.githubusercontent.com/u/30386061?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Miguel Cabrerizo</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=doncicuto" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=doncicuto" title="Documentation">📖</a></td>
<td align="center"><a href="http://zackhobson.com/"><img src="https://avatars.githubusercontent.com/u/12092?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Zack Hobson</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=zenhob" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=zenhob" title="Documentation">📖</a></td>
<td align="center"><a href="https://www.mokhtar.dev"><img src="https://avatars.githubusercontent.com/u/13026820?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mokhtar</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=m5r" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/kenkuan"><img src="https://avatars.githubusercontent.com/u/1924968?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ken Kuan</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=kenkuan" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/meehawk"><img src="https://avatars.githubusercontent.com/u/80167324?v=4?s=100" width="100px;" alt=""/><br /><sub><b>meehawk</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=meehawk" title="Code">💻</a></td>
<td align="center"><a href="rahulravindran.in"><img src="https://avatars.githubusercontent.com/u/10168946?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Rahul Ravindran</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ravindranrahul" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/s-r-x"><img src="https://avatars.githubusercontent.com/u/41614937?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ilya</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=s-r-x" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=s-r-x" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=s-r-x" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/hashimwarren"><img src="https://avatars.githubusercontent.com/u/6027587?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hashim Warren</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=hashimwarren" title="Documentation">📖</a></td>
<td align="center"><a href="https://damilolarandolph.com"><img src="https://avatars.githubusercontent.com/u/43427949?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Damilola Randolph</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=damilolarandolph" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/mwcampbell"><img src="https://avatars.githubusercontent.com/u/214820?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matt Campbell</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=mwcampbell" title="Documentation">📖</a></td>
</tr>
<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> <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>
<td align="center"><a href="roettgers.co"><img src="https://avatars.githubusercontent.com/u/29666239?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Bruce</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=bcye" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/emilygracekz"><img src="https://avatars.githubusercontent.com/u/57361805?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Emily</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=emilygracekz" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/npverni"><img src="https://avatars.githubusercontent.com/u/3537?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nathan Verni</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=npverni" title="Documentation">📖</a></td>
<td align="center"><a href="https://davyengone.io"><img src="https://avatars.githubusercontent.com/u/4896002?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Davy Engone</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=davyengone" title="Documentation">📖</a></td>
<td align="center"><a href="https://fedeorlandau.dev/"><img src="https://avatars.githubusercontent.com/u/10283686?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Federico Joel Orlandau</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Fedeorlandau" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=Fedeorlandau" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/johnmurphy01"><img src="https://avatars.githubusercontent.com/u/2939548?v=4?s=100" width="100px;" alt=""/><br /><sub><b>John Murphy</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=johnmurphy01" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=johnmurphy01" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/martinsaxa"><img src="https://avatars.githubusercontent.com/u/33789474?v=4?s=100" width="100px;" alt=""/><br /><sub><b>martinsaxa</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=martinsaxa" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/ajwgeek"><img src="https://avatars.githubusercontent.com/u/2135600?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Austin Walhof</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ajwgeek" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="g3offrey.dev"><img src="https://avatars.githubusercontent.com/u/11151445?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Geoffrey</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=g3offrey" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=g3offrey" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=g3offrey" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/keevan"><img src="https://avatars.githubusercontent.com/u/9924643?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kevin Pham</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=keevan" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/kimngan-bui"><img src="https://avatars.githubusercontent.com/u/20723478?v=4?s=100" width="100px;" alt=""/><br /><sub><b>kimngan-bui</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=kimngan-bui" title="Documentation">📖</a></td>
<td align="center"><a href="world.hey.com/bach"><img src="https://avatars.githubusercontent.com/u/11691670?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Bahk Chanhee</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=9j" title="Code">💻</a></td>
<td align="center"><a href="http://www.afterecon.com/"><img src="https://avatars.githubusercontent.com/u/5559355?v=4?s=100" width="100px;" alt=""/><br /><sub><b>John Vandivier</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Vandivier" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=Vandivier" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=Vandivier" title="Documentation">📖</a></td>
<td align="center"><a href="http://namirsab.github.io"><img src="https://avatars.githubusercontent.com/u/6980777?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Namir</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=namirsab" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=namirsab" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=namirsab" title="Tests">⚠️</a></td>
<td align="center"><a href="https://twitter.com/scttcper"><img src="https://avatars.githubusercontent.com/u/1400464?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Scott Cooper</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=scttcper" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="abduttayyeb.github.io"><img src="https://avatars.githubusercontent.com/u/55306260?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Abduttayyeb M.r</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=Abduttayyeb" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/maybebored"><img src="https://avatars.githubusercontent.com/u/20951181?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mayuran</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=maybebored" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/MuckHub"><img src="https://avatars.githubusercontent.com/u/54979136?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Aleksei Vesselko</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=MuckHub" title="Documentation">📖</a></td>
<td align="center"><a href="https://p-siriphanthong.github.io/"><img src="https://avatars.githubusercontent.com/u/29949429?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Punn Siriphanthong</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=p-siriphanthong" title="Code">💻</a></td>
<td align="center"><a href="https://my-portfolio-292eb.web.app"><img src="https://avatars.githubusercontent.com/u/83679827?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Shawn Fetanat</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=shawn-fetanat" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/mochi-sann"><img src="https://avatars.githubusercontent.com/u/44772513?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Moyuru</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=mochi-sann" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=mochi-sann" title="Tests">⚠️</a> <a href="https://github.com/blitz-js/blitz/commits?author=mochi-sann" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/camsloanftc"><img src="https://avatars.githubusercontent.com/u/16295659?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Cam Sloan</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=camsloanftc" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://macieksitkowski.com"><img src="https://avatars.githubusercontent.com/u/58401630?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Maciek Sitkowski</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sitek94" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/vivek7405"><img src="https://avatars.githubusercontent.com/u/24492244?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Vivek</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=vivek7405" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=vivek7405" title="Code">💻</a></td>
<td align="center"><a href="http://cj.io"><img src="https://avatars.githubusercontent.com/u/1819?v=4?s=100" width="100px;" alt=""/><br /><sub><b>CJ Lazell</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=cj" title="Code">💻</a></td>
<td align="center"><a href="robertbroersma.com"><img src="https://avatars.githubusercontent.com/u/4519828?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Robert</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=RobertBroersma" title="Documentation">📖</a></td>
<td align="center"><a href="https://christianjensen.netlify.com"><img src="https://avatars.githubusercontent.com/u/12374723?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Christian Jensen</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=cbejensen" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/dvnrsn"><img src="https://avatars.githubusercontent.com/u/9112811?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Devin Rasmussen</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=dvnrsn" title="Code">💻</a></td>
<td align="center"><a href="www.linkedin.com/in/devtom"><img src="https://avatars.githubusercontent.com/u/23282613?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Thomas Brenneur</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=devtombiz" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=devtombiz" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=devtombiz" title="Tests">⚠️</a></td>
</tr>
<tr>
<td align="center"><a href="https://lucasvazq.github.io/"><img src="https://avatars.githubusercontent.com/u/38964964?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lucas Vazquez</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=lucasvazq" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/chrisj-back2work"><img src="https://avatars.githubusercontent.com/u/68551954?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Chris Johnson</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=chrisj-back2work" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/thisdotrob"><img src="https://avatars.githubusercontent.com/u/12902589?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Rob Stevenson</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=thisdotrob" title="Documentation">📖</a></td>
<td align="center"><a href="www.lucas.computer"><img src="https://avatars.githubusercontent.com/u/1363056?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lucas Heymès</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=lovethebomb" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=lovethebomb" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/NorfeldtAbtion"><img src="https://avatars.githubusercontent.com/u/53769763?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lasse Norfeldt</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=NorfeldtAbtion" title="Documentation">📖</a></td>
<td align="center"><a href="https://nyaripeter.hu/"><img src="https://avatars.githubusercontent.com/u/6048614?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Péter Nyári</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=netwarex" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=netwarex" title="Code">💻</a></td>
<td align="center"><a href="https://www.holgerfrohloff.de"><img src="https://avatars.githubusercontent.com/u/84148?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Holger Frohloff</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=5minpause" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/basilk76"><img src="https://avatars.githubusercontent.com/u/45275512?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Basil Khan</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=basilk76" title="Documentation">📖</a></td>
<td align="center"><a href="https://danestves.com/"><img src="https://avatars.githubusercontent.com/u/31737273?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Daniel Esteves</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=danestves" title="Documentation">📖</a></td>
<td align="center"><a href="http://www.bitnative.com"><img src="https://avatars.githubusercontent.com/u/1688997?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Cory House</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=coryhouse" title="Documentation">📖</a></td>
<td align="center"><a href="https://auspham.dev/"><img src="https://avatars.githubusercontent.com/u/16440123?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Austin (Thang Pham)</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=rockmanvnx6" title="Documentation">📖</a></td>
<td align="center"><a href="https://jammeryhq.com"><img src="https://avatars.githubusercontent.com/u/521777?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Marcus Reinhardt</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=noxify" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=noxify" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/davidchristie"><img src="https://avatars.githubusercontent.com/u/12044333?v=4?s=100" width="100px;" alt=""/><br /><sub><b>David Christie</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=davidchristie" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/ajanth97"><img src="https://avatars.githubusercontent.com/u/50458502?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ajanth</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=ajanth97" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/divpreet"><img src="https://avatars.githubusercontent.com/u/2805650?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Div</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=divpreet" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/david-arteaga"><img src="https://avatars.githubusercontent.com/u/7199015?v=4?s=100" width="100px;" alt=""/><br /><sub><b>David Arteaga</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=david-arteaga" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/MukulKolpe"><img src="https://avatars.githubusercontent.com/u/78664749?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mukul Kolpe</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=MukulKolpe" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/skotchpine"><img src="https://avatars.githubusercontent.com/u/13043909?v=4?s=100" width="100px;" alt=""/><br /><sub><b>tyler</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=skotchpine" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/SofianeDjellouli"><img src="https://avatars.githubusercontent.com/u/38258952?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sofiane Djellouli</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=SofianeDjellouli" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/kreako"><img src="https://avatars.githubusercontent.com/u/65113001?v=4?s=100" width="100px;" alt=""/><br /><sub><b>kreako</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=kreako" title="Documentation">📖</a></td>
<td align="center"><a href="https://sarahdayan.dev"><img src="https://avatars.githubusercontent.com/u/5370675?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sarah Dayan</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=sarahdayan" title="Code">💻</a></td>
</tr>
<tr>
<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>
<!-- markdownlint-enable -->
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->

10
SECURITY.md Normal file
View File

@@ -0,0 +1,10 @@
# Security Policy
## Supported Versions
TODO
## Reporting a Vulnerability
Email Brandon Bayer at b@bayer.ws to report a vulnerability, and he will follow up with you asap.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 20 KiB

BIN
assets/andreas.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

1
assets/boostry.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 143.5 42.09"><defs><style>.cls-1{fill:none;}.cls-2{fill:#d71526;}</style></defs><title>アセット 15</title><g id="レイヤー_2" data-name="レイヤー 2"><g id="レイヤー_1-2" data-name="レイヤー 1"><path d="M21.87,20A13.2,13.2,0,0,1,34.92,6.83c6.44,0,10.88,4.74,10.88,11a13.21,13.21,0,0,1-13,13.21C26.31,31.05,21.87,26.32,21.87,20Zm20.22-2.1c0-4.34-2.9-7.71-7.27-7.71-5.17,0-9.25,4.51-9.25,9.71,0,4.34,2.91,7.71,7.28,7.71A9.52,9.52,0,0,0,42.09,17.94Z"/><path d="M47.67,20a13.2,13.2,0,0,1,13-13.21c6.44,0,10.88,4.74,10.88,11a13.21,13.21,0,0,1-13,13.21C52.11,31.05,47.67,26.32,47.67,20Zm20.22-2.1c0-4.34-2.9-7.71-7.27-7.71-5.17,0-9.25,4.51-9.25,9.71,0,4.34,2.91,7.71,7.28,7.71C63.85,27.65,67.89,23.14,67.89,17.94Z"/><path d="M72.84,24.81a9.7,9.7,0,0,0,6.41,3c2.4,0,4.07-1.4,4.07-3.57,0-1.57-.94-2.64-3.3-3.87l-1.37-.71a6.56,6.56,0,0,1-4.07-6.14c0-3.9,3.2-6.7,7.47-6.7A12.23,12.23,0,0,1,88.57,8.9l-.68,3.51-.23-.18A10.16,10.16,0,0,0,82,10c-2.2,0-3.84,1.4-3.84,3.3,0,1.17.57,2.37,2.51,3.34l1.33.67C85.46,19.07,87,21,87,24c0,4.3-3.11,7.1-7.61,7.1a11.56,11.56,0,0,1-7.45-2.8l.71-3.65Z"/><path d="M106.27,10.63h-5.85l-3.91,20H92.94l3.91-20H91l.66-3.37h15.32Z"/><path d="M115,21.54l5.27,9.08h-4.14l-5.3-9.74-1.91,9.74h-3.57L109.9,7.26h4.77c4.67,0,7.68,2.54,7.68,6.47S119.44,20.74,115,21.54Zm-3.84-2.37h1.33c3.51,0,6.18-2.17,6.18-5.07,0-2.3-1.7-3.7-4.44-3.7h-1.37Z"/><line class="cls-1" x1="72.32" y1="24.47" x2="72.69" y2="24.81"/><path d="M15.4,16.76l-.76-.31.78-.27C19,15,21.06,12.35,21.06,9.23c0-3.92-3.19-6.65-7.75-6.65H6L.5,30.62H9c5.94,0,10.42-3.48,10.42-8.08A6,6,0,0,0,15.4,16.76ZM8.93,5.68H12.3c2.94,0,4.77,1.55,4.77,4,0,3-2.58,5.18-6,5.18H7.13ZM9.1,27.52H4.75L6.59,18h3.82c3.05,0,5,1.7,5,4.32C15.43,25.34,12.76,27.52,9.1,27.52Z"/><polygon class="cls-2" points="134.09 25.12 132.58 21.09 132.54 20.97 132.49 20.86 127.39 7.26 123.39 7.26 130.13 25.3 121.55 42.09 125.56 42.09 131.87 29.85 131.93 29.73 131.98 29.61 134.06 25.58 134.12 25.47 134.18 25.35 134.14 25.24 134.09 25.12"/><polygon points="139.5 7.26 132.65 20.76 132.65 20.76 132.54 20.98 132.58 21.09 134.09 25.12 134.14 25.24 134.18 25.35 143.5 7.26 139.5 7.26"/><rect class="cls-1" width="143" height="42"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
assets/jdlt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
assets/meetkai.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
assets/rit_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

64
babel.config.js Normal file
View File

@@ -0,0 +1,64 @@
module.exports = {
presets: [
"@babel/preset-typescript",
"@babel/preset-react",
[
"@babel/preset-env",
{
modules: false,
loose: true,
exclude: [
"@babel/plugin-transform-async-to-generator",
"@babel/plugin-transform-regenerator",
],
},
],
],
plugins: [
"babel-plugin-annotate-pure-calls",
"babel-plugin-dev-expression",
["@babel/plugin-proposal-class-properties", {loose: true}],
"babel-plugin-macros",
[
"transform-inline-environment-variables",
{
include: ["BLITZ_PROD_BUILD"],
},
],
],
overrides: [
{
test: "./test/**/*",
presets: [
[
"@babel/preset-env",
{
modules: false,
exclude: [
"@babel/plugin-transform-async-to-generator",
"@babel/plugin-transform-regenerator",
],
},
],
"blitz/babel",
],
plugins: [],
},
{
test: "./nextjs/test/**/*",
presets: [
[
"@babel/preset-env",
{
modules: false,
exclude: [
"@babel/plugin-transform-async-to-generator",
"@babel/plugin-transform-regenerator",
],
},
],
"blitz/babel",
],
},
],
}

View File

@@ -1,4 +0,0 @@
module.exports = {
presets: ["next/babel"],
plugins: [],
}

View File

@@ -1,15 +1,3 @@
module.exports = {
env: {
es2020: true,
"cypress/globals": true,
},
extends: ["react-app", "plugin:jsx-a11y/recommended"],
plugins: ["jsx-a11y", "cypress"],
rules: {
"import/no-anonymous-default-export": "error",
"import/no-webpack-loader-syntax": "off",
"react/react-in-jsx-scope": "off", // React is always in scope with Blitz
"jsx-a11y/anchor-is-valid": "off", //Doesn't play well with Blitz/Next <Link> usage
"jsx-a11y/label-has-associated-control": "off", //Doesn't play well with form libraries
},
extends: ["blitz"],
}

View File

@@ -14,13 +14,13 @@ model Project {
2. DB migrate
```
blitz db migrate
blitz prisma migrate dev
```
3. Start the dev server
```
blitz start
blitz dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

View File

@@ -1,8 +1,9 @@
import {passportAuth} from "blitz"
import {passportAuth, PublicData} from "blitz"
import db from "db"
import {Strategy as TwitterStrategy} from "passport-twitter"
import {Strategy as GitHubStrategy} from "passport-github2"
import {Strategy as Auth0Strategy} from "passport-auth0"
import {Role} from "types"
function assert(condition: any, message: string): asserts condition {
if (!condition) throw new Error(message)
@@ -21,111 +22,124 @@ assert(process.env.AUTH0_DOMAIN, "You must provide the AUTH0_DOMAIN env variable
assert(process.env.AUTH0_CLIENT_ID, "You must provide the AUTH0_CLIENT_ID env variable")
assert(process.env.AUTH0_CLIENT_SECRET, "You must provide the AUTH0_CLIENT_SECRET env variable")
export default passportAuth({
export default passportAuth(({ctx, req, res}) => ({
successRedirectUrl: "/",
authenticateOptions: {scope: "openid email profile"}, //used for Auth0Strategy - without an empty profile is returned
strategies: [
new TwitterStrategy(
{
consumerKey: process.env.TWITTER_CONSUMER_KEY,
consumerSecret: process.env.TWITTER_CONSUMER_SECRET,
callbackURL:
process.env.NODE_ENV === "production"
? "https://auth-example-flybayer.blitzjs.vercel.app/api/auth/twitter/callback"
: "http://localhost:3000/api/auth/twitter/callback",
includeEmail: true,
},
async function (_token, _tokenSecret, profile, done) {
const email = profile.emails && profile.emails[0]?.value
{
strategy: new TwitterStrategy(
{
consumerKey: process.env.TWITTER_CONSUMER_KEY as string,
consumerSecret: process.env.TWITTER_CONSUMER_SECRET as string,
callbackURL:
process.env.NODE_ENV === "production"
? "https://auth-example-flybayer.blitzjs.vercel.app/api/auth/twitter/callback"
: "http://localhost:3000/api/auth/twitter/callback",
includeEmail: true,
},
async function (_token, _tokenSecret, profile, done) {
const email = profile.emails && profile.emails[0]?.value
if (!email) {
// This can happen if you haven't enabled email access in your twitter app permissions
return done(new Error("Twitter OAuth response doesn't have email."))
}
if (!email) {
// This can happen if you haven't enabled email access in your twitter app permissions
return done(new Error("Twitter OAuth response doesn't have email."))
}
const user = await db.user.upsert({
where: {email},
create: {
email,
name: profile.displayName,
},
update: {email},
})
console.log(ctx.session.userId)
const publicData = {userId: user.id, roles: [user.role], source: "twitter"}
done(null, {publicData})
},
),
new GitHubStrategy(
{
clientID: process.env.GITHUB_CLIENT_ID,
clientSecret: process.env.GITHUB_CLIENT_SECRET,
callbackURL:
process.env.NODE_ENV === "production"
? "https://auth-example-flybayer.blitzjs.vercel.app/api/auth/github/callback"
: "http://localhost:3000/api/auth/github/callback",
},
async function (_token, _tokenSecret, profile, done) {
const email = profile.emails && profile.emails[0]?.value
const user = await db.user.upsert({
where: {email},
create: {
email,
name: profile.displayName,
},
update: {email},
})
if (!email) {
// This can happen if you haven't enabled email access in your twitter app permissions
return done(new Error("Twitter OAuth response doesn't have email."))
}
const publicData = {userId: user.id, role: user.role, source: "twitter"}
done(null, {publicData})
},
),
},
{
strategy: new GitHubStrategy(
{
clientID: process.env.GITHUB_CLIENT_ID as string,
clientSecret: process.env.GITHUB_CLIENT_SECRET as string,
callbackURL:
process.env.NODE_ENV === "production"
? "https://auth-example-flybayer.blitzjs.vercel.app/api/auth/github/callback"
: "http://localhost:3000/api/auth/github/callback",
},
async function (
_token: string,
_tokenSecret: string,
profile: any,
done: (err: Error | null, data?: {publicData: PublicData}) => void,
) {
const email = profile.emails && profile.emails[0]?.value
const user = await db.user.upsert({
where: {email},
create: {
email,
name: profile.displayName,
},
update: {email},
})
if (!email) {
// This can happen if you haven't enabled email access in your twitter app permissions
return done(new Error("Twitter OAuth response doesn't have email."))
}
const publicData = {
userId: user.id,
roles: [user.role],
source: "github",
githubUsername: profile.username,
}
done(null, {publicData})
},
),
new Auth0Strategy(
{
domain: process.env.AUTH0_DOMAIN,
clientID: process.env.AUTH0_CLIENT_ID,
clientSecret: process.env.AUTH0_CLIENT_SECRET,
callbackURL:
process.env.NODE_ENV === "production"
? "https://auth-example-flybayer.blitzjs.vercel.app/api/auth/auth0/callback"
: "http://localhost:3000/api/auth/auth0/callback",
},
async function (_token, _tokenSecret, extraParams, profile, done) {
const email = profile.emails && profile.emails[0]?.value
const user = await db.user.upsert({
where: {email},
create: {
email,
name: profile.displayName,
},
update: {email},
})
if (!email) {
// This can happen if you haven't enabled email access in your twitter app permissions
return done(new Error("GitHub OAuth response doesn't have email."))
}
const publicData = {
userId: user.id,
role: user.role as Role,
source: "github",
githubUsername: profile.username,
}
done(null, {publicData})
},
),
},
{
authenticateOptions: {scope: "openid email profile"},
strategy: new Auth0Strategy(
{
domain: process.env.AUTH0_DOMAIN as string,
clientID: process.env.AUTH0_CLIENT_ID as string,
clientSecret: process.env.AUTH0_CLIENT_SECRET as string,
callbackURL:
process.env.NODE_ENV === "production"
? "https://auth-example-flybayer.blitzjs.vercel.app/api/auth/auth0/callback"
: "http://localhost:3000/api/auth/auth0/callback",
},
async function (_token, _tokenSecret, _extraParams, profile, done) {
const email = profile.emails && profile.emails[0]?.value
const user = await db.user.upsert({
where: {email},
create: {
email,
name: profile.displayName,
},
update: {email},
})
if (!email) {
// This can happen if you haven't enabled email access in your twitter app permissions
return done(new Error("Auth0 response doesn't have email."))
}
const publicData = {
userId: user.id,
roles: [user.role],
source: "auth0",
githubUsername: profile.username,
}
done(undefined, {publicData})
},
),
const user = await db.user.upsert({
where: {email},
create: {
email,
name: profile.displayName,
},
update: {email},
})
const publicData = {
userId: user.id,
role: user.role,
source: "auth0",
githubUsername: profile.username,
}
done(undefined, {publicData})
},
),
},
],
})
}))

View File

@@ -1,39 +0,0 @@
import {AuthenticationError} from "blitz"
import SecurePassword from "secure-password"
import db from "db"
const SP = new SecurePassword()
export const hashPassword = async (password: string) => {
const hashedBuffer = await SP.hash(Buffer.from(password))
return hashedBuffer.toString("base64")
}
export const verifyPassword = async (hashedPassword: string, password: string) => {
try {
return await SP.verify(Buffer.from(password), Buffer.from(hashedPassword, "base64"))
} catch (error) {
console.error(error)
return false
}
}
export const authenticateUser = async (email: string, password: string) => {
const user = await db.user.findOne({where: {email}})
if (!user || !user.hashedPassword) throw new AuthenticationError()
switch (await verifyPassword(user.hashedPassword, password)) {
case SecurePassword.VALID:
break
case SecurePassword.VALID_NEEDS_REHASH:
// Upgrade hashed password with a more secure hash
const improvedHash = await hashPassword(password)
await db.user.update({where: {id: user.id}, data: {hashedPassword: improvedHash}})
break
default:
throw new AuthenticationError()
}
const {hashedPassword, ...rest} = user
return rest
}

View File

@@ -1,28 +1,32 @@
import React from "react"
import {Link} from "blitz"
import {LabeledTextField} from "app/components/LabeledTextField"
import {Form, FORM_ERROR} from "app/components/Form"
import {AuthenticationError, Link, useMutation} from "blitz"
import {LabeledTextField} from "app/core/components/LabeledTextField"
import {Form, FORM_ERROR} from "app/core/components/Form"
import login from "app/auth/mutations/login"
import {LoginInput, LoginInputType} from "app/auth/validations"
import {Login} from "app/auth/validations"
import {Routes} from ".blitz"
type LoginFormProps = {
onSuccess?: () => void
}
export const LoginForm = (props: LoginFormProps) => {
const [loginMutation] = useMutation(login)
return (
<div>
<h1>Login</h1>
<Form<LoginInputType>
submitText="Log In"
schema={LoginInput}
initialValues={{email: undefined, password: undefined}}
<Form
submitText="Login"
schema={Login}
initialValues={{email: "", password: ""}}
onSubmit={async (values) => {
try {
await login({email: values.email, password: values.password})
props.onSuccess && props.onSuccess()
} catch (error) {
if (error.name === "AuthenticationError") {
await loginMutation(values)
props.onSuccess?.()
} catch (error: any) {
if (error instanceof AuthenticationError) {
return {[FORM_ERROR]: "Sorry, those credentials are invalid"}
} else {
return {
@@ -35,9 +39,15 @@ export const LoginForm = (props: LoginFormProps) => {
>
<LabeledTextField name="email" label="Email" placeholder="Email" />
<LabeledTextField name="password" label="Password" placeholder="Password" type="password" />
<div>
<Link href={Routes.ForgotPasswordPage()}>
<a>Forgot your password?</a>
</Link>
</div>
</Form>
<div style={{marginTop: "1rem"}}>
Or <Link href="/signup">Sign Up</Link>
Or <Link href={Routes.SignupPage()}>Sign Up</Link>
</div>
</div>
)

View File

@@ -0,0 +1,44 @@
import React from "react"
import {useMutation} from "blitz"
import {LabeledTextField} from "app/core/components/LabeledTextField"
import {Form, FORM_ERROR} from "app/core/components/Form"
import signup from "app/auth/mutations/signup"
import {Signup} from "app/auth/validations"
type SignupFormProps = {
onSuccess?: () => void
}
export const SignupForm = (props: SignupFormProps) => {
const [signupMutation] = useMutation(signup)
return (
<div>
<h1>Create an Account</h1>
<Form
submitText="Create Account"
schema={Signup}
initialValues={{email: "", password: ""}}
onSubmit={async (values) => {
try {
await signupMutation(values)
props.onSuccess?.()
} catch (error: any) {
if (error.code === "P2002" && error.meta?.target?.includes("email")) {
// This error comes from Prisma
return {email: "This email is already being used"}
} else {
return {[FORM_ERROR]: error.toString()}
}
}
}}
>
<LabeledTextField name="email" label="Email" placeholder="Email" />
<LabeledTextField name="password" label="Password" placeholder="Password" type="password" />
</Form>
</div>
)
}
export default SignupForm

View File

@@ -0,0 +1,23 @@
import {NotFoundError, SecurePassword, resolver} from "blitz"
import db from "db"
import {authenticateUser} from "./login"
import {ChangePassword} from "../validations"
export default resolver.pipe(
resolver.zod(ChangePassword),
resolver.authorize(),
async ({currentPassword, newPassword}, ctx) => {
const user = await db.user.findFirst({where: {id: ctx.session.userId!}})
if (!user) throw new NotFoundError()
await authenticateUser(user.email, currentPassword)
const hashedPassword = await SecurePassword.hash(newPassword)
await db.user.update({
where: {id: user.id},
data: {hashedPassword},
})
return true
},
)

View File

@@ -0,0 +1,56 @@
import {hash256, Ctx} from "blitz"
import forgotPassword from "./forgotPassword"
import db from "db"
import previewEmail from "preview-email"
beforeEach(async () => {
await db.$reset()
})
const generatedToken = "plain-token"
jest.mock("next/stdlib-server", () => ({
...jest.requireActual<object>("next/stdlib-server")!,
generateToken: () => generatedToken,
}))
jest.mock("preview-email", () => jest.fn())
describe("forgotPassword mutation", () => {
it("does not throw error if user doesn't exist", async () => {
await expect(forgotPassword({email: "no-user@email.com"}, {} as Ctx)).resolves.not.toThrow()
})
it("works correctly", async () => {
// Create test user
const user = await db.user.create({
data: {
email: "user@example.com",
tokens: {
// Create old token to ensure it's deleted
create: {
type: "RESET_PASSWORD",
hashedToken: "token",
expiresAt: new Date(),
sentTo: "user@example.com",
},
},
},
include: {tokens: true},
})
// Invoke the mutation
await forgotPassword({email: user.email}, {} as Ctx)
const tokens = await db.token.findMany({where: {userId: user.id}})
const token = tokens[0]
// delete's existing tokens
expect(tokens.length).toBe(1)
expect(token.id).not.toBe(user.tokens[0].id)
expect(token.type).toBe("RESET_PASSWORD")
expect(token.sentTo).toBe(user.email)
expect(token.hashedToken).toBe(hash256(generatedToken))
expect(token.expiresAt > new Date()).toBe(true)
expect(previewEmail).toBeCalled()
})
})

View File

@@ -0,0 +1,41 @@
import {resolver, generateToken, hash256} from "blitz"
import db from "db"
import {forgotPasswordMailer} from "mailers/forgotPasswordMailer"
import {ForgotPassword} from "../validations"
const RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS = 4
export default resolver.pipe(resolver.zod(ForgotPassword), async ({email}) => {
// 1. Get the user
const user = await db.user.findFirst({where: {email: email.toLowerCase()}})
// 2. Generate the token and expiration date.
const token = generateToken()
const hashedToken = hash256(token)
const expiresAt = new Date()
expiresAt.setHours(expiresAt.getHours() + RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS)
// 3. If user with this email was found
if (user) {
// 4. Delete any existing password reset tokens
await db.token.deleteMany({where: {type: "RESET_PASSWORD", userId: user.id}})
// 5. Save this new token in the database.
await db.token.create({
data: {
user: {connect: {id: user.id}},
type: "RESET_PASSWORD",
expiresAt,
hashedToken,
sentTo: user.email,
},
})
// 6. Send the email
await forgotPasswordMailer({to: user.email, token}).send()
} else {
// 7. If no user found wait the same time so attackers can't tell the difference
await new Promise((resolve) => setTimeout(resolve, 750))
}
// 8. Return the same result whether a password reset email was sent or not
return
})

View File

@@ -1,15 +1,37 @@
import {SessionContext} from "blitz"
import {authenticateUser} from "app/auth/auth-utils"
import {LoginInput, LoginInputType} from "../validations"
import {resolver, SecurePassword, AuthenticationError} from "blitz"
import db from "db"
import {Login} from "../validations"
import {Role} from "types"
export default async function login(input: LoginInputType, ctx: {session?: SessionContext} = {}) {
// This throws an error if input is invalid
const {email, password} = LoginInput.parse(input)
export const authenticateUser = async (email: string, password: string) => {
const user = await db.user.findFirst({where: {email}})
if (!user) throw new AuthenticationError()
const result = await SecurePassword.verify(user.hashedPassword, password)
if (result === SecurePassword.VALID_NEEDS_REHASH) {
// Upgrade hashed password with a more secure hash
const improvedHash = await SecurePassword.hash(password)
await db.user.update({where: {id: user.id}, data: {hashedPassword: improvedHash}})
}
const {hashedPassword, ...rest} = user
return rest
}
export default resolver.pipe(resolver.zod(Login), async ({email, password}, ctx) => {
// This throws an error if credentials are invalid
const user = await authenticateUser(email, password)
await ctx.session!.create({userId: user.id, roles: [user.role]})
await ctx.session.$create({userId: user.id, role: user.role as Role})
return user
})
export const config = {
api: {
bodyParser: {
sizeLimit: "2mb",
},
},
}

View File

@@ -1,5 +1,5 @@
import {SessionContext} from "blitz"
import {Ctx} from "blitz"
export default async function logout(_ = null, ctx: {session?: SessionContext} = {}) {
return await ctx.session!.revoke()
export default async function logout(_: any, ctx: Ctx) {
return await ctx.session.$revoke()
}

View File

@@ -0,0 +1,82 @@
import resetPassword from "./resetPassword"
import db from "db"
import {hash256, SecurePassword} from "blitz"
beforeEach(async () => {
await db.$reset()
})
const mockCtx: any = {
session: {
$create: jest.fn,
},
}
describe("resetPassword mutation", () => {
it("works correctly", async () => {
expect(true).toBe(true)
// Create test user
const goodToken = "randomPasswordResetToken"
const expiredToken = "expiredRandomPasswordResetToken"
const future = new Date()
future.setHours(future.getHours() + 4)
const past = new Date()
past.setHours(past.getHours() - 4)
const user = await db.user.create({
data: {
email: "user@example.com",
tokens: {
// Create old token to ensure it's deleted
create: [
{
type: "RESET_PASSWORD",
hashedToken: hash256(expiredToken),
expiresAt: past,
sentTo: "user@example.com",
},
{
type: "RESET_PASSWORD",
hashedToken: hash256(goodToken),
expiresAt: future,
sentTo: "user@example.com",
},
],
},
},
include: {tokens: true},
})
const newPassword = "newPassword"
// Non-existent token
await expect(
resetPassword({token: "no-token", password: "", passwordConfirmation: ""}, mockCtx),
).rejects.toThrowError()
// Expired token
await expect(
resetPassword(
{token: expiredToken, password: newPassword, passwordConfirmation: newPassword},
mockCtx,
),
).rejects.toThrowError()
// Good token
await resetPassword(
{token: goodToken, password: newPassword, passwordConfirmation: newPassword},
mockCtx,
)
// Delete's the token
const numberOfTokens = await db.token.count({where: {userId: user.id}})
expect(numberOfTokens).toBe(0)
// Updates user's password
const updatedUser = await db.user.findFirst({where: {id: user.id}})
expect(await SecurePassword.verify(updatedUser!.hashedPassword, newPassword)).toBe(
SecurePassword.VALID,
)
})
})

View File

@@ -0,0 +1,47 @@
import {resolver, SecurePassword, hash256} from "blitz"
import db from "db"
import {ResetPassword} from "../validations"
import login from "./login"
export class ResetPasswordError extends Error {
name = "ResetPasswordError"
message = "Reset password link is invalid or it has expired."
}
export default resolver.pipe(resolver.zod(ResetPassword), async ({password, token}, ctx) => {
// 1. Try to find this token in the database
const hashedToken = hash256(token)
const possibleToken = await db.token.findFirst({
where: {hashedToken, type: "RESET_PASSWORD"},
include: {user: true},
})
// 2. If token not found, error
if (!possibleToken) {
throw new ResetPasswordError()
}
const savedToken = possibleToken
// 3. Delete token so it can't be used again
await db.token.delete({where: {id: savedToken.id}})
// 4. If token has expired, error
if (savedToken.expiresAt < new Date()) {
throw new ResetPasswordError()
}
// 5. Since token is valid, now we can update the user's password
const hashedPassword = await SecurePassword.hash(password)
const user = await db.user.update({
where: {id: savedToken.userId},
data: {hashedPassword},
})
// 6. Revoke all existing login sessions for this user
await db.session.deleteMany({where: {userId: user.id}})
// 7. Now log the user in with the new credentials
await login({email: user.email, password}, ctx)
return true
})

View File

@@ -1,19 +1,15 @@
import {resolver, SecurePassword} from "blitz"
import db from "db"
import {SessionContext} from "blitz"
import {hashPassword} from "app/auth/auth-utils"
import {SignupInput, SignupInputType} from "app/auth/validations"
import {Signup} from "app/auth/validations"
import {Role} from "types"
export default async function signup(input: SignupInputType, ctx: {session?: SessionContext} = {}) {
// This throws an error if input is invalid
const {email, password} = SignupInput.parse(input)
const hashedPassword = await hashPassword(password)
export default resolver.pipe(resolver.zod(Signup), async ({email, password}, ctx) => {
const hashedPassword = await SecurePassword.hash(password)
const user = await db.user.create({
data: {email, hashedPassword, role: "user"},
data: {email: email.toLowerCase(), hashedPassword, role: "user"},
select: {id: true, name: true, email: true, role: true},
})
await ctx.session!.create({userId: user.id, roles: [user.role]})
await ctx.session.$create({userId: user.id, role: user.role as Role})
return user
}
})

View File

@@ -0,0 +1,47 @@
import {BlitzPage, useMutation} from "blitz"
import Layout from "app/core/layouts/Layout"
import {LabeledTextField} from "app/core/components/LabeledTextField"
import {Form, FORM_ERROR} from "app/core/components/Form"
import {ForgotPassword} from "app/auth/validations"
import forgotPassword from "app/auth/mutations/forgotPassword"
const ForgotPasswordPage: BlitzPage = () => {
const [forgotPasswordMutation, {isSuccess}] = useMutation(forgotPassword)
return (
<div>
<h1>Forgot your password?</h1>
{isSuccess ? (
<div>
<h2>Request Submitted</h2>
<p>
If your email is in our system, you will receive instructions to reset your password
shortly.
</p>
</div>
) : (
<Form
submitText="Send Reset Password Instructions"
schema={ForgotPassword}
initialValues={{email: ""}}
onSubmit={async (values) => {
try {
await forgotPasswordMutation(values)
} catch (error) {
return {
[FORM_ERROR]: "Sorry, we had an unexpected error. Please try again.",
}
}
}}
>
<LabeledTextField name="email" label="Email" placeholder="Email" />
</Form>
)}
</div>
)
}
ForgotPasswordPage.getLayout = (page) => <Layout title="Forgot Your Password?">{page}</Layout>
export default ForgotPasswordPage

View File

@@ -1,22 +1,25 @@
import React from "react"
import {Head, useRouter, BlitzPage} from "blitz"
import {useRouter, BlitzPage} from "blitz"
import Layout from "app/core/layouts/Layout"
import {LoginForm} from "app/auth/components/LoginForm"
import {Routes} from ".blitz"
const SignupPage: BlitzPage = () => {
const LoginPage: BlitzPage = () => {
const router = useRouter()
return (
<>
<Head>
<title>Log In</title>
<link rel="icon" href="/favicon.ico" />
</Head>
<div>
<LoginForm onSuccess={() => router.push("/")} />
</div>
</>
<div>
<LoginForm
onSuccess={() => {
const next = router.query.next ? decodeURIComponent(router.query.next as string) : "/"
router.push(next)
}}
/>
</div>
)
}
export default SignupPage
LoginPage.redirectAuthenticatedTo = Routes.Home().pathname
LoginPage.getLayout = (page) => <Layout title="Log In">{page}</Layout>
export default LoginPage

View File

@@ -0,0 +1,60 @@
import {BlitzPage, useRouterQuery, Link, useMutation} from "blitz"
import Layout from "app/core/layouts/Layout"
import {LabeledTextField} from "app/core/components/LabeledTextField"
import {Form, FORM_ERROR} from "app/core/components/Form"
import {ResetPassword} from "app/auth/validations"
import resetPassword from "app/auth/mutations/resetPassword"
import {Routes} from ".blitz"
const ResetPasswordPage: BlitzPage = () => {
const query = useRouterQuery()
const [resetPasswordMutation, {isSuccess}] = useMutation(resetPassword)
return (
<div>
<h1>Set a New Password</h1>
{isSuccess ? (
<div>
<h2>Password Reset Successfully</h2>
<p>
Go to the <Link href={Routes.Home()}>homepage</Link>
</p>
</div>
) : (
<Form
submitText="Reset Password"
schema={ResetPassword}
initialValues={{password: "", passwordConfirmation: "", token: query.token as string}}
onSubmit={async (values) => {
try {
await resetPasswordMutation(values)
} catch (error: any) {
if (error.name === "ResetPasswordError") {
return {
[FORM_ERROR]: error.message,
}
} else {
return {
[FORM_ERROR]: "Sorry, we had an unexpected error. Please try again.",
}
}
}
}}
>
<LabeledTextField name="password" label="New Password" type="password" />
<LabeledTextField
name="passwordConfirmation"
label="Confirm New Password"
type="password"
/>
</Form>
)}
</div>
)
}
ResetPasswordPage.getLayout = (page) => <Layout title="Reset Your Password">{page}</Layout>
export default ResetPasswordPage

View File

@@ -1,54 +1,17 @@
import React from "react"
import {Head, useRouter, BlitzPage} from "blitz"
import {Form, FORM_ERROR} from "app/components/Form"
import {LabeledTextField} from "app/components/LabeledTextField"
import signup from "app/auth/mutations/signup"
import {SignupInput, SignupInputType} from "app/auth/validations"
import {useRouter, BlitzPage} from "blitz"
import Layout from "app/core/layouts/Layout"
import {SignupForm} from "app/auth/components/SignupForm"
const SignupPage: BlitzPage = () => {
const router = useRouter()
return (
<>
<Head>
<title>Sign Up</title>
<link rel="icon" href="/favicon.ico" />
</Head>
<div>
<h1>Create an Account</h1>
<Form<SignupInputType>
submitText="Create Account"
schema={SignupInput}
onSubmit={async (values) => {
try {
await signup({email: values.email, password: values.password})
router.push("/")
} catch (error) {
if (error.code === "P2002" && error.meta?.target?.includes("email")) {
// This error comes from Prisma
return {email: "This email is already being used"}
} else {
return {
[FORM_ERROR]:
"Sorry, we had an unexpected error. Please try again. - " + error.toString(),
}
}
}
}}
>
<LabeledTextField name="email" label="Email" placeholder="Email" />
<LabeledTextField
name="password"
label="Password"
placeholder="Password"
type="password"
/>
</Form>
</div>
</>
<div>
<SignupForm onSuccess={() => router.push("/")} />
</div>
)
}
SignupPage.getLayout = (page) => <Layout title="Sign Up">{page}</Layout>
export default SignupPage

View File

@@ -1,13 +1,33 @@
import * as z from "zod"
import {z} from "zod"
export const SignupInput = z.object({
const password = z.string().min(10).max(100)
export const Signup = z.object({
email: z.string().email(),
password: z.string().min(10).max(100),
password,
})
export type SignupInputType = z.infer<typeof SignupInput>
export const LoginInput = z.object({
export const Login = z.object({
email: z.string().email(),
password: z.string(),
})
export type LoginInputType = z.infer<typeof LoginInput>
export const ForgotPassword = z.object({
email: z.string().email(),
})
export const ResetPassword = z
.object({
password: password,
passwordConfirmation: password,
token: z.string(),
})
.refine((data) => data.password === data.passwordConfirmation, {
message: "Passwords don't match",
path: ["passwordConfirmation"], // set the path of the error
})
export const ChangePassword = z.object({
currentPassword: z.string(),
newPassword: password,
})

View File

@@ -1,62 +0,0 @@
import React, {ReactNode, PropsWithoutRef} from "react"
import {Form as FinalForm, FormProps as FinalFormProps} from "react-final-form"
import * as z from "zod"
export {FORM_ERROR} from "final-form"
type FormProps<FormValues> = {
/** All your form fields */
children: ReactNode
/** Text to display in the submit button */
submitText: string
onSubmit: FinalFormProps<FormValues>["onSubmit"]
initialValues?: FinalFormProps<FormValues>["initialValues"]
schema?: z.ZodType<any, any>
} & Omit<PropsWithoutRef<JSX.IntrinsicElements["form"]>, "onSubmit">
export function Form<FormValues extends Record<string, unknown>>({
children,
submitText,
schema,
initialValues,
onSubmit,
...props
}: FormProps<FormValues>) {
return (
<FinalForm<FormValues>
initialValues={initialValues}
validate={(values) => {
if (!schema) return
try {
schema.parse(values)
} catch (error) {
return error.formErrors.fieldErrors
}
}}
onSubmit={onSubmit}
render={({handleSubmit, submitting, submitError}) => (
<form onSubmit={handleSubmit} className="form" {...props}>
{/* Form fields supplied as children are rendered here */}
{children}
{submitError && (
<div role="alert" style={{color: "red"}}>
{submitError}
</div>
)}
<button type="submit" disabled={submitting}>
{submitText}
</button>
<style global jsx>{`
.form > * + * {
margin-top: 1rem;
}
`}</style>
</form>
)}
/>
)
}
export default Form

View File

@@ -1,55 +0,0 @@
import React, {PropsWithoutRef} from "react"
import {useField} from "react-final-form"
export interface LabeledTextFieldProps extends PropsWithoutRef<JSX.IntrinsicElements["input"]> {
/** Field name. */
name: string
/** Field label. */
label: string
/** Field type. Doesn't include radio buttons and checkboxes */
type?: "text" | "password" | "email" | "number"
outerProps?: PropsWithoutRef<JSX.IntrinsicElements["div"]>
}
export const LabeledTextField = React.forwardRef<HTMLInputElement, LabeledTextFieldProps>(
({name, label, outerProps, ...props}, ref) => {
const {
input,
meta: {touched, error, submitError, submitting},
} = useField(name)
return (
<div {...outerProps}>
<label>
{label}
<input {...input} disabled={submitting} {...props} ref={ref} />
</label>
{touched && (error || submitError) && (
<div role="alert" style={{color: "red"}}>
{error || submitError}
</div>
)}
<style jsx>{`
label {
display: flex;
flex-direction: column;
align-items: start;
font-size: 1rem;
}
input {
font-size: 1rem;
padding: 0.25rem 0.5rem;
border-radius: 3px;
border: 1px solid purple;
appearance: none;
margin-top: 0.5rem;
}
`}</style>
</div>
)
},
)
export default LabeledTextField

View File

@@ -0,0 +1,59 @@
import React, {ReactNode, PropsWithoutRef} from "react"
import {Form as FinalForm, FormProps as FinalFormProps} from "react-final-form"
import {z} from "zod"
import {validateZodSchema} from "blitz"
export {FORM_ERROR} from "final-form"
export interface FormProps<S extends z.ZodType<any, any>>
extends Omit<PropsWithoutRef<JSX.IntrinsicElements["form"]>, "onSubmit"> {
/** All your form fields */
children?: ReactNode
/** Text to display in the submit button */
submitText?: string
schema?: S
onSubmit: FinalFormProps<z.infer<S>>["onSubmit"]
initialValues?: FinalFormProps<z.infer<S>>["initialValues"]
}
export function Form<S extends z.ZodType<any, any>>({
children,
submitText,
schema,
initialValues,
onSubmit,
...props
}: FormProps<S>) {
return (
<FinalForm
initialValues={initialValues}
validate={validateZodSchema(schema)}
onSubmit={onSubmit}
render={({handleSubmit, submitting, submitError}) => (
<form onSubmit={handleSubmit} className="form" {...props}>
{/* Form fields supplied as children are rendered here */}
{children}
{submitError && (
<div role="alert" style={{color: "red"}}>
{submitError}
</div>
)}
{submitText && (
<button type="submit" disabled={submitting}>
{submitText}
</button>
)}
<style global jsx>{`
.form > * + * {
margin-top: 1rem;
}
`}</style>
</form>
)}
/>
)
}
export default Form

View File

@@ -0,0 +1,59 @@
import React, {PropsWithoutRef} from "react"
import {useField} from "react-final-form"
export interface LabeledTextFieldProps extends PropsWithoutRef<JSX.IntrinsicElements["input"]> {
/** Field name. */
name: string
/** Field label. */
label: string
/** Field type. Doesn't include radio buttons and checkboxes */
type?: "text" | "password" | "email" | "number"
outerProps?: PropsWithoutRef<JSX.IntrinsicElements["div"]>
}
export const LabeledTextField = React.forwardRef<HTMLInputElement, LabeledTextFieldProps>(
({name, label, outerProps, ...props}, ref) => {
const {
input,
meta: {touched, error, submitError, submitting},
} = useField(name, {
parse: props.type === "number" ? Number : undefined,
})
const normalizedError = Array.isArray(error) ? error.join(", ") : error || submitError
return (
<div {...outerProps}>
<label>
{label}
<input {...input} disabled={submitting} {...props} ref={ref} />
</label>
{touched && normalizedError && (
<div role="alert" style={{color: "red"}}>
{normalizedError}
</div>
)}
<style jsx>{`
label {
display: flex;
flex-direction: column;
align-items: start;
font-size: 1rem;
}
input {
font-size: 1rem;
padding: 0.25rem 0.5rem;
border-radius: 3px;
border: 1px solid purple;
appearance: none;
margin-top: 0.5rem;
}
`}</style>
</div>
)
},
)
export default LabeledTextField

View File

@@ -0,0 +1,7 @@
import {useQuery} from "blitz"
import getCurrentUser from "app/users/queries/getCurrentUser"
export const useCurrentUser = () => {
const [user] = useQuery(getCurrentUser, null)
return user
}

View File

@@ -0,0 +1,32 @@
import {useSession, useRouter, useMutation, Head, BlitzLayout} from "blitz"
import logout from "app/auth/mutations/logout"
const Layout: BlitzLayout<{title?: string}> = ({title, children}) => {
const session = useSession({suspense: false})
const router = useRouter()
const [logoutMutation] = useMutation(logout)
return (
<>
<Head>
<title>{title || "__name__"}</title>
<link rel="icon" href="/favicon.ico" />
</Head>
<div>
{session.userId && (
<button
onClick={async () => {
await logoutMutation()
router.push("/")
}}
>
Logout
</button>
)}
<div>{children}</div>
</div>
</>
)
}
export default Layout

View File

@@ -1,22 +0,0 @@
import {useSession, useRouter} from "blitz"
import logout from "app/auth/mutations/logout"
export default function Layout({children}: {children: React.ReactNode}) {
const session = useSession()
const router = useRouter()
return (
<div>
{session.userId && (
<button
onClick={async () => {
router.push("/")
await logout()
}}
>
Logout
</button>
)}
<div>{children}</div>
</div>
)
}

View File

@@ -1,29 +1,33 @@
import {AppProps, ErrorComponent, useRouter} from "blitz"
import {ErrorBoundary} from "react-error-boundary"
import {queryCache} from "react-query"
import {
AppProps,
ErrorBoundary,
ErrorComponent,
AuthenticationError,
AuthorizationError,
ErrorFallbackProps,
useQueryErrorResetBoundary,
} from "blitz"
import LoginForm from "app/auth/components/LoginForm"
import {ReactQueryDevtools} from "react-query/devtools"
export default function App({Component, pageProps}: AppProps) {
const router = useRouter()
const getLayout = Component.getLayout || ((page) => page)
const {reset} = useQueryErrorResetBoundary()
return (
<ErrorBoundary
FallbackComponent={RootErrorFallback}
resetKeys={[router.asPath]}
onReset={() => {
// This ensures the Blitz useQuery hooks will automatically refetch
// data any time you reset the error boundary
queryCache.resetErrorBoundaries()
}}
>
<Component {...pageProps} />
</ErrorBoundary>
<>
<ErrorBoundary FallbackComponent={RootErrorFallback} onReset={reset}>
{getLayout(<Component {...pageProps} />)}
</ErrorBoundary>
<ReactQueryDevtools />
</>
)
}
function RootErrorFallback({error, resetErrorBoundary}) {
if (error.name === "AuthenticationError") {
function RootErrorFallback({error, resetErrorBoundary}: ErrorFallbackProps) {
if (error instanceof AuthenticationError) {
return <LoginForm onSuccess={resetErrorBoundary} />
} else if (error.name === "AuthorizationError") {
} else if (error instanceof AuthorizationError) {
return (
<ErrorComponent
statusCode={error.statusCode}
@@ -32,7 +36,10 @@ function RootErrorFallback({error, resetErrorBoundary}) {
)
} else {
return (
<ErrorComponent statusCode={error.statusCode || 400} title={error.message || error.name} />
<ErrorComponent
statusCode={(error as any)?.statusCode || 400}
title={error.message || error.name}
/>
)
}
}

View File

@@ -0,0 +1,27 @@
import {render} from "test/utils"
import Home from "./index"
jest.mock("next/data-client", () => ({
...jest.requireActual<object>("next/data-client")!,
useQuery: () => [
{
id: 1,
name: "User",
email: "user@email.com",
role: "user",
},
],
}))
test("renders blitz documentation link", () => {
// This is an example of how to ensure a specific item is in the document
// But it's disabled by default (by test.skip) so the test doesn't fail
// when you remove the the default content from the page
// This is an example on how to mock api hooks when testing
const {getByText} = render(<Home />)
const element = getByText(/powered by blitz/i)
// @ts-ignore
expect(element).toBeInTheDocument()
})

View File

@@ -1,12 +1,25 @@
import {Suspense} from "react"
import {Head, Link, useSession, useRouterQuery} from "blitz"
import {
Head,
Link,
useSession,
useRouterQuery,
useMutation,
invoke,
Image,
useQuery,
BlitzPage,
} from "blitz"
import getUser from "app/users/queries/getUser"
import trackView from "app/users/mutations/trackView"
import Layout from "app/layouts/Layout"
import {useCurrentUser} from "app/hooks/useCurrentUser"
import Layout from "app/core/layouts/Layout"
import logo from "public/logo.png"
import {Routes} from ".blitz"
const CurrentUserInfo = () => {
const currentUser = useCurrentUser()
const session = useSession()
const [currentUser] = useQuery(getUser, {where: {id: session.userId!}})
return <pre>{JSON.stringify(currentUser, null, 2)}</pre>
}
@@ -14,18 +27,17 @@ const CurrentUserInfo = () => {
const UserStuff = () => {
const session = useSession()
const query = useRouterQuery()
if (session.isLoading) return <div>Loading...</div>
const [trackViewMutation] = useMutation(trackView)
return (
<div>
{!session.userId && (
<>
<div style={{marginTop: "1rem"}}>
<Link href="/signup">Sign Up</Link>
<Link href={Routes.SignupPage()}>Sign Up</Link>
</div>
<div>
<Link href="/login">Log In</Link>
<Link href={Routes.LoginPage()}>Login</Link>
</div>
<a href="/api/auth/twitter" style={{display: "block"}}>
Login with Twitter
@@ -43,7 +55,7 @@ const UserStuff = () => {
<button
onClick={async () => {
try {
const user = await getUser({where: {id: session.userId as number}})
const user = await invoke(getUser, {where: {id: session.userId as number}})
alert(JSON.stringify(user))
} catch (error) {
alert("error: " + JSON.stringify(error))
@@ -55,7 +67,7 @@ const UserStuff = () => {
<button
onClick={async () => {
try {
await trackView()
await trackViewMutation()
} catch (error) {
alert("error: " + error)
console.log(error)
@@ -68,7 +80,7 @@ const UserStuff = () => {
)
}
const Home = () => (
const Home: BlitzPage = () => (
<Layout>
<div className="container">
<Head>
@@ -78,10 +90,12 @@ const Home = () => (
<main>
<div className="logo">
<img src="/logo.png" alt="blitz.js" />
<Image src={logo} alt="blitz.js" width={400} height={200} />
</div>
<UserStuff />
<Suspense fallback={"Loading..."}>
<UserStuff />
</Suspense>
</main>
<footer>
@@ -225,4 +239,6 @@ const Home = () => (
</Layout>
)
Home.suppressFirstRenderFlicker = true
export default Home

View File

@@ -0,0 +1,67 @@
import {Suspense} from "react"
import {Head, Link, useRouter, useQuery, useParam, BlitzPage, useMutation} from "blitz"
import Layout from "app/core/layouts/Layout"
import getProject from "app/projects/queries/getProject"
import deleteProject from "app/projects/mutations/deleteProject"
import {Routes} from ".blitz"
export const Project = () => {
const router = useRouter()
const projectId = useParam("projectId", "number")
const [deleteProjectMutation, {isSuccess}] = useMutation(deleteProject)
const [project] = useQuery(getProject, {id: projectId}, {enabled: !isSuccess})
if (!project) return null
return (
<>
<Head>
<title>Project {project.id}</title>
</Head>
<div>
<h1>Project {project.id}</h1>
<pre>{JSON.stringify(project, null, 2)}</pre>
<Link href={Routes.EditProjectPage({projectId: project.id})}>
<a>Edit</a>
</Link>
<button
type="button"
onClick={async () => {
if (window.confirm("This will be deleted")) {
await deleteProjectMutation({id: project.id})
router.push("/projects")
}
}}
style={{marginLeft: "0.5rem"}}
>
Delete
</button>
</div>
</>
)
}
const ShowProjectPage: BlitzPage = () => {
return (
<div>
<p>
<Link href={Routes.ProjectsPage()}>
<a>Projects</a>
</Link>
</p>
<Suspense fallback={<div>Loading...</div>}>
<Project />
</Suspense>
</div>
)
}
ShowProjectPage.authenticate = true
ShowProjectPage.getLayout = (page) => <Layout>{page}</Layout>
export default ShowProjectPage

View File

@@ -0,0 +1,80 @@
import {Suspense} from "react"
import {Head, Link, useRouter, useQuery, useMutation, useParam, BlitzPage} from "blitz"
import Layout from "app/core/layouts/Layout"
import getProject from "app/projects/queries/getProject"
import updateProject from "app/projects/mutations/updateProject"
import {ProjectForm, FORM_ERROR} from "app/projects/components/ProjectForm"
import {Routes} from ".blitz"
export const EditProject = () => {
const router = useRouter()
const projectId = useParam("projectId", "number")
const [project, {setQueryData}] = useQuery(
getProject,
{id: projectId},
{
// This ensures the query never refreshes and overwrites the form data while the user is editing.
staleTime: Infinity,
},
)
const [updateProjectMutation] = useMutation(updateProject)
return (
<>
<Head>
<title>Edit Project {project.id}</title>
</Head>
<div>
<h1>Edit Project {project.id}</h1>
<pre>{JSON.stringify(project)}</pre>
<ProjectForm
submitText="Update Project"
// TODO use a zod schema for form validation
// - Tip: extract mutation's schema into a shared `validations.ts` file and
// then import and use it here
// schema={UpdateProject}
initialValues={project}
onSubmit={async (values) => {
try {
const updated = await updateProjectMutation({
id: project.id,
...values,
})
await setQueryData(updated)
router.push(`/projects/${updated.id}`)
} catch (error: any) {
console.error(error)
return {
[FORM_ERROR]: error.toString(),
}
}
}}
/>
</div>
</>
)
}
const EditProjectPage: BlitzPage = () => {
return (
<div>
<Suspense fallback={<div>Loading...</div>}>
<EditProject />
</Suspense>
<p>
<Link href={Routes.ProjectsPage()}>
<a>Projects</a>
</Link>
</p>
</div>
)
}
EditProjectPage.authenticate = true
EditProjectPage.getLayout = (page) => <Layout>{page}</Layout>
export default EditProjectPage

View File

@@ -0,0 +1,69 @@
import {Suspense} from "react"
import {Head, Link, usePaginatedQuery, useRouter, BlitzPage} from "blitz"
import Layout from "app/core/layouts/Layout"
import getProjects from "app/projects/queries/getProjects"
import {Routes} from ".blitz"
const ITEMS_PER_PAGE = 100
export const ProjectsList = () => {
const router = useRouter()
const page = Number(router.query.page) || 0
const [{projects, hasMore}] = usePaginatedQuery(getProjects, {
orderBy: {id: "asc"},
skip: ITEMS_PER_PAGE * page,
take: ITEMS_PER_PAGE,
})
const goToPreviousPage = () => router.push({query: {page: page - 1}})
const goToNextPage = () => router.push({query: {page: page + 1}})
return (
<div>
<ul>
{projects.map((project) => (
<li key={project.id}>
<Link href={Routes.ShowProjectPage({projectId: project.id})}>
<a>{project.name}</a>
</Link>
</li>
))}
</ul>
<button disabled={page === 0} onClick={goToPreviousPage}>
Previous
</button>
<button disabled={!hasMore} onClick={goToNextPage}>
Next
</button>
</div>
)
}
const ProjectsPage: BlitzPage = () => {
return (
<>
<Head>
<title>Projects</title>
</Head>
<div>
<p>
<Link href={Routes.NewProjectPage()}>
<a>Create Project</a>
</Link>
</p>
<Suspense fallback={<div>Loading...</div>}>
<ProjectsList />
</Suspense>
</div>
</>
)
}
ProjectsPage.authenticate = {redirectTo: "/login"}
ProjectsPage.getLayout = (page) => <Layout>{page}</Layout>
export default ProjectsPage

View File

@@ -0,0 +1,48 @@
import {Link, useRouter, useMutation, BlitzPage} from "blitz"
import Layout from "app/core/layouts/Layout"
import createProject from "app/projects/mutations/createProject"
import {ProjectForm, FORM_ERROR} from "app/projects/components/ProjectForm"
import {Routes} from ".blitz"
const NewProjectPage: BlitzPage = () => {
const router = useRouter()
const [createProjectMutation] = useMutation(createProject)
return (
<div>
<h1>Create New Project</h1>
<ProjectForm
submitText="Create Project"
// TODO use a zod schema for form validation
// - Tip: extract mutation's schema into a shared `validations.ts` file and
// then import and use it here
// schema={CreateProject}
// initialValues={{}}
onSubmit={async (values) => {
try {
const project = await createProjectMutation(values)
router.push(Routes.ShowProjectPage({projectId: project.id}))
} catch (error: any) {
console.error(error)
return {
[FORM_ERROR]: error.toString(),
}
}
}}
/>
<p>
<Link href={Routes.ProjectsPage()}>
<a>Projects</a>
</Link>
</p>
</div>
)
}
NewProjectPage.authenticate = true
NewProjectPage.getLayout = (page) => <Layout title={"Create New Project"}>{page}</Layout>
export default NewProjectPage

View File

@@ -1,51 +1,37 @@
import * as React from "react"
import {getSessionContext} from "@blitzjs/server"
import {
ssrQuery,
getSession,
invokeWithMiddleware,
useRouter,
GetServerSideProps,
PromiseReturnType,
ErrorComponent as ErrorPage,
useMutation,
AuthenticationError,
AuthorizationError,
GetServerSideProps,
InferGetServerSidePropsType,
BlitzPage,
} from "blitz"
import getUser from "app/users/queries/getUser"
import logout from "app/auth/mutations/logout"
import path from "path"
type PageProps = {
user?: PromiseReturnType<typeof getUser>
error?: {
statusCode: number
message: string
}
}
export const getServerSideProps: GetServerSideProps<PageProps> = async ({req, res}) => {
// Ensure these files are not eliminated by trace-based tree-shaking (like Vercel)
// https://github.com/blitz-js/blitz/issues/794
path.resolve("next.config.js")
path.resolve("blitz.config.js")
path.resolve(".next/__db.js")
// End anti-tree-shaking
const session = await getSessionContext(req, res)
export const getServerSideProps: GetServerSideProps = async ({req, res}) => {
const session = await getSession(req, res)
console.log("Session id:", session.userId)
try {
const user = await ssrQuery(
const user = await invokeWithMiddleware(
getUser,
{where: {id: Number(session.userId)}, select: {id: true}},
{where: {id: Number(session.userId)}},
{res, req},
)
return {props: {user}}
} catch (error) {
} catch (error: any) {
if (error.name === "NotFoundError") {
res.statusCode = 404
res.end()
return {props: {}}
} else if (error.name === "AuthenticationError") {
res.writeHead(302, {location: "/login"})
res.end()
} else if (error instanceof AuthenticationError) {
res.writeHead(302, {location: "/login"}).end()
return {props: {}}
} else if (error.name === "AuthorizationError") {
} else if (error instanceof AuthorizationError) {
return {
props: {
error: {
@@ -60,8 +46,12 @@ export const getServerSideProps: GetServerSideProps<PageProps> = async ({req, re
}
}
const Test: React.FC<PageProps> = ({user, error}: PageProps) => {
const PageSSR: BlitzPage<InferGetServerSidePropsType<typeof getServerSideProps>> = ({
user,
error,
}) => {
const router = useRouter()
const [logoutMutation] = useMutation(logout)
if (error) {
return <ErrorPage statusCode={error.statusCode} title={error.message} />
@@ -72,7 +62,7 @@ const Test: React.FC<PageProps> = ({user, error}: PageProps) => {
<div>Logged in user id: {user?.id}</div>
<button
onClick={async () => {
await logout()
await logoutMutation()
router.push("/")
}}
>
@@ -82,4 +72,4 @@ const Test: React.FC<PageProps> = ({user, error}: PageProps) => {
)
}
export default Test
export default PageSSR

View File

@@ -0,0 +1,13 @@
import {useRouter} from "next/router"
import React from "react"
export default function Test() {
const {replace} = useRouter()
const handleChange = (event: any) => {
// replace({ query }, undefined, { shallow: true })
replace(`/test?p=${event.target.value}`)
}
return <input onChange={handleChange} />
}

View File

@@ -0,0 +1,12 @@
import {Form, FormProps} from "app/core/components/Form"
import {LabeledTextField} from "app/core/components/LabeledTextField"
import {ZodType} from "zod"
export {FORM_ERROR} from "app/core/components/Form"
export function ProjectForm<S extends ZodType<any, any>>(props: FormProps<S>) {
return (
<Form<S> {...props}>
<LabeledTextField name="name" label="Name" placeholder="Name" />
</Form>
)
}

View File

@@ -0,0 +1,14 @@
import {resolver} from "blitz"
import db from "db"
import {z} from "zod"
const CreateProject = z.object({
name: z.string(),
})
export default resolver.pipe(resolver.zod(CreateProject), resolver.authorize(), async (input) => {
// TODO: in multi-tenant app, you must add validation to ensure correct tenant
const project = await db.project.create({data: input})
return project
})

View File

@@ -0,0 +1,14 @@
import {resolver} from "blitz"
import db from "db"
import {z} from "zod"
const DeleteProject = z.object({
id: z.number(),
})
export default resolver.pipe(resolver.zod(DeleteProject), resolver.authorize(), async ({id}) => {
// TODO: in multi-tenant app, you must add validation to ensure correct tenant
const project = await db.project.delete({where: {id}})
return project
})

View File

@@ -0,0 +1,19 @@
import {resolver} from "blitz"
import db from "db"
import {z} from "zod"
const UpdateProject = z.object({
id: z.number(),
name: z.string(),
})
export default resolver.pipe(
resolver.zod(UpdateProject),
resolver.authorize(),
async ({id, ...data}) => {
// TODO: in multi-tenant app, you must add validation to ensure correct tenant
const project = await db.project.update({where: {id}, data})
return project
},
)

View File

@@ -0,0 +1,17 @@
import {resolver, NotFoundError} from "blitz"
import db from "db"
import {z} from "zod"
const GetProject = z.object({
// This accepts type of undefined, but is required at runtime
id: z.number().optional().refine(Boolean, "Required"),
})
export default resolver.pipe(resolver.zod(GetProject), resolver.authorize(), async ({id}) => {
// TODO: in multi-tenant app, you must add validation to ensure correct tenant
const project = await db.project.findFirst({where: {id}})
if (!project) throw new NotFoundError()
return project
})

View File

@@ -0,0 +1,25 @@
import {paginate, resolver} from "blitz"
import db, {Prisma} from "db"
interface GetProjectsInput
extends Pick<Prisma.ProjectFindManyArgs, "where" | "orderBy" | "skip" | "take"> {}
export default resolver.pipe(
resolver.authorize(),
async ({where, orderBy, skip = 0, take = 100}: GetProjectsInput) => {
// TODO: in multi-tenant app, you must add validation to ensure correct tenant
const {items: projects, hasMore, nextPage, count} = await paginate({
skip,
take,
count: () => db.project.count({where}),
query: (paginateArgs) => db.project.findMany({...paginateArgs, where, orderBy}),
})
return {
projects,
nextPage,
hasMore,
count,
}
},
)

View File

@@ -0,0 +1,13 @@
import {Ctx} from "blitz"
import db from "db"
export default async function currentUserQuery(_ = null, {session}: Ctx) {
if (!session.userId) return null
const user = await db.user.findFirst({
where: {id: session.userId},
select: {id: true, name: true, email: true, role: true},
})
return user
}

View File

@@ -1,23 +0,0 @@
import React from "react"
type UserFormProps = {
initialValues: any
onSubmit: React.FormEventHandler<HTMLFormElement>
}
const UserForm = ({initialValues, onSubmit}: UserFormProps) => {
return (
<form
onSubmit={(event) => {
event.preventDefault()
onSubmit(event)
}}
>
<div>Put your form fields here. But for now, just click submit</div>
<div>{JSON.stringify(initialValues)}</div>
<button>Submit</button>
</form>
)
}
export default UserForm

View File

@@ -1,10 +0,0 @@
import db, {UserCreateArgs} from "db"
type CreateUserInput = {
data: UserCreateArgs["data"]
}
export default async function createUser({data}: CreateUserInput, ctx: Record<any, any> = {}) {
const user = await db.user.create({data})
return user
}

View File

@@ -1,11 +0,0 @@
import db, {UserDeleteArgs} from "db"
type DeleteUserInput = {
where: UserDeleteArgs["where"]
}
export default async function deleteUser({where}: DeleteUserInput, ctx: Record<any, any> = {}) {
const user = await db.user.delete({where})
return user
}

View File

@@ -1,9 +1,9 @@
import {SessionContext} from "blitz"
import {Ctx} from "blitz"
export default async function trackView(_ = null, ctx: {session?: SessionContext} = {}) {
const currentViews = ctx.session!.publicData.views || 0
await ctx.session!.setPublicData({views: currentViews + 1})
await ctx.session!.setPrivateData({views: currentViews + 1})
export default async function trackView(_: any, {session}: Ctx) {
const currentViews = session.views || 0
await session.$setPublicData({views: currentViews + 1})
await session.$setPrivateData({views: currentViews + 1})
return
}

View File

@@ -1,15 +0,0 @@
import db, {UserUpdateArgs} from "db"
type UpdateUserInput = {
where: UserUpdateArgs["where"]
data: UserUpdateArgs["data"]
}
export default async function updateUser(
{where, data}: UpdateUserInput,
ctx: Record<any, any> = {},
) {
const user = await db.user.update({where, data})
return user
}

View File

@@ -1,62 +0,0 @@
import React, {Suspense} from "react"
import {Head, Link, useRouter, useQuery, useParam, BlitzPage} from "blitz"
import getUser from "app/users/queries/getUser"
import deleteUser from "app/users/mutations/deleteUser"
export const User = () => {
const router = useRouter()
const userId = useParam("userId", "number")
const [user] = useQuery(getUser, {where: {id: userId}})
return (
<div>
<h1>User {user.id}</h1>
<pre>{JSON.stringify(user, null, 2)}</pre>
{
<Link href="/users/[userId]/edit" as={`/users/${user.id}/edit`}>
<a>Edit</a>
</Link>
}
<button
type="button"
onClick={async () => {
if (window.confirm("This will be deleted")) {
await deleteUser({where: {id: user.id}})
router.push("/users")
}
}}
>
Delete
</button>
</div>
)
}
const ShowUserPage: BlitzPage = () => {
return (
<div>
<Head>
<title>User</title>
<link rel="icon" href="/favicon.ico" />
</Head>
<main>
<p>
{
<Link href="/users">
<a>Users</a>
</Link>
}
</p>
<Suspense fallback={<div>Loading...</div>}>
<User />
</Suspense>
</main>
</div>
)
}
export default ShowUserPage

View File

@@ -1,63 +0,0 @@
import React, {Suspense} from "react"
import {Head, Link, useRouter, useQuery, useParam, BlitzPage} from "blitz"
import getUser from "app/users/queries/getUser"
import updateUser from "app/users/mutations/updateUser"
import UserForm from "app/users/components/UserForm"
export const EditUser = () => {
const router = useRouter()
const userId = useParam("userId", "number")
const [user, {mutate}] = useQuery(getUser, {where: {id: userId}})
return (
<div>
<h1>Edit User {user.id}</h1>
<pre>{JSON.stringify(user)}</pre>
<UserForm
initialValues={user}
onSubmit={async () => {
try {
const updated = await updateUser({
where: {id: user.id},
data: {name: "MyNewName"},
})
mutate(updated)
alert("Success!" + JSON.stringify(updated))
router.push("/users/[userId]", `/users/${updated.id}`)
} catch (error) {
console.log(error)
alert("Error creating user " + JSON.stringify(error, null, 2))
}
}}
/>
</div>
)
}
const EditUserPage: BlitzPage = () => {
return (
<div>
<Head>
<title>Edit User</title>
<link rel="icon" href="/favicon.ico" />
</Head>
<main>
<Suspense fallback={<div>Loading...</div>}>
<EditUser />
</Suspense>
<p>
{
<Link href="/users">
<a>Users</a>
</Link>
}
</p>
</main>
</div>
)
}
export default EditUserPage

View File

@@ -1,49 +0,0 @@
import React, {Suspense} from "react"
import {Head, Link, useQuery, BlitzPage} from "blitz"
import getUsers from "app/users/queries/getUsers"
import Layout from "app/layouts/Layout"
export const UsersList = () => {
const [users] = useQuery(getUsers, {orderBy: {id: "desc"}})
return (
<ul>
{users?.map((user) => (
<li key={user.id}>
<Link href="/users/[userId]" as={`/users/${user.id}`}>
<a>{user.email}</a>
</Link>
</li>
))}
</ul>
)
}
const UsersPage: BlitzPage = () => {
return (
<Layout>
<Head>
<title>Users</title>
<link rel="icon" href="/favicon.ico" />
</Head>
<main>
<h1>Users</h1>
<p>
{
<Link href="/users/new">
<a>Create User</a>
</Link>
}
</p>
<Suspense fallback={<div>Loading...</div>}>
<UsersList />
</Suspense>
</main>
</Layout>
)
}
export default UsersPage

View File

@@ -1,44 +0,0 @@
import React from "react"
import {Head, Link, useRouter, BlitzPage} from "blitz"
import createUser from "app/users/mutations/createUser"
import UserForm from "app/users/components/UserForm"
const NewUserPage: BlitzPage = () => {
const router = useRouter()
return (
<div>
<Head>
<title>New User</title>
<link rel="icon" href="/favicon.ico" />
</Head>
<main>
<h1>Create New User </h1>
<UserForm
initialValues={{}}
onSubmit={async () => {
try {
const user = await createUser({data: {name: "MyName"}})
alert("Success!" + JSON.stringify(user))
router.push("/users/[userId]", `/users/${user.id}`)
} catch (error) {
alert("Error creating user " + JSON.stringify(error, null, 2))
}
}}
/>
<p>
{
<Link href="/users">
<a>Users</a>
</Link>
}
</p>
</main>
</div>
)
}
export default NewUserPage

View File

@@ -1,11 +1,11 @@
import {Ctx} from "blitz"
import db from "db"
import {SessionContext} from "blitz"
export default async function getCurrentUser(_ = null, ctx: {session?: SessionContext} = {}) {
if (!ctx.session?.userId) return null
export default async function getCurrentUser(_ = null, {session}: Ctx) {
if (!session.userId) return null
const user = await db.user.findOne({
where: {id: ctx.session!.userId},
const user = await db.user.findFirst({
where: {id: session.userId},
select: {id: true, name: true, email: true, role: true},
})

View File

@@ -1,22 +1,18 @@
import db, {FindOneUserArgs} from "db"
import {SessionContext, NotFoundError} from "blitz"
import {Ctx, NotFoundError} from "blitz"
import db, {Prisma} from "db"
type GetUserInput = {
where: FindOneUserArgs["where"]
select?: FindOneUserArgs["select"]
// Only available if a model relationship exists
// include?: FindOneUserArgs['include']
where: Prisma.UserFindFirstArgs["where"]
}
export default async function getUser(
{where, select}: GetUserInput,
ctx: {session?: SessionContext} = {},
) {
ctx.session?.authorize(["admin", "user"])
export default async function getUser({where}: GetUserInput, ctx: Ctx) {
if (!ctx.session.userId) return null
const user = await db.user.findOne({where, select})
const user = await db.user.findFirst({where})
if (!user) throw new NotFoundError(`User with id ${where.id} does not exist`)
if (!user) throw new NotFoundError(`User with id ${where?.id} does not exist`)
return user
const {hashedPassword, ...rest} = user
return rest
}

View File

@@ -1,29 +1,26 @@
import db, {FindManyUserArgs} from "db"
import {SessionContext} from "blitz"
import {Ctx} from "blitz"
import db, {Prisma} from "db"
type GetUsersInput = {
where?: FindManyUserArgs["where"]
orderBy?: FindManyUserArgs["orderBy"]
cursor?: FindManyUserArgs["cursor"]
take?: FindManyUserArgs["take"]
skip?: FindManyUserArgs["skip"]
// Only available if a model relationship exists
// include?: FindManyUserArgs['include']
}
type GetUsersInput = Pick<Prisma.UserFindManyArgs, "where" | "orderBy" | "skip" | "take">
export default async function getUsers(
{where, orderBy, cursor, take, skip}: GetUsersInput,
ctx: {session?: SessionContext} = {},
) {
ctx.session!.authorize(["admin"])
export default async function getUsers({where, orderBy, skip = 0, take}: GetUsersInput, ctx: Ctx) {
ctx.session.$authorize()
const users = await db.user.findMany({
where,
orderBy,
cursor,
take,
skip,
})
return users
const count = await db.user.count()
const hasMore = typeof take === "number" ? skip + take < count : false
const nextPage = hasMore ? {take, skip: skip + take!} : null
return {
users,
nextPage,
hasMore,
count,
}
}

View File

@@ -0,0 +1,4 @@
module.exports = {
presets: ["blitz/babel"],
plugins: [],
}

View File

@@ -1,26 +0,0 @@
const {sessionMiddleware, unstable_simpleRolesIsAuthorized} = require("@blitzjs/server")
const withBundleAnalyzer = require("@next/bundle-analyzer")({
enabled: process.env.ANALYZE === "true",
})
module.exports = withBundleAnalyzer({
middleware: [
sessionMiddleware({
unstable_isAuthorized: unstable_simpleRolesIsAuthorized,
// sessionExpiryMinutes: 1,
}),
],
/*
webpack: (config, {buildId, dev, isServer, defaultLoaders, webpack}) => {
// Note: we provide webpack above so you should not `require` it
// Perform customizations to webpack config
// Important: return the modified config
return config
},
webpackDevMiddleware: (config) => {
// Perform customizations to webpack dev middleware config
// Important: return the modified config
return config
},
*/
})

View File

@@ -0,0 +1,43 @@
import {sessionMiddleware, simpleRolesIsAuthorized} from "blitz"
import db from "db"
const withBundleAnalyzer = require("@next/bundle-analyzer")({
enabled: process.env.ANALYZE === "true",
})
module.exports = withBundleAnalyzer({
middleware: [
sessionMiddleware({
cookiePrefix: "blitz-auth-example",
isAuthorized: simpleRolesIsAuthorized,
// sessionExpiryMinutes: 4,
getSession: (handle) => db.session.findFirst({where: {handle}}),
}),
],
cli: {
clearConsoleOnBlitzDev: false,
},
codegen: {
templateDir: "./my-templates",
},
log: {
// level: "trace",
},
experimental: {
initServer() {
console.log("Hello world from initServer")
},
},
/*
webpack: (config, {buildId, dev, isServer, defaultLoaders, webpack}) => {
// Note: we provide webpack above so you should not `require` it
// Perform customizations to webpack config
// Important: return the modified config
return config
},
webpackDevMiddleware: (config) => {
// Perform customizations to webpack dev middleware config
// Important: return the modified config
return config
},
*/
})

View File

@@ -1,5 +1,9 @@
{
"baseUrl": "http://localhost:3099",
"defaultCommandTimeout": 10000,
"video": false
"retries": {
"runMode": 1
},
"video": false,
"chromeWebSecurity": false
}

View File

@@ -11,7 +11,7 @@ describe("index page", () => {
})
it("goes to the login page", () => {
cy.contains("a", "Log In").click()
cy.contains("a", /login/i).click()
cy.location("pathname").should("equal", "/login")
})
@@ -19,36 +19,44 @@ describe("index page", () => {
const user = createRandomUser()
cy.signup(user)
cy.wait(1000)
cy.location("pathname").should("equal", "/")
cy.contains("button", "Logout")
cy.wait(1000)
})
it("allows the user to log in", () => {
const user = createRandomUser()
cy.signup(user)
cy.wait(1000)
cy.contains("button", "Logout").click()
cy.contains("a", "Log In").click()
cy.wait(1000)
cy.contains("a", /login/i).click()
cy.contains("Email").find("input").type(user.email)
cy.contains("Password").find("input").type(user.password)
cy.contains("button", "Log In").click()
cy.contains("button", /login/i).click()
cy.location("pathname").should("equal", "/")
cy.wait(1000)
cy.contains("button", "Logout")
cy.wait(1000)
})
it("allows the user to logout", () => {
const user = createRandomUser()
cy.signup(user)
cy.wait(1000)
cy.contains("button", "Logout").click()
cy.location("pathname").should("equal", "/")
cy.contains("a", "Log In")
cy.wait(1000)
cy.contains("a", /login/i)
})
it("tracks anonymous sessions", () => {
@@ -57,10 +65,13 @@ describe("index page", () => {
const user = createRandomUser()
cy.contains("button", "Track view").click()
cy.wait(500)
cy.contains("button", "Track view").click()
cy.wait(1000)
cy.contains('"views": 2')
cy.signup(user)
cy.wait(1000)
cy.contains('"views": 2')
})

View File

@@ -15,6 +15,7 @@
/**
* @type {Cypress.PluginConfig}
*/
//@ts-ignore
module.exports = (on, config) => {
// `on` is used to hook into various events Cypress emits
// `config` is the resolved Cypress config

View File

@@ -0,0 +1,7 @@
{
"compilerOptions": {
"target": "es5",
"lib": ["dom", "es5"],
"types": ["cypress"]
}
}

View File

@@ -1,15 +1,7 @@
import {enhancePrisma} from "blitz"
import {PrismaClient} from "@prisma/client"
const EnhancedPrisma = enhancePrisma(PrismaClient)
export * from "@prisma/client"
let prisma: PrismaClient
if (process.env.NODE_ENV === "production") {
prisma = new PrismaClient()
} else {
// Ensure the prisma instance is re-used during hot-reloading
// Otherwise, a new client will be created on every reload
globalThis["prisma"] = globalThis["prisma"] || new PrismaClient()
prisma = globalThis["prisma"]
}
export default prisma
export default new EnhancedPrisma()

View File

@@ -1,82 +0,0 @@
# Migration `20200704211726`
This migration has been generated by Brandon Bayer at 7/4/2020, 9:17:26 PM.
You can check out the [state of the schema](./schema.prisma) after the migration.
## Database Steps
```sql
PRAGMA foreign_keys=OFF;
CREATE TABLE "quaint"."User" (
"createdAt" DATE NOT NULL DEFAULT CURRENT_TIMESTAMP ,"email" TEXT NOT NULL ,"hashedPassword" TEXT NOT NULL ,"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,"name" TEXT ,"role" TEXT NOT NULL ,"updatedAt" DATE NOT NULL )
CREATE TABLE "quaint"."Session" (
"antiCSRFToken" TEXT ,"createdAt" DATE NOT NULL DEFAULT CURRENT_TIMESTAMP ,"expiresAt" DATE ,"handle" TEXT NOT NULL ,"hashedSessionToken" TEXT ,"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,"privateData" TEXT ,"publicData" TEXT ,"updatedAt" DATE NOT NULL ,"userId" INTEGER ,FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE)
CREATE UNIQUE INDEX "quaint"."User.email" ON "User"("email")
CREATE UNIQUE INDEX "quaint"."Session.handle" ON "Session"("handle")
PRAGMA "quaint".foreign_key_check;
PRAGMA foreign_keys=ON;
```
## Changes
```diff
diff --git schema.prisma schema.prisma
migration ..20200704211726
--- datamodel.dml
+++ datamodel.dml
@@ -1,0 +1,46 @@
+// This is your Prisma schema file,
+// learn more about it in the docs: https://pris.ly/d/prisma-schema
+
+datasource sqlite {
+ provider = "sqlite"
+ url = "***"
+}
+
+// SQLite is easy to start with, but if you use Postgres in production
+// you should also use it in development with the following:
+//datasource postgresql {
+// provider = "postgresql"
+// url = "***"
+//}
+
+generator client {
+ provider = "prisma-client-js"
+}
+
+
+// --------------------------------------
+
+model User {
+ id Int @default(autoincrement()) @id
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+ name String?
+ email String @unique
+ hashedPassword String
+ role String
+ sessions Session[]
+}
+
+model Session {
+ id Int @default(autoincrement()) @id
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+ expiresAt DateTime?
+ handle String @unique
+ user User? @relation(fields: [userId], references: [id])
+ userId Int?
+ hashedSessionToken String?
+ antiCSRFToken String?
+ publicData String?
+ privateData String?
+}
```

Some files were not shown because too many files have changed in this diff Show More