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

Compare commits

...

32 Commits

Author SHA1 Message Date
github-actions[bot]
e1bffdf3d6 Version Packages (beta) (#4197)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
2023-08-17 23:41:49 +05:30
Siddharth Suresh
8b01175b47 blitz-auth: useAuthenticatedBlitzContext returns AuthenticatedCtx (#4198)
Co-authored-by: Brandon Bayer <b@bayer.ws>
2023-08-17 13:29:31 +05:30
Blitz.js Bot
0f1beb55b7 (meta) added @justinsmid as contributor 2023-08-14 12:35:36 -04:00
Justin Smid
82649f3415 Upgrade tslog dependency from 4.8.2 to 4.9.0 (#4180)
Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
2023-08-14 22:05:31 +05:30
Blitz.js Bot
231c2ff5ab (meta) added @maciej-ka as contributor 2023-08-14 12:26:03 -04:00
Maciej Kasprzyk
47c6b62dcb docs: add a name column to generate all examples (#4181)
Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
2023-08-14 21:55:58 +05:30
Siddharth Suresh
cf393786c0 Fix CI: remove workspace from package.json (#4196) 2023-08-14 21:35:52 +05:30
Siddharth Suresh
8d29b8afa9 sponser: add Byteflow as a bronze sponsor 2023-08-04 00:53:41 +05:30
Siddharth Suresh
f8bf8af28f sponser: add Byteflow logo 2023-08-04 00:43:40 +05:30
github-actions[bot]
8255172940 Version Packages (beta) (#4177)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
2023-07-21 01:52:20 +05:30
Siddharth Suresh
90f1741dac blitz-auth: Update Prisma Adapter for v5 (#4174)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-07-20 22:16:28 +05:30
Siddharth Suresh
df3265b854 blitz-rpc: Cleanup Method for Event Listeners (#4173)
* feat: logic to cleanup potential memory leak

* styling: add space

* Create poor-crabs-drum.md
2023-07-20 16:36:08 +00:00
Datner
0ba2f4e77a update monorepo tooling (#4169)
* chore: add nix

This could help contributers... contribute!

* build: use turborepo pipelines for coordination

instead of hacking it with sleeps and such....

* chore: update dev script

now we're cooking with gas! no more hacks, no more awkward flags

* chore: update pnpm version requirement

you want to support v6?? then use a v6-compatible pnpm version

* chore: update pnpm-lock
2023-07-12 13:13:51 +00:00
github-actions[bot]
da76acc90a Version Packages (beta) (#4167)
* Version Packages (beta)

* pnpm lock

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
2023-07-05 20:46:08 +05:30
Siddharth Suresh
c5572bec6e blitz-auth: Fix webpack from following next-auth (#4160)
* fix webpack from following next-auth

* redo

* Create curvy-drinks-perform.md

* wrap with try catch

* fix build issue

* upgrade ci to pnpm 8

---------

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-07-03 17:36:46 +00:00
Siddharth Suresh
727734955a Configure the Verbosity of Blitz RPC Logging (#4162)
* improve blitz rpc logging

* implement improved setup with jsdoc comments

* make it verbose by default

* change routePath to resolverName for easier use

* Update packages/blitz-rpc/src/index-server.ts

* rename to make language more inclusive

* set output as debug

* Create sixty-rockets-count.md

* Update sixty-rockets-count.md

* Update sixty-rockets-count.md

* fix verbose bug

* Apply suggestions from code review

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

---------

Co-authored-by: Brandon Bayer <b@bayer.ws>
2023-07-03 22:57:34 +05:30
github-actions[bot]
831a493ab6 Version Packages (beta) (#4159)
* Version Packages (beta)

* updat pnpm lock

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
2023-06-14 18:12:23 +00:00
Siddharth Suresh
b6b9a1c5a4 (fix) Next-Auth integration (#4153)
* fix next-auth integration

* Create small-monkeys-battle.md

* Update .changeset/small-monkeys-battle.md

* add a postinstall script for good measure

* add a postinstall script for good measure

* fix lock file

* upgrade pnpm

* fix version

* fix build error

* suggessions

* fix pnpm lock

* fix pnpm lock

* Update main.yml

* Update apps/toolkit-app/next.config.js

* next-auth working again

* Update apps/toolkit-app/.env

* Update packages/blitz-auth/src/server/auth-sessions.ts

* Update packages/blitz-auth/src/server/auth-sessions.ts
2023-06-14 22:54:48 +05:30
Siddharth Suresh
61888d1a30 fix: blitz logging formatting (#4158)
* fix blitz logging setup

* changeset

* Update packages/blitz/src/logging.ts
2023-06-13 13:04:23 +00:00
Sakamoto, Kazunori
7aef610d85 fix(@blitzjs/generator): make Next.js version pinning to 13.4.5 (#4150)
* fix: make Next.js version stick to 13.3.4

* fix: upgrade Next.js from 13.3.4 to 13.4.5

---------

Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
2023-06-12 15:12:40 +05:30
Siddharth Suresh
b266254247 Revert "fix log showing path"
This reverts commit 67e00d9108.
2023-06-12 12:44:45 +05:30
Siddharth Suresh
67e00d9108 fix log showing path 2023-06-12 12:40:54 +05:30
github-actions[bot]
d25c965bc8 Version Packages (beta) (#4144)
* Version Packages (beta)

* pnpm lock

* fix worlfow pnpm version

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
2023-06-09 23:54:35 +05:30
Siddharth Suresh
1bb3a65566 (fix): Stop exporting useAuthenticatedBlitzContext from @blitzjs/auth (#4157)
* Remove unnecessary exports from @blitzjs/auth

* add changeset

* allow exporting getBlitzContext as we need it for blitz rpc

* Update .changeset/moody-crews-travel.md

---------

Co-authored-by: Brandon Bayer <b@bayer.ws>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-06-09 17:01:55 +00:00
Blitz.js Bot
28b0ffeb5f (meta) added @jayu as contributor 2023-06-09 12:52:10 -04:00
Jakub Mazurek
c7ac86b857 fix: enormous memory consumption of the dev server (#4148)
* fix: enormous dev server memory consumption

* chore: add changeset file

* add resolversDynamicImport configuration

* make vercel default to true

* imporve the changelog

* Update .changeset/good-oranges-pretend.md

* make code cleaner

* a fix and refactor

* fix build

---------

Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
Co-authored-by: Brandon Bayer <b@bayer.ws>
2023-06-09 16:52:04 +00:00
Siddharth Suresh
5166e5e037 (feat) upgrade tslog (#4154)
* upgrade tslog

* Create big-turtles-tease.md

* pnpm lock

* fix build issue

* upgrade pnpm in the lock file to v8

* try again

* Update main.yml

* fix build

* fix

* again

* fix spacing
2023-06-05 21:11:34 +05:30
Siddharth Suresh
2533caf484 (fix): Fix the Type error in RpcServerPlugin (#4152)
* fix type error

* changeset
2023-06-05 19:31:27 +05:30
Blitz.js Bot
85a71ffef9 (meta) added @nikola-wd as contributor 2023-05-31 11:36:16 -04:00
Blitz.js Bot
803f533a3d (meta) added @nerixim as contributor 2023-05-31 11:21:39 -04:00
Blitz.js Bot
63ee9423a9 (meta) added @GHKEN as contributor 2023-05-11 12:06:35 -04:00
Tetsuya Fukuda
89446b3656 support both directory style in tailwind recipe (#4137)
Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
2023-05-11 21:36:30 +05:30
119 changed files with 7095 additions and 6018 deletions

View File

@@ -3917,6 +3917,64 @@
"doc",
"code"
]
},
{
"login": "GHKEN",
"name": "Tetsuya Fukuda",
"avatar_url": "https://avatars.githubusercontent.com/u/5304351?v=4",
"profile": "https://ghken.com",
"contributions": [
"doc",
"code"
]
},
{
"login": "nerixim",
"name": "Nikita Kamaev",
"avatar_url": "https://avatars.githubusercontent.com/u/26106502?v=4",
"profile": "https://github.com/nerixim",
"contributions": [
"doc"
]
},
{
"login": "nikola-wd",
"name": "Nikola Ivanov",
"avatar_url": "https://avatars.githubusercontent.com/u/11588823?v=4",
"profile": "https://webredone.com/",
"contributions": [
"doc"
]
},
{
"login": "jayu",
"name": "Jakub Mazurek",
"avatar_url": "https://avatars.githubusercontent.com/u/11561585?v=4",
"profile": "jayu.dev",
"contributions": [
"doc",
"code"
]
},
{
"login": "maciej-ka",
"name": "Maciej Kasprzyk",
"avatar_url": "https://avatars.githubusercontent.com/u/5403694?v=4",
"profile": "https://github.com/maciej-ka",
"contributions": [
"doc",
"code"
]
},
{
"login": "justinsmid",
"name": "Justin Smid",
"avatar_url": "https://avatars.githubusercontent.com/u/34271675?v=4",
"profile": "https://github.com/justinsmid",
"contributions": [
"doc",
"code"
]
}
],
"contributorsPerLine": 7,

View File

@@ -0,0 +1,9 @@
---
"@blitzjs/auth": patch
"@blitzjs/next": patch
"@blitzjs/rpc": patch
"blitz": patch
"@blitzjs/generator": patch
---
(feat) upgrade tslog to v4.8.2

View File

@@ -0,0 +1,5 @@
---
"@blitzjs/generator": patch
---
Update examples of generate all in docs to include one column in model.

View File

@@ -0,0 +1,9 @@
---
"blitz": patch
"@blitzjs/next": patch
"@blitzjs/generator": patch
---
Upgrade tslog to `4.9.0`.
This due a [tslog issue](https://github.com/fullstack-build/tslog/issues/227) that causes tslog to crash when attempting to log an error whose constructor expects more than one argument.

View File

@@ -0,0 +1,6 @@
---
"@blitzjs/auth": patch
"blitz": patch
---
blitz-auth: Fix webpack from following next-auth

View File

@@ -0,0 +1,5 @@
---
"@blitzjs/rpc": patch
---
Fix return type of `requestMiddlewares` in `RpcServerPlugin`

View File

@@ -0,0 +1,8 @@
---
"@blitzjs/auth": patch
"blitz": patch
---
blitz-auth: Support for Prisma v5
Internal: Make `handle` a required paramter while updating the `session` modal.

View File

@@ -0,0 +1,5 @@
---
"@blitzjs/auth": patch
---
Updated `useAuthenticatedBlitzContext` to now return `AuthenticatedCtx`

View File

@@ -0,0 +1,26 @@
---
"@blitzjs/rpc": patch
---
Fixes enormous memory consumption of the dev server by changing the default import strategy to "require" instead of "import" which in webpack causes multiple chunks to be created for each import.
## Blitz Configuration
To configure this behaviour, you can add the following to your next.config.js:
```js
/**
* @type {import('@blitzjs/next').BlitzConfig}
**/
const config = {
blitz: {
resolversDynamicImport: true,
},
}
```
When `resolversDynamicImport` is set to `true`, the import strategy will be "import" instead of "require".
### On Vercel
If you are using Vercel, `resolversDynamicImport` will be set to `true` by default, since it is better for the separate chunks to be create for serverless lambdas.

View File

@@ -0,0 +1,5 @@
---
"@blitzjs/generator": patch
---
Make Next.js version stick to 13.4.5 when generating a new app

View File

@@ -0,0 +1,5 @@
---
"@blitzjs/auth": minor
---
Stop exporting `useAuthenticatedBlitzContext` from `@blitzjs/auth` this must be imported from `app/blitz-server.ts` file in order to work correctly

View File

@@ -0,0 +1,5 @@
---
"blitz": patch
---
blitz-rpc: Cleanup Event Listeners - Fix potential memory leak by cleaning up any residual event listeners set by blitz.

View File

@@ -55,6 +55,7 @@
"afraid-ears-repair",
"big-boats-lay",
"big-phones-bow",
"big-turtles-tease",
"blue-flowers-peel",
"blue-pigs-tan",
"brave-zebras-deny",
@@ -73,10 +74,12 @@
"chatty-gifts-whisper",
"chilled-carrots-own",
"chilly-candles-care",
"chilly-jeans-fix",
"chilly-nails-nail",
"clean-hats-pump",
"clean-hounds-laugh",
"clean-walls-wink",
"clever-hornets-talk",
"clever-radios-lie",
"cool-doors-invent",
"cool-horses-check",
@@ -85,6 +88,7 @@
"curly-rules-speak",
"curly-seas-serve",
"curvy-days-attend",
"curvy-drinks-perform",
"cyan-bulldogs-heal",
"cyan-cars-greet",
"dirty-monkeys-greet",
@@ -109,8 +113,10 @@
"fast-toys-wash",
"fast-trainers-kneel",
"few-dogs-fetch",
"few-elephants-approve",
"few-hounds-worry",
"few-shrimps-leave",
"fifty-drinks-cry",
"flat-bees-approve",
"fluffy-coats-flow",
"fluffy-mangos-begin",
@@ -120,6 +126,7 @@
"four-meals-fry",
"four-radios-tickle",
"four-sheep-judge",
"fresh-camels-return",
"fresh-crews-chew",
"funny-cups-pay",
"fuzzy-bees-warn",
@@ -133,6 +140,7 @@
"gold-horses-punch",
"good-apes-drum",
"good-insects-wink",
"good-oranges-pretend",
"gorgeous-birds-warn",
"gorgeous-buses-scream",
"gorgeous-games-obey",
@@ -162,6 +170,7 @@
"khaki-ducks-cheer",
"khaki-pens-rest",
"kind-walls-suffer",
"large-hairs-battle",
"late-steaks-give",
"lazy-maps-sort",
"lemon-games-press",
@@ -187,6 +196,7 @@
"modern-games-dream",
"modern-ligers-behave",
"moody-bags-walk",
"moody-crews-travel",
"moody-spoons-rhyme",
"moody-squids-cheer",
"nasty-suns-wash",
@@ -219,6 +229,7 @@
"plenty-gifts-provide",
"plenty-kiwis-greet",
"polite-lizards-love",
"poor-crabs-drum",
"poor-peas-lick",
"poor-penguins-look",
"poor-shrimps-think",
@@ -254,11 +265,13 @@
"silly-peas-work",
"silly-shoes-agree",
"six-apricots-kick",
"sixty-rockets-count",
"slimy-humans-impress",
"slimy-needles-taste",
"slow-impalas-tap",
"slow-walls-camp",
"slow-walls-poke",
"small-monkeys-battle",
"small-socks-confess",
"smooth-planets-admire",
"smooth-rice-clap",
@@ -288,6 +301,7 @@
"tall-radios-clean",
"tame-keys-reply",
"tame-pumpkins-nail",
"tame-rocks-unite",
"tasty-maps-fetch",
"tasty-news-collect",
"tasty-squids-sin",
@@ -327,6 +341,7 @@
"wise-frogs-give",
"wise-lies-relate",
"wise-rabbits-complain",
"yellow-numbers-serve",
"young-birds-talk"
]
}

View File

@@ -0,0 +1,68 @@
---
"@blitzjs/rpc": patch
"blitz": patch
---
### Now we can configure Blitz RPC in the following way,
In your `[[...blitz]].ts` api file you can see the following settings
```ts
logging?: {
/**
* allowList Represents the list of routes for which logging should be enabled
* If whiteList is defined then only those routes will be logged
*/
allowList?: string[]
/**
* blockList Represents the list of routes for which logging should be disabled
* If blockList is defined then all routes except those will be logged
*/
blockList?: string[]
/**
* verbose Represents the flag to enable/disable logging
* If verbose is true then Blitz RPC will log the input and output of each resolver
*/
verbose?: boolean
/**
* disablelevel Represents the flag to enable/disable logging for a particular level
*/
disablelevel?: "debug" | "info"
}
```
```ts
import { rpcHandler } from "@blitzjs/rpc"
import { api } from "src/blitz-server"
export default api(
rpcHandler({
onError: console.log,
formatError: (error) => {
error.message = `FormatError handler: ${error.message}`
return error
},
logging: {
...
}
})
)
```
Example:
```ts
export default api(
rpcHandler({
onError: console.log,
formatError: (error) => {
error.message = `FormatError handler: ${error.message}`
return error
},
logging: {
verbose: true,
blockList: ["getCurrentUser", ...], //just write the resolver name [which is the resolver file name]
},
})
)
```
This is enable verbose blitz rpc logging for all resolvers except the resolvers `getCurrentUser` and others mentioned in the `blockList`

View File

@@ -0,0 +1,6 @@
---
"@blitzjs/auth": patch
"blitz": patch
---
Fix Next-Auth integration: `Unable to use next-auth with provider: Error [ERR_PACKAGE_PATH_NOT_EXPORTED]`

View File

@@ -0,0 +1,5 @@
---
"blitz": patch
---
Fix log formatting to not show the path of blitz rpc

View File

@@ -0,0 +1,5 @@
---
"@blitzjs/recipe-tailwind": minor
---
support both directory style in tailwind recipe

View File

@@ -7,8 +7,8 @@ on:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
env:
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
jobs:
@@ -17,9 +17,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: pnpm/action-setup@646cdf48217256a3d0b80361c5a50727664284f2
- uses: pnpm/action-setup@v2.2.4
with:
version: 7.11.0
version: 8.6.5
- name: Setup node
uses: actions/setup-node@v2
with:
@@ -38,9 +38,9 @@ jobs:
name: Build
steps:
- uses: actions/checkout@v2
- uses: pnpm/action-setup@646cdf48217256a3d0b80361c5a50727664284f2
- uses: pnpm/action-setup@v2.2.4
with:
version: 7.11.0
version: 8.6.5
- name: Setup node
uses: actions/setup-node@v2
with:
@@ -68,9 +68,9 @@ jobs:
uses: actions/checkout@v3
- name: Setup PNPM
uses: pnpm/action-setup@646cdf48217256a3d0b80361c5a50727664284f2
uses: pnpm/action-setup@v2.2.4
with:
version: 7.11.0
version: 8.6.5
- name: Setup node@16
uses: actions/setup-node@v2
@@ -127,14 +127,14 @@ jobs:
uses: actions/checkout@v3
- name: Setup PNPM
uses: pnpm/action-setup@646cdf48217256a3d0b80361c5a50727664284f2
uses: pnpm/action-setup@v2.2.4
with:
version: 7.11.0
version: 8.6.5
- name: Setup node@${{ matrix.NODE_VERSION }}
- name: Setup node@18
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.NODE_VERSION }}
node-version: 18
cache: "pnpm"
- name: Install dependencies
@@ -143,7 +143,7 @@ jobs:
- name: Install playwright
run: |
pnpx playwright@1.28.0 install --with-deps
pnpx playwright@1.28.0 install --with-deps
shell: bash
- name: Build

View File

@@ -2,5 +2,5 @@
. "$(dirname "$0")/_/husky.sh"
pnpm manypkg check
pnpm lint
# pnpm lint
pnpm pretty-quick --staged

1
.npmrc
View File

@@ -1,4 +1,5 @@
save-exact=true
dedupe-peer-dependents=true
strict-peer-dependencies=false
public-hoist-pattern[]=secure-password

View File

@@ -6,7 +6,7 @@
<img alt="" src="https://img.shields.io/badge/Join%20our%20community-6700EB.svg?style=for-the-badge&labelColor=000000&logoWidth=20&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAQ9SURBVHgB7d3dVdtAEIbhcSpICUoH0IEogQqSVBBSAU4FSSpIOoAORAfQgSghHXzZ1U/YcMD4R9rZmf2ec3y448LyiNf27iLiGIAmPLrweC9Un3DhrzG6EarLNP09nlwJ1SOZ/lQr5N80/S/p2QMVCBf5N17XCfm1Y/rBHqjAG9PPHvBsz+mf9WAP+HLA9M/YA14cOP2payH7jpj+VCtk1wnTP+vj7xCy6cTpn7EHLMLp059iD1iD8eveJbVCNsSLheX1YA/YgOWnf8YeKB3Wmf7Ud6Fy4f/FHmtpxbl3YlC4MJ/Cj0bWdwPnPbARg+L0S54XQHS32WwuxClzd4CM0z9rPfeAuTtA5ulPXYQ7wZ04Y+oOoDD9KZc9YOoOoDj9s4dwFzgXR6w1wIPoOvPWA9buAHEJ173o3gWiy3AnuBUHLEbgmYwvAk1/wuM8vAgexThzbwPDkx7/DHwVXfFOxP2GmsKd4Ab6zPeAyU8CI7AHFmH2BRCBPXAyk18GzUrqAXCTiR4ssyj0VFw/oCU8+e+RZ33AWz6KMaYbIIWxB+JSLs1bsbkeMN0AqakHvoku9oA2sAfqBvbAQdw0QArsgb25aYBUQT3QgT2gB+yBuqGcHij2UCqXDZACe2Anlw2QYg/QAOyBuoE98CL3DZDCuK4/rh/Q7oGL6U+TOvcNkJoijN8X1C48+T+g75eQDrAH/qmqAVJgDwyqaoAUe4AGYA/UDZX3QLUNkEIZPRCd5+6BahsgVUgPROwBTSijB7jpVAvGHriHvmw9wAZ4BpX1ABvgmakHtPcbRuwBTWAPULgAV9D/jKDY9YRvwvgEaurD44uQHvAol7qBW7WKluVtIHiUS7GyvA0s6CiXDnxrpQfsgbqBS7GKk/2jYHCrVlGyfxTMrVo0ALdq1Q3sgSKofh0M9oA61a+D2QM0AHugbmAPqClmSRjK2apVVQ8UsySsoK1aHdgDesCtWnUDeyCrIpeFg1u3sylyWTi3btMA7IG6gT2wuuK3hoE9sKrit4YVslWLPaAN7IG6ocKt2zmY2h4O9sDiTG0PZw/QANy6XTewBxZj9ogYVHy025LMHhEz9cBn0We6B0yfERReBLfhx0/R1YQHPx/QBPbA0VwcEwf2wNFcHBPHHjiem3MC2QPHcXdSaJjA+KfgTPQ8hhfjBzHC40mhlzJ+Xq9lK4a4PCs43AVaGTed5mZq+iOXZwWHi3AnOj2wFWNcnxYe7gTxLtBKHuamP/J+Wnh8a5irB7ZC5Yk9gPX1QuXC+usHWqGyhYvUYR0a7zboUOFCNVhnk0krZAOW7wFOvzXhom2xnEbIHizTA1wEYhWW6YFGyC6c1gOcfg9wfA80Qj7g8B7g9HuCww+haIR8wf49wOn3Cvv9k8tGyC/s7gFOv3fY3QONkH+v9MBWqB7PeqDn9FcIT//kcitUn6kHOu/T/xfWzlQy3dEHhwAAAABJRU5ErkJggg==">
</a>
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
<a aria-label="All Contributors" href="#contributors-"><img alt="" src="https://img.shields.io/badge/all_contributors-413-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-419-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/main/LICENSE">
<img alt="" src="https://img.shields.io/npm/l/blitz.svg?style=for-the-badge&labelColor=000000&color=blue">
@@ -94,6 +94,11 @@ Your financial contributions help ensure Blitz continues to be developed and mai
<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/main/assets/boostry.svg" width="200px">
</a></td>
<td>
<a aria-label="Byteflow" href="https://byteflow.app/?ref=blitzjs">
<img alt="" src="https://raw.githubusercontent.com/blitz-js/blitz/main/assets/Byteflow.png" width="70px">
</a>
</td>
</tr>
</table>
@@ -727,6 +732,14 @@ Thanks to these wonderful people ([emoji key](https://allcontributors.org/docs/e
<td align="center"><a href="https://github.com/dbrxnds"><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=dbrxnds" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=dbrxnds" title="Code">💻</a> <a href="https://github.com/blitz-js/blitz/commits?author=dbrxnds" title="Tests">⚠️</a></td>
<td align="center"><a href="https://github.com/gjmoed"><img src="https://avatars.githubusercontent.com/u/4458993?v=4?s=100" width="100px;" alt=""/><br /><sub><b>G.J. Moed</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=gjmoed" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=gjmoed" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://ghken.com"><img src="https://avatars.githubusercontent.com/u/5304351?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tetsuya Fukuda</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=GHKEN" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=GHKEN" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/nerixim"><img src="https://avatars.githubusercontent.com/u/26106502?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nikita Kamaev</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=nerixim" title="Documentation">📖</a></td>
<td align="center"><a href="https://webredone.com/"><img src="https://avatars.githubusercontent.com/u/11588823?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nikola Ivanov</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=nikola-wd" title="Documentation">📖</a></td>
<td align="center"><a href="jayu.dev"><img src="https://avatars.githubusercontent.com/u/11561585?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jakub Mazurek</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=jayu" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=jayu" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/maciej-ka"><img src="https://avatars.githubusercontent.com/u/5403694?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Maciej Kasprzyk</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=maciej-ka" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=maciej-ka" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/justinsmid"><img src="https://avatars.githubusercontent.com/u/34271675?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Justin Smid</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=justinsmid" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=justinsmid" title="Code">💻</a></td>
</tr>
</table>
<!-- markdownlint-restore -->

View File

@@ -1,5 +1,67 @@
# next-blitz-auth
## 0.1.1-beta.8
### Patch Changes
- Updated dependencies [82649f341]
- Updated dependencies [8b01175b4]
- blitz@2.0.0-beta.32
- @blitzjs/next@2.0.0-beta.32
- @blitzjs/auth@2.0.0-beta.32
- @blitzjs/rpc@2.0.0-beta.32
- @blitzjs/config@2.0.0-beta.32
## 0.1.1-beta.7
### Patch Changes
- Updated dependencies [90f1741da]
- Updated dependencies [df3265b85]
- @blitzjs/auth@2.0.0-beta.31
- blitz@2.0.0-beta.31
- @blitzjs/rpc@2.0.0-beta.31
- @blitzjs/next@2.0.0-beta.31
- @blitzjs/config@2.0.0-beta.31
## 0.1.1-beta.6
### Patch Changes
- Updated dependencies [c5572bec6]
- Updated dependencies [727734955]
- @blitzjs/auth@2.0.0-beta.30
- blitz@2.0.0-beta.30
- @blitzjs/rpc@2.0.0-beta.30
- @blitzjs/next@2.0.0-beta.30
- @blitzjs/config@2.0.0-beta.30
## 0.1.1-beta.5
### Patch Changes
- Updated dependencies [b6b9a1c5a]
- Updated dependencies [61888d1a3]
- @blitzjs/auth@2.0.0-beta.29
- blitz@2.0.0-beta.29
- @blitzjs/rpc@2.0.0-beta.29
- @blitzjs/next@2.0.0-beta.29
- @blitzjs/config@2.0.0-beta.29
## 0.1.1-beta.4
### Patch Changes
- Updated dependencies [5166e5e03]
- Updated dependencies [2533caf48]
- Updated dependencies [c7ac86b85]
- Updated dependencies [1bb3a6556]
- @blitzjs/auth@2.0.0-beta.28
- @blitzjs/next@2.0.0-beta.28
- @blitzjs/rpc@2.0.0-beta.28
- blitz@2.0.0-beta.28
- @blitzjs/config@2.0.0-beta.28
## 0.1.1-beta.3
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "next-blitz-auth",
"version": "0.1.1-beta.3",
"version": "0.1.1-beta.8",
"private": true,
"scripts": {
"blitz:dev": "next dev",
@@ -9,15 +9,15 @@
"lint": "next lint"
},
"dependencies": {
"@blitzjs/auth": "workspace:*",
"@blitzjs/config": "workspace:*",
"@blitzjs/next": "workspace:*",
"@blitzjs/rpc": "workspace:*",
"@blitzjs/auth": "2.0.0-beta.32",
"@blitzjs/config": "2.0.0-beta.32",
"@blitzjs/next": "2.0.0-beta.32",
"@blitzjs/rpc": "2.0.0-beta.32",
"@hookform/error-message": "2.0.0",
"@hookform/resolvers": "2.9.10",
"@prisma/client": "^4.5.0",
"@tanstack/react-query": "4.0.10",
"blitz": "workspace:*",
"blitz": "2.0.0-beta.32",
"flatted": "3.2.7",
"next": "13.3.0",
"prisma": "^4.5.0",

View File

@@ -23,14 +23,14 @@
]
},
"dependencies": {
"@blitzjs/auth": "workspace:*",
"@blitzjs/config": "workspace:*",
"@blitzjs/next": "workspace:*",
"@blitzjs/rpc": "workspace:*",
"@blitzjs/auth": "2.0.0-beta.32",
"@blitzjs/config": "2.0.0-beta.32",
"@blitzjs/next": "2.0.0-beta.32",
"@blitzjs/rpc": "2.0.0-beta.32",
"@hookform/error-message": "2.0.0",
"@hookform/resolvers": "2.9.10",
"@prisma/client": "4.6.1",
"blitz": "workspace:2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"next": "13.3.0",
"openid-client": "5.2.1",
"prisma": "4.6.1",

View File

@@ -1,11 +1,14 @@
const { withNextAuthAdapter } = require("@blitzjs/auth/next-auth")
const { withNextAuthAdapter } = require("@blitzjs/auth")
const { withBlitz } = require("@blitzjs/next")
/**
* @type {import('@blitzjs/next').BlitzConfig}
* @type {import('next').NextConfig}
**/
const config = {
reactStrictMode: true,
blitz: {
resolversDynamicImport: true,
},
}
module.exports = withBlitz(withNextAuthAdapter(config))

View File

@@ -24,14 +24,14 @@
]
},
"dependencies": {
"@blitzjs/auth": "workspace:*",
"@blitzjs/config": "workspace:*",
"@blitzjs/next": "workspace:*",
"@blitzjs/rpc": "workspace:*",
"@blitzjs/auth": "2.0.0-beta.32",
"@blitzjs/config": "2.0.0-beta.32",
"@blitzjs/next": "2.0.0-beta.32",
"@blitzjs/rpc": "2.0.0-beta.32",
"@hookform/error-message": "2.0.0",
"@hookform/resolvers": "2.9.10",
"@prisma/client": "4.6.1",
"blitz": "workspace:2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"next": "13.3.0",
"next-auth": "4.18.7",
"prisma": "4.6.1",

View File

@@ -8,5 +8,9 @@ export default api(
error.message = `FormatError handler: ${error.message}`
return error
},
// logging: {
// verbose: true,
// blockList: ["/getCurrentUser"],
// },
})
)

View File

@@ -38,10 +38,10 @@ const UserInfo = () => {
} else {
return (
<>
<Link href={Routes.SignupPage()} className={styles.button}>
<Link href={"/signup"} className={styles.button}>
<strong>Sign Up</strong>
</Link>
<Link href={Routes.LoginPage()} className={styles.loginButton}>
<Link href={"/login"} className={styles.loginButton}>
<strong>Login</strong>
</Link>
<Link href="/api/auth/github/login" passHref legacyBehavior>
@@ -99,7 +99,7 @@ const Home: BlitzPage = () => {
<div className={styles.code}>
<span>1</span>
<pre>
<code>blitz generate all project</code>
<code>blitz generate all project name:string</code>
</pre>
</div>

View File

@@ -16,14 +16,14 @@
"schema": "./db/schema.prisma"
},
"dependencies": {
"@blitzjs/auth": "workspace:*",
"@blitzjs/config": "workspace:*",
"@blitzjs/next": "workspace:*",
"@blitzjs/rpc": "workspace:*",
"@blitzjs/auth": "2.0.0-beta.32",
"@blitzjs/config": "2.0.0-beta.32",
"@blitzjs/next": "2.0.0-beta.32",
"@blitzjs/rpc": "2.0.0-beta.32",
"@prisma/client": "4.6.1",
"@types/jest": "29.2.2",
"@types/passport-twitter": "1.0.37",
"blitz": "workspace:*",
"blitz": "2.0.0-beta.32",
"jest": "29.3.0",
"jest-environment-jsdom": "29.3.0",
"next": "13.3.0",

View File

@@ -13,7 +13,6 @@ const {gSSP, gSP, api} = setupBlitzServer({
}),
],
logger: BlitzLogger({
colorizePrettyLogs: true,
prefix: ["[blitz]>>>>>"],
}),
})

BIN
assets/Byteflow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

61
flake.lock generated Normal file
View File

@@ -0,0 +1,61 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1687709756,
"narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1688221086,
"narHash": "sha256-cdW6qUL71cNWhHCpMPOJjlw0wzSRP0pVlRn2vqX/VVg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "cd99c2b3c9f160cd004318e0697f90bbd5960825",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

39
flake.nix Normal file
View File

@@ -0,0 +1,39 @@
{
description = "The Blitzjs Monorepo";
nixConfig.bash-prompt = "\[nix:blitz\]$ ";
inputs = {
nixpkgs = {
url = "github:nixos/nixpkgs/nixpkgs-unstable";
};
flake-utils = {
url = "github:numtide/flake-utils";
};
};
outputs = {
nixpkgs,
flake-utils,
...
}:
flake-utils.lib.eachDefaultSystem (system: let
pkgs = nixpkgs.legacyPackages.${system};
in {
formatter = pkgs.alejandra;
devShells = {
default = pkgs.mkShell {
buildInputs = with pkgs; [
nodejs-18_x
];
shellHook = ''
mkdir -p $out/bin
${pkgs.nodejs-18_x}/bin/corepack enable --install-directory $out/bin
export PATH="$out/bin:$PATH"
'';
};
};
});
}

View File

@@ -17,14 +17,14 @@
"prisma:studio": "prisma studio"
},
"dependencies": {
"@blitzjs/auth": "workspace:2.0.0-beta.27",
"@blitzjs/config": "workspace:2.0.0-beta.27",
"@blitzjs/next": "workspace:2.0.0-beta.27",
"@blitzjs/rpc": "workspace:2.0.0-beta.27",
"@blitzjs/auth": "2.0.0-beta.32",
"@blitzjs/config": "2.0.0-beta.32",
"@blitzjs/next": "2.0.0-beta.32",
"@blitzjs/rpc": "2.0.0-beta.32",
"@hookform/error-message": "2.0.0",
"@hookform/resolvers": "2.9.10",
"@prisma/client": "4.6.1",
"blitz": "workspace:2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"delay": "5.0.0",
"next": "13.3.0",
"prisma": "4.6.1",

View File

@@ -17,11 +17,11 @@
"prisma:studio": "prisma studio"
},
"dependencies": {
"@blitzjs/auth": "workspace:2.0.0-beta.27",
"@blitzjs/config": "workspace:2.0.0-beta.27",
"@blitzjs/next": "workspace:2.0.0-beta.27",
"@blitzjs/auth": "2.0.0-beta.32",
"@blitzjs/config": "2.0.0-beta.32",
"@blitzjs/next": "2.0.0-beta.32",
"@prisma/client": "4.6.1",
"blitz": "workspace:2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"lowdb": "3.0.0",
"next": "13.3.0",
"prisma": "4.6.1",

View File

@@ -43,7 +43,7 @@ const runTests = (mode?: string) => {
const browser = await webdriver(appPort, "/authenticated-page")
let errorMsg = await browser.elementById(`error`).text()
expect(errorMsg).toMatch(/Error: You are not authenticated/)
if (browser) browser.close()
if (browser) void browser.close()
},
5000 * 60 * 2,
)

View File

@@ -16,11 +16,11 @@
"schema": "db/schema.prisma"
},
"dependencies": {
"@blitzjs/auth": "workspace:2.0.0-beta.27",
"@blitzjs/next": "workspace:2.0.0-beta.27",
"@blitzjs/rpc": "workspace:2.0.0-beta.27",
"@blitzjs/auth": "2.0.0-beta.32",
"@blitzjs/next": "2.0.0-beta.32",
"@blitzjs/rpc": "2.0.0-beta.32",
"@prisma/client": "4.6.1",
"blitz": "workspace:2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"lowdb": "3.0.0",
"next": "13.3.0",
"prisma": "4.6.1",
@@ -28,7 +28,7 @@
"react-dom": "18.2.0"
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-beta.27",
"@blitzjs/config": "2.0.0-beta.32",
"@next/bundle-analyzer": "12.0.8",
"@types/express": "4.17.13",
"@types/fs-extra": "9.0.13",

View File

@@ -11,10 +11,10 @@
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next"
},
"dependencies": {
"@blitzjs/config": "workspace:2.0.0-beta.27",
"@blitzjs/next": "workspace:2.0.0-beta.27",
"@blitzjs/rpc": "workspace:2.0.0-beta.27",
"blitz": "workspace:2.0.0-beta.27",
"@blitzjs/config": "2.0.0-beta.32",
"@blitzjs/next": "2.0.0-beta.32",
"@blitzjs/rpc": "2.0.0-beta.32",
"blitz": "2.0.0-beta.32",
"next": "13.3.0",
"react": "18.2.0",
"react-dom": "18.2.0"

View File

@@ -17,12 +17,12 @@
"prisma:studio": "prisma studio"
},
"dependencies": {
"@blitzjs/auth": "workspace:2.0.0-beta.27",
"@blitzjs/config": "workspace:2.0.0-beta.27",
"@blitzjs/next": "workspace:2.0.0-beta.27",
"@blitzjs/rpc": "workspace:2.0.0-beta.27",
"@blitzjs/auth": "2.0.0-beta.32",
"@blitzjs/config": "2.0.0-beta.32",
"@blitzjs/next": "2.0.0-beta.32",
"@blitzjs/rpc": "2.0.0-beta.32",
"@prisma/client": "4.6.1",
"blitz": "workspace:2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"lowdb": "3.0.0",
"next": "13.3.0",
"prisma": "4.6.1",

View File

@@ -16,11 +16,11 @@
"prisma:studio": "prisma studio"
},
"dependencies": {
"@blitzjs/auth": "workspace:2.0.0-beta.27",
"@blitzjs/next": "workspace:2.0.0-beta.27",
"@blitzjs/rpc": "workspace:2.0.0-beta.27",
"@blitzjs/auth": "2.0.0-beta.32",
"@blitzjs/next": "2.0.0-beta.32",
"@blitzjs/rpc": "2.0.0-beta.32",
"@prisma/client": "4.6.1",
"blitz": "workspace:2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"lowdb": "3.0.0",
"next": "13.3.0",
"prisma": "4.6.1",
@@ -28,7 +28,7 @@
"react-dom": "18.2.0"
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-beta.27",
"@blitzjs/config": "2.0.0-beta.32",
"@next/bundle-analyzer": "12.0.8",
"@types/express": "4.17.13",
"@types/fs-extra": "9.0.13",

View File

@@ -8,13 +8,13 @@
"clean": "rm -rf .turbo && rm -rf node_modules"
},
"dependencies": {
"@blitzjs/auth": "workspace:2.0.0-beta.27",
"@blitzjs/config": "workspace:2.0.0-beta.27",
"@blitzjs/next": "workspace:2.0.0-beta.27",
"@blitzjs/rpc": "workspace:2.0.0-beta.27",
"@blitzjs/auth": "2.0.0-beta.32",
"@blitzjs/config": "2.0.0-beta.32",
"@blitzjs/next": "2.0.0-beta.32",
"@blitzjs/rpc": "2.0.0-beta.32",
"@prisma/client": "4.6.1",
"@tanstack/react-query": "4.0.10",
"blitz": "workspace:2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"next": "13.3.0",
"prisma": "4.6.1",
"react": "18.2.0",

View File

@@ -16,10 +16,10 @@
"schema": "db/schema.prisma"
},
"dependencies": {
"@blitzjs/next": "workspace:2.0.0-beta.27",
"@blitzjs/rpc": "workspace:2.0.0-beta.27",
"@blitzjs/next": "2.0.0-beta.32",
"@blitzjs/rpc": "2.0.0-beta.32",
"@prisma/client": "4.6.1",
"blitz": "workspace:2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"lowdb": "3.0.0",
"next": "13.3.0",
"prisma": "4.6.1",
@@ -27,7 +27,7 @@
"react-dom": "18.2.0"
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-beta.27",
"@blitzjs/config": "2.0.0-beta.32",
"@next/bundle-analyzer": "12.0.8",
"@types/express": "4.17.13",
"@types/fs-extra": "9.0.13",

View File

@@ -7,10 +7,10 @@
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next"
},
"dependencies": {
"@blitzjs/config": "workspace:2.0.0-beta.27",
"@blitzjs/next": "workspace:2.0.0-beta.27",
"@blitzjs/rpc": "workspace:2.0.0-beta.27",
"blitz": "workspace:2.0.0-beta.27",
"@blitzjs/config": "2.0.0-beta.32",
"@blitzjs/next": "2.0.0-beta.32",
"@blitzjs/rpc": "2.0.0-beta.32",
"blitz": "2.0.0-beta.32",
"next": "13.3.0",
"react": "18.2.0",
"react-dom": "18.2.0"

View File

@@ -7,10 +7,10 @@
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next"
},
"dependencies": {
"@blitzjs/config": "workspace:2.0.0-beta.27",
"@blitzjs/next": "workspace:2.0.0-beta.27",
"@blitzjs/rpc": "workspace:2.0.0-beta.27",
"blitz": "workspace:2.0.0-beta.27",
"@blitzjs/config": "2.0.0-beta.32",
"@blitzjs/next": "2.0.0-beta.32",
"@blitzjs/rpc": "2.0.0-beta.32",
"blitz": "2.0.0-beta.32",
"next": "13.3.0",
"react": "18.2.0",
"react-dom": "18.2.0"

View File

@@ -16,11 +16,11 @@
"schema": "db/schema.prisma"
},
"dependencies": {
"@blitzjs/auth": "workspace:2.0.0-beta.27",
"@blitzjs/next": "workspace:2.0.0-beta.27",
"@blitzjs/rpc": "workspace:2.0.0-beta.27",
"@blitzjs/auth": "2.0.0-beta.32",
"@blitzjs/next": "2.0.0-beta.32",
"@blitzjs/rpc": "2.0.0-beta.32",
"@prisma/client": "4.6.1",
"blitz": "workspace:2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"lowdb": "3.0.0",
"next": "13.3.0",
"prisma": "4.6.1",
@@ -28,7 +28,7 @@
"react-dom": "18.2.0"
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-beta.27",
"@blitzjs/config": "2.0.0-beta.32",
"@next/bundle-analyzer": "12.0.8",
"@types/express": "4.17.13",
"@types/fs-extra": "9.0.13",

View File

@@ -13,7 +13,7 @@
"prepare": "husky install",
"build": "turbo run build",
"build:apps": "turbo run buildapp --concurrency=1",
"dev": "turbo run dev --no-cache --parallel",
"dev": "turbo run dev --filter='./packages/*'",
"lint": "turbo run lint",
"test": "turbo run test",
"clean": "turbo run clean && rm -rf node_modules",
@@ -34,12 +34,12 @@
"prettier": "^2.7.1",
"prettier-plugin-prisma": "4.4.0",
"pretty-quick": "3.1.3",
"turbo": "1.4.2",
"turbo": "1.10.7",
"vitest": "0.25.3",
"wait-on": "6.0.1"
},
"npmClient": "pnpm",
"packageManager": "pnpm@7.11.0",
"packageManager": "pnpm@8.6.6",
"manypkg": {
"ignoredRules": [
"EXTERNAL_MISMATCH"

View File

@@ -1,5 +1,55 @@
# @blitzjs/auth
## 2.0.0-beta.32
### Patch Changes
- 8b01175b4: Updated `useAuthenticatedBlitzContext` to now return `AuthenticatedCtx`
- Updated dependencies [82649f341]
- blitz@2.0.0-beta.32
## 2.0.0-beta.31
### Patch Changes
- 90f1741da: blitz-auth: Support for Prisma v5
Internal: Make `handle` a required paramter while updating the `session` modal.
- Updated dependencies [90f1741da]
- Updated dependencies [df3265b85]
- blitz@2.0.0-beta.31
## 2.0.0-beta.30
### Patch Changes
- c5572bec6: blitz-auth: Fix webpack from following next-auth
- Updated dependencies [c5572bec6]
- Updated dependencies [727734955]
- blitz@2.0.0-beta.30
## 2.0.0-beta.29
### Patch Changes
- b6b9a1c5a: Fix Next-Auth integration: `Unable to use next-auth with provider: Error [ERR_PACKAGE_PATH_NOT_EXPORTED]`
- Updated dependencies [b6b9a1c5a]
- Updated dependencies [61888d1a3]
- blitz@2.0.0-beta.29
## 2.0.0-beta.28
### Minor Changes
- 1bb3a6556: Stop exporting `useAuthenticatedBlitzContext` from `@blitzjs/auth` this must be imported from `app/blitz-server.ts` file in order to work correctly
### Patch Changes
- 5166e5e03: (feat) upgrade tslog to v4.8.2
- Updated dependencies [5166e5e03]
- blitz@2.0.0-beta.28
## 2.0.0-beta.27
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/auth",
"version": "2.0.0-beta.27",
"version": "2.0.0-beta.32",
"homepage": "https://blitzjs.com/",
"repository": {
"type": "git",
@@ -37,6 +37,7 @@
"cookie": "0.4.1",
"cookie-session": "2.0.0",
"debug": "4.3.3",
"find-up": "4.1.0",
"http": "0.0.1-security",
"jsonwebtoken": "9.0.0",
"nanoid": "3.2.0",
@@ -44,11 +45,12 @@
"openid-client": "5.2.1",
"passport": "0.6.0",
"path": "0.12.7",
"resolve-from": "5.0.0",
"supports-color": "8.1.1",
"url": "0.11.0"
},
"peerDependencies": {
"blitz": "2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"next": "*",
"next-auth": "*",
"secure-password": "4.0.0"
@@ -65,7 +67,7 @@
}
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-beta.27",
"@blitzjs/config": "2.0.0-beta.32",
"@testing-library/react": "13.4.0",
"@testing-library/react-hooks": "8.0.1",
"@types/cookie": "0.4.1",
@@ -73,7 +75,7 @@
"@types/jsonwebtoken": "8.5.8",
"@types/react": "18.0.25",
"@types/react-dom": "17.0.14",
"blitz": "2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"next": "13.3.0",
"next-auth": "4.18.7",
"react": "18.2.0",

View File

@@ -1 +1,2 @@
export * from "./passport/adapter"
export * from "./next-auth/webpack"

View File

@@ -1,3 +1,2 @@
export * from "./next-auth/adapter"
export * from "./next-auth/types"
export * from "./next-auth/webpack"

View File

@@ -27,7 +27,9 @@ import type {
} from "./types"
import {Provider} from "next-auth/providers"
export {withNextAuthAdapter} from "./webpack"
import {init} from "next-auth/core/init"
import getAuthorizationUrl from "next-auth/core/lib/oauth/authorization-url"
import oAuthCallback from "next-auth/core/lib/oauth/callback"
const INTERNAL_REDIRECT_URL_KEY = "_redirectUrl"
@@ -102,7 +104,6 @@ export function NextAuthAdapter<P extends Provider[]>(
if (providerId?.includes("?")) {
providerId = providerId.split("?")[0]
}
const {init} = await import("next-auth/core/init").then((m) => m)
const {options, cookies} = await init({
// @ts-ignore
url: new URL(
@@ -158,9 +159,6 @@ async function AuthHandler<P extends Provider[]>(
if (action === "login") {
middleware.push(async (req, res, next) => {
try {
const getAuthorizationUrl = await import("next-auth/core/lib/oauth/authorization-url").then(
(m) => m.default,
)
const _signin = await getAuthorizationUrl({options: options, query: req.query})
if (_signin.cookies) cookies.push(..._signin.cookies)
const session = res.blitzCtx.session as SessionContext
@@ -191,9 +189,6 @@ async function AuthHandler<P extends Provider[]>(
middleware.push(
// eslint-disable-next-line no-shadow
connectMiddleware(async (req, res, next) => {
const oAuthCallback = await import("next-auth/core/lib/oauth/callback").then(
(m) => m.default,
)
try {
const {profile, account, OAuthProfile} = await oAuthCallback({
query: internalRequest.query,

View File

@@ -1,15 +1,30 @@
//@ts-nocheck
import path from "path"
export function withNextAuthAdapter(nextConfig) {
const config = Object.assign({}, nextConfig)
config.webpack = (config) => {
//add a required resolve alias
config.resolve.alias["next-auth/core/lib/oauth/callback"] =
process.cwd() + "/node_modules/next-auth/core/lib/oauth/callback.js"
config.resolve.alias["next-auth/core/lib/oauth/authorization-url"] =
process.cwd() + "/node_modules/next-auth/core/lib/oauth/authorization-url.js"
config.resolve.alias["next-auth/core/init"] =
process.cwd() + "/node_modules/next-auth/core/init.js"
try {
const nextAuthPath = path.dirname(require.resolve("next-auth"))
const webpack = (config) => {
config.resolve.alias = {
...config.resolve.alias,
"next-auth/core/lib/oauth/callback": path.join(nextAuthPath, "core/lib/oauth/callback.js"),
"next-auth/core/lib/oauth/authorization-url": path.join(
nextAuthPath,
"core/lib/oauth/authorization-url.js",
),
"next-auth/core/init": path.join(nextAuthPath, "core/init.js"),
}
return config
}
if (typeof nextConfig.webpack === "function") {
config.webpack = (config, options) => {
return nextConfig.webpack(webpack(config), options)
}
}
config.webpack = webpack
return config
} catch (e) {
return config
}
return config
}

View File

@@ -31,7 +31,7 @@ interface PrismaClientWithSession {
}): Promise<SessionModel>
update(args: {
data: Partial<SessionModel>
where: {handle?: SessionModel["handle"]}
where: {handle: SessionModel["handle"]}
}): Promise<SessionModel>
delete(args: {where: {handle?: SessionModel["handle"]}}): Promise<SessionModel>
}

View File

@@ -15,6 +15,7 @@ import {
log,
baseLogger,
chalk,
AuthenticatedCtx,
} from "blitz"
import {
EmptyPublicData,
@@ -219,8 +220,8 @@ export async function useAuthenticatedBlitzContext({
redirectTo?: string | RouteUrlObject
redirectAuthenticatedTo?: string | RouteUrlObject | ((ctx: Ctx) => string | RouteUrlObject)
role?: string | string[]
}): Promise<void> {
const log = baseLogger().getChildLogger()
}): Promise<AuthenticatedCtx> {
const log = baseLogger().getSubLogger({name: "useAuthenticatedBlitzContext"})
const customChalk = new chalk.Instance({
level: log.settings.type === "json" ? 0 : chalk.level,
})
@@ -268,6 +269,7 @@ export async function useAuthenticatedBlitzContext({
redirect(redirectTo)
}
}
return ctx as AuthenticatedCtx
}
const makeProxyToPublicData = <T extends SessionContextClass>(ctxClass: T): T => {

View File

@@ -1,4 +1,16 @@
export * from "./auth-sessions"
export * from "./auth-utils"
export * from "./auth-plugin"
export * from "./adapters"
export {
SessionContextClass,
getAllSessionHandlesForUser,
getCookieParser,
getSession,
isLocalhost,
setPublicDataForUser,
setCookie,
simpleRolesIsAuthorized,
getBlitzContext,
} from "./auth-sessions"
export type {AnonymousSessionPayload, SimpleRolesIsAuthorized} from "./auth-sessions"

View File

@@ -82,7 +82,7 @@ declare module "blitz" {
export interface Ctx {
session: SessionContext
}
export interface AuthenticatedMiddlewareCtx extends Omit<Ctx, "session"> {
export interface AuthenticatedCtx extends Omit<Ctx, "session"> {
session: AuthenticatedSessionContext
}
}

View File

@@ -0,0 +1,11 @@
{
"$schema": "https://turbo.build/schema.json",
"extends": ["//"],
"pipeline": {
"dev": {
"dependsOn": ["blitz#build"],
"persistent": true,
"cache": false
}
}
}

View File

@@ -1,5 +1,55 @@
# @blitzjs/next
## 2.0.0-beta.32
### Patch Changes
- 82649f341: Upgrade tslog to `4.9.0`.
This due a [tslog issue](https://github.com/fullstack-build/tslog/issues/227) that causes tslog to crash when attempting to log an error whose constructor expects more than one argument.
- Updated dependencies [82649f341]
- blitz@2.0.0-beta.32
- @blitzjs/rpc@2.0.0-beta.32
## 2.0.0-beta.31
### Patch Changes
- Updated dependencies [90f1741da]
- Updated dependencies [df3265b85]
- blitz@2.0.0-beta.31
- @blitzjs/rpc@2.0.0-beta.31
## 2.0.0-beta.30
### Patch Changes
- Updated dependencies [c5572bec6]
- Updated dependencies [727734955]
- blitz@2.0.0-beta.30
- @blitzjs/rpc@2.0.0-beta.30
## 2.0.0-beta.29
### Patch Changes
- Updated dependencies [b6b9a1c5a]
- Updated dependencies [61888d1a3]
- blitz@2.0.0-beta.29
- @blitzjs/rpc@2.0.0-beta.29
## 2.0.0-beta.28
### Patch Changes
- 5166e5e03: (feat) upgrade tslog to v4.8.2
- Updated dependencies [5166e5e03]
- Updated dependencies [2533caf48]
- Updated dependencies [c7ac86b85]
- @blitzjs/rpc@2.0.0-beta.28
- blitz@2.0.0-beta.28
## 2.0.0-beta.27
### Minor Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/next",
"version": "2.0.0-beta.27",
"version": "2.0.0-beta.32",
"homepage": "https://blitzjs.com/",
"repository": {
"type": "git",
@@ -29,7 +29,7 @@
"eslint.js"
],
"dependencies": {
"@blitzjs/rpc": "2.0.0-beta.27",
"@blitzjs/rpc": "2.0.0-beta.32",
"@types/hoist-non-react-statics": "3.3.1",
"debug": "4.3.3",
"fs-extra": "10.0.1",
@@ -38,22 +38,24 @@
"supports-color": "8.1.1"
},
"peerDependencies": {
"blitz": "2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"next": "*",
"react": "*"
"react": "*",
"tslog": "*"
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-beta.27",
"@blitzjs/config": "2.0.0-beta.32",
"@testing-library/dom": "8.13.0",
"@testing-library/jest-dom": "5.16.3",
"@testing-library/react": "13.4.0",
"@testing-library/react-hooks": "8.0.1",
"@testing-library/user-event": "13.5.0",
"@types/debug": "4.1.7",
"@types/node": "18.11.9",
"@types/react": "18.0.25",
"@types/react-dom": "17.0.14",
"@types/testing-library__react-hooks": "4.0.0",
"blitz": "2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"cross-spawn": "7.0.3",
"find-up": "4.1.0",
"next": "13.3.0",
@@ -62,6 +64,7 @@
"react-dom": "18.2.0",
"resolve-from": "5.0.0",
"ts-jest": "27.1.4",
"tslog": "4.9.0",
"typescript": "^4.8.4",
"unbuild": "0.7.6",
"watch": "1.0.2"

View File

@@ -211,8 +211,9 @@ test("withErrorBoundary HOC", () => {
expect(cleanStack(onErrorComponentStack)).toMatchInlineSnapshot(`
{
"componentStack": "
at ErrorBoundaryRoot
at withRouter
at __vite_ssr_import_4__.withErrorBoundary.FallbackComponent
at ErrorBoundaryRoot
at WithRouterWrapper
at withErrorBoundary",
}
`)

View File

@@ -3,6 +3,7 @@ import {NextRouter, withRouter} from "next/router"
import * as React from "react"
import {RouterContext} from "./router-context"
import _debug from "debug"
import {ExcludeRouterProps} from "next/dist/client/with-router"
const debug = _debug("blitz:errorboundary")
@@ -72,7 +73,9 @@ type ErrorBoundaryState = {error: Error | null}
const initialState: ErrorBoundaryState = {error: null}
const ErrorBoundary = withRouter(
const ErrorBoundary: React.ComponentType<
ExcludeRouterProps<React.PropsWithChildren<ErrorBoundaryProps>>
> = withRouter(
class ErrorBoundaryRoot extends React.Component<
React.PropsWithRef<React.PropsWithChildren<ErrorBoundaryProps>>,
ErrorBoundaryState

View File

@@ -230,6 +230,7 @@ export const setupBlitzServer = <TPlugins extends readonly BlitzServerPlugin<obj
export interface BlitzConfig extends NextConfig {
blitz?: {
resolverPath?: ResolverPathOptions
resolversDynamicImport?: boolean
includeRPCFolders?: string[]
customServer?: {
hotReload?: boolean
@@ -261,6 +262,8 @@ export function withBlitz(nextConfig: BlitzConfig = {}): NextConfig {
webpackConfig: config,
webpackRuleOptions: {
resolverPath: nextConfig.blitz?.resolverPath,
resolversDynamicImport:
nextConfig.blitz?.resolversDynamicImport ?? Boolean(process.env.VERCEL),
includeRPCFolders: nextConfig.blitz?.includeRPCFolders,
},
})

View File

@@ -0,0 +1,11 @@
{
"$schema": "https://turbo.build/schema.json",
"extends": ["//"],
"pipeline": {
"dev": {
"dependsOn": ["@blitzjs/rpc#build", "blitz#build"],
"persistent": true,
"cache": false
}
}
}

View File

@@ -1,5 +1,134 @@
# @blitzjs/rpc
## 2.0.0-beta.32
### Patch Changes
- Updated dependencies [82649f341]
- blitz@2.0.0-beta.32
## 2.0.0-beta.31
### Patch Changes
- Updated dependencies [90f1741da]
- Updated dependencies [df3265b85]
- blitz@2.0.0-beta.31
## 2.0.0-beta.30
### Patch Changes
- 727734955: ### Now we can configure Blitz RPC in the following way,
In your `[[...blitz]].ts` api file you can see the following settings
```ts
logging?: {
/**
* allowList Represents the list of routes for which logging should be enabled
* If whiteList is defined then only those routes will be logged
*/
allowList?: string[]
/**
* blockList Represents the list of routes for which logging should be disabled
* If blockList is defined then all routes except those will be logged
*/
blockList?: string[]
/**
* verbose Represents the flag to enable/disable logging
* If verbose is true then Blitz RPC will log the input and output of each resolver
*/
verbose?: boolean
/**
* disablelevel Represents the flag to enable/disable logging for a particular level
*/
disablelevel?: "debug" | "info"
}
```
```ts
import { rpcHandler } from "@blitzjs/rpc"
import { api } from "src/blitz-server"
export default api(
rpcHandler({
onError: console.log,
formatError: (error) => {
error.message = `FormatError handler: ${error.message}`
return error
},
logging: {
...
}
})
)
```
Example:
```ts
export default api(
rpcHandler({
onError: console.log,
formatError: (error) => {
error.message = `FormatError handler: ${error.message}`
return error
},
logging: {
verbose: true,
blockList: ["getCurrentUser", ...], //just write the resolver name [which is the resolver file name]
},
})
)
```
This is enable verbose blitz rpc logging for all resolvers except the resolvers `getCurrentUser` and others mentioned in the `blockList`
- Updated dependencies [c5572bec6]
- Updated dependencies [727734955]
- blitz@2.0.0-beta.30
## 2.0.0-beta.29
### Patch Changes
- Updated dependencies [b6b9a1c5a]
- Updated dependencies [61888d1a3]
- blitz@2.0.0-beta.29
## 2.0.0-beta.28
### Patch Changes
- 5166e5e03: (feat) upgrade tslog to v4.8.2
- 2533caf48: Fix return type of `requestMiddlewares` in `RpcServerPlugin`
- c7ac86b85: Fixes enormous memory consumption of the dev server by changing the default import strategy to "require" instead of "import" which in webpack causes multiple chunks to be created for each import.
## Blitz Configuration
To configure this behaviour, you can add the following to your next.config.js:
```js
/**
* @type {import('@blitzjs/next').BlitzConfig}
**/
const config = {
blitz: {
resolversDynamicImport: true,
},
}
```
When `resolversDynamicImport` is set to `true`, the import strategy will be "import" instead of "require".
### On Vercel
If you are using Vercel, `resolversDynamicImport` will be set to `true` by default, since it is better for the separate chunks to be create for serverless lambdas.
- Updated dependencies [5166e5e03]
- blitz@2.0.0-beta.28
## 2.0.0-beta.27
### Minor Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/rpc",
"version": "2.0.0-beta.27",
"version": "2.0.0-beta.32",
"homepage": "https://blitzjs.com/",
"repository": {
"type": "git",
@@ -37,18 +37,18 @@
},
"peerDependencies": {
"@tanstack/query-core": "4.24.4",
"blitz": "2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"next": "*",
"react": "*"
},
"devDependencies": {
"@blitzjs/auth": "2.0.0-beta.27",
"@blitzjs/config": "workspace:2.0.0-beta.27",
"@blitzjs/auth": "2.0.0-beta.32",
"@blitzjs/config": "2.0.0-beta.32",
"@tanstack/query-core": "4.24.4",
"@types/debug": "4.1.7",
"@types/react": "18.0.25",
"@types/react-dom": "17.0.14",
"blitz": "2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"next": "13.3.0",
"react": "18.2.0",
"react-dom": "18.2.0",

View File

@@ -3,6 +3,7 @@ import {NextApiRequest, NextApiResponse} from "next"
import {deserialize, parse, serialize as superjsonSerialize} from "superjson"
import {resolve} from "path"
import chalk from "chalk"
import {LoaderOptions} from "./server/loader/utils/loader-utils"
// TODO - optimize end user server bundles by not exporting all client stuff here
export * from "./index-browser"
@@ -60,16 +61,11 @@ const loaderClient = resolve(dir, "./loader-client.cjs")
const loaderServer = resolve(dir, "./loader-server.cjs")
const loaderServerResolvers = resolve(dir, "./loader-server-resolvers.cjs")
interface WebpackRuleOptions {
resolverPath: ResolverPathOptions | undefined
includeRPCFolders: string[] | undefined
}
interface WebpackRule {
test: RegExp
use: Array<{
loader: string
options: WebpackRuleOptions
options: LoaderOptions
}>
}
@@ -84,7 +80,7 @@ export interface InstallWebpackConfigOptions {
rules: WebpackRule[]
}
}
webpackRuleOptions: WebpackRuleOptions
webpackRuleOptions: LoaderOptions
}
export function installWebpackConfig({
@@ -150,6 +146,59 @@ async function getResolverMap(): Promise<ResolverFiles | null | undefined> {
interface RpcConfig {
onError?: (error: Error) => void
formatError?: (error: Error) => Error
logging?: {
/**
* allowList Represents the list of routes for which logging should be enabled
* If allowList is defined then only those routes will be logged
*/
allowList?: string[]
/**
* blockList Represents the list of routes for which logging should be disabled
* If blockList is defined then all routes except those will be logged
*/
blockList?: string[]
/**
* verbose Represents the flag to enable/disable logging
* If verbose is true then Blitz RPC will log the input and output of each resolver
*/
verbose?: boolean
/**
* disablelevel Represents the flag to enable/disable logging for a particular level
*/
disablelevel?: "debug" | "info"
}
}
function isBlitzRPCVerbose(resolverName: string, config: RpcConfig, level: string) {
// blitz rpc is by default verbose - to keep current behaviour
if (!config.logging) {
return true
}
//if logging exists and verbose is not defined then default to true
if (config.logging && !("verbose" in config.logging)) {
return true
}
const isLevelDisabled = config.logging?.disablelevel === level
if (config.logging?.verbose) {
// If allowList array is defined then allow only those routes in allowList
if (config.logging?.allowList) {
if (config.logging?.allowList?.includes(resolverName) && !isLevelDisabled) {
return true
}
}
// If blockList array is defined then allow all routes except those in blockList
if (config.logging?.blockList) {
if (!config.logging?.blockList?.includes(resolverName) && !isLevelDisabled) {
return true
}
}
// if both allowList and blockList are not defined, then allow all routes
if (!config.logging?.allowList && !config.logging?.blockList && !isLevelDisabled) {
return true
}
return false
}
return false
}
export function rpcHandler(config: RpcConfig) {
@@ -163,9 +212,11 @@ export function rpcHandler(config: RpcConfig) {
const relativeRoutePath = (req.query.blitz as string[])?.join("/")
const routePath = "/" + relativeRoutePath
const resolverName = routePath.replace(/(\/api\/rpc)?\//, "")
const log = baseLogger().getChildLogger({
prefix: [routePath.replace(/(\/api\/rpc)?\//, "") + "()"],
const log = baseLogger().getSubLogger({
name: "blitz-rpc",
prefix: [resolverName + "()"],
})
const customChalk = new chalk.Instance({
level: log.settings.type === "json" ? 0 : chalk.level,
@@ -216,11 +267,16 @@ export function rpcHandler(config: RpcConfig) {
? parse(`${req.query.meta}`)
: undefined,
})
log.info(customChalk.dim("Starting with input:"), data ? data : JSON.stringify(data))
if (isBlitzRPCVerbose(resolverName, config, "info")) {
log.info(customChalk.dim("Starting with input:"), data ? data : JSON.stringify(data))
}
const startTime = Date.now()
const result = await resolver(data, (res as any).blitzCtx)
const resolverDuration = Date.now() - startTime
log.debug(customChalk.dim("Result:"), result ? result : JSON.stringify(result))
if (isBlitzRPCVerbose(resolverName, config, "debug")) {
log.debug(customChalk.dim("Result:"), result ? result : JSON.stringify(result))
}
const serializerStartTime = Date.now()
const serializedResult = superjsonSerialize(result)
@@ -234,21 +290,26 @@ export function rpcHandler(config: RpcConfig) {
result: serializedResult.meta,
},
})
log.debug(
customChalk.dim(
`Next.js serialization:${prettyMs(Date.now() - nextSerializerStartTime)}`,
),
)
if (isBlitzRPCVerbose(resolverName, config, "debug")) {
log.debug(
customChalk.dim(
`Next.js serialization:${prettyMs(Date.now() - nextSerializerStartTime)}`,
),
)
}
const serializerDuration = Date.now() - serializerStartTime
const duration = Date.now() - startTime
log.info(
customChalk.dim(
`Finished: resolver:${prettyMs(resolverDuration)} serializer:${prettyMs(
serializerDuration,
)} total:${prettyMs(duration)}`,
),
)
if (isBlitzRPCVerbose(resolverName, config, "info")) {
log.info(
customChalk.dim(
`Finished: resolver:${prettyMs(resolverDuration)} serializer:${prettyMs(
serializerDuration,
)} total:${prettyMs(duration)}`,
),
)
}
newLine()
return

View File

@@ -64,12 +64,14 @@ export async function transformBlitzRpcServer(
extraRpcBasePaths: options?.includeRPCFolders,
})
code += `__internal_addBlitzRpcResolver('${routePath}',() => import('${slash(
const importStrategy = options?.resolversDynamicImport ? "import" : "require"
code += `__internal_addBlitzRpcResolver('${routePath}',() => ${importStrategy}('${slash(
resolverFilePath,
)}'));`
code += "\n"
}
// console.log("NEW CODE", code)
return code
}

View File

@@ -3,8 +3,9 @@ import {posix, sep, win32, join, normalize} from "path"
import {ResolverPathOptions} from "../../../index-server"
export interface LoaderOptions {
resolverPath: ResolverPathOptions
resolverPath?: ResolverPathOptions
includeRPCFolders?: string[]
resolversDynamicImport?: boolean
}
export interface Loader {

View File

@@ -1,9 +1,9 @@
import {createServerPlugin} from "blitz"
import {RequestMiddleware, createServerPlugin} from "blitz"
import {invoke} from "../client/invoke"
export const RpcServerPlugin = createServerPlugin(() => {
return {
requestMiddlewares: [],
requestMiddlewares: [] as RequestMiddleware<any, any, void | Promise<void>>[],
exports: () => ({
invoke,
}),

View File

@@ -1,5 +1,5 @@
import type {SessionContext, SessionContextBase} from "@blitzjs/auth"
import {Await, Ctx, EnsurePromise, AuthenticatedMiddlewareCtx} from "blitz"
import {Await, Ctx, EnsurePromise, AuthenticatedCtx} from "blitz"
import type {input as zInput, output as zOutput, ZodTypeAny} from "zod"
export type ParserType = "sync" | "async"
@@ -271,7 +271,7 @@ interface ResolverAuthorize {
<T, C = Ctx>(...args: Parameters<SessionContextBase["$authorize"]>): (
input: T,
ctx: C,
) => ResultWithContext<T, AuthenticatedMiddlewareCtx>
) => ResultWithContext<T, AuthenticatedCtx>
}
const authorize: ResolverAuthorize = (...args) => {

View File

@@ -0,0 +1,11 @@
{
"$schema": "https://turbo.build/schema.json",
"extends": ["//"],
"pipeline": {
"dev": {
"dependsOn": ["@blitzjs/auth#build", "blitz#build"],
"persistent": true,
"cache": false
}
}
}

View File

@@ -1,5 +1,118 @@
# blitz
## 2.0.0-beta.32
### Patch Changes
- 82649f341: Upgrade tslog to `4.9.0`.
This due a [tslog issue](https://github.com/fullstack-build/tslog/issues/227) that causes tslog to crash when attempting to log an error whose constructor expects more than one argument.
- Updated dependencies [47c6b62dc]
- Updated dependencies [82649f341]
- @blitzjs/generator@2.0.0-beta.32
## 2.0.0-beta.31
### Patch Changes
- 90f1741da: blitz-auth: Support for Prisma v5
Internal: Make `handle` a required paramter while updating the `session` modal.
- df3265b85: blitz-rpc: Cleanup Event Listeners - Fix potential memory leak by cleaning up any residual event listeners set by blitz.
- @blitzjs/generator@2.0.0-beta.31
## 2.0.0-beta.30
### Patch Changes
- c5572bec6: blitz-auth: Fix webpack from following next-auth
- 727734955: ### Now we can configure Blitz RPC in the following way,
In your `[[...blitz]].ts` api file you can see the following settings
```ts
logging?: {
/**
* allowList Represents the list of routes for which logging should be enabled
* If whiteList is defined then only those routes will be logged
*/
allowList?: string[]
/**
* blockList Represents the list of routes for which logging should be disabled
* If blockList is defined then all routes except those will be logged
*/
blockList?: string[]
/**
* verbose Represents the flag to enable/disable logging
* If verbose is true then Blitz RPC will log the input and output of each resolver
*/
verbose?: boolean
/**
* disablelevel Represents the flag to enable/disable logging for a particular level
*/
disablelevel?: "debug" | "info"
}
```
```ts
import { rpcHandler } from "@blitzjs/rpc"
import { api } from "src/blitz-server"
export default api(
rpcHandler({
onError: console.log,
formatError: (error) => {
error.message = `FormatError handler: ${error.message}`
return error
},
logging: {
...
}
})
)
```
Example:
```ts
export default api(
rpcHandler({
onError: console.log,
formatError: (error) => {
error.message = `FormatError handler: ${error.message}`
return error
},
logging: {
verbose: true,
blockList: ["getCurrentUser", ...], //just write the resolver name [which is the resolver file name]
},
})
)
```
This is enable verbose blitz rpc logging for all resolvers except the resolvers `getCurrentUser` and others mentioned in the `blockList`
- @blitzjs/generator@2.0.0-beta.30
## 2.0.0-beta.29
### Patch Changes
- b6b9a1c5a: Fix Next-Auth integration: `Unable to use next-auth with provider: Error [ERR_PACKAGE_PATH_NOT_EXPORTED]`
- 61888d1a3: Fix log formatting to not show the path of blitz rpc
- Updated dependencies [7aef610d8]
- @blitzjs/generator@2.0.0-beta.29
## 2.0.0-beta.28
### Patch Changes
- 5166e5e03: (feat) upgrade tslog to v4.8.2
- Updated dependencies [5166e5e03]
- @blitzjs/generator@2.0.0-beta.28
## 2.0.0-beta.27
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "blitz",
"version": "2.0.0-beta.27",
"version": "2.0.0-beta.32",
"homepage": "https://blitzjs.com/",
"repository": {
"type": "git",
@@ -30,7 +30,7 @@
"blitz": "bin/blitz"
},
"dependencies": {
"@blitzjs/generator": "2.0.0-beta.27",
"@blitzjs/generator": "2.0.0-beta.32",
"@mrleebo/prisma-ast": "0.2.6",
"@types/global-agent": "2.1.1",
"arg": "5.0.1",
@@ -76,11 +76,11 @@
"tar": "6.1.11",
"ts-node": "10.9.1",
"tsconfig-paths": "4.0.0",
"tslog": "3.3.4",
"tslog": "4.9.0",
"watchpack": "2.1.1"
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-beta.27",
"@blitzjs/config": "2.0.0-beta.32",
"@types/cookie": "0.4.1",
"@types/cross-spawn": "6.0.2",
"@types/debug": "4.1.7",

View File

@@ -45,7 +45,7 @@ const pipeline = promisify(Stream.pipeline)
const got = async (url: string) => {
return require("got")(url).catch((e: any) => {
if (e.response.statusCode === 403) {
baseLogger({displayDateTime: false}).error(e.response.body)
baseLogger().error(e.response.body)
} else {
return e
}
@@ -264,7 +264,7 @@ const install: CliCommand = async () => {
if (!(await isUrlValid(packageJsonPath))) {
debug("Url is invalid for ", packageJsonPath)
baseLogger({displayDateTime: false}).error(`Could not find recipe "${args._[1]}"\n`)
baseLogger().error(`Could not find recipe "${args._[1]}"\n`)
console.log(`${chalk.bold("Please provide one of the following:")}
1. The name of a recipe to install (e.g. "tailwind")

View File

@@ -5,4 +5,5 @@ declare global {
beforeHttpRequest: BeforeHttpRequest
beforeHttpResponse: BeforeHttpResponse
}
var __BLITZ_CLEAN_UP_LISTENERS: () => void
}

View File

@@ -41,11 +41,9 @@ export class RecipeExecutor<Options extends RecipeMeta> {
{exitOnCtrlC: false},
)
await waitUntilExit()
baseLogger({displayDateTime: false, displayLogLevel: false}).info(
`\n🎉 The ${this.options.name} recipe has been installed!\n`,
)
baseLogger().info(`\n🎉 The ${this.options.name} recipe has been installed!\n`)
} catch (e) {
baseLogger({displayDateTime: false}).error(e as any)
baseLogger().error(e as any)
return
}
}

View File

@@ -1,18 +1,18 @@
import {ISettingsParam, Logger, TLogLevelName} from "tslog"
import {ILogObj, ISettingsParam, Logger} from "tslog"
import c from "chalk"
import {Table} from "console-table-printer"
import ora from "ora"
import readline from "readline"
export type BlitzLoggerSettings = ISettingsParam
export type BlitzLogLevel = TLogLevelName
export type BlitzLoggerSettings = ISettingsParam<ILogObj>
export type BlitzLogLevel = "trace" | "debug" | "info" | "warn" | "error" | "fatal"
declare namespace globalThis {
let _blitz_baseLogger: Logger
let _blitz_baseLogger: Logger<ILogObj>
let _blitz_logLevel: BlitzLogLevel
}
export const baseLogger = (options: BlitzLoggerSettings = {}): Logger => {
export const baseLogger = (options: BlitzLoggerSettings = {}): Logger<ILogObj> => {
if (globalThis._blitz_baseLogger) return globalThis._blitz_baseLogger
globalThis._blitz_baseLogger = BlitzLogger(options)
@@ -22,34 +22,18 @@ export const baseLogger = (options: BlitzLoggerSettings = {}): Logger => {
export const BlitzLogger = (settings: BlitzLoggerSettings = {}) => {
const baseLogger = new Logger({
minLevel: "info",
type: "pretty",
dateTimePattern:
process.env.NODE_ENV === "production"
? "year-month-day hour:minute:second.millisecond"
: "hour:minute:second.millisecond",
displayFunctionName: false,
displayFilePath: "hidden",
displayRequestId: false,
dateTimeTimezone:
process.env.NODE_ENV === "production"
? "utc"
: Intl.DateTimeFormat().resolvedOptions().timeZone,
prettyInspectHighlightStyles: {
name: "yellow",
number: "blue",
bigint: "blue",
boolean: "blue",
},
prettyLogTimeZone: process.env.NODE_ENV === "production" ? "UTC" : "local",
maskValuesOfKeys: ["password", "passwordConfirmation", "currentPassword"],
exposeErrorCodeFrame: process.env.NODE_ENV !== "production",
type: process.env.NODE_ENV === "production" ? "json" : "pretty",
prettyLogTemplate:
"{{yyyy}}.{{mm}}.{{dd}} {{hh}}:{{MM}}:{{ss}}:{{ms}}\t{{logLevelName}}\t[{{name}}]\t",
...settings,
})
return baseLogger
}
export const initializeLogger = (logger: Logger) => {
export const initializeLogger = (logger: Logger<ILogObj>) => {
globalThis._blitz_baseLogger = logger
}

View File

@@ -89,13 +89,23 @@ export function reduceBlitzClientPlugins<TPlugins extends readonly ClientPlugin<
globalThis.__BLITZ_MIDDLEWARE_HOOKS = middleware
if (isClient) {
document.addEventListener("blitz:session-created", async () => {
if (globalThis.__BLITZ_CLEAN_UP_LISTENERS) {
globalThis.__BLITZ_CLEAN_UP_LISTENERS()
}
const onSessionCreated = async () => {
await Promise.all(events.onSessionCreated())
})
document.addEventListener("blitz:rpc-error", async (e) => {
}
const onRpcError = async (e: Event): Promise<void> => {
const customEvent = e as CustomEvent<Error>
await Promise.all(events.onRpcError(customEvent.detail))
})
}
document.addEventListener("blitz:session-created", onSessionCreated)
document.addEventListener("blitz:rpc-error", onRpcError)
globalThis.__BLITZ_CLEAN_UP_LISTENERS = () => {
document.removeEventListener("blitz:session-created", onSessionCreated)
document.removeEventListener("blitz:rpc-error", onRpcError)
}
}
const withPlugins = compose(...providers)

View File

@@ -2,7 +2,7 @@ import {UrlObject} from "url"
// Context for plugins to declaration merge stuff into
export interface Ctx {}
export interface AuthenticatedMiddlewareCtx {}
export interface AuthenticatedCtx {}
export type CodegenField = {
component: string
@@ -17,7 +17,7 @@ export interface RouteUrlObject extends Pick<UrlObject, "pathname" | "query" | "
href: string
}
export interface AuthenticatedMiddlewareCtx {}
export interface AuthenticatedCtx {}
export type EventHooks = {
onSessionCreated?: OnSessionCreated

11
packages/blitz/turbo.json Normal file
View File

@@ -0,0 +1,11 @@
{
"$schema": "https://turbo.build/schema.json",
"extends": ["//"],
"pipeline": {
"dev": {
"dependsOn": ["@blitzjs/generator#build"],
"persistent": true,
"cache": false
}
}
}

View File

@@ -1,5 +1,50 @@
# @blitzjs/codemod
## 2.0.0-beta.32
### Patch Changes
- Updated dependencies [47c6b62dc]
- Updated dependencies [82649f341]
- @blitzjs/generator@2.0.0-beta.32
- blitz@2.0.0-beta.32
## 2.0.0-beta.31
### Patch Changes
- Updated dependencies [90f1741da]
- Updated dependencies [df3265b85]
- blitz@2.0.0-beta.31
- @blitzjs/generator@2.0.0-beta.31
## 2.0.0-beta.30
### Patch Changes
- Updated dependencies [c5572bec6]
- Updated dependencies [727734955]
- blitz@2.0.0-beta.30
- @blitzjs/generator@2.0.0-beta.30
## 2.0.0-beta.29
### Patch Changes
- Updated dependencies [7aef610d8]
- Updated dependencies [b6b9a1c5a]
- Updated dependencies [61888d1a3]
- @blitzjs/generator@2.0.0-beta.29
- blitz@2.0.0-beta.29
## 2.0.0-beta.28
### Patch Changes
- Updated dependencies [5166e5e03]
- blitz@2.0.0-beta.28
- @blitzjs/generator@2.0.0-beta.28
## 2.0.0-beta.27
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/codemod",
"version": "2.0.0-beta.27",
"version": "2.0.0-beta.32",
"scripts": {
"build": "unbuild",
"dev": "watch unbuild src --wait=0.2",
@@ -25,9 +25,9 @@
"@babel/plugin-proposal-class-properties": "7.17.12",
"@babel/plugin-syntax-jsx": "7.17.12",
"@babel/plugin-syntax-typescript": "7.17.12",
"@blitzjs/generator": "2.0.0-beta.27",
"@blitzjs/generator": "2.0.0-beta.32",
"arg": "5.0.1",
"blitz": "2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"chalk": "^4.1.0",
"cross-spawn": "7.0.3",
"debug": "4.3.3",
@@ -38,7 +38,7 @@
},
"devDependencies": {
"@babel/preset-env": "7.12.10",
"@blitzjs/config": "workspace:*",
"@blitzjs/config": "2.0.0-beta.32",
"@types/jscodeshift": "0.11.2",
"@types/node": "18.11.9",
"ast-types": "0.14.2",

View File

@@ -1,5 +1,15 @@
# @blitzjs/config
## 2.0.0-beta.32
## 2.0.0-beta.31
## 2.0.0-beta.30
## 2.0.0-beta.29
## 2.0.0-beta.28
## 2.0.0-beta.27
## 2.0.0-beta.26

View File

@@ -1,7 +1,7 @@
{
"name": "@blitzjs/config",
"private": true,
"version": "2.0.0-beta.27",
"version": "2.0.0-beta.32",
"license": "MIT",
"dependencies": {
"@typescript-eslint/eslint-plugin": "5.42.1",

View File

@@ -1,5 +1,30 @@
# @blitzjs/generator
## 2.0.0-beta.32
### Patch Changes
- 47c6b62dc: Update examples of generate all in docs to include one column in model.
- 82649f341: Upgrade tslog to `4.9.0`.
This due a [tslog issue](https://github.com/fullstack-build/tslog/issues/227) that causes tslog to crash when attempting to log an error whose constructor expects more than one argument.
## 2.0.0-beta.31
## 2.0.0-beta.30
## 2.0.0-beta.29
### Patch Changes
- 7aef610d8: Make Next.js version stick to 13.4.5 when generating a new app
## 2.0.0-beta.28
### Patch Changes
- 5166e5e03: (feat) upgrade tslog to v4.8.2
## 2.0.0-beta.27
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/generator",
"version": "2.0.0-beta.27",
"version": "2.0.0-beta.32",
"homepage": "https://blitzjs.com/",
"repository": {
"type": "git",
@@ -48,13 +48,13 @@
"prettier": "^2.7.1",
"recast": "0.20.5",
"supports-color": "8.1.1",
"tslog": "3.3.4",
"tslog": "4.9.0",
"username": "5.1.0",
"vinyl": "2.2.1",
"zod": "3.20.2"
},
"devDependencies": {
"@blitzjs/config": "2.0.0-beta.27",
"@blitzjs/config": "2.0.0-beta.32",
"@juanm04/cpx": "2.0.1",
"@types/babel__core": "7.1.19",
"@types/diff": "5.0.2",

View File

@@ -90,8 +90,8 @@ export class AppGenerator extends Generator<AppGeneratorOptions> {
gitInitSuccessful = initResult.status === 0
if (!gitInitSuccessful) {
baseLogger({displayDateTime: false}).warn("Failed to run git init.")
baseLogger({displayDateTime: false}).warn(
baseLogger().warn("Failed to run git init.")
baseLogger().warn(
"Find out more about how to install git here: https://git-scm.com/downloads.",
)
}

View File

@@ -1,4 +1,4 @@
import {ISettingsParam, Logger} from "tslog"
import {ILogObj, ISettingsParam, Logger} from "tslog"
import c from "chalk"
import {Table} from "console-table-printer"
import ora from "ora"
@@ -8,7 +8,7 @@ import {defaultConfig} from "./default-config"
// eslint-disable-next-line
declare module globalThis {
let _blitz_baseLogger: Logger
let _blitz_baseLogger: Logger<ILogObj>
let _blitz_logLevel: LogLevel
}
@@ -103,7 +103,7 @@ export const newline = () => {
}
}
export const baseLogger = (options?: ISettingsParam): Logger => {
export const baseLogger = (options?: ISettingsParam<ILogObj>): Logger<ILogObj> => {
if (globalThis._blitz_baseLogger) return globalThis._blitz_baseLogger
let config
@@ -114,28 +114,14 @@ export const baseLogger = (options?: ISettingsParam): Logger => {
}
globalThis._blitz_baseLogger = new Logger({
minLevel: config.log?.level || "info",
minLevel: config.log?.level || 3,
type: config.log?.type || "pretty",
dateTimePattern:
prettyLogTemplate:
process.env.NODE_ENV === "production"
? "year-month-day hour:minute:second.millisecond"
: "hour:minute:second.millisecond",
displayFunctionName: false,
displayFilePath: "hidden",
displayRequestId: false,
dateTimeTimezone:
process.env.NODE_ENV === "production"
? "utc"
: Intl.DateTimeFormat().resolvedOptions().timeZone,
prettyInspectHighlightStyles: {
name: "yellow",
number: "blue",
bigint: "blue",
boolean: "blue",
},
colorizePrettyLogs: process.env.FORCE_COLOR === "0" ? false : true,
maskValuesOfKeys: ["password", "passwordConfirmation"],
exposeErrorCodeFrame: process.env.NODE_ENV !== "production",
? "{{yyyy}}-{{mm}}-{{dd}} {{hh}}:{{MM}}:{{ss}}:{{ms}}"
: "{{hh}}:{{MM}}:{{ss}}:{{ms}}",
prettyLogTimeZone: process.env.NODE_ENV === "production" ? "UTC" : "local",
maskValuesOfKeys: ["password", "passwordConfirmation", "currentPassword"],
...options,
})

View File

@@ -27,7 +27,7 @@
"@blitzjs/rpc": "latest",
"@prisma/client": "4.6.1",
"blitz": "latest",
"next": "^13.3.0",
"next": "13.4.5",
"prisma": "4.6.1",
"react": "18.2.0",
"react-dom": "18.2.0",

View File

@@ -27,7 +27,7 @@
"@blitzjs/rpc": "latest",
"@prisma/client": "4.6.1",
"blitz": "latest",
"next": "^13.3.0",
"next": "13.4.5",
"prisma": "4.6.1",
"react": "18.2.0",
"react-dom": "18.2.0",

View File

@@ -95,7 +95,7 @@ const Home: BlitzPage = () => {
<div className={styles.code}>
<span>1</span>
<pre>
<code>blitz generate all project</code>
<code>blitz generate all project name:string</code>
</pre>
</div>

View File

@@ -20,7 +20,7 @@
"dependencies": {
"@blitzjs/next": "latest",
"blitz": "latest",
"next": "^13.3.0",
"next": "13.4.5",
"react": "18.2.0",
"react-dom": "18.2.0",
"ts-node": "10.9.1"

View File

@@ -20,7 +20,7 @@
"dependencies": {
"@blitzjs/next": "latest",
"blitz": "latest",
"next": "^13.3.0",
"next": "13.4.5",
"react": "18.2.0",
"react-dom": "18.2.0",
"ts-node": "10.9.1"

View File

@@ -25,7 +25,7 @@
"@typescript-eslint/parser": "5.9.1"
},
"devDependencies": {
"@blitzjs/config": "2.0.0-beta.27",
"@blitzjs/config": "2.0.0-beta.32",
"@types/react": "18.0.25",
"@types/react-dom": "17.0.14",
"react": "18.2.0",

11590
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -23,7 +23,7 @@
},
"homepage": "https://github.com/blitz-js/blitz#readme",
"dependencies": {
"blitz": "2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"jscodeshift": "0.13.0"
},
"devDependencies": {

View File

@@ -22,7 +22,7 @@
},
"homepage": "https://github.com/blitz-js/blitz#readme",
"dependencies": {
"blitz": "2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"jscodeshift": "0.13.0"
},
"devDependencies": {

View File

@@ -24,7 +24,7 @@
},
"homepage": "https://github.com/blitz-js/blitz#readme",
"dependencies": {
"blitz": "2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"jscodeshift": "0.13.0"
},
"devDependencies": {

View File

@@ -24,7 +24,7 @@
},
"homepage": "https://github.com/blitz-js/blitz#readme",
"dependencies": {
"blitz": "2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"jscodeshift": "0.13.0"
},
"devDependencies": {

View File

@@ -22,7 +22,7 @@
},
"homepage": "https://github.com/blitz-js/blitz#readme",
"dependencies": {
"blitz": "2.0.0-beta.27",
"blitz": "2.0.0-beta.32",
"jscodeshift": "0.13.0"
},
"devDependencies": {

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