Blitz Versions Save

⚡️ The Missing Fullstack Toolkit for Next.js

v2.0.0-beta.35

5 months ago

🚀 Features

  • 3bcbad1a9: - Introduce Blitz RPC's logging system to the invoke function which is the recommended way to call resolvers in nextjs app directory's react server components.

    • This refactor also removes the re-introduced dependency between blitz-auth and blitz-rpc, allowing independent usage of blitz-rpc

You can now configure the usage of invoke in the app directory with custom error handling logic and controlling the verbosity of the logger in the following way:

// blitz-server.ts
import { notFound } from "next/navigation"
...
RpcServerPlugin({
  logging: {
    allowList: [] // if allowList is defined then only those routes will be logged
    blockList: [] // If blockList is defined then all routes except those will be logged
    disablelevel: "info|debug" // Represents the flag to enable/disable logging for a particular level
    verbose: true, // enable/disable logging If verbose is true then Blitz RPC will log the input and output of each resolver
  },
  onInvokeError(error) {
    if(error instanceof NotFoundError) {
      notFound()
    }
  },
}),

⚠️ Breaking Change

  • b97366c42: Remove unintended dependency on next-auth by removing it from the core build of @blitzjs/auth

    Update your import in next.config.js in the following way

    -const { withNextAuthAdapter } = require("@blitzjs/auth")
    +const { withNextAuthAdapter } = require("@blitzjs/auth/next-auth")
    

🐞 Patches

  • cee2dec17: Fix bug that did not allow Page.authenicate = {role: "" } to correctly work

  • aec1bb076: blitz-next: Fix next/head used in app directory warning

  • c89cb943b: Upgrade next, prisma and zod to latest versions in a newly created app

v2.0.0-beta.34

6 months ago

🔥 Breaking Changes

  • 3ddb57072:

    ⚠️ Important: 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.

🐞 Patches

  • 30fd61316:

    • Removes language selection step from blitz new menu
    • Make formik the default/recommended form library
  • fe8c937d2: Remove rouge console.log during start

v2.0.0-beta.33

7 months ago

🚀 Features

  • 6811eab1a: Allow .tsx & .jsx file extensions to be used for resolvers

🐞 Patches

  • 19898a488: Fix for tslog error TypeError: Cannot read properties of undefined (reading 'map') while using custom errors.
  • 022392c12:
    • Updates ts-log peer dependency to 4.9.0
    • Removes javascript from blitz new menu
    • Fix the Update Schema when using blitz generator

v2.0.0-beta.32

8 months ago

🐞 Patches

  • 82649f341: Upgrade tslog to 4.9.0. This due a tslog issue that causes tslog to crash when attempting to log an error whose constructor expects more than one argument.
  • 8b01175b4: Updated useAuthenticatedBlitzContext to now return AuthenticatedCtx
  • 47c6b62dc: Update examples of generate all in docs to include one column in model.

v2.0.0-beta.31

9 months ago

🚀 Improvements

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

v2.0.0-beta.30

9 months ago

🐞 Patches

  • c5572bec6: blitz-auth: Fix webpack from following next-auth

🚀 New Features

  • 727734955: ### Now we can configure Blitz RPC in the following way,

    In your [[...blitz]].ts api file you can see the following settings

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

    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

v2.0.0-beta.29

10 months ago

🐞 Patches

blitz

  • 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

@blitzjs/auth

  • b6b9a1c5a: Fix Next-Auth integration: Unable to use next-auth with provider: Error [ERR_PACKAGE_PATH_NOT_EXPORTED]

@blitzjs/generator

  • 7aef610d8: Make Next.js version stick to 13.4.5 when generating a new app

v2.0.0-beta.28

10 months ago

🚀 Features/Improvements

@blitzjs/auth

  • 1bb3a6556: Stop exporting useAuthenticatedBlitzContext from @blitzjs/auth this must be imported from app/blitz-server.ts file in order to work correctly

  • 5166e5e03: (feat) upgrade tslog to v4.8.2

@blitzjs/rpc

  • 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:

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

🐞 Patches

blitz

  • 5166e5e03: (feat) upgrade tslog to v4.8.2

@blitzjs/next

  • 5166e5e03: (feat) upgrade tslog to v4.8.2

@blitzjs/rpc

  • 5166e5e03: (feat) upgrade tslog to v4.8.2

  • 2533caf48: Fix return type of requestMiddlewares in RpcServerPlugin

@blitzjs/generator

  • 5166e5e03: (feat) upgrade tslog to v4.8.2

🎉 New Contributors

Full Changelog: https://github.com/blitz-js/blitz/compare/v2.0.0-beta.27...v2.0.0-beta.28

v2.0.0-beta.27

11 months ago

🚀 Features/Improvements

@blitzjs/next

  • 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+

@blitzjs/rpc

  • eda14fa8a: Add ability to format the error on the server before returning it to the client.

🐞 Patches

@blitzjs/auth

  • 29c2b029a: Fix: Add missing entry to expose next-auth adapter in Blitz Auth

@blitzjs/generator

  • d814c2d2d: fix: add missing key prop to LabelSelectField

v2.0.0-beta.26

1 year ago

🐞 Patches

  • e82a79be5: Update the version of next in the new template from 13.2 to 13.3.0
  • 38d945a3f: The issue is that the version provided, "13.2", is not a valid SemVer version. A valid SemVer version must have three components: major, minor, and patch (e.g., "13.2.0").