* fix: process.kill("SIGABRT") not supported on windows
* fix: use process.kill("SIGINT") across all operative systems
* Update .changeset/clever-insects-shave.md
---------
Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
* fix: remove custom errors thrown by blitz
* Create curvy-cougars-lick.md
* use require and eval rather than the await which becomes a `yield import` possibly causing the issue
* pnpm lock fix
* Update .changeset/curvy-cougars-lick.md
* add comment
* use correct error type
* Apply suggestions from code review
* perf: add check to make sure only non expired sessions are selected by default
* remove console.logs
* Create chatty-ants-bake.md
* remove `expiresAt` from the publicData
* remove internal from changelog
---------
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Added support for legacy projects that have the pages folder located inside a /src directory
* Fixed line 687 for path.resolve(`${findPagesDirectory}/api/rpc`) not actually calling the function and added path.resolve's to findPagesDirectory
* Update for lines 56 and 1340 to add support for app and pages directories located in /src
* new blitz app starter
* tanstack form first time working
* complete app template
* re-arrange generator folders
* add app router as recomended
* upgrade to next 13.5.2 and update location of internal function
* Create lucky-teachers-sleep.md
* fix bootupMarkers
* fix issues with qm integration test
* Update integration-tests/utils/next-test-utils.ts
* next.js generated stuff
* Update .changeset/lucky-teachers-sleep.md
* remove unnecessary next lints to the integration-tests
* Update main.yml
* Revert "remove unnecessary next lints to the integration-tests"
This reverts commit 3226b2e3ba.
* fix starter with tanstack form
* make changes to the generator
* mske final changes
* pnpm lock fix
* more changes
* add logging to rsc invoke and decouple auth from rpc again
* implement object chaining
* add `onInvokeError` options to catch errors without manual wrapping
* rename `LoggerOptions` to `RpcLoggerOptions`
* spacing
* fix error typed to `any`
* update class code
* tests working again
* add last test case proving working modal of roles
* Create moody-pandas-do.md
* Apply suggestions from code review
* move app -> `src/app`
* move from auth -> (auth) directory structure
* review 1 fixes
* missing change from auth -> (auth) change
* review 2: more fixes and match old behaviour
* pnpm lock fix
* add new pages to the `pathsToMove` array
* remove submodule
* remove changelog from the template
* fix name of .env
* match readme
* march prisma schema
* match package.json
* match blitz-client and blitz-server files
* remove vercel logo
* remove `next13`
* upgrade next and add husky
* fix build error
* Create poor-bikes-wait.md
* Revert "remove `next13`"
This reverts commit c0d7f54ab1.
* remove next13
* re-add next 13 that exists in main
* Apply suggestions from code review
* pnpm lock
* improvements to the template
* fix location of imports in `reset-password` page
* Update packages/blitz/src/cli/commands/new.ts
Co-authored-by: Tobias <tobias@fixmycity.de>
* Update packages/generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts
Co-authored-by: Tobias <tobias@fixmycity.de>
* fix auth -> (auth)
* Update packages/generator/templates/app/src/app/layout.tsx
Co-authored-by: Tobias <tobias@fixmycity.de>
* Apply suggestions from code review
Co-authored-by: Tobias <tobias@fixmycity.de>
* abstact forms as client compoennts and pages as rscs
* re-add proper singup mutation
* remove console.log
* fix additonal forms
* pnpm lock fix
* fix missing ,
* Add project package manager to postInstallSteps
* add husky
* move to devDeps
* add preview email
* remove extra components folder
* add 800px as maximum of body size
* remove auth from reset-password url
* fix non-existant compoennts
* pnpm
* fix favicon
* package.json fixes
* revert to `latest`
* move to `devDeps`
* add display names
* make it a template
* new route generator
* fidnally got it working
* add `isAppDir` check
* should be the final changes
* fix
* fix import error
* revert
* make zod optional when needed
* fix tests
* fix nullable issue
* Update packages/blitz-auth/src/server/auth-sessions.ts
* new folder structure
---------
Co-authored-by: Tobias <tobias@fixmycity.de>
* upgrade to next 14
* use default react import
* use `next/compat/router`
* set baseurl for next13 app
* get it working
* fix Error Component
* fix floating promisis
* Create modern-cups-cheat.md
* fix type of error boundary
* get react query working again
* remove experimental
* remove broken test since next export is removed
* fix qm integration test
* fix mismatch of cookie names in client and server
* fix `auth-with-rpc`
* fix unit tests
* fix snapshot
* remove `@tanstack/query-core` dep from `@blitzjs/rpc`
* Update .changeset/modern-cups-cheat.md
* fix: lockfile
* regression: re-export react query client utilites
* Update .changeset/modern-cups-cheat.md
* do not export `withRouter`
* revert change to `BlitzProvider`
* remove unnecessary next types
* add logic to auto handle role with usage of `redirectAuthenticatedTo`
* Create hot-knives-vanish.md
* fix `globalThis.__BLITZ_GET_RSC_CONTEXT` being overriden
* pnpm lock fix
* export `next-auth` and all its requirements in a sub-directory
* Create modern-insects-raise.md
* undo changes to `secure-password` adapter
* try another way
* Update .changeset/modern-insects-raise.md
* Update .changeset/modern-insects-raise.md
* patch next-auth
* add logging to rsc invoke and decouple auth from rpc again
* implement object chaining
* add `onInvokeError` options to catch errors without manual wrapping
* rename `LoggerOptions` to `RpcLoggerOptions`
* spacing
* fix error typed to `any`
* update class code
* tests working again
* add last test case proving working modal of roles
* Create moody-pandas-do.md
* Apply suggestions from code review
* blitz invoke logger
* fix logic to test the role
* add tests
* pnpm lock
* Create afraid-ligers-build.md
---------
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* feat: Load Head lazyily using `dynamic`
* feat: upgrate turbo and fix layout.tsx
* fix: pnpm lock version
* Create chatty-scissors-jump.md
* Update .changeset/chatty-scissors-jump.md
* fix: move `dynamic` call to the top of the file
* add loading state to be null and no ssr
* upgrade to next 13.5.2 and update location of internal function
* Create lucky-teachers-sleep.md
* fix bootupMarkers
* fix issues with qm integration test
* Update integration-tests/utils/next-test-utils.ts
* next.js generated stuff
* Update .changeset/lucky-teachers-sleep.md
* remove unnecessary next lints to the integration-tests
* Update main.yml
* Revert "remove unnecessary next lints to the integration-tests"
This reverts commit 3226b2e3ba.
* chore: add nix
This could help contributers... contribute!
* build: use turborepo pipelines for coordination
instead of hacking it with sleeps and such....
* chore: update dev script
now we're cooking with gas! no more hacks, no more awkward flags
* chore: update pnpm version requirement
you want to support v6?? then use a v6-compatible pnpm version
* chore: update pnpm-lock
* improve blitz rpc logging
* implement improved setup with jsdoc comments
* make it verbose by default
* change routePath to resolverName for easier use
* Update packages/blitz-rpc/src/index-server.ts
* rename to make language more inclusive
* set output as debug
* Create sixty-rockets-count.md
* Update sixty-rockets-count.md
* Update sixty-rockets-count.md
* fix verbose bug
* Apply suggestions from code review
Co-authored-by: Brandon Bayer <b@bayer.ws>
---------
Co-authored-by: Brandon Bayer <b@bayer.ws>
* fix: make Next.js version stick to 13.3.4
* fix: upgrade Next.js from 13.3.4 to 13.4.5
---------
Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
* initial port
* read custom template values from blitz-server
* fix unit tests
* add unit tests
* remove comments
* make db import generic
* fix blitz genrate not updating values
* cleanup
* fix parent generation in createMutation and components, and move existing pages when --parent is called
* cleanup
* Create silly-peas-work.md
* Update .changeset/silly-peas-work.md
* add types for codegen
* fix belongsTo not working
* fix pnpm-lock
* use latest blitz logging setup in generator
* show error when structure of codegen is incorrect using zod
* cleanup
* make prisma import generic
* update tests
* generic prisma to work on subsequent runs
* initial commit adding dropdown option when using belongTo and parent flag
* cleanup
* fix --parent flag
* fix type
* Update getUsers.ts
* fix duplicate
* update prop type to options for --parent or belongsTo option and add LabelSelectField
* update tests
* Update blitz-server.ts
* fix lock file and add react-final-form select component
* fix default bug for string values in #2863
* Update apps/toolkit-app/app/blitz-server.ts
* update to latest changes
* implement suggessions
* fix tests and remove custom log
* add required test and remove error if prisma does not exist
* remove error log if no prisma schema
* works without prisma
* move zod to devDeps
* fix zod version
* preWriteFile and postWriteFile hooks
* fix pnpm lock
* Update packages/generator/src/generators/template-builders/field-values-builder.ts
Co-authored-by: John Vandivier <vandivier_john@yahoo.com>
* initial revert changes to log and add better types
* minor fix
* minor fix
* Update main.yml
* fix playwright issue
* Update main.yml
* try agin
* fix env location
* fix path
* fix version
* try another way
* with deps
* fix version
* cleanup
* add new zod `datetime`
Co-authored-by: Tobias <tobias@fixmycity.de>
* pnpm lock
* update zod to 3.20.0 in generator
* update unit tests
* Create pr-release.yml
* add changeset pre exit to fix error
* update to latest
* fix syntax
* try again
* feature: Consolidate mutations schema to schemas.ts file (#4057)
* fix global install issue
* update the templates from suggestions
* merge the default and custom config
* fix custom codegen
* fix validations
* add partial type to codegen
* commit to rerun the action
---------
Co-authored-by: John Vandivier <vandivier_john@yahoo.com>
Co-authored-by: Tobias <tobias@fixmycity.de>
* secure-password breaking changes
* fix
* more fixes
* fix secure-password imports
* add codemod
* add secure-password to auth integration test
* Apply suggestions from code review
* try adding playwrigth to package.json
* without server mode
* add one to fix conficting ports
* another try
* add waitPort in the right place
* use same port
* manually kill the process
* remove the server mode
* cleanup
* change rpc route basepath includeRPC in monorepos to be one folder up
* changeset
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* redesign index page for full app template
* pnpmlock
* iteration 2
* Add padding around blitz logo
* Fix more padding
* update padding for logo and button container
* increase max-width
* final draft
* address comments
Co-authored-by: Brandon Bayer <b@bayer.ws>
The previous solution did solve the if-statement but not the line below, which still had this TS error:
```
const relationType = Relation[_fieldName]
// ^- const _fieldName: string | undefined
// Type 'undefined' cannot be used as an index type.ts(2538)
```
Co-authored-by: Dillon Raphael <dillon@creatorsneverdie.com>
Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
* Use the new nextjs constant to check if SSR and fix suspense for nextjs 13.1 and above
* satisfy version from 13 to 13.0.6
* check for DYNAMIC_SERVER_USAGE error string for nextjs versions 13-13.0.6
* Create fluffy-coats-flow.md
* revert toolkit-app update to next 13.1
* set error message for compatability with next 13.0.7
* fix changeset
* Reference `vitest.config.ts` instead of jest for README|s
* Update apps/toolkit-app/README.md
Co-authored-by: Dillon Raphael <dillon@creatorsneverdie.com>
This comment was helpful but could be even more helpful if it clearly stated that it referenced the "P"-Code; and link to docs to learn more.
Co-authored-by: Dillon Raphael <dillon@creatorsneverdie.com>
* inital unwrapping of blitz rpc from blitz auth
* fix linr
* Revert "fix linr"
This reverts commit 000e2c7259.
* remove duplication of code and dynamically import blitz auth if plugin is used
* return types to blitz-auth and import in rpc as types
* remove excess files from git diff
* remove todo ts-ignore
* add changeset
* better error messages
* Update odd-cars-fry.md
* switch from blitz log to console - due to import error.
* Revert "Merge branch 'rpc-without-auth' of https://github.com/blitz-js/blitz into rpc-without-auth"
This reverts commit 5b45d65b4d, reversing
changes made to b15dfa6dec.
* Revert "switch from blitz log to console - due to import error."
This reverts commit b15dfa6dec.
* Revert "better error messages"
This reverts commit 75922cb063.
* fix location of seting global variable
* better error message due to dynamic import
* allow setting csrf token in blitz rpc
* cleanup
* fix
* pnpm lock fix and update csrf api
* fix global.ts type definition
* remove change to merge
* fix pnpm-lock
* update integration-tests to work without blitz-auth
* initial working commit after switch to plugin system
* fix pnpm-lock
* readd the changeset
* update hook names
* Revert "readd the changeset"
This reverts commit 796f3f518e.
* Revert "update hook names"
This reverts commit fb127ed84e.
* Revert "fix pnpm-lock"
This reverts commit d7447b5966.
* Revert "Revert "fix pnpm-lock""
This reverts commit c2f21aa0e5.
* Revert "Revert "update hook names""
This reverts commit 4b66846b20.
* Revert "Revert "readd the changeset""
This reverts commit c95d150e64.
* add header to rpc plugin
* pnpm lock fix
* cleanup - change global hook names to prefix with __BLITZ
* initial commit suggestion - TODO Fix types
* fix most type assertions
* fix error without blitz auth
* add typea to events and middleware reducers
* implement suggestion
* Apply suggestions from code review
Co-authored-by: Brandon Bayer <b@bayer.ws>
* move onSessionCreated event from blitz-auth to blitz-rpc
* move globals to blitz core, move event listener to blitz-next
* remove middlewareCtx to Ctx
* fix imports
* improve type definition of hook types
* format
* Revert "remove middlewareCtx to Ctx"
This reverts commit 4259b4dbed.
* Revert "fix imports"
This reverts commit 7422bfaee3.
* revert changes from MiddlewareCtx to Ctx
* pnpm lock and other fixes
* remove type assertion
* merge to one `Array.reduce`
* Apply suggestions from code review
Co-authored-by: Brandon Bayer <b@bayer.ws>
* implement review suggestions
* Update packages/blitz/src/types.ts
* add unit tests
* cleanup
* Update packages/blitz/tests/plugin.test.ts
* add providers to plugin reduce
* add initial integration test for full blitz rpc+auth and custom client plugins
* test commenting out playwright install
* fixes
* remove changes related to console.log checking
* test
* try with different command
* comment
* another try
* try adding global install
* change console.log to console.info for better identification
* fix db
* lowdb import fix
* convert from lowdb to prisma
* fix blitz build error
* add custom plugin events to integration-tests
* manipulate the timing of event firing
* fix
* check
* add middleware tests
* fix
* fix commented test and cleanup
* add the migration file
Co-authored-by: Brandon Bayer <b@bayer.ws>
* Switch from jest to vitest in new app templates
* Finish vitest setup
* Handle vitest.config.js vs vitest.config.ts
* Add proper vitest config to js templates
* Add changeset
* Update READMEs in new app templates
* Fix tests after vitest upgrade
* Update spyOn references in tests
* fix: builder execute command hangs up
* using "blitz install" inside recipe with addRunCommandStep causes hangs up
Co-authored-by: Selçuk Fatih Sevinç <selcuk@hub.studio>
* Extend paginate.ts to support more complex pagination object
* change pagination object based on reviewer suggestion
* changest inclusion
* update paginate test
Co-authored-by: Paul Moss <paulmoss06@gmail.com>
* fix: remove views from public Session data
* add changeset
* Update .changeset/strong-keys-lie.md
Co-authored-by: Aleksandra <alexsandra.sikora@gmail.com>
* Throw redirect errors when component has mounted
* Create heavy-cobras-own.md
* clean up useEffect
* Add mounted check for AuthenticationError
* remove clean up
* Version Packages (beta)
* Update version number
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: beerose <alexsandra.sikora@gmail.com>
* Fixes#3614 - changed console logs to standard logger
I tried to keep the logging format close to what has been present before, by also including the chalk package for coloring.
* Create great-candles-stare.md
Co-authored-by: Dillon Raphael <dillon@creatorsneverdie.com>
* Simple function to call new on every cli invocation to update blitz
* Fix printing of how to
* Catch network errors
* Cleanup
* Loop through all locally installed and packages and check if an update is needed
* cache checkForLatestVersion so it runs only on every 24 hours
* make update message pretty
* uncomment shouldUpdate boolean
* run checkLatestVersion on dev command and new
* Dont run in our monorepo + small changes
* Create curly-seas-serve.md
Co-authored-by: Dillon Raphael <dillon@creatorsneverdie.com>
* Fix prefetchQuery getting key for infinite wrong
* Add new webpack loader to transform resolvers server-side to have _routePath and other meta values
* Fix key error when loading dehydrated props
* Add unit-tests for loader-server-resolvers.ts
* If project name argument is set to "." change it to current folder name
* Create two-carpets-rhyme.md
Co-authored-by: Dillon Raphael <dillon@creatorsneverdie.com>
* Set up middleware integration test application
* Add middleware integration test
* Update pnpm lock
Co-authored-by: Aleksandra <alexsandra.sikora@gmail.com>
* change BlitzApiRequest to NextApiRequest & update import map & fail catch for custom server
* fix page consolidation when there are sub directories
* Update prisma db export/import
* Update db imports in templates
* update root types file
* update error messages + merge main + changeset
Co-authored-by: beerose <alexsandra.sikora@gmail.com>
* init migrate cli command
* make sure migrate command can only be run in legacy blitz directory
* extract codemods into its own package/cli
* removed unused dependencies
* renamed codemods bin directory
* update next.config file to use withBlitz
* codemods update package.json step
* codemod for blitz server & client setup, as well as the blitz rpc route in pages dir
* fix ignore previous step if statement to check for less than instead of equal
* move files from app/pages to root pages directory
* remove blitz babel plugin & update imports inside app dir
* consolidate pages from app dir to root pages dir
* move all api directories to the root pages dir
* use generator templates for blitz rpc route & server/client setup files
* update custom server file
* make custom server step work with require statement & import statements
* useRouterQuery to useRouter().query
* pkg dependecy & import map updates
* Change import map
* Add BlitzLayout to import map
* import withBlitz and wrap App function in _app
* modify _document to use next.js imports
* fix default import for next modules & add useParam to source map
* gssp/gsp
* api routes
* dont run api wrap on rpc/[[...blitz]] & error on usage of local middleware
* DRY cleanup
* update codemod steps
* add ignore extension to getAllFiles
* add more imports to source map
* check for invokeWithMiddleware
* add error counter to middleware checker
* rename codemod & fix silly typo error
* update bin file & change all invokeWithMiddleware to invoke
* add logging from blitz
* manypkg fix
* add codemod test
* lockfile
* fix test
* show errors for invokeWithMiddleware
* update invokeWithMiddleware error message
* line break in new app generator before your new blitz app is ready
* Apply suggestions from code review
* Add changeset
* changeset
* pnpmlock
Co-authored-by: beerose <alexsandra.sikora@gmail.com>
* add strict-peer-dependencies=false
side-effects-cache=false to npmrc generator template
* add comment to generated npmrc file
* update versions of next for full and minimal templates
* pinned next version to 12.1.6 in generator templates
* add next back to root package
* fix lock file
* add changeset
Co-authored-by: Aleksandra <alexsandra.sikora@gmail.com>
* no suspense test and trailing slash test
* use playwright for integration tests
* remove seed from server mode test in auth integration
* change pkg-dir version for blitz cli
* use pkg-dir 5.0.0
* clean up
* move seed location in auth test
* explict timeout for auth test
Co-authored-by: beerose <alexsandra.sikora@gmail.com>
* init tests
* fix custom blitz provider for testing-library render function
* fix mutation test setup and set globaThis react environment to true so the act function will work
* added query tests & moved blitz test utils to the utils dir
* clean queries and mutation test files
* remove .env file from qm tests
Co-authored-by: beerose <alexsandra.sikora@gmail.com>
* migrate generate command
* tidy up the help command
* Convert legacy full template to new working example
* change db to prisma for templates
* change toolkit-app to use useQuery instead of invoke
* new app & generator templates working for npm only
* fixed npm install
* set blitz config package version
* assert session id
* add type assert to template
* wip
* webpack loader working
* time to switch to babel
* wip
* wip - next broken
* build & babel working, but resolver not loaded at runtime
* webpack loaders fully working!
* rpc server handler ported
* fully working e2e!
* ci
* fix
* fix
* fix test
* refactor integration test setup
* port rpc integration test
* remove duplicate constants
* fix timeout
* add more explicit timeouts for tests
* use pnpm exec
* add custom _document for auth test
* await killapp
* add next as dependency for test utils
* update pnpm ci
* add vitest config file
* add hookTimeout to global vitest file
Co-authored-by: Dillon Raphael <dillon@creatorsneverdie.com>
* Auth tests setup
* WIP: Updated test-utils
* WIP: Fix lowdb for tests + passing unauth tests + create elementByXpath webdriver chain
* Using prisma & sqlite for tests
* manypkg fix dependency
* fix server mode for auth test
* Add .env template to auth integration test
* Add default value for .env + fix how chrome window is rendered in next-webdriver + install chromedriver in package.json
* Rename test directory
* Update pnpm-lock
* trying to set debug port
* add chrome to ci
* Install chrome with apt-get for github actions
* set headless and chrome bin in env file
* find chrome path inside webdriver
* run the right chrome command in github action based on os
* fix step cannot have both the and keys
* add explicit bash shell for github action
* use matrix os expression and run if statement under chrome run
* dont cancel in progress tests to see if one works
* add chrome driver
* remove potential conflicting chromedriver versions
* let selenium find chromedriver path instead of manually setting it
* set chrome option to no gpu & disable shm usage
* remove chrome install github action
* use chromedriver path for binary
* add --headless attribute to chrome driver options
* use chrome bin instead of chromedriver bin
* set path if chromewebdriver env variable present
* set next commands inside try/catch
* remove try/catch
* increase timeout
* disable gpu
* add back headless env
* set shell to bash
* set default shell
* set timeout for webdriver test function
* remove run chromedriver for windows since we're using bash
* scl_source enable
* remove scl_source enable
* add try catch
* remove bash default
* whitelist ips for chromedriver in windows matrix
* set shell to cmd for windows matrix
* console.log path
* force cmd for running chromedriver
* start chromedriver for cmd
* set default windows command to pwsh
* set path for windows test command
* set dynamic path for windows os
* remove if statement for test command
* remove chromedriver from github yaml
* remove windows os from tests
Co-authored-by: Aleksandra <alexsandra.sikora@gmail.com>
Co-authored-by: Dillon Raphael <dillonraphael@Dillons-MacBook-Pro.local>
Co-authored-by: Dillon Raphael <dillonraphael@Dillons-MBP.hitronhub.home>
[Read the Contributing Guide at Blitzjs.com](https://blitzjs.com/docs/contributing)
## To run tests
Make sure you have `chromedriver` installed for your Chrome version. You can install it with
-`brew install --cask chromedriver` on Mac OS X
-`chocolatey install chromedriver` on Windows
- Or manually download the version that matches your installed chrome version (if there's no match, download a version under it, but not above) from the [chromedriver repo](https://chromedriver.storage.googleapis.com/index.html) and add the binary to `<next-repo>/node_modules/.bin`
You may also have to [install Rust](https://www.rust-lang.org/tools/install) and build our native packages to see all tests pass locally. We check in binaries for the most common targets and those required for CI so that most people don't have to, but if you do not see a binary for your target in `packages/next/native`, you can build it by running `yarn --cwd packages/next build-native`. If you are working on the Rust code and you need to build the binaries for ci, you can manually trigger [the workflow](https://github.com/vercel/next.js/actions/workflows/build_native.yml) to build and commit with the "Run workflow" button.
[](https://www.apiseven.com/en/contributor-graph?chart=contributorOverTime&repo=blitz-js/blitz)
Currently at this very early stage it's basically a [BDFL situation](https://opensource.guide/leadership-and-governance/#what-are-some-of-the-common-governance-structures-for-open-source-projects), with me having the final say in decisions.
However we will move away from BDFL to something that looks more like Ember.js. It's extremely important to me (Brandon) that Blitz.js is a long-term, sustainable, and community-run project.
I would love some mentorship from people with experience in large open-source projects on making this transition.
Also, it's possible I will create one or more business around Blitz, perhaps similar to how Taylor Otwell has around Laravel, but Blitz itself will always remain a separate community-run project.
- Next major release will include auth by default and allow you to choose your form library
- Next auth features are email confirmation
- After that, logging and plugins are next
- Adam:
- Overhauled the recipe infrastructure. Now using jscodeshift instead of recast
- Added support for conditional JSX in templates
- Going to work on custom templates next
- Dwight
- Has been opening issues for problems
- Made a few PRs for some issues
# 2020-07-07 Blitz Contributor Call
- Attending: Brandon Bayer, Robert Rosenburg, Jeremy Liberman
- Brandon:
- Finishing up session managment code
- Waiting for review of session managment code from Rishabh
- Will be working on actual auth code (vs session management) like password hashing, password reset, social login, etc.
- Benefits of our session managment vs rails
- Don’t have to redirect to login page
- Using top level error component that catches authentication errors
- You can login from anywhere, during sign up
- Robert:
- Waiting on Kirstina’s website designs. Desktop design is finished, but she's working on mobile design
- Code snippet / sandbox of blitz code for the website
# 2020-06-23 Blitz Contributor Call
- Attending: Brandon Bayer, Robert Rosenberg, Justin Hall, Adam Markon
- Brandon:
- Server side session management code is mostly set up. Still need to integrate client side of RPC calls to expose session information
- Identity verification/Oauth integrations still need to be firmed up
- Once auth is wrapped up we should be ready to start on plugins
- Adam:
- Been experimenting with smart page generation based on the current schema model
- MDX installer recipes
- Robert:
- Waiting on designs from Kristina
- Prism component from theme ui customization? If not try and grab source code from docusaurus line highlighting component
- Justin:
- Updated the tutorial
- Helped with various bug fixes
# 2020-06-17 Blitz Contributor Call
- Attending: Brandon Bayer, Fran Zekan, Sigurd Wahl
- Brandon:
- Spent the past week implementing HTTP middlware which is now released!
- Now working on implementing session management!
- Fran:
- Finishing up the PR for adding `blitz db seed`
- Sigurd:
- New to the community, slowly learning the codebase
- Exicited to get a first PR in here sometime soon :)
# 2020-06-09 Blitz Contributor Call
- Attending: Brandon Bayer, Rudi Yardley, Fran Zekan, Adam Markon, Robert Rosenberg, Kristina Matuska
- Brandon:
- blitzjs.com published, docs + marketing site v0.1 live
- For now most of the docs copied from react-query and Next, we should eventually clean them up so they're stylistically similar to ours, but really easy to start
- HTTP middleware is almost done, just fixing a few edge cases
- Authentication is up next after that, translating pseudocode into actual code
- Kristina:
- Homepage design mostly wrapped up right now, have to finish up mobile and light mode and then ready to move on to the rest of the docs
- Syntax highlighting, we can customize colors
- Sidebar inspiration from tailwindcss
- Robert:
- Decided to wait to convert existing components to theme UI until the final design is done
- More docs content:
- More guides
- Improve the tutorial to incorporate relationship generation
- Add branches for canary and master
- If you add a feature you can add your documentation to the canary branch
- Adam:
- blitz generate model finished!
- Installer rewrite complete
- At similar place to what Gatsby has for installing stuff
- Next up:
- Support gatsby MDX recipes
- Make all code generators aware of actual model attributes
- Fran:
- Working on a package for getting the blitz config anywhere - getConfig()
- Prevent app from "warming" the server when deployed as server rather than serverless
- Testing examples - e2e with cypress and unit tests with Jest so we can link to a testing setup in the docs/getting started guide
- Rudi:
- Extracted out the @blitzjs/file-pipeline (previously synchronizer)
- Extracted out the @blitzjs/display package
- Working on various Next.js compatibility issues
- Debugging a bug in blitz start where it gets stuck at \_manifest.json
# 2020-05-26 Blitz Contributor Call
- Attending: Brandon Bayer, Robert Rosenberg, Adam Markon, Simon Debbarma
- Brandon:
- Kitze livestream last week went great — recording on youtube
- Codebase walkthrough yesterday went great — recording on youtube
- Website overhaul, installed Theme UI
- Adam:
- Opened PR for Prisma model generation from the CLI
- Working on Installer stuff and prepping for integration with Gatsby recipes
- Simon
- Working on custom illustrations for the web
- Robert
- Misc work on website
- Website
- Most website components are owned by us now instead of docusaurus, we'll need to be weary of api updates and any other important component updates
- Make sidebar like tailwind docs sidebar
- Dark theme needs to be fixed
- Theme switcher inconsistent
- Live code sandbox examples
- Code comparison between blitz and rails
- Auth
- Rishabh continuing to work on pseudo code for the session management library
- Brandon planning to build http middleware support this week
- CLI
- Adam working on new features, including generating prisma models and making existing templates aware of actual model attributes
- Plugin ideas / discussion once recipes are farther along. Will post an RFC for plugins at some point
### 🔧 New Blitz Auth Hook `useAuthenticatedBlitzContext`
This hook is implemented as the replacement of the [`BlitzPage` seurity auth utilities](https://blitzjs.com/docs/authorization#secure-your-pages) provided for the pages directory to work with React Server Components in the Nextjs 13 app directory
It can be used in any asynchronous server component be it in `page.ts` or in the layouts in `layout.ts`
It uses the new [`redirect` function](https://beta.nextjs.org/docs/api-reference/redirect) to provide the required authorization in server side
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) + [`Blitz Auth`](https://blitzjs.com/docs/auth).
## Getting Started
First, run the development server:
```bash
npm run dev
# or
yarn dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
You can go to the `/signup` page and create a new account.
## Learn More
To learn more about Next.js and Blitz.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
- [Blitz.js Documentation](https://blitzjs.com/docs/) — learn about Blitz.js.
- [Blitz Auth Documentation](https://blitzjs.com/docs/auth) — learn about Blitz Auth plugin.
Blitz comes with a test setup using [Jest](https://jestjs.io/) and [react-testing-library](https://testing-library.com/).
## Commands
Blitz comes with a powerful CLI that is designed to make development easy and fast. You can install it with `npm i -g blitz`
```
blitz [COMMAND]
dev Start a development server
build Create a production build
start Start a production server
export Export your Blitz app as a static application
prisma Run prisma commands
generate Generate new files for your Blitz project
console Run the Blitz console REPL
install Install a recipe
help Display help for blitz
test Run project tests
```
You can read more about it on the [CLI Overview](https://blitzjs.com/docs/cli-overview) documentation.
## What's included?
Here is the starting structure of your app.
```
__name__
├── src/
│ ├── api/
│ ├── auth/
│ │ ├── components/
│ │ │ ├── LoginForm.tsx
│ │ │ └── SignupForm.tsx
│ │ ├── mutations/
│ │ │ ├── changePassword.ts
│ │ │ ├── forgotPassword.test.ts
│ │ │ ├── forgotPassword.ts
│ │ │ ├── login.ts
│ │ │ ├── logout.ts
│ │ │ ├── resetPassword.test.ts
│ │ │ ├── resetPassword.ts
│ │ │ └── signup.ts
│ │ ├── pages/
│ │ │ ├── forgot-password.tsx
│ │ │ ├── login.tsx
│ │ │ ├── reset-password.tsx
│ │ │ └── signup.tsx
│ │ └── validations.ts
│ ├── core/
│ │ ├── components/
│ │ │ ├── Form.tsx
│ │ │ └── LabeledTextField.tsx
│ │ └── layouts/
│ │ └── Layout.tsx
│ ├── pages/
│ │ ├── _app.tsx
│ │ ├── _document.tsx
│ │ ├── 404.tsx
│ │ ├── index.test.tsx
│ │ └── index.tsx
│ └── users/
│ ├── hooks/
│ │ └── useCurrentUser.ts
│ └── queries/
│ └── getCurrentUser.ts
├── db/
│ ├── migrations/
│ ├── index.ts
│ ├── schema.prisma
│ └── seeds.ts
├── integrations/
├── mailers/
│ └── forgotPasswordMailer.ts
├── public/
│ ├── favicon.ico
│ └── logo.png
├── test/
│ ├── setup.ts
│ └── utils.tsx
├── .eslintrc.js
├── babel.config.js
├── blitz.config.ts
├── jest.config.ts
├── package.json
├── README.md
├── tsconfig.json
└── types.ts
```
These files are:
- The `src/` folder is a container for most of your project. This is where you’ll put any pages or API routes.
-`db/` is where your database configuration goes. If you’re writing models or checking migrations, this is where to go.
-`public/` is a folder where you will put any static assets. If you have images, files, or videos which you want to use in your app, this is where to put them.
-`integrations/` is a folder to put all third-party integrations like with Stripe, Sentry, etc.
-`test/` is a folder where you can put test utilities and integration tests.
-`package.json` contains information about your dependencies and devDependencies. If you’re using a tool like `npm` or `yarn`, you won’t have to worry about this much.
-`tsconfig.json` is our recommended setup for TypeScript.
-`.babel.config.js`, `.eslintrc.js`, `.env`, etc. ("dotfiles") are configuration files for various bits of JavaScript tooling.
-`blitz.config.ts` is for advanced custom configuration of Blitz. [Here you can learn how to use it](https://blitzjs.com/docs/blitz-config).
-`jest.config.js` contains config for Jest tests. You can [customize it if needed](https://jestjs.io/docs/en/configuration).
You can read more about it in the [File Structure](https://blitzjs.com/docs/file-structure) section of the documentation.
### Tools included
Blitz comes with a set of tools that corrects and formats your code, facilitating its future maintenance. You can modify their options and even uninstall them.
- **ESLint**: It lints your code: searches for bad practices and tell you about it. You can customize it via the `.eslintrc.js`, and you can install (or even write) plugins to have it the way you like it. It already comes with the [`blitz`](https://github.com/blitz-js/blitz/tree/canary/packages/eslint-config) config, but you can remove it safely. [Learn More](https://blitzjs.com/docs/eslint-config).
- **Husky**: It adds [githooks](https://git-scm.com/docs/githooks), little pieces of code that get executed when certain Git events are triggerd. For example, `pre-commit` is triggered just before a commit is created. You can see the current hooks inside `.husky/`. If are having problems commiting and pushing, check out ther [troubleshooting](https://typicode.github.io/husky/#/?id=troubleshoot) guide. [Learn More](https://blitzjs.com/docs/husky-config).
- **Prettier**: It formats your code to look the same everywhere. You can configure it via the `.prettierrc` file. The `.prettierignore` contains the files that should be ignored by Prettier; useful when you have large files or when you want to keep a custom formatting. [Learn More](https://blitzjs.com/docs/prettier-config).
## Learn more
Read the [Blitz.js Documentation](https://blitzjs.com/docs/getting-started) to learn more.
The Blitz community is warm, safe, diverse, inclusive, and fun! Feel free to reach out to us in any of our communication channels.
- [Website](https://blitzjs.com)
- [Discord](https://blitzjs.com/discord)
- [Report an issue](https://github.com/blitz-js/blitz/issues/new/choose)
// see https://nextjs.org/docs/basic-features/typescript for more information.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.