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

Compare commits

..

2 Commits

Author SHA1 Message Date
Siddharth Suresh
33f649f64c Update main.yml 2023-04-30 16:50:28 +05:30
Siddharth Suresh
8542c14952 Update main.yml 2023-04-30 16:43:49 +05:30
150 changed files with 6360 additions and 7527 deletions

View File

@@ -3896,95 +3896,6 @@
"doc",
"code"
]
},
{
"login": "dbrxnds",
"name": "David",
"avatar_url": "https://avatars.githubusercontent.com/u/32268383?v=4",
"profile": "https://github.com/dbrxnds",
"contributions": [
"doc",
"code",
"test"
]
},
{
"login": "gjmoed",
"name": "G.J. Moed",
"avatar_url": "https://avatars.githubusercontent.com/u/4458993?v=4",
"profile": "https://github.com/gjmoed",
"contributions": [
"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"
]
},
{
"login": "rodobre",
"name": "rodobre",
"avatar_url": "https://avatars.githubusercontent.com/u/52138375?v=4",
"profile": "https://github.com/rodobre",
"contributions": [
"doc",
"code"
]
}
],
"contributorsPerLine": 7,

View File

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

View File

@@ -1,6 +0,0 @@
---
"@blitzjs/next": minor
"@blitzjs/rpc": minor
---
Add ability to format the error on the server before returning it to the client.

View File

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

View File

@@ -1,9 +0,0 @@
---
"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

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

View File

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

View File

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

View File

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

View File

@@ -1,5 +0,0 @@
---
"@blitzjs/next": minor
---
Fix the DYNAMIC_SERVER_USAGE error for Next.js 13.3.1+

View File

@@ -1,26 +0,0 @@
---
"@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

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

View File

@@ -1,6 +0,0 @@
---
"blitz": patch
---
- Removes language selection step from `blitz new` menu
- Make `formik` the default/recommended form library

View File

@@ -1,10 +0,0 @@
---
"@blitzjs/auth": patch
"@blitzjs/next": major
"@blitzjs/rpc": patch
"blitz": patch
---
⚠️ Breaking Change:
Next.js version 13.5 or above is now required to use `@blitzjs/next`
Fix `Error: Cannot find module 'next/dist/shared/lib/router/utils/resolve-href'` by updating the location of next.js internal function.

View File

@@ -1,5 +0,0 @@
---
"@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

@@ -1,6 +0,0 @@
---
"@blitzjs/rpc": patch
"blitz": patch
---
Fix for tslog error `TypeError: Cannot read properties of undefined (reading 'map')` while using custom errors.

View File

@@ -1,6 +0,0 @@
---
"@blitzjs/rpc": patch
"blitz": patch
---
Allow `.tsx` & `.jsx` file extensions to be used for resolvers

View File

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

View File

@@ -55,7 +55,6 @@
"afraid-ears-repair",
"big-boats-lay",
"big-phones-bow",
"big-turtles-tease",
"blue-flowers-peel",
"blue-pigs-tan",
"brave-zebras-deny",
@@ -71,15 +70,12 @@
"calm-papayas-protect",
"calm-tomatoes-drive",
"chatty-fireants-leave",
"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",
@@ -88,7 +84,6 @@
"curly-rules-speak",
"curly-seas-serve",
"curvy-days-attend",
"curvy-drinks-perform",
"cyan-bulldogs-heal",
"cyan-cars-greet",
"dirty-monkeys-greet",
@@ -113,10 +108,8 @@
"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",
@@ -126,8 +119,6 @@
"four-meals-fry",
"four-radios-tickle",
"four-sheep-judge",
"fresh-camels-return",
"fresh-crews-chew",
"funny-cups-pay",
"fuzzy-bees-warn",
"fuzzy-dots-cross",
@@ -140,7 +131,6 @@
"gold-horses-punch",
"good-apes-drum",
"good-insects-wink",
"good-oranges-pretend",
"gorgeous-birds-warn",
"gorgeous-buses-scream",
"gorgeous-games-obey",
@@ -170,7 +160,6 @@
"khaki-ducks-cheer",
"khaki-pens-rest",
"kind-walls-suffer",
"large-hairs-battle",
"late-steaks-give",
"lazy-maps-sort",
"lemon-games-press",
@@ -179,7 +168,6 @@
"lemon-teachers-jam",
"light-donkeys-double",
"light-squids-draw",
"little-cycles-hang",
"little-pears-ring",
"long-bees-hope",
"long-dancers-jog",
@@ -189,7 +177,6 @@
"lovely-colts-share",
"lucky-cows-try",
"lucky-months-guess",
"lucky-teachers-sleep",
"lucky-years-turn",
"many-fans-fetch",
"mean-ears-speak",
@@ -198,20 +185,16 @@
"modern-games-dream",
"modern-ligers-behave",
"moody-bags-walk",
"moody-crews-travel",
"moody-spoons-rhyme",
"moody-squids-cheer",
"nasty-suns-wash",
"nervous-beds-travel",
"nervous-dolls-rule",
"nervous-shrimps-serve",
"new-coats-turn",
"new-olives-protect",
"nice-boxes-travel",
"nice-cats-lay",
"nice-deers-dream",
"nice-starfishes-live",
"nine-bags-rhyme",
"nine-birds-confess",
"nine-onions-admire",
"ninety-lies-press",
@@ -233,7 +216,6 @@
"plenty-gifts-provide",
"plenty-kiwis-greet",
"polite-lizards-love",
"poor-crabs-drum",
"poor-peas-lick",
"poor-penguins-look",
"poor-shrimps-think",
@@ -243,7 +225,6 @@
"purple-donkeys-smash",
"purple-jars-begin",
"purple-singers-greet",
"quick-crews-occur",
"quick-cycles-confess",
"quick-dots-fetch",
"quiet-feet-travel",
@@ -258,7 +239,6 @@
"rotten-rocks-remember",
"rude-trainers-visit",
"serious-mugs-leave",
"shaggy-boxes-exercise",
"shaggy-carpets-brake",
"sharp-falcons-begin",
"sharp-olives-sip",
@@ -271,13 +251,11 @@
"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",
@@ -307,7 +285,6 @@
"tall-radios-clean",
"tame-keys-reply",
"tame-pumpkins-nail",
"tame-rocks-unite",
"tasty-maps-fetch",
"tasty-news-collect",
"tasty-squids-sin",
@@ -345,9 +322,7 @@
"wicked-rings-walk",
"wise-eels-visit",
"wise-frogs-give",
"wise-lies-relate",
"wise-rabbits-complain",
"yellow-numbers-serve",
"young-birds-talk"
]
}

