1
0
mirror of synced 2026-02-04 12:08:33 -05:00

Compare commits

...

7 Commits

Author SHA1 Message Date
github-actions[bot]
bb3dd56f7a Version Packages (alpha) (#3482)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-07-01 17:06:10 +02:00
Aleksandra
1d9804a610 remove references to the logging package (#3474) 2022-07-01 17:01:41 +02:00
Aleksandra
0fd1f9c9b1 Revert codemod changes (#3483) 2022-07-01 16:10:28 +02:00
Aleksandra
b86b569d56 Remove as any assertion for the PrismaStorage argument (#3481) 2022-07-01 16:04:58 +02:00
Aleksandra
b405c1e876 Add missing _document and 404 pages to the templates (#3480) 2022-07-01 12:44:37 +02:00
Dillon Raphael
c957828ea6 remove release-drafter 2022-06-30 11:54:31 +02:00
Dillon Raphael
c78e5c4704 set config name in release action 2022-06-30 11:47:58 +02:00
67 changed files with 327 additions and 299 deletions

View File

@@ -62,10 +62,13 @@
"quiet-feet-travel",
"quiet-pans-hunt",
"rich-chairs-invent",
"rich-queens-travel",
"sharp-falcons-begin",
"shy-olives-hang",
"silent-colts-reply",
"small-socks-confess",
"smooth-planets-admire",
"strong-apes-reply",
"stupid-walls-sell",
"swift-drinks-dress",
"tame-keys-reply",

View File

@@ -0,0 +1,8 @@
---
"blitz": patch
"@blitzjs/auth": patch
"@blitzjs/next": patch
"@blitzjs/rpc": patch
---
Remove references to the logging package

View File

@@ -0,0 +1,5 @@
---
"@blitzjs/generator": patch
---
Add missing \_document.tsx and 404.tsx pages to the new app templates

View File

@@ -0,0 +1,5 @@
---
"@blitzjs/generator": patch
---
Remove as any assertion for the PrismaStorage argument

View File

@@ -50,7 +50,9 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Github Release
uses: release-drafter/release-drafter@v5.19.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# - name: Github Release
# uses: release-drafter/release-drafter@v5.19.0
# with:
# config-name: release-drafter.yml
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,5 +1,5 @@
import { NotFoundError } from "blitz"
import { db } from "db"
import db from "db"
import { authenticateUser } from "./login"
import { ChangePassword } from "../validations"
import { resolver } from "@blitzjs/rpc"

View File

@@ -1,6 +1,6 @@
import { generateToken, hash256 } from "@blitzjs/auth"
import { resolver } from "@blitzjs/rpc"
import { db } from "db"
import db from "db"
import { forgotPasswordMailer } from "mailers/forgotPasswordMailer"
import { ForgotPassword } from "../validations"

View File

@@ -1,7 +1,7 @@
import { SecurePassword } from "@blitzjs/auth"
import { resolver } from "@blitzjs/rpc"
import { AuthenticationError } from "blitz"
import { db } from "db"
import db from "db"
import { Role } from "types"
import { Login } from "../validations"

View File

@@ -1,5 +1,5 @@
import { SecurePassword, hash256 } from "@blitzjs/auth"
import { db } from "db"
import db from "db"
import { ResetPassword } from "../validations"
import login from "./login"

View File

@@ -1,5 +1,6 @@
import { db } from "db"
import db from "db"
import { SecurePassword } from "@blitzjs/auth"
import { Role } from "types"
export default async function signup(input, ctx) {
const blitzContext = ctx
@@ -13,6 +14,7 @@ export default async function signup(input, ctx) {
await blitzContext.session.$create({
userId: user.id,
role: user.role as Role,
})
return { userId: blitzContext.session.userId, ...user, email: input.email }

View File

@@ -1,14 +1,13 @@
import { setupBlitzServer } from "@blitzjs/next"
import { AuthServerPlugin, PrismaStorage } from "@blitzjs/auth"
import { db } from "db"
import db from "db"
import { simpleRolesIsAuthorized } from "@blitzjs/auth"
const { gSSP, gSP, api } = setupBlitzServer({
plugins: [
AuthServerPlugin({
cookiePrefix: "web-cookie-prefix",
// TODO fix type
storage: PrismaStorage(db as any),
storage: PrismaStorage(db),
isAuthorized: simpleRolesIsAuthorized,
}),
],

View File

@@ -1,5 +1,5 @@
import { Ctx } from "blitz"
import { db } from "db"
import db from "db"
export default async function getCurrentUser(_ = null, { session }: Ctx) {
if (!session.userId) return null

View File

@@ -5,4 +5,4 @@ const EnhancedPrisma = enhancePrisma(PrismaClient)
export * from "@prisma/client"
const db = new EnhancedPrisma()
export { db }
export default db

View File

@@ -1,4 +1,4 @@
import { db } from "./index"
import db from "./index"
/*
* This seed function is executed when you run `blitz db seed`.

View File

@@ -29,7 +29,7 @@
"@blitzjs/rpc": "workspace:*",
"@hookform/resolvers": "2.8.8",
"@prisma/client": "3.9.0",
"blitz": "workspace:2.0.0-alpha.46",
"blitz": "workspace:2.0.0-alpha.47",
"next": "12.1.6-canary.17",
"prisma": "3.9.0",
"react": "18.0.0",

View File

@@ -0,0 +1,20 @@
import Head from "next/head"
import { ErrorComponent } from "@blitzjs/next"
// ------------------------------------------------------
// This page is rendered if a route match is not found
// ------------------------------------------------------
export default function Page404() {
const statusCode = 404
const title = "This page could not be found"
return (
<>
<Head>
<title>
{statusCode}: {title}
</title>
</Head>
<ErrorComponent statusCode={statusCode} title={title} />
</>
)
}

View File

@@ -0,0 +1,22 @@
import Document, { Html, Main, NextScript, Head } from "next/document"
class MyDocument extends Document {
// Only uncomment if you need to customize this behaviour
// static async getInitialProps(ctx: DocumentContext) {
// const initialProps = await Document.getInitialProps(ctx)
// return {...initialProps}
// }
render() {
return (
<Html lang="en">
<Head />
<body>
<Main />
<NextScript />
</body>
</Html>
)
}
}
export default MyDocument

View File

@@ -7,8 +7,7 @@ const {gSSP, gSP, api} = setupBlitzServer({
plugins: [
AuthServerPlugin({
cookiePrefix: "webapp-cookie-prefix",
// TODO fix type
storage: PrismaStorage(db as any),
storage: PrismaStorage(db),
isAuthorized: simpleRolesIsAuthorized,
}),
],

View File

@@ -1,13 +1,13 @@
import {setupBlitzServer} from "@blitzjs/next"
import {AuthServerPlugin, PrismaStorage} from "@blitzjs/auth"
import {simpleRolesIsAuthorized} from "@blitzjs/auth"
import {prisma as db} from "../prisma/index"
import db from "../prisma/index"
const {gSSP, gSP, api} = setupBlitzServer({
plugins: [
AuthServerPlugin({
cookiePrefix: "auth-tests-cookie-prefix",
storage: PrismaStorage(db as any),
storage: PrismaStorage(db),
isAuthorized: simpleRolesIsAuthorized,
}),
],

View File

@@ -1,6 +1,7 @@
import {api} from "../../app/blitz-server"
import {prisma} from "../../prisma/index"
import prisma from "../../prisma/index"
import {SecurePassword} from "@blitzjs/auth"
import {Role} from "../../types"
export const authenticateUser = async (email: string, password: string) => {
const user = await prisma.user.findFirst({where: {email}})
@@ -26,6 +27,7 @@ export default api(async (req, res, ctx) => {
await blitzContext.session.$create({
userId: user.id,
role: user.role as Role,
})
res.status(200).json({email: req.query.email, userId: blitzContext.session.userId})

View File

@@ -5,4 +5,4 @@ const EnhancedPrisma = enhancePrisma(PrismaClient)
export * from "@prisma/client"
const prisma = new EnhancedPrisma()
export {prisma}
export default prisma

View File

@@ -1,4 +1,4 @@
import {prisma} from "./index"
import prisma from "./index"
import {SecurePassword} from "@blitzjs/auth"
const seed = async () => {

View File

@@ -1,6 +1,6 @@
{
"extends": "@blitzjs/config/tsconfig.nextjs.json",
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types"],
"compilerOptions": {
"paths": {
"react": ["./node_modules/@types/react"]

View File

@@ -0,0 +1,15 @@
import {SimpleRolesIsAuthorized} from "@blitzjs/auth"
import {User} from "./prisma"
export type Role = "ADMIN" | "USER"
declare module "@blitzjs/auth" {
export interface Session {
isAuthorized: SimpleRolesIsAuthorized<Role>
PublicData: {
userId: User["id"]
role: Role
views?: number
}
}
}

View File

@@ -1,6 +1,6 @@
{
"extends": "@blitzjs/config/tsconfig.nextjs.json",
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types"],
"compilerOptions": {
"paths": {
"react": ["./node_modules/@types/react"]

View File

@@ -1,13 +1,13 @@
import {setupBlitzServer} from "@blitzjs/next"
import {AuthServerPlugin, PrismaStorage} from "@blitzjs/auth"
import {simpleRolesIsAuthorized} from "@blitzjs/auth"
import {prisma as db} from "../prisma/index"
import db from "../prisma/index"
const {gSSP, gSP, api} = setupBlitzServer({
plugins: [
AuthServerPlugin({
cookiePrefix: "no-suspense-tests-cookie-prefix",
storage: PrismaStorage(db as any),
storage: PrismaStorage(db),
isAuthorized: simpleRolesIsAuthorized,
}),
],

View File

@@ -5,4 +5,4 @@ const EnhancedPrisma = enhancePrisma(PrismaClient)
export * from "@prisma/client"
const prisma = new EnhancedPrisma()
export {prisma}
export default prisma

View File

@@ -1,4 +1,4 @@
import {prisma} from "./index"
import prisma from "./index"
const seed = async () => {
await prisma.$reset()

View File

@@ -1,6 +1,6 @@
{
"extends": "@blitzjs/config/tsconfig.nextjs.json",
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types"],
"compilerOptions": {
"paths": {
"react": ["./node_modules/@types/react"]

View File

@@ -0,0 +1,15 @@
import {SimpleRolesIsAuthorized} from "@blitzjs/auth"
import {User} from "./prisma"
export type Role = "ADMIN" | "USER"
declare module "@blitzjs/auth" {
export interface Session {
isAuthorized: SimpleRolesIsAuthorized<Role>
PublicData: {
userId: User["id"]
role: Role
views?: number
}
}
}

View File

@@ -15,6 +15,6 @@
"isolatedModules": true,
"jsx": "preserve"
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types"],
"exclude": ["node_modules"]
}

View File

@@ -1,13 +1,13 @@
import {setupBlitzServer} from "@blitzjs/next"
import {AuthServerPlugin, PrismaStorage} from "@blitzjs/auth"
import {simpleRolesIsAuthorized} from "@blitzjs/auth"
import {prisma as db} from "../prisma/index"
import db from "../db"
const {gSSP, gSP, api} = setupBlitzServer({
plugins: [
AuthServerPlugin({
cookiePrefix: "trailing-slash-tests-cookie-prefix",
storage: PrismaStorage(db as any),
storage: PrismaStorage(db),
isAuthorized: simpleRolesIsAuthorized,
}),
],

View File

@@ -5,4 +5,4 @@ const EnhancedPrisma = enhancePrisma(PrismaClient)
export * from "@prisma/client"
const prisma = new EnhancedPrisma()
export {prisma}
export default prisma

View File

@@ -1,4 +1,4 @@
import {prisma} from "./index"
import prisma from "./index"
const seed = async () => {
await prisma.$reset()

View File

@@ -12,6 +12,9 @@
"prisma:start": "prisma generate && prisma migrate deploy",
"prisma:studio": "prisma studio"
},
"prisma": {
"schema": "db/schema.prisma"
},
"dependencies": {
"@blitzjs/auth": "workspace:*",
"@blitzjs/next": "workspace:*",

View File

@@ -1,6 +1,6 @@
{
"extends": "@blitzjs/config/tsconfig.nextjs.json",
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types"],
"compilerOptions": {
"paths": {
"react": ["./node_modules/@types/react"]

View File

@@ -0,0 +1,15 @@
import {SimpleRolesIsAuthorized} from "@blitzjs/auth"
import {User} from "./db"
export type Role = "ADMIN" | "USER"
declare module "@blitzjs/auth" {
export interface Session {
isAuthorized: SimpleRolesIsAuthorized<Role>
PublicData: {
userId: User["id"]
role: Role
views?: number
}
}
}

View File

@@ -1,5 +1,13 @@
# @blitzjs/auth
## 2.0.0-alpha.47
### Patch Changes
- 1d9804a6: Remove references to the logging package
- Updated dependencies [1d9804a6]
- blitz@2.0.0-alpha.47
## 2.0.0-alpha.46
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/auth",
"version": "2.0.0-alpha.46",
"version": "2.0.0-alpha.47",
"scripts": {
"build": "unbuild",
"predev": "wait-on -d 250 ../blitz/dist/index-server.d.ts",
@@ -26,7 +26,7 @@
"@types/secure-password": "3.1.1",
"b64-lite": "1.4.0",
"bad-behavior": "1.0.1",
"blitz": "2.0.0-alpha.46",
"blitz": "2.0.0-alpha.47",
"cookie": "0.4.1",
"cookie-session": "2.0.0",
"debug": "4.3.3",
@@ -39,7 +39,7 @@
"url": "0.11.0"
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-alpha.46",
"@blitzjs/config": "workspace:2.0.0-alpha.47",
"@testing-library/react": "13.0.0",
"@testing-library/react-hooks": "7.0.2",
"@types/cookie": "0.4.1",

View File

@@ -62,9 +62,6 @@ export function getCookieParser(headers: {[key: string]: undefined | string | st
}
}
// todo
declare const baseLogger: any
const debug = require("debug")("blitz:session")
export interface SimpleRolesIsAuthorized<RoleType = string> {
@@ -555,7 +552,7 @@ async function getSessionKernel(
}
if (enableCsrfProtection && persistedSession.antiCSRFToken !== antiCSRFToken) {
if (!antiCSRFToken) {
baseLogger({displayDateTime: false}).warn(
console.warn(
`This request is missing the ${HEADER_CSRF} header. You can learn about adding this here: https://blitzjs.com/docs/session-management#manual-api-requests`,
)
}
@@ -631,7 +628,7 @@ async function getSessionKernel(
if (enableCsrfProtection && payload.antiCSRFToken !== antiCSRFToken) {
if (!antiCSRFToken) {
baseLogger({displayDateTime: false}).warn(
console.warn(
`This request is missing the ${HEADER_CSRF} header. You can learn about adding this here: https://blitzjs.com/docs/session-management#manual-api-requests`,
)
}

View File

@@ -1,5 +1,13 @@
# @blitzjs/next
## 2.0.0-alpha.47
### Patch Changes
- 1d9804a6: Remove references to the logging package
- Updated dependencies [1d9804a6]
- @blitzjs/rpc@2.0.0-alpha.47
## 2.0.0-alpha.46
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/next",
"version": "2.0.0-alpha.46",
"version": "2.0.0-alpha.47",
"scripts": {
"build": "unbuild",
"dev": "pnpm predev && pnpm watch unbuild src --wait=0.2",
@@ -23,7 +23,7 @@
"eslint.js"
],
"dependencies": {
"@blitzjs/rpc": "2.0.0-alpha.46",
"@blitzjs/rpc": "2.0.0-alpha.47",
"@types/hoist-non-react-statics": "3.3.1",
"debug": "4.3.3",
"fs-extra": "10.0.1",
@@ -32,7 +32,7 @@
"superjson": "1.8.0"
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-alpha.46",
"@blitzjs/config": "workspace:2.0.0-alpha.47",
"@testing-library/dom": "8.13.0",
"@testing-library/jest-dom": "5.16.3",
"@testing-library/react": "13.0.0",
@@ -42,7 +42,7 @@
"@types/react": "18.0.1",
"@types/react-dom": "17.0.14",
"@types/testing-library__react-hooks": "4.0.0",
"blitz": "2.0.0-alpha.46",
"blitz": "2.0.0-alpha.47",
"cross-spawn": "7.0.3",
"find-up": "4.1.0",
"next": "12.1.6-canary.17",

View File

@@ -220,7 +220,8 @@ test("withErrorBoundary HOC", () => {
expect(cleanStack(onErrorComponentStack)).toMatchInlineSnapshot(`
{
"componentStack": "
at ErrorBoundary
at __vite_ssr_import_4__.withErrorBoundary.FallbackComponent
at ErrorBoundary
at withErrorBoundary",
}
`)

View File

@@ -1,5 +1,14 @@
# @blitzjs/rpc
## 2.0.0-alpha.47
### Patch Changes
- 1d9804a6: Remove references to the logging package
- Updated dependencies [1d9804a6]
- blitz@2.0.0-alpha.47
- @blitzjs/auth@2.0.0-alpha.47
## 2.0.0-alpha.46
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/rpc",
"version": "2.0.0-alpha.46",
"version": "2.0.0-alpha.47",
"scripts": {
"build": "unbuild",
"predev": "wait-on -d 250 ../blitz/dist/index-server.d.ts && wait-on -d 250 ../blitz-auth/dist/index-browser.d.ts",
@@ -20,7 +20,7 @@
"dist/**"
],
"dependencies": {
"@blitzjs/auth": "2.0.0-alpha.46",
"@blitzjs/auth": "2.0.0-alpha.47",
"b64-lite": "1.4.0",
"bad-behavior": "1.0.1",
"chalk": "^4.1.0",
@@ -30,11 +30,11 @@
"zod": "3.10.1"
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-alpha.46",
"@blitzjs/config": "workspace:2.0.0-alpha.47",
"@types/debug": "4.1.7",
"@types/react": "18.0.1",
"@types/react-dom": "17.0.14",
"blitz": "2.0.0-alpha.46",
"blitz": "2.0.0-alpha.47",
"next": "12.1.6-canary.17",
"react": "18.0.0",
"react-dom": "18.0.0",
@@ -43,7 +43,7 @@
"watch": "1.0.2"
},
"peerDependencies": {
"blitz": "2.0.0-alpha.46",
"blitz": "2.0.0-alpha.47",
"next": "*"
},
"publishConfig": {

View File

@@ -1,4 +1,4 @@
import {assert, baseLogger, Ctx, newLine, prettyMs} from "blitz"
import {assert, Ctx, prettyMs} from "blitz"
import {NextApiRequest, NextApiResponse} from "next"
import {deserialize, serialize as superjsonSerialize} from "superjson"
import chalk from "chalk"
@@ -110,14 +110,6 @@ export function rpcHandler(config: RpcConfig) {
throw new Error("No default export for resolver path: " + routePath)
}
const log = baseLogger().getChildLogger({
prefix: [relativeRoutePath + "()"],
})
const customChalk = new chalk.Instance({
level: log.settings.type === "json" ? 0 : chalk.level,
})
if (req.method === "HEAD") {
// We used to initiate database connection here
res.status(200).end()
@@ -127,7 +119,7 @@ export function rpcHandler(config: RpcConfig) {
if (typeof req.body.params === "undefined") {
const error = {message: "Request body is missing the `params` key"}
log.error(error.message)
console.error(error.message)
res.status(400).json({
result: null,
error,
@@ -141,11 +133,11 @@ export function rpcHandler(config: RpcConfig) {
meta: req.body.meta?.params,
})
log.info(customChalk.dim("Starting with input:"), data ? data : JSON.stringify(data))
console.info("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))
console.debug("Result:", result ? result : JSON.stringify(result))
const serializerStartTime = Date.now()
const serializedResult = superjsonSerialize(result)
@@ -159,22 +151,16 @@ export function rpcHandler(config: RpcConfig) {
result: serializedResult.meta,
},
})
log.debug(
customChalk.dim(
`Next.js serialization:${prettyMs(Date.now() - nextSerializerStartTime)}`,
),
)
console.debug(`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)}`,
),
console.info(
`Finished: resolver:${prettyMs(resolverDuration)} serializer:${prettyMs(
serializerDuration,
)} total:${prettyMs(duration)}`,
)
newLine()
console.log("\n")
return
} catch (error: any) {
@@ -184,8 +170,8 @@ export function rpcHandler(config: RpcConfig) {
config.onError?.(error)
log.error(error)
newLine()
console.error(error)
console.log("\n")
if (!error.statusCode) {
error.statusCode = 500
@@ -204,7 +190,7 @@ export function rpcHandler(config: RpcConfig) {
}
} else {
// Everything else is error
log.warn(`${req.method} method not supported`)
console.warn(`${req.method} method not supported`)
res.status(404).end()
return
}

View File

@@ -1,5 +1,14 @@
# blitz
## 2.0.0-alpha.47
### Patch Changes
- 1d9804a6: Remove references to the logging package
- Updated dependencies [b405c1e8]
- Updated dependencies [b86b569d]
- @blitzjs/generator@2.0.0-alpha.47
## 2.0.0-alpha.46
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "blitz",
"version": "2.0.0-alpha.46",
"version": "2.0.0-alpha.47",
"scripts": {
"build": "unbuild",
"dev": "watch unbuild src --wait=0.2",
@@ -23,7 +23,7 @@
"blitz": "bin/blitz"
},
"dependencies": {
"@blitzjs/generator": "2.0.0-alpha.46",
"@blitzjs/generator": "2.0.0-alpha.47",
"arg": "5.0.1",
"chalk": "^4.1.0",
"console-table-printer": "2.10.0",
@@ -52,7 +52,7 @@
"watchpack": "2.1.1"
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-alpha.46",
"@blitzjs/config": "workspace:2.0.0-alpha.47",
"@types/cookie": "0.4.1",
"@types/cross-spawn": "6.0.2",
"@types/debug": "4.1.7",

View File

@@ -9,7 +9,6 @@ export * from "./types"
export * from "./prisma-utils"
export * from "./middleware"
export * from "./paginate"
export {baseLogger, newLine, log} from "./logging"
export {startWatcher, stopWatcher} from "./cli/utils/routes-manifest"
// const blitzConfig = findBlitzConfigDirectory() as string
// const file = readFileSync(blitzConfig)

View File

@@ -1,189 +0,0 @@
import {ISettingsParam, Logger} from "tslog"
import c from "chalk"
import {Table} from "console-table-printer"
import ora from "ora"
import readline from "readline"
export type LogLevel = "trace" | "debug" | "info" | "warn" | "error" | "fatal"
declare module globalThis {
let _blitz_baseLogger: Logger
let _blitz_logLevel: LogLevel
}
export const newLine = () => {
const logLevel: LogLevel = globalThis._blitz_logLevel
switch (logLevel) {
case "trace":
case "debug":
case "info":
console.log(" ")
break
case "warn":
case "error":
case "fatal":
default:
//nothing
break
}
}
export const baseLogger = (options?: ISettingsParam): Logger => {
if (globalThis._blitz_baseLogger) return globalThis._blitz_baseLogger
let config
try {
config = {} as any // todo: loadConfigAtRuntime()
} catch {
config = {}
}
globalThis._blitz_baseLogger = new Logger({
minLevel: config?.log?.level || "info",
type: config?.log?.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",
},
maskValuesOfKeys: ["password", "passwordConfirmation"],
exposeErrorCodeFrame: process.env.NODE_ENV !== "production",
...options,
})
return globalThis._blitz_baseLogger
}
export const table = Table
export const chalk = c
// const blitzTrueBrandColor = '6700AB'
const blitzBrightBrandColor = "8a3df0"
// Using bright brand color so it's better for dark terminals
const brandColor = blitzBrightBrandColor
const withBrand = (str: string) => {
return c.hex(brandColor).bold(str)
}
const withCaret = (str: string) => {
return `${c.gray(">")} ${str}`
}
const withCheck = (str: string) => {
return `${c.green("✔")} ${str}`
}
const withProgress = (str: string) => {
return withCaret(str)
}
/**
* Logs a branded purple message to stdout.
*
* @param {string} msg
*/
const branded = (msg: string) => {
console.log(c.hex(brandColor).bold(msg))
}
/**
* Clears the line and optionally log a message to stdout.
*
* @param {string} msg
*/
const clearLine = (msg?: string) => {
readline.clearLine(process.stdout, 0)
readline.cursorTo(process.stdout, 0)
msg && process.stdout.write(msg)
}
const clearConsole = () => {
if (process.platform === "win32") {
process.stdout.write("\x1B[2J\x1B[0f")
} else {
process.stdout.write("\x1B[2J\x1B[3J\x1B[H")
}
}
/**
* Logs a progress message to stdout.
*
* @param {string} msg
*/
const progress = (msg: string) => {
console.log(withProgress(msg))
}
const spinner = (str: string) => {
return ora({
text: str,
color: "blue",
spinner: {
interval: 120,
frames: ["◢", "◣", "◤", "◥"],
},
})
}
/**
* Logs a green success message to stdout.
*
* @param {string} msg
*/
const success = (msg: string) => {
console.log(withCheck(c.green(msg)))
}
/**
* Logs a red error message to stdout.
*
* @param {string} msg
*/
const error = (msg: string) => {
console.log(`${c.red(msg)}`)
}
/**
* Colorizes a variable for display.
*
* @param {string} val
*/
const variable = (val: any) => {
return c.cyan.bold(`${val}`)
}
/**
* If the DEBUG env var is set this will write to the console
* @param str msg
*/
const debug = require("debug")("blitz")
export const log = {
withBrand,
withCaret,
branded,
clearLine,
clearConsole,
progress,
spinner,
success,
error,
variable,
debug,
Table,
}

View File

@@ -1,5 +1,15 @@
# @blitzjs/codemod
## 2.0.0-alpha.47
### Patch Changes
- Updated dependencies [1d9804a6]
- Updated dependencies [b405c1e8]
- Updated dependencies [b86b569d]
- blitz@2.0.0-alpha.47
- @blitzjs/generator@2.0.0-alpha.47
## 2.0.0-alpha.46
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/codemod",
"version": "2.0.0-alpha.46",
"version": "2.0.0-alpha.47",
"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-alpha.46",
"@blitzjs/generator": "2.0.0-alpha.47",
"arg": "5.0.1",
"blitz": "2.0.0-alpha.46",
"blitz": "2.0.0-alpha.47",
"chalk": "^4.1.0",
"cross-spawn": "7.0.3",
"debug": "4.3.3",

View File

@@ -1,5 +1,7 @@
# @blitzjs/config
## 2.0.0-alpha.47
## 2.0.0-alpha.46
## 2.0.0-alpha.45

View File

@@ -1,7 +1,7 @@
{
"name": "@blitzjs/config",
"private": true,
"version": "2.0.0-alpha.46",
"version": "2.0.0-alpha.47",
"license": "MIT",
"dependencies": {
"@typescript-eslint/eslint-plugin": "5.9.1",

View File

@@ -1,5 +1,12 @@
# @blitzjs/generator
## 2.0.0-alpha.47
### Patch Changes
- b405c1e8: Add missing \_document.tsx and 404.tsx pages to the new app templates
- b86b569d: Remove as any assertion for the PrismaStorage argument
## 2.0.0-alpha.46
## 2.0.0-alpha.45

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/generator",
"version": "2.0.0-alpha.46",
"version": "2.0.0-alpha.47",
"scripts": {
"dev": "watch unbuild src --wait=0.2",
"build": "unbuild && pnpm build:templates",
@@ -45,7 +45,7 @@
"vinyl": "2.2.1"
},
"devDependencies": {
"@blitzjs/config": "2.0.0-alpha.46",
"@blitzjs/config": "2.0.0-alpha.47",
"@juanm04/cpx": "2.0.1",
"@types/babel__core": "7.1.19",
"@types/diff": "5.0.2",

View File

@@ -1,7 +1,7 @@
import { SecurePassword } from "@blitzjs/auth"
import { resolver } from "@blitzjs/rpc"
import { AuthenticationError } from "blitz"
import { db} from "db"
import db from "db"
import { Role } from "types"
import { Login } from "../validations"

View File

@@ -1,5 +1,6 @@
import db from "db"
import { SecurePassword } from "@blitzjs/auth"
import { Role } from "types"
export default async function signup(input, ctx) {
const blitzContext = ctx
@@ -13,6 +14,7 @@ export default async function signup(input, ctx) {
await blitzContext.session.$create({
userId: user.id,
role: user.role as Role,
})
return { userId: blitzContext.session.userId, ...user, email: input.email }

View File

@@ -1,14 +1,14 @@
import { setupBlitzServer } from "@blitzjs/next"
import { AuthServerPlugin, PrismaStorage } from "@blitzjs/auth"
import db from "db"
import { simpleRolesIsAuthorized } from "@blitzjs/auth"
import db from "db"
import { authConfig } from "./blitz-client"
export const { gSSP, gSP, api } = setupBlitzServer({
plugins: [
AuthServerPlugin({
...authConfig,
storage: PrismaStorage(db as any),
storage: PrismaStorage(db),
isAuthorized: simpleRolesIsAuthorized,
}),
],

View File

@@ -0,0 +1,20 @@
import Head from 'next/head'
import {ErrorComponent} from "@blitzjs/next"
// ------------------------------------------------------
// This page is rendered if a route match is not found
// ------------------------------------------------------
export default function Page404() {
const statusCode = 404
const title = "This page could not be found"
return (
<>
<Head>
<title>
{statusCode}: {title}
</title>
</Head>
<ErrorComponent statusCode={statusCode} title={title} />
</>
)
}

View File

@@ -0,0 +1,22 @@
import Document, { Html, Main, NextScript, Head } from 'next/document';
class MyDocument extends Document {
// Only uncomment if you need to customize this behaviour
// static async getInitialProps(ctx: DocumentContext) {
// const initialProps = await Document.getInitialProps(ctx)
// return {...initialProps}
// }
render() {
return (
<Html lang="en">
<Head />
<body>
<Main />
<NextScript />
</body>
</Html>
);
}
}
export default MyDocument;

View File

@@ -0,0 +1,22 @@
import Document, { Html, Main, NextScript, Head } from 'next/document';
class MyDocument extends Document {
// Only uncomment if you need to customize this behaviour
// static async getInitialProps(ctx: DocumentContext) {
// const initialProps = await Document.getInitialProps(ctx)
// return {...initialProps}
// }
render() {
return (
<Html lang="en">
<Head />
<body>
<Main />
<NextScript />
</body>
</Html>
);
}
}
export default MyDocument;

View File

@@ -25,7 +25,7 @@
"@typescript-eslint/parser": "5.9.1"
},
"devDependencies": {
"@blitzjs/config": "2.0.0-alpha.46",
"@blitzjs/config": "2.0.0-alpha.47",
"@types/react": "18.0.1",
"@types/react-dom": "17.0.14",
"react": "18.0.0",

30
pnpm-lock.yaml generated
View File

@@ -50,7 +50,7 @@ importers:
"@types/node": 17.0.16
"@types/preview-email": 2.0.1
"@types/react": 18.0.1
blitz: workspace:2.0.0-alpha.45
blitz: workspace:2.0.0-alpha.46
eslint: 7.32.0
husky: 7.0.4
jest: 27.5.1
@@ -471,8 +471,8 @@ importers:
packages/blitz:
specifiers:
"@blitzjs/config": workspace:2.0.0-alpha.45
"@blitzjs/generator": 2.0.0-alpha.45
"@blitzjs/config": workspace:2.0.0-alpha.46
"@blitzjs/generator": 2.0.0-alpha.46
"@types/cookie": 0.4.1
"@types/cross-spawn": 6.0.2
"@types/debug": 4.1.7
@@ -578,7 +578,7 @@ importers:
packages/blitz-auth:
specifiers:
"@blitzjs/config": workspace:2.0.0-alpha.45
"@blitzjs/config": workspace:2.0.0-alpha.46
"@testing-library/react": 13.0.0
"@testing-library/react-hooks": 7.0.2
"@types/b64-lite": 1.3.0
@@ -592,7 +592,7 @@ importers:
"@types/secure-password": 3.1.1
b64-lite: 1.4.0
bad-behavior: 1.0.1
blitz: 2.0.0-alpha.45
blitz: 2.0.0-alpha.46
cookie: 0.4.1
cookie-session: 2.0.0
debug: 4.3.3
@@ -643,8 +643,8 @@ importers:
packages/blitz-next:
specifiers:
"@blitzjs/config": workspace:2.0.0-alpha.45
"@blitzjs/rpc": 2.0.0-alpha.45
"@blitzjs/config": workspace:2.0.0-alpha.46
"@blitzjs/rpc": 2.0.0-alpha.46
"@testing-library/dom": 8.13.0
"@testing-library/jest-dom": 5.16.3
"@testing-library/react": 13.0.0
@@ -655,7 +655,7 @@ importers:
"@types/react": 18.0.1
"@types/react-dom": 17.0.14
"@types/testing-library__react-hooks": 4.0.0
blitz: 2.0.0-alpha.45
blitz: 2.0.0-alpha.46
cross-spawn: 7.0.3
debug: 4.3.3
find-up: 4.1.0
@@ -704,14 +704,14 @@ importers:
packages/blitz-rpc:
specifiers:
"@blitzjs/auth": 2.0.0-alpha.45
"@blitzjs/config": workspace:2.0.0-alpha.45
"@blitzjs/auth": 2.0.0-alpha.46
"@blitzjs/config": workspace:2.0.0-alpha.46
"@types/debug": 4.1.7
"@types/react": 18.0.1
"@types/react-dom": 17.0.14
b64-lite: 1.4.0
bad-behavior: 1.0.1
blitz: 2.0.0-alpha.45
blitz: 2.0.0-alpha.46
chalk: ^4.1.0
debug: 4.3.3
next: 12.1.6-canary.17
@@ -753,12 +753,12 @@ importers:
"@babel/plugin-syntax-typescript": 7.17.12
"@babel/preset-env": 7.12.10
"@blitzjs/config": workspace:*
"@blitzjs/generator": 2.0.0-alpha.45
"@blitzjs/generator": 2.0.0-alpha.46
"@types/jscodeshift": 0.11.2
"@types/node": 17.0.16
arg: 5.0.1
ast-types: 0.14.2
blitz: 2.0.0-alpha.45
blitz: 2.0.0-alpha.46
chalk: ^4.1.0
cross-spawn: 7.0.3
debug: 4.3.3
@@ -813,7 +813,7 @@ importers:
"@babel/plugin-transform-typescript": 7.12.1
"@babel/preset-env": 7.12.10
"@babel/types": 7.12.10
"@blitzjs/config": 2.0.0-alpha.45
"@blitzjs/config": 2.0.0-alpha.46
"@juanm04/cpx": 2.0.1
"@mrleebo/prisma-ast": 0.2.6
"@types/babel__core": 7.1.19
@@ -904,7 +904,7 @@ importers:
packages/pkg-template:
specifiers:
"@blitzjs/config": 2.0.0-alpha.45
"@blitzjs/config": 2.0.0-alpha.46
"@types/react": 18.0.1
"@types/react-dom": 17.0.14
"@typescript-eslint/eslint-plugin": 5.9.1