View File

@@ -1,5 +0,0 @@
---
"blitz": patch
---
Remove rouge `console.log` during start

View File

@@ -1,9 +0,0 @@
---
"@blitzjs/next": patch
"blitz": patch
"@blitzjs/generator": patch
---
- Updates `ts-log` peer dependency to `4.9.0`
- Removes `javascript` from `blitz new` menu
- Hot Fix the `Update Schema` when using blitz generator

View File

@@ -1,68 +0,0 @@
---
"@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

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

View File

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

View File

@@ -1,5 +0,0 @@
---
"@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,13 +17,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: pnpm/action-setup@v2.2.4
- uses: pnpm/action-setup@646cdf48217256a3d0b80361c5a50727664284f2
with:
version: 8.6.5
version: 7.11.0
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: 18
node-version: 16
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -38,13 +38,13 @@ jobs:
name: Build
steps:
- uses: actions/checkout@v2
- uses: pnpm/action-setup@v2.2.4
- uses: pnpm/action-setup@646cdf48217256a3d0b80361c5a50727664284f2
with:
version: 8.6.5
version: 7.11.0
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: 18
node-version: 16
cache: "pnpm"
- run: pnpm install --frozen-lockfile
- name: Build
@@ -62,20 +62,20 @@ jobs:
- windows-latest
fail-fast: false
env:
NODE_VERSION: 18
NODE_VERSION: 16
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup PNPM
uses: pnpm/action-setup@v2.2.4
uses: pnpm/action-setup@646cdf48217256a3d0b80361c5a50727664284f2
with:
version: 8.6.5
version: 7.11.0
- name: Setup node@16
uses: actions/setup-node@v2
with:
node-version: 18
node-version: 16
cache: "pnpm"
- name: Install dependencies
@@ -109,9 +109,44 @@ jobs:
tree -J -d -L 1 | jq -c '.[0].contents | map(.name | tostring) | map(select(. != "utils"))'
folders=$(tree -J -d -L 1 | jq -c '.[0].contents | map(.name | tostring) | map(select(. != "utils"))')
echo "folders=$folders" >> $GITHUB_OUTPUT
Generator:
name: :"Generator Test ${{matrix.language}}"
strategy:
matrix:
language:
- javascript
- typescript
os:
- ubuntu-latest
fail-fast: false
runs-on: "ubuntu-latest"
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup PNPM
uses: pnpm/action-setup@646cdf48217256a3d0b80361c5a50727664284f2
with:
version: 7.11.0
- name: Setup node@${{ matrix.NODE_VERSION }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.NODE_VERSION }}
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
shell: bash
- name: Build
run: pnpm build
shell: bash
- name: Generate
run: |
mkdir test
cd test
pnpm blitz new . --language=${{matrix.language}}
Integration-Tests:
name: "Integration Test: ${{matrix.folder}} @ ${{ matrix.os }}"
name: "Integration Test: ${{matrix.folder}} @ ${{matrix.os}} "
needs: [find-integration-tests]
strategy:
matrix:
@@ -119,44 +154,36 @@ jobs:
os:
- ubuntu-latest
- windows-latest
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- run: echo ${{matrix.folder}}
- name: Checkout
if: matrix.folder != 'next-13-app-dir' || matrix.os != 'windows-latest'
uses: actions/checkout@v3
- name: Setup PNPM
if: matrix.folder != 'next-13-app-dir' || matrix.os != 'windows-latest'
uses: pnpm/action-setup@v2.2.4
uses: pnpm/action-setup@646cdf48217256a3d0b80361c5a50727664284f2
with:
version: 8.6.5
version: 7.11.0
- name: Setup node@18
if: matrix.folder != 'next-13-app-dir' || matrix.os != 'windows-latest'
- name: Setup node@${{ matrix.NODE_VERSION }}
uses: actions/setup-node@v2
with:
node-version: 18
node-version: ${{ matrix.NODE_VERSION }}
cache: "pnpm"
- name: Install dependencies
if: matrix.folder != 'next-13-app-dir' || matrix.os != 'windows-latest'
run: pnpm install --frozen-lockfile
shell: bash
- name: Install playwright
if: matrix.folder != 'next-13-app-dir' || matrix.os != 'windows-latest'
run: |
pnpx playwright@1.28.0 install --with-deps
pnpx playwright@1.28.0 install --with-deps
shell: bash
- name: Build
if: matrix.folder != 'next-13-app-dir' || matrix.os != 'windows-latest'
run: pnpm build
shell: bash
- name: Test Packages
if: matrix.folder != 'next-13-app-dir' || matrix.os != 'windows-latest'
run: pnpm test -- --filter=./integration-tests/${{matrix.folder}}
shell: bash

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,5 +1,4 @@
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-420-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-411-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,11 +94,6 @@ 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>
@@ -126,11 +121,9 @@ Your financial contributions help ensure Blitz continues to be developed and mai
<table>
<tr>
<td>
<a aria-label="Flightcontrol" href="https://www.flightcontrol.dev?ref=blitzjs">
<img alt="" src="https://raw.githubusercontent.com/blitz-js/blitz/main/assets/flightcontrol.png" width="400px">
</a>
</td>
</tr>
</table>
@@ -731,17 +724,6 @@ Thanks to these wonderful people ([emoji key](https://allcontributors.org/docs/e
<td align="center"><a href="https://maotoramm.com"><img src="https://avatars.githubusercontent.com/u/5174884?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Maotora ᕙ(⇀‸↼‶)ᕗ</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=maotora" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=maotora" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/vitaliemiron"><img src="https://avatars.githubusercontent.com/u/45145592?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Vitalie</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=vitaliemiron" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=vitaliemiron" title="Code">💻</a></td>
<td align="center"><a href="https://estevao.org"><img src="https://avatars.githubusercontent.com/u/19409687?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nelson Estevão</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=nelsonmestevao" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=nelsonmestevao" title="Code">💻</a></td>
<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>
<td align="center"><a href="https://github.com/rodobre"><img src="https://avatars.githubusercontent.com/u/52138375?v=4?s=100" width="100px;" alt=""/><br /><sub><b>rodobre</b></sub></a><br /><a href="https://github.com/blitz-js/blitz/commits?author=rodobre" title="Documentation">📖</a> <a href="https://github.com/blitz-js/blitz/commits?author=rodobre" title="Code">💻</a></td>
</tr>
</table>

View File

@@ -1,106 +1,5 @@
# next-blitz-auth
## 0.1.1-beta.10
### Patch Changes
- Updated dependencies [30fd61316]
- Updated dependencies [3ddb57072]
- Updated dependencies [fe8c937d2]
- blitz@2.0.0-beta.34
- @blitzjs/auth@2.0.0-beta.34
- @blitzjs/next@2.0.0-beta.34
- @blitzjs/rpc@2.0.0-beta.34
- @blitzjs/config@2.0.0-beta.34
## 0.1.1-beta.9
### Patch Changes
- Updated dependencies [19898a488]
- Updated dependencies [6811eab1a]
- Updated dependencies [022392c12]
- @blitzjs/rpc@2.0.0-beta.33
- blitz@2.0.0-beta.33
- @blitzjs/next@2.0.0-beta.33
- @blitzjs/auth@2.0.0-beta.33
- @blitzjs/config@2.0.0-beta.33
## 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
- Updated dependencies [eda14fa8a]
- Updated dependencies [3d004dc41]
- Updated dependencies [29c2b029a]
- @blitzjs/next@2.0.0-beta.27
- @blitzjs/rpc@2.0.0-beta.27
- @blitzjs/auth@2.0.0-beta.27
- blitz@2.0.0-beta.27
- @blitzjs/config@2.0.0-beta.27
## 0.1.1-beta.2
### Patch Changes

View File

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

View File

@@ -23,15 +23,15 @@
]
},
"dependencies": {
"@blitzjs/auth": "2.0.0-beta.34",
"@blitzjs/config": "2.0.0-beta.34",
"@blitzjs/next": "2.0.0-beta.34",
"@blitzjs/rpc": "2.0.0-beta.34",
"@blitzjs/auth": "workspace:*",
"@blitzjs/config": "workspace:*",
"@blitzjs/next": "workspace:*",
"@blitzjs/rpc": "workspace:*",
"@hookform/error-message": "2.0.0",
"@hookform/resolvers": "2.9.10",
"@prisma/client": "4.6.1",
"blitz": "2.0.0-beta.34",
"next": "13.5.2",
"blitz": "workspace:2.0.0-beta.26",
"next": "13.3.0",
"openid-client": "5.2.1",
"prisma": "4.6.1",
"react": "18.2.0",

View File

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

View File

@@ -24,15 +24,15 @@
]
},
"dependencies": {
"@blitzjs/auth": "2.0.0-beta.34",
"@blitzjs/config": "2.0.0-beta.34",
"@blitzjs/next": "2.0.0-beta.34",
"@blitzjs/rpc": "2.0.0-beta.34",
"@blitzjs/auth": "workspace:*",
"@blitzjs/config": "workspace:*",
"@blitzjs/next": "workspace:*",
"@blitzjs/rpc": "workspace:*",
"@hookform/error-message": "2.0.0",
"@hookform/resolvers": "2.9.10",
"@prisma/client": "4.6.1",
"blitz": "2.0.0-beta.34",
"next": "13.5.2",
"blitz": "workspace:2.0.0-beta.26",
"next": "13.3.0",
"next-auth": "4.18.7",
"prisma": "4.6.1",
"react": "18.2.0",

View File

@@ -10,7 +10,6 @@ type SignupFormProps = {
export const SignupForm = (props: SignupFormProps) => {
const [signupMutation] = useMutation(signup)
return (
<div>
<h1>Create an Account</h1>

View File

@@ -1,4 +1,5 @@
import db from "db"
import { SecurePassword } from "@blitzjs/auth/secure-password"
import { Role } from "types"
export default async function signup(input, ctx) {

View File

@@ -1,8 +1,9 @@
import type { BlitzCliConfig } from "blitz"
import { BlitzLogger } from "blitz"
import { setupBlitzServer } from "@blitzjs/next"
import { AuthServerPlugin, PrismaStorage, simpleRolesIsAuthorized } from "@blitzjs/auth"
import { AuthServerPlugin, PrismaStorage } from "@blitzjs/auth"
import db from "db"
import { simpleRolesIsAuthorized } from "@blitzjs/auth"
import { BlitzLogger } from "blitz"
export const cliConfig: BlitzCliConfig = {
customTemplates: "src/templates",
@@ -26,9 +27,6 @@ const { gSSP, gSP, api } = setupBlitzServer({
isAuthorized: simpleRolesIsAuthorized,
}),
],
formatError: (error) => {
return new Error("Formatted error" + error.message)
},
logger: BlitzLogger({}),
})

View File

@@ -1,16 +1,4 @@
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: {
// verbose: true,
// blockList: ["/getCurrentUser"],
// },
})
)
export default api(rpcHandler({ onError: console.log }))

View File

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

View File

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

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

61
flake.lock generated
View File

@@ -1,61 +0,0 @@
{
"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
}

View File

@@ -1,39 +0,0 @@
{
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,16 +17,16 @@
"prisma:studio": "prisma studio"
},
"dependencies": {
"@blitzjs/auth": "2.0.0-beta.34",
"@blitzjs/config": "2.0.0-beta.34",
"@blitzjs/next": "2.0.0-beta.34",
"@blitzjs/rpc": "2.0.0-beta.34",
"@blitzjs/auth": "workspace:2.0.0-beta.26",
"@blitzjs/config": "workspace:2.0.0-beta.26",
"@blitzjs/next": "workspace:2.0.0-beta.26",
"@blitzjs/rpc": "workspace:2.0.0-beta.26",
"@hookform/error-message": "2.0.0",
"@hookform/resolvers": "2.9.10",
"@prisma/client": "4.6.1",
"blitz": "2.0.0-beta.34",
"blitz": "workspace:2.0.0-beta.26",
"delay": "5.0.0",
"next": "13.5.2",
"next": "13.3.0",
"prisma": "4.6.1",
"react": "18.2.0",
"react-dom": "18.2.0",

View File

@@ -1,11 +1,11 @@
import {afterAll, beforeAll, describe, expect, it} from "vitest"
import {describe, it, expect, beforeAll, afterAll} from "vitest"
import {
blitzBuild,
blitzLaunchApp,
blitzStart,
findPort,
killApp,
findPort,
runBlitzCommand,
blitzLaunchApp,
blitzBuild,
blitzStart,
waitFor,
} from "../../utils/next-test-utils"
import webdriver from "../../utils/next-webdriver"
@@ -13,10 +13,37 @@ import webdriver from "../../utils/next-webdriver"
let app: any
let appPort: number
let mode: "dev" | "server" = "dev"
const runTests = () => {
describe("Auth", () => {
/* TODO - Add a non flaky Integration Test for custom plugin
describe("custom plugin", () => {
it("custom plugin - events", async () => {
const browser = await webdriver(appPort, "/custom-plugin")
let text = await browser.elementByCss("#page").text()
await waitFor(250)
text = await browser.elementByCss("#page").text()
expect(text).toBe("Custom plugin Session Created")
await waitFor(3000)
text = await browser.elementByCss("#page").text()
expect(text).toBe("Custom plugin RPC Error")
if (browser) {
await browser.close()
}
})
it("custom plugin - middleware", async () => {
const browser = await webdriver(appPort, "/custom-plugin")
await waitFor(100)
let text = await browser.elementByCss("#before-req").text()
expect(text).toBe("customHeaderValue")
await waitFor(2000)
text = await browser.elementByCss("#before-res").text()
expect(text).toBe("55")
if (browser) {
await browser.close()
}
})
})
*/
describe("unauthenticated", () => {
it("should render result for open query", async () => {
const browser = await webdriver(appPort, "/noauth-query")
@@ -31,11 +58,7 @@ const runTests = () => {
const browser = await webdriver(appPort, "/authenticated-query")
await browser.waitForElementByCss("#error")
let text = await browser.elementByCss("#error").text()
if (mode === "server") {
expect(text).toMatch(/AuthenticationError/)
} else {
expect(text).toContain("Error")
}
expect(text).toMatch(/AuthenticationError/)
if (browser) await browser.close()
})
@@ -97,11 +120,7 @@ const runTests = () => {
await waitFor(200)
await browser.waitForElementByCss("#error")
text = await browser.elementByCss("#error").text()
if (mode === "server") {
expect(text).toMatch(/AuthenticationError/)
} else {
expect(text).toContain("Error")
}
expect(text).toMatch(/AuthenticationError/)
if (browser) await browser.close()
})
@@ -243,7 +262,6 @@ const runTests = () => {
describe("Auth Tests", () => {
describe("dev mode", () => {
beforeAll(async () => {
mode = "dev"
try {
await runBlitzCommand(["prisma", "migrate", "reset", "--force"])
appPort = await findPort()
@@ -258,7 +276,6 @@ describe("Auth Tests", () => {
describe("server mode", () => {
beforeAll(async () => {
mode = "server"
try {
await runBlitzCommand(["prisma", "generate"])
await runBlitzCommand(["prisma", "migrate", "deploy"])

View File

@@ -17,13 +17,13 @@
"prisma:studio": "prisma studio"
},
"dependencies": {
"@blitzjs/auth": "2.0.0-beta.34",
"@blitzjs/config": "2.0.0-beta.34",
"@blitzjs/next": "2.0.0-beta.34",
"@blitzjs/auth": "workspace:2.0.0-beta.26",
"@blitzjs/config": "workspace:2.0.0-beta.26",
"@blitzjs/next": "workspace:2.0.0-beta.26",
"@prisma/client": "4.6.1",
"blitz": "2.0.0-beta.34",
"blitz": "workspace:2.0.0-beta.26",
"lowdb": "3.0.0",
"next": "13.5.2",
"next": "13.3.0",
"prisma": "4.6.1",
"react": "18.2.0",
"react-dom": "18.2.0",

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) void browser.close()
if (browser) browser.close()
},
5000 * 60 * 2,
)

View File

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

View File

@@ -1,6 +1,5 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
/// <reference types="next/navigation-types/compat/navigation" />
// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.

View File

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

View File

@@ -1,16 +1,10 @@
{
"extends": "@blitzjs/config/tsconfig.nextjs.json",
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types", ".next/types/**/*.ts"],
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types"],
"compilerOptions": {
"paths": {
"react": ["./node_modules/@types/react"]
},
"plugins": [
{
"name": "next"
}
],
"strictNullChecks": true
}
},
"exclude": ["node_modules"],
"baseUrl": "."

View File

@@ -1,6 +1,5 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
/// <reference types="next/navigation-types/compat/navigation" />
// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.

View File

@@ -17,14 +17,14 @@
"prisma:studio": "prisma studio"
},
"dependencies": {
"@blitzjs/auth": "2.0.0-beta.34",
"@blitzjs/config": "2.0.0-beta.34",
"@blitzjs/next": "2.0.0-beta.34",
"@blitzjs/rpc": "2.0.0-beta.34",
"@blitzjs/auth": "workspace:2.0.0-beta.26",
"@blitzjs/config": "workspace:2.0.0-beta.26",
"@blitzjs/next": "workspace:2.0.0-beta.26",
"@blitzjs/rpc": "workspace:2.0.0-beta.26",
"@prisma/client": "4.6.1",
"blitz": "2.0.0-beta.34",
"blitz": "workspace:2.0.0-beta.26",
"lowdb": "3.0.0",
"next": "13.5.2",
"next": "13.3.0",
"prisma": "4.6.1",
"react": "18.2.0",
"react-dom": "18.2.0",

View File

@@ -1,6 +1,13 @@
import {afterAll, beforeAll, describe, expect, it} from "vitest"
import {describe, it, expect, beforeAll, afterAll} from "vitest"
import waitPort from "wait-port"
import {blitzLaunchApp, findPort, killApp, runBlitzCommand} from "../../utils/next-test-utils"
import {
killApp,
findPort,
runBlitzCommand,
blitzLaunchApp,
blitzBuild,
blitzStart,
} from "../../utils/next-test-utils"
import webdriver from "../../utils/next-webdriver"
import fetch from "node-fetch"
@@ -36,7 +43,7 @@ const runTests = (mode?: string) => {
const browser = await webdriver(appPort, "/authenticated-client")
let errorMsg = await browser.elementById(`error`).text()
expect(errorMsg).toMatch(/Error: You are not authenticated/)
if (browser) await browser.close()
if (browser) browser.close()
},
5000 * 60 * 2,
)
@@ -48,7 +55,7 @@ const runTests = (mode?: string) => {
const browser = await webdriver(appPort, "/authenticated-server")
let errorMsg = await browser.elementById(`error`).text()
expect(errorMsg).toMatch(/Error: You are not authenticated/)
if (browser) await browser.close()
if (browser) browser.close()
},
5000 * 60 * 2,
)

View File

@@ -9,8 +9,7 @@
{
"name": "next"
}
],
"strictNullChecks": true
]
},
"exclude": ["node_modules"],
"baseUrl": "."

View File

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

View File

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

View File

@@ -4,7 +4,7 @@ import {useQuery, useInfiniteQuery, BlitzRpcPlugin, QueryClientProvider} from "@
import React from "react"
import delay from "delay"
import {buildMutationRpc, buildQueryRpc, mockRouter, render} from "../../utils/blitz-test-utils"
import {RouterContext} from "@blitzjs/next"
import {RouterContext} from "next/dist/shared/lib/router-context"
beforeAll(() => {
globalThis.__BLITZ_SESSION_COOKIE_PREFIX = "qm-test-cookie-prefix"

View File

@@ -1,6 +1,5 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
/// <reference types="next/navigation-types/compat/navigation" />
// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.

View File

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

View File

@@ -1,16 +1,10 @@
{
"extends": "@blitzjs/config/tsconfig.nextjs.json",
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types", ".next/types/**/*.ts"],
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types"],
"compilerOptions": {
"paths": {
"react": ["./node_modules/@types/react"]
},
"plugins": [
{
"name": "next"
}
],
"strictNullChecks": true
}
},
"exclude": ["node_modules"],
"baseUrl": "."

View File

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

View File

@@ -1,12 +0,0 @@
class ErrorWithStatusCode extends Error {
statusCode
constructor(message, statusCode) {
super(message)
this.statusCode = statusCode
}
}
export default async function getCustomStatusCodeFailure() {
throw new ErrorWithStatusCode("Error with custom status code for test", 418)
}

View File

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

View File

@@ -1,13 +1,14 @@
import {afterAll, beforeAll, describe, expect, it} from "vitest"
import {describe, it, expect, beforeAll, afterAll} from "vitest"
import fs from "fs-extra"
import {join} from "path"
import {
fetchViaHTTP,
findPort,
killApp,
findPort,
launchApp,
fetchViaHTTP,
nextBuild,
nextExport,
nextStart,
nextExport,
} from "../../utils/next-test-utils"
// jest.setTimeout(1000 * 60 * 2)

View File

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

View File

@@ -3,7 +3,7 @@ import {vi} from "vitest"
import {QueryClient} from "@tanstack/react-query"
import {BlitzRpcPlugin, QueryClientProvider} from "@blitzjs/rpc"
import {NextRouter} from "next/router"
import {RouterContext} from "@blitzjs/next"
import {RouterContext} from "next/dist/shared/lib/router-context"
import {render as defaultRender} from "@testing-library/react"
export const mockRouter: NextRouter = {
@@ -27,7 +27,6 @@ export const mockRouter: NextRouter = {
emit: vi.fn(),
},
isFallback: false,
forward: vi.fn(),
}
type DefaultParams = Parameters<typeof defaultRender>
@@ -75,10 +74,7 @@ const BlitzWrapper = ({plugins, children}) => {
)
}
export function render(
ui: RenderUI,
{wrapper, router, ...options}: RenderOptions = {},
): ReturnType<typeof defaultRender> {
export function render(ui: RenderUI, {wrapper, router, ...options}: RenderOptions = {}) {
if (!wrapper) {
wrapper = ({children}) => {
return <BlitzWrapper plugins={[BlitzRpcPlugin({})]}>{children}</BlitzWrapper>

View File

@@ -242,8 +242,8 @@ export function runBlitzCommandDev(argv, stdOut, opts: RunNextCommandDevOptions
function handleStdout(data) {
const message = data.toString()
const bootupMarkers = {
dev: /Ready/i,
start: /Ready/i,
dev: /compiled .*successfully/i,
start: /started server/i,
}
if (
(opts.bootupMarker && opts.bootupMarker.test(message)) ||
@@ -417,10 +417,9 @@ export function runNextCommandDev(argv, stdOut, opts: RunNextCommandDevOptions =
function handleStdout(data) {
const message = data.toString()
console.log(message)
const bootupMarkers = {
dev: /Next.js/i,
start: /Next.js/i,
dev: /compiled .*successfully/i,
start: /started server/i,
}
if (
(opts.bootupMarker && opts.bootupMarker.test(message)) ||
@@ -437,7 +436,7 @@ export function runNextCommandDev(argv, stdOut, opts: RunNextCommandDevOptions =
}
if (opts.stdout !== false) {
process.stdout.write(message)
process.stdout.write(message)
}
}

View File

@@ -3,9 +3,8 @@
"version": "0.0.0",
"private": true,
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-beta.34",
"@blitzjs/next": "workspace:2.0.0-beta.34",
"@blitzjs/rpc": "workspace:2.0.0-beta.34",
"@blitzjs/config": "workspace: *",
"@blitzjs/rpc": "workspace: *",
"@tanstack/react-query": "4.13.0",
"@testing-library/react": "13.4.0",
"@types/express": "4.17.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 --filter='./packages/*'",
"dev": "turbo run dev --no-cache --parallel",
"lint": "turbo run lint",
"test": "turbo run test",
"clean": "turbo run clean && rm -rf node_modules",
@@ -29,17 +29,17 @@
"husky": "8.0.2",
"jsdom": "^19.0.0",
"lint-staged": "13.0.3",
"next": "13.5.2",
"next": "13.3.0",
"only-allow": "1.1.0",
"prettier": "^2.7.1",
"prettier-plugin-prisma": "4.4.0",
"pretty-quick": "3.1.3",
"turbo": "1.10.7",
"turbo": "1.4.2",
"vitest": "0.25.3",
"wait-on": "6.0.1"
},
"npmClient": "pnpm",
"packageManager": "pnpm@8.6.6",
"packageManager": "pnpm@7.11.0",
"manypkg": {
"ignoredRules": [
"EXTERNAL_MISMATCH"

View File

@@ -1,85 +1,5 @@
# @blitzjs/auth
## 2.0.0-beta.34
### Patch Changes
- 3ddb57072: ⚠️ Breaking Change:
Next.js version 13.5 or above is now required to use `@blitzjs/next`
Fix `Error: Cannot find module 'next/dist/shared/lib/router/utils/resolve-href'` by updating the location of next.js internal function.
- Updated dependencies [30fd61316]
- Updated dependencies [3ddb57072]
- Updated dependencies [fe8c937d2]
- blitz@2.0.0-beta.34
## 2.0.0-beta.33
### Patch Changes
- Updated dependencies [19898a488]
- Updated dependencies [6811eab1a]
- Updated dependencies [022392c12]
- blitz@2.0.0-beta.33
## 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
- 29c2b029a: Fix: Add missing entry to expose next-auth adapter in Blitz Auth
- blitz@2.0.0-beta.27
## 2.0.0-beta.26
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/auth",
"version": "2.0.0-beta.34",
"version": "2.0.0-beta.26",
"homepage": "https://blitzjs.com/",
"repository": {
"type": "git",
@@ -37,7 +37,6 @@
"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",
@@ -45,12 +44,11 @@
"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.34",
"blitz": "2.0.0-beta.26",
"next": "*",
"next-auth": "*",
"secure-password": "4.0.0"
@@ -67,7 +65,7 @@
}
},
"devDependencies": {
"@blitzjs/config": "2.0.0-beta.34",
"@blitzjs/config": "workspace:2.0.0-beta.26",
"@testing-library/react": "13.4.0",
"@testing-library/react-hooks": "8.0.1",
"@types/cookie": "0.4.1",
@@ -75,8 +73,8 @@
"@types/jsonwebtoken": "8.5.8",
"@types/react": "18.0.25",
"@types/react-dom": "17.0.14",
"blitz": "2.0.0-beta.34",
"next": "13.5.2",
"blitz": "2.0.0-beta.26",
"next": "13.3.0",
"next-auth": "4.18.7",
"react": "18.2.0",
"react-dom": "18.2.0",

View File

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

View File

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

View File

@@ -27,9 +27,7 @@ import type {
} from "./types"
import {Provider} from "next-auth/providers"
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"
export {withNextAuthAdapter} from "./webpack"
const INTERNAL_REDIRECT_URL_KEY = "_redirectUrl"
@@ -104,6 +102,7 @@ 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(
@@ -159,6 +158,9 @@ 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
@@ -189,6 +191,9 @@ 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,30 +1,15 @@
//@ts-nocheck
import path from "path"
export function withNextAuthAdapter(nextConfig) {
const config = Object.assign({}, nextConfig)
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) {
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"
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,7 +15,6 @@ import {
log,
baseLogger,
chalk,
AuthenticatedCtx,
} from "blitz"
import {
EmptyPublicData,
@@ -220,8 +219,8 @@ export async function useAuthenticatedBlitzContext({
redirectTo?: string | RouteUrlObject
redirectAuthenticatedTo?: string | RouteUrlObject | ((ctx: Ctx) => string | RouteUrlObject)
role?: string | string[]
}): Promise<AuthenticatedCtx> {
const log = baseLogger().getSubLogger({name: "useAuthenticatedBlitzContext"})
}): Promise<void> {
const log = baseLogger().getChildLogger()
const customChalk = new chalk.Instance({
level: log.settings.type === "json" ? 0 : chalk.level,
})
@@ -269,7 +268,6 @@ export async function useAuthenticatedBlitzContext({
redirect(redirectTo)
}
}
return ctx as AuthenticatedCtx
}
const makeProxyToPublicData = <T extends SessionContextClass>(ctxClass: T): T => {

View File

@@ -1,16 +1,4 @@
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 AuthenticatedCtx extends Omit<Ctx, "session"> {
export interface AuthenticatedMiddlewareCtx extends Omit<Ctx, "session"> {
session: AuthenticatedSessionContext
}
}

View File

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

View File

@@ -1,98 +1,5 @@
# @blitzjs/next
## 2.0.0-beta.34
### Major Changes
- 3ddb57072: ⚠️ Breaking Change:
Next.js version 13.5 or above is now required to use `@blitzjs/next`
Fix `Error: Cannot find module 'next/dist/shared/lib/router/utils/resolve-href'` by updating the location of next.js internal function.
### Patch Changes
- Updated dependencies [30fd61316]
- Updated dependencies [3ddb57072]
- Updated dependencies [fe8c937d2]
- blitz@2.0.0-beta.34
- @blitzjs/rpc@2.0.0-beta.34
## 2.0.0-beta.33
### Patch Changes
- 022392c12: - Updates `ts-log` peer dependency to `4.9.0`
- Removes `javascript` from `blitz new` menu
- Hot Fix the `Update Schema` when using blitz generator
- Updated dependencies [19898a488]
- Updated dependencies [6811eab1a]
- Updated dependencies [022392c12]
- @blitzjs/rpc@2.0.0-beta.33
- blitz@2.0.0-beta.33
## 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
- eda14fa8a: Add ability to format the error on the server before returning it to the client.
- 3d004dc41: Fix the DYNAMIC_SERVER_USAGE error for Next.js 13.3.1+
### Patch Changes
- Updated dependencies [eda14fa8a]
- @blitzjs/rpc@2.0.0-beta.27
- blitz@2.0.0-beta.27
## 2.0.0-beta.26
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/next",
"version": "2.0.0-beta.34",
"version": "2.0.0-beta.26",
"homepage": "https://blitzjs.com/",
"repository": {
"type": "git",
@@ -29,7 +29,7 @@
"eslint.js"
],
"dependencies": {
"@blitzjs/rpc": "2.0.0-beta.34",
"@blitzjs/rpc": "2.0.0-beta.26",
"@types/hoist-non-react-statics": "3.3.1",
"debug": "4.3.3",
"fs-extra": "10.0.1",
@@ -38,33 +38,30 @@
"supports-color": "8.1.1"
},
"peerDependencies": {
"blitz": "2.0.0-beta.34",
"blitz": "2.0.0-beta.26",
"next": "*",
"react": "*",
"tslog": "4.9.0"
"react": "*"
},
"devDependencies": {
"@blitzjs/config": "2.0.0-beta.34",
"@blitzjs/config": "workspace:2.0.0-beta.26",
"@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.34",
"blitz": "2.0.0-beta.26",
"cross-spawn": "7.0.3",
"find-up": "4.1.0",
"next": "13.5.2",
"next": "13.3.0",
"next-router-mock": "0.9.1",
"react": "18.2.0",
"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,9 +211,8 @@ test("withErrorBoundary HOC", () => {
expect(cleanStack(onErrorComponentStack)).toMatchInlineSnapshot(`
{
"componentStack": "
at __vite_ssr_import_4__.withErrorBoundary.FallbackComponent
at ErrorBoundaryRoot
at WithRouterWrapper
at ErrorBoundaryRoot
at withRouter
at withErrorBoundary",
}
`)

View File

@@ -3,7 +3,6 @@ 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")
@@ -73,9 +72,7 @@ type ErrorBoundaryState = {error: Error | null}
const initialState: ErrorBoundaryState = {error: null}
const ErrorBoundary: React.ComponentType<
ExcludeRouterProps<React.PropsWithChildren<ErrorBoundaryProps>>
> = withRouter(
const ErrorBoundary = withRouter(
class ErrorBoundaryRoot extends React.Component<
React.PropsWithRef<React.PropsWithChildren<ErrorBoundaryProps>>,
ErrorBoundaryState

View File

@@ -1,43 +1,41 @@
import type {
NextConfig,
GetServerSideProps,
GetServerSidePropsResult,
GetStaticProps,
GetStaticPropsResult,
NextApiRequest,
NextApiResponse,
NextConfig,
} from "next"
import {
AddParameters,
AsyncFunc,
BlitzLogger,
BlitzServerPlugin,
Ctx as BlitzCtx,
FirstParam,
handleRequestWithMiddleware,
initializeLogger,
isRouteUrlObject,
RequestMiddleware,
MiddlewareResponse,
BlitzLogger,
initializeLogger,
Simplify,
UnionToIntersection,
reduceBlitzServerPlugins,
RouteUrlObject,
startWatcher,
stopWatcher,
} from "blitz"
import {handleRequestWithMiddleware, startWatcher, stopWatcher} from "blitz"
import {installWebpackConfig, InstallWebpackConfigOptions, ResolverPathOptions} from "@blitzjs/rpc"
import {
DefaultOptions,
dehydrate,
getInfiniteQueryKey,
getQueryKey,
installWebpackConfig,
InstallWebpackConfigOptions,
QueryClient,
ResolverPathOptions,
getQueryKey,
getInfiniteQueryKey,
dehydrate,
} from "@blitzjs/rpc"
import {IncomingMessage, ServerResponse} from "http"
import {withSuperJsonProps} from "./superjson"
import {ParsedUrlQuery} from "querystring"
import {PreviewData} from "next/types"
import {resolveHref} from "next/dist/client/resolve-href"
import {resolveHref} from "next/dist/shared/lib/router/utils/resolve-href"
import {RouteUrlObject, isRouteUrlObject} from "blitz"
export * from "./index-browser"
@@ -132,12 +130,10 @@ export const setupBlitzServer = <TPlugins extends readonly BlitzServerPlugin<obj
plugins,
onError,
logger,
formatError,
}: {
plugins: TPlugins
onError?: (err: Error) => void
logger?: ReturnType<typeof BlitzLogger>
formatError?: (err: Error) => Error
}) => {
initializeLogger(logger ?? BlitzLogger())
@@ -172,9 +168,9 @@ export const setupBlitzServer = <TPlugins extends readonly BlitzServerPlugin<obj
getClient(),
),
)
} catch (error: any) {
onError?.(error)
throw formatError?.(error) ?? error
} catch (err: any) {
onError?.(err)
throw err
}
}
@@ -201,9 +197,9 @@ export const setupBlitzServer = <TPlugins extends readonly BlitzServerPlugin<obj
getClient(),
),
)
} catch (error: any) {
onError?.(error)
throw formatError?.(error) ?? error
} catch (err: any) {
onError?.(err)
throw err
}
}
@@ -219,8 +215,7 @@ export const setupBlitzServer = <TPlugins extends readonly BlitzServerPlugin<obj
])
} catch (error: any) {
onError?.(error)
const formattedError = formatError?.(error) ?? error
return res.status(400).send(formattedError)
return res.status(400).send(error)
}
}
@@ -230,7 +225,6 @@ export const setupBlitzServer = <TPlugins extends readonly BlitzServerPlugin<obj
export interface BlitzConfig extends NextConfig {
blitz?: {
resolverPath?: ResolverPathOptions
resolversDynamicImport?: boolean
includeRPCFolders?: string[]
customServer?: {
hotReload?: boolean
@@ -262,8 +256,6 @@ 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

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

View File

@@ -1,169 +1,5 @@
# @blitzjs/rpc
## 2.0.0-beta.34
### Patch Changes
- 3ddb57072: ⚠️ Breaking Change:
Next.js version 13.5 or above is now required to use `@blitzjs/next`
Fix `Error: Cannot find module 'next/dist/shared/lib/router/utils/resolve-href'` by updating the location of next.js internal function.
- Updated dependencies [30fd61316]
- Updated dependencies [3ddb57072]
- Updated dependencies [fe8c937d2]
- blitz@2.0.0-beta.34
## 2.0.0-beta.33
### Patch Changes
- 19898a488: Fix for tslog error `TypeError: Cannot read properties of undefined (reading 'map')` while using custom errors.
- 6811eab1a: Allow `.tsx` & `.jsx` file extensions to be used for resolvers
- Updated dependencies [19898a488]
- Updated dependencies [6811eab1a]
- Updated dependencies [022392c12]
- blitz@2.0.0-beta.33
## 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
- eda14fa8a: Add ability to format the error on the server before returning it to the client.
### Patch Changes
- blitz@2.0.0-beta.27
## 2.0.0-beta.26
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/rpc",
"version": "2.0.0-beta.34",
"version": "2.0.0-beta.26",
"homepage": "https://blitzjs.com/",
"repository": {
"type": "git",
@@ -37,19 +37,19 @@
},
"peerDependencies": {
"@tanstack/query-core": "4.24.4",
"blitz": "2.0.0-beta.34",
"blitz": "2.0.0-beta.26",
"next": "*",
"react": "*"
},
"devDependencies": {
"@blitzjs/auth": "2.0.0-beta.34",
"@blitzjs/config": "2.0.0-beta.34",
"@blitzjs/auth": "2.0.0-beta.26",
"@blitzjs/config": "workspace:2.0.0-beta.26",
"@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.34",
"next": "13.5.2",
"blitz": "2.0.0-beta.26",
"next": "13.3.0",
"react": "18.2.0",
"react-dom": "18.2.0",
"typescript": "^4.8.4",

View File

@@ -1,9 +1,8 @@
import {assert, baseLogger, Ctx, newLine, prettyMs, ResolverConfig} from "blitz"
import {NextApiRequest, NextApiResponse} from "next"
import {deserialize, parse, serialize as superjsonSerialize} from "superjson"
import {deserialize, serialize as superjsonSerialize, parse} 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"
@@ -61,11 +60,16 @@ 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: LoaderOptions
options: WebpackRuleOptions
}>
}
@@ -80,7 +84,7 @@ export interface InstallWebpackConfigOptions {
rules: WebpackRule[]
}
}
webpackRuleOptions: LoaderOptions
webpackRuleOptions: WebpackRuleOptions
}
export function installWebpackConfig({
@@ -145,60 +149,6 @@ 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) {
@@ -212,11 +162,9 @@ 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().getSubLogger({
name: "blitz-rpc",
prefix: [resolverName + "()"],
const log = baseLogger().getChildLogger({
prefix: [routePath.replace(/(\/api\/rpc)?\//, "") + "()"],
})
const customChalk = new chalk.Instance({
level: log.settings.type === "json" ? 0 : chalk.level,
@@ -267,16 +215,11 @@ export function rpcHandler(config: RpcConfig) {
? parse(`${req.query.meta}`)
: undefined,
})
if (isBlitzRPCVerbose(resolverName, config, "info")) {
log.info(customChalk.dim("Starting with input:"), data ? data : JSON.stringify(data))
}
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
if (isBlitzRPCVerbose(resolverName, config, "debug")) {
log.debug(customChalk.dim("Result:"), result ? result : JSON.stringify(result))
}
log.debug(customChalk.dim("Result:"), result ? result : JSON.stringify(result))
const serializerStartTime = Date.now()
const serializedResult = superjsonSerialize(result)
@@ -290,26 +233,21 @@ export function rpcHandler(config: RpcConfig) {
result: serializedResult.meta,
},
})
if (isBlitzRPCVerbose(resolverName, config, "debug")) {
log.debug(
customChalk.dim(
`Next.js serialization:${prettyMs(Date.now() - nextSerializerStartTime)}`,
),
)
}
log.debug(
customChalk.dim(
`Next.js serialization:${prettyMs(Date.now() - nextSerializerStartTime)}`,
),
)
const serializerDuration = Date.now() - serializerStartTime
const duration = Date.now() - startTime
if (isBlitzRPCVerbose(resolverName, config, "info")) {
log.info(
customChalk.dim(
`Finished: resolver:${prettyMs(resolverDuration)} serializer:${prettyMs(
serializerDuration,
)} total:${prettyMs(duration)}`,
),
)
}
log.info(
customChalk.dim(
`Finished: resolver:${prettyMs(resolverDuration)} serializer:${prettyMs(
serializerDuration,
)} total:${prettyMs(duration)}`,
),
)
newLine()
return
@@ -320,15 +258,14 @@ export function rpcHandler(config: RpcConfig) {
config.onError?.(error)
log.error(new Error(error))
log.error(error)
newLine()
if (!error.statusCode) {
error.statusCode = 500
}
const formattedError = config.formatError?.(error) ?? error
const serializedError = superjsonSerialize(formattedError)
const serializedError = superjsonSerialize(error)
res.json({
result: null,

View File

@@ -23,7 +23,7 @@ export async function loader(this: Loader, input: string): Promise<string> {
if (isSSR) {
this.cacheable(false)
const resolvers = await collectResolvers(root, rpcFolders, ["ts", "js", "tsx", "jsx"])
const resolvers = await collectResolvers(root, rpcFolders, ["ts", "js"])
return await transformBlitzRpcServer(
input,
toPosixPath(id),
@@ -64,14 +64,12 @@ export async function transformBlitzRpcServer(
extraRpcBasePaths: options?.includeRPCFolders,
})
const importStrategy = options?.resolversDynamicImport ? "import" : "require"
code += `__internal_addBlitzRpcResolver('${routePath}',() => ${importStrategy}('${slash(
code += `__internal_addBlitzRpcResolver('${routePath}',() => import('${slash(
resolverFilePath,
)}'));`
code += "\n"
}
// console.log("NEW CODE", code)
return code
}

View File

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

View File

@@ -1,5 +1,5 @@
import type {SessionContext, SessionContextBase} from "@blitzjs/auth"
import {Await, Ctx, EnsurePromise, AuthenticatedCtx} from "blitz"
import {Await, Ctx, EnsurePromise, AuthenticatedMiddlewareCtx} 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, AuthenticatedCtx>
) => ResultWithContext<T, AuthenticatedMiddlewareCtx>
}
const authorize: ResolverAuthorize = (...args) => {

View File

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

View File

@@ -1,151 +1,5 @@
# blitz
## 2.0.0-beta.34
### Patch Changes
- 30fd61316: - Removes language selection step from `blitz new` menu
- Make `formik` the default/recommended form library
- 3ddb57072: ⚠️ Breaking Change:
Next.js version 13.5 or above is now required to use `@blitzjs/next`
Fix `Error: Cannot find module 'next/dist/shared/lib/router/utils/resolve-href'` by updating the location of next.js internal function.
- fe8c937d2: Remove rouge `console.log` during start
- @blitzjs/generator@2.0.0-beta.34
## 2.0.0-beta.33
### Patch Changes
- 19898a488: Fix for tslog error `TypeError: Cannot read properties of undefined (reading 'map')` while using custom errors.
- 6811eab1a: Allow `.tsx` & `.jsx` file extensions to be used for resolvers
- 022392c12: - Updates `ts-log` peer dependency to `4.9.0`
- Removes `javascript` from `blitz new` menu
- Hot Fix the `Update Schema` when using blitz generator
- Updated dependencies [022392c12]
- @blitzjs/generator@2.0.0-beta.33
## 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
- Updated dependencies [d814c2d2d]
- @blitzjs/generator@2.0.0-beta.27
## 2.0.0-beta.26
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "blitz",
"version": "2.0.0-beta.34",
"version": "2.0.0-beta.26",
"homepage": "https://blitzjs.com/",
"repository": {
"type": "git",
@@ -30,7 +30,7 @@
"blitz": "bin/blitz"
},
"dependencies": {
"@blitzjs/generator": "2.0.0-beta.34",
"@blitzjs/generator": "2.0.0-beta.26",
"@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": "4.9.0",
"tslog": "3.3.4",
"watchpack": "2.1.1"
},
"devDependencies": {
"@blitzjs/config": "2.0.0-beta.34",
"@blitzjs/config": "workspace:2.0.0-beta.26",
"@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().error(e.response.body)
baseLogger({displayDateTime: false}).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().error(`Could not find recipe "${args._[1]}"\n`)
baseLogger({displayDateTime: false}).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")

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