From 9ccbc8d43bcaa2fb83cadf0c68f1fc26b4026ade Mon Sep 17 00:00:00 2001 From: Milica Date: Wed, 14 Aug 2024 11:15:01 +0200 Subject: [PATCH 01/12] Add Lucia blog post (#2237) * add Lucia blog post * untangle tabs and spaces * fix cover * cta fixes * fix intro * optimize images --- ...uth-with-lucia-to-your-react-nextjs-app.md | 623 ++++++++++++++++++ web/blog/authors.yml | 6 + web/static/img/lua-auth/comparison.png | Bin 0 -> 44846 bytes web/static/img/lua-auth/lucia-auth-banner.png | Bin 0 -> 49895 bytes 4 files changed, 629 insertions(+) create mode 100644 web/blog/2024-08-13-how-to-add-auth-with-lucia-to-your-react-nextjs-app.md create mode 100644 web/static/img/lua-auth/comparison.png create mode 100644 web/static/img/lua-auth/lucia-auth-banner.png diff --git a/web/blog/2024-08-13-how-to-add-auth-with-lucia-to-your-react-nextjs-app.md b/web/blog/2024-08-13-how-to-add-auth-with-lucia-to-your-react-nextjs-app.md new file mode 100644 index 0000000000..0ac881b8c6 --- /dev/null +++ b/web/blog/2024-08-13-how-to-add-auth-with-lucia-to-your-react-nextjs-app.md @@ -0,0 +1,623 @@ +--- +title: 'How to Add Auth with Lucia to Your React/Next.js App - A Step by Step Guide' +authors: [lucaslima] +image: /img/lua-auth/lucia-auth-banner.png +tags: [webdev, tech, react, nextjs, tutorial] +--- + +import Link from '@docusaurus/Link'; +import useBaseUrl from '@docusaurus/useBaseUrl'; + +import InBlogCta from './components/InBlogCta'; +import WaspIntro from './_wasp-intro.md'; +import ImgWithCaption from './components/ImgWithCaption' + + + +Although authentication is one of the most common web app features, there are so many different ways to go about it, which makes it a very non-trivial task. In this post, I will share my personal experience using Lucia - a modern, framework-agnostic authentication library that has been getting, deservedly so, a lot of love from the community in recent months. + +First, I will demonstrate how you can implement it within your Next.js application through a step-by-step guide you can follow. It will require a fair amount of code and configuration, but the process itself is quite straightforward. + +Secondly, we’ll see how to achieve the same with [Wasp](https://wasp-lang.dev/) in just a few lines of code. Wasp is a batteries-included, full-stack framework for React & Node.js that uses Lucia under the hood to implement authentication. It runs fully on your infrastructure and is 100% open-source and free. + +![auth with Wasp](/img/lua-auth/comparison.png) + +## Why Lucia? + +When it comes to adding authentication to your applications, there are several popular solutions available. For instance, [Clerk](https://clerk.com/) offers a paid service, while [NextAuth.js](https://next-auth.js.org/) is an open-source solution alongside [Lucia](https://lucia-auth.com/), which has become quite popular recently. + +These tools provide robust features, but committing to third-party services — which not only adds another layer of complexity but also have paid tiers you have to keep an eye on — might be an overkill for a small project. In-house solutions keep things centralized but leave it to a developer to implement some of the mentioned features. + +In our case, Lucia has proved to be a perfect middle ground - it’s not a third-party service and does not require a dedicated infrastructure, but it also provides a very solid foundation that’s easy to build upon. + +Now, let’s dive into a step-by-step guide on how to implement your own authentication with Next.js and Lucia. + +### Step 1: Setting up Next.js + +First, create a new Next.js project: + +```bash +npx create-next-app@latest my-nextjs-app +cd my-nextjs-app +npm install +``` + +### Step 2: Install Lucia + +Next, install Lucia: + +```bash +npm install lucia +``` + +### Step 3: Set up Authentication + +Create an `auth` file in your project and add the necessary files for Lucia to be imported and initialized. It has a bunch of adapters for different databases, and you can check them all [here](https://lucia-auth.com/database/). In this example, we’re going to use SQLite: + +```jsx +// lib/auth.ts +import { Lucia } from "lucia"; +import { BetterSqlite3Adapter } from "@lucia-auth/adapter-sqlite"; + +const adapter = new BetterSQLite3Adapter(db); // your adapter + +export const lucia = new Lucia(adapter, { + sessionCookie: { + // this sets cookies with super long expiration + // since Next.js doesn't allow Lucia to extend cookie expiration when rendering pages + expires: false, + attributes: { + // set to `true` when using HTTPS + secure: process.env.NODE_ENV === "production" + } + } +}); + +// To get some good Typescript support, add this! +declare module "lucia" { + interface Register { + Lucia: typeof lucia; + } +} +``` + +### Step 4: Add User to DB + +Let’s add a database file to contain our schemas for now: + +```tsx +// lib/db.ts +import sqlite from "better-sqlite3"; + +export const db = sqlite("main.db"); + +db.exec(`CREATE TABLE IF NOT EXISTS user ( + id TEXT NOT NULL PRIMARY KEY, + github_id INTEGER UNIQUE, + username TEXT NOT NULL +)`); + +db.exec(`CREATE TABLE IF NOT EXISTS session ( + id TEXT NOT NULL PRIMARY KEY, + expires_at INTEGER NOT NULL, + user_id TEXT NOT NULL, + FOREIGN KEY (user_id) REFERENCES user(id) +)`); + +export interface DatabaseUser { + id: string; + username: string; + github_id: number; +} +``` + +### Step 5: Implement Login and Signup + +To make this happen, we firstly have to create a GitHub OAuth app. This is relatively simple, you create it, add the necessary ENVs and callback URLs into your application and you’re good to go. You can [follow GitHub docs](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app) to check how to do that. + +```tsx +//.env.local +GITHUB_CLIENT_ID=your-github-client-id +GITHUB_CLIENT_SECRET=your-github-client-secret +``` + +After that, it’s a matter of adding login and signup functionalities to your pages, so, let’s do that real quick: + +```tsx +// login/page.tsx +import { validateRequest } from "@/lib/auth"; +import { redirect } from "next/navigation"; + +export default async function Page() { + const { user } = await validateRequest(); + if (user) { + return redirect("/"); + } + return ( + <> +

Sign in

+ Sign in with GitHub + + ); +} +``` + +After adding the page, we also have to add the login redirect to GitHub and the callback that’s going to be called. Let’s first add the login redirect with the authorization URL: + +```tsx +// login/github/route.ts +import { generateState } from "arctic"; +import { github } from "../../../lib/auth"; +import { cookies } from "next/headers"; + +export async function GET(): Promise { + const state = generateState(); + const url = await github.createAuthorizationURL(state); + + cookies().set("github_oauth_state", state, { + path: "/", + secure: process.env.NODE_ENV === "production", + httpOnly: true, + maxAge: 60 * 10, + sameSite: "lax" + }); + + return Response.redirect(url); +} +``` + + And finally, the callback (which is what we actually add in GitHub OAuth): + +```tsx +// login/github/callback/route.ts +import { github, lucia } from "@/lib/auth"; +import { db } from "@/lib/db"; +import { cookies } from "next/headers"; +import { OAuth2RequestError } from "arctic"; +import { generateId } from "lucia"; + +import type { DatabaseUser } from "@/lib/db"; + +export async function GET(request: Request): Promise { + const url = new URL(request.url); + const code = url.searchParams.get("code"); + const state = url.searchParams.get("state"); + const storedState = cookies().get("github_oauth_state")?.value ?? null; + if (!code || !state || !storedState || state !== storedState) { + return new Response(null, { + status: 400 + }); + } + + try { + const tokens = await github.validateAuthorizationCode(code); + const githubUserResponse = await fetch("https://api.github.com/user", { + headers: { + Authorization: `Bearer ${tokens.accessToken}` + } + }); + const githubUser: GitHubUser = await githubUserResponse.json(); + const existingUser = db.prepare("SELECT * FROM user WHERE github_id = ?").get(githubUser.id) as + | DatabaseUser + | undefined; + + if (existingUser) { + const session = await lucia.createSession(existingUser.id, {}); + const sessionCookie = lucia.createSessionCookie(session.id); + cookies().set(sessionCookie.name, sessionCookie.value, sessionCookie.attributes); + return new Response(null, { + status: 302, + headers: { + Location: "/" + } + }); + } + + const userId = generateId(15); + db.prepare("INSERT INTO user (id, github_id, username) VALUES (?, ?, ?)").run( + userId, + githubUser.id, + githubUser.login + ); + const session = await lucia.createSession(userId, {}); + const sessionCookie = lucia.createSessionCookie(session.id); + cookies().set(sessionCookie.name, sessionCookie.value, sessionCookie.attributes); + return new Response(null, { + status: 302, + headers: { + Location: "/" + } + }); + } catch (e) { + if (e instanceof OAuth2RequestError && e.message === "bad_verification_code") { + // invalid code + return new Response(null, { + status: 400 + }); + } + return new Response(null, { + status: 500 + }); + } +} + +interface GitHubUser { + id: string; + login: string; +} +``` + +Other important thing here is that, now, we’re going with GitHub OAuth, but, generally, these libraries contain a bunch of different login providers (including simple username and password), so it’s usually just a pick and choose if you want to add other providers. + +```tsx +// lib/auth.ts +import { Lucia } from "lucia"; +import { BetterSqlite3Adapter } from "@lucia-auth/adapter-sqlite"; +import { db } from "./db"; +import { cookies } from "next/headers"; +import { cache } from "react"; +import { GitHub } from "arctic"; + +import type { Session, User } from "lucia"; +import type { DatabaseUser } from "./db"; + +// these two lines here might be important if you have node.js 18 or lower. +// you can check Lucia's documentation in more detail if that's the case +// (https://lucia-auth.com/getting-started/nextjs-app#polyfill) +// import { webcrypto } from "crypto"; +// globalThis.crypto = webcrypto as Crypto; + +const adapter = new BetterSqlite3Adapter(db, { + user: "user", + session: "session" +}); + +export const lucia = new Lucia(adapter, { + sessionCookie: { + attributes: { + secure: process.env.NODE_ENV === "production" + } + }, + getUserAttributes: (attributes) => { + return { + githubId: attributes.github_id, + username: attributes.username + }; + } +}); + +declare module "lucia" { + interface Register { + Lucia: typeof lucia; + DatabaseUserAttributes: Omit; + } +} + +export const validateRequest = cache( + async (): Promise<{ user: User; session: Session } | { user: null; session: null }> => { + const sessionId = cookies().get(lucia.sessionCookieName)?.value ?? null; + if (!sessionId) { + return { + user: null, + session: null + }; + } + + const result = await lucia.validateSession(sessionId); + // next.js throws when you attempt to set cookie when rendering page + try { + if (result.session && result.session.fresh) { + const sessionCookie = lucia.createSessionCookie(result.session.id); + cookies().set(sessionCookie.name, sessionCookie.value, sessionCookie.attributes); + } + if (!result.session) { + const sessionCookie = lucia.createBlankSessionCookie(); + cookies().set(sessionCookie.name, sessionCookie.value, sessionCookie.attributes); + } + } catch {} + return result; + } +); + +export const github = new GitHub(process.env.GITHUB_CLIENT_ID!, process.env.GITHUB_CLIENT_SECRET!); +``` + +### Step 6: Protect Routes + +After adding all that stuff to make the login properly work, we just have to ensure that routes are protected by checking authentication status — in this case, this is a simple page that shows username, id and a button in case signed in, and redirects to /login, where the user will complete the login above through a form. + +```tsx +import { lucia, validateRequest } from "@/lib/auth"; +import { redirect } from "next/navigation"; +import { cookies } from "next/headers"; + +export default async function Page() { + const { user } = await validateRequest(); + if (!user) { + return redirect("/login"); + } + return ( + <> +

Hi, {user.username}!

+

Your user ID is {user.id}.

+
+ +
+ + ); +} + +async function logout(): Promise { + "use server"; + const { session } = await validateRequest(); + if (!session) { + return { + error: "Unauthorized" + }; + } + + await lucia.invalidateSession(session.id); + + const sessionCookie = lucia.createBlankSessionCookie(); + cookies().set(sessionCookie.name, sessionCookie.value, sessionCookie.attributes); + return redirect("/login"); +} + +interface ActionResult { + error: string | null; +} +``` + +Piece of cake, isn’t it? Well, not really. + +Let’s recap which steps were necessary to actually make this happen: + +- Set up your app. +- Add Lucia. +- Set up authentication. +- Add User to DB. +- Obtain GitHub OAuth credentials and configure your environment variables. +- Create some util functions. +- Add Login and Sign up routes, with custom made components. +- Finally, create a protected route. + +![https://media2.giphy.com/media/3ofSBnYbEPePeigIMg/giphy.gif?cid=7941fdc6x77sivlvr6hs2yu5aztvwjvhgugv6b718mjanr2h&ep=v1_gifs_search&rid=giphy.gif&ct=g](https://media2.giphy.com/media/3ofSBnYbEPePeigIMg/giphy.gif?cid=7941fdc6x77sivlvr6hs2yu5aztvwjvhgugv6b718mjanr2h&ep=v1_gifs_search&rid=giphy.gif&ct=g) + +Honestly, when trying to create something cool **FAST**, repeating these steps and debugging a few logical problems here and there that always occur can feel a little bit frustrating. Soon, we’ll take a look at Wasp’s approach to solving that same problem and we’ll be able to compare how much easier Wasp’s auth implementation process is. + +In case you want to check the whole code for this part, [Lucia has an example repo](https://github.com/lucia-auth/examples/tree/main/nextjs-app/github-oauth) (that is the source of most of the code shown), so, you can check it out if you’d like. + +## Wasp Implementation + +Now, let’s go through how we can achieve the same things with Wasp 🐝. Although it still uses Lucia in the background, Wasp takes care of all the heavy-lifting for you, making the process much quicker and simpler. Let’s check out the developer experience for ourselves. + +Before we just into it, in case you’re more of a visual learner, here’s a 1-minute video showcasing auth with wasp. + +
+ +
+ +As seen in the video, Wasp is a framework for building apps with the benefits of using a configuration file to make development easier. It handles many repetitive tasks, allowing you to focus on creating unique features. In this tutorial, we’ll also learn more about the Wasp config file and see how it makes setting up authentication simpler. + +### Step 1: Create a Wasp Project + +```bash +curl -sSL https://get.wasp-lang.dev/installer.sh | sh +wasp new my-wasp-app +cd my-wasp-app +``` + +### Step 2: Add the User entity into our DB + +As simple as defining the `app.auth.userEntity` entity in the `schema.prisma` file and running some migrations: + +```tsx +model User { + id Int @id @default(autoincrement()) + email String @unique + name String? + // Add your own fields below + // ... +} +``` + +### Step 3: Define Authentication + +In your main Wasp configuration, add the authentication provider you want for your app + +```tsx +//main.wasp +app myApp { + wasp: { + version: "^0.14.0" + }, + title: "My App", + auth: { + userEntity: User, + methods: { + // 2. Enable Github Auth + gitHub: {} + }, + onAuthFailedRedirectTo: "/login" + }, +} +``` + +And after that, just run in your terminal: + +```bash +wasp db migrate-dev +``` + +### Step 4: Get your GitHub OAuth credentials and app running + +This part is similar for both frameworks, you can follow the documentation GitHub provides here to do so: [Creating an OAuth app - GitHub Docs](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app). For wasp app, the callback urls are: + +- While developing: `http://localhost:3001/auth/github/callback` +- After deploying: `https://your-server-url.com/auth/github/callback` + +After that, get your secrets and add it to the env file: + +```tsx +//.env.server +GITHUB_CLIENT_ID=your-github-client-id +GITHUB_CLIENT_SECRET=your-github-client-secret +``` + +### Step 5: Add the routes and pages + +Now, let’s simply add some routing and the page necessary for login — the process is way easier since Wasp has pre-built Login and Signup Forms, we can simply add those directly: + +```tsx +// main.wasp + +route SignupRoute { path: "/signup", to: SignupPage } +page SignupPage { + component: import { SignupPage } from "@src/SignupPage" +} + +route LoginRoute { path: "/login", to: LoginPage } +page LoginPage { + component: import { LoginPage } from "@src/LoginPage" +} +``` + +```tsx +// src/LoginPage.jsx +import { Link } from 'react-router-dom' +import { LoginForm } from 'wasp/client/auth' + +export const LoginPage = () => { + return ( +
+ +
+ + I don't have an account yet (go to signup). + +
+ ) +} +``` + +```tsx +// src/SignupPage.jsx +import { Link } from 'react-router-dom' +import { SignupForm } from 'wasp/client/auth' + +export const SignupPage = () => { + return ( +
+ +
+ + I already have an account (go to login). + +
+ ) +} +``` + +And finally, for protecting routes, is as simple as changing it in `main.wasp` adding **`authRequired: true`** , so, we can simply add it like this: + +```tsx +// main.wasp +page MainPage { + component: import Main from "@src/pages/Main", + authRequired: true +} +``` + +If you’d like to check this example in more depth, feel free to check this repo here: [wasp/examples/todo-typescript at release · wasp-lang/wasp (github.com)](https://github.com/wasp-lang/wasp/tree/release/examples/todo-typescript). +Other great place to check is their documentation, which can be found [here](https://wasp-lang.dev/docs/auth/overview). It covers most of what I said here, and even more (e.g. the awesome new [hooks](https://wasp-lang.dev/docs/auth/auth-hooks) that came with Wasp v0.14) + +![https://media4.giphy.com/media/nDSlfqf0gn5g4/giphy.gif?cid=7941fdc6oxsddr7p8rjsuavcyq7ugiad8iqdu1ei25urcge4&ep=v1_gifs_search&rid=giphy.gif&ct=g](https://media4.giphy.com/media/nDSlfqf0gn5g4/giphy.gif?cid=7941fdc6oxsddr7p8rjsuavcyq7ugiad8iqdu1ei25urcge4&ep=v1_gifs_search&rid=giphy.gif&ct=g) + +Way easier, isn’t it? Let’s review the steps we took to get here: + +- Set up the project. +- Add the User entity to the database. +- Define authentication in the main Wasp configuration. +- Obtain GitHub OAuth credentials and configure your environment variables. +- Add routes and pages for login and signup with pre-built, easy-to-use components. +- Protect routes by specifying `authRequired` in your configuration. + +### Customizing Wasp Auth + +If you need more control and customization over the authentication flow, Wasp provides Auth hooks that allow you to tailor the experience to your app's specific needs. These hooks enable you to execute custom code during various stages of the authentication process, ensuring that you can implement any required custom behavior. + +For more detailed information on using Auth hooks with Wasp, visit the [Wasp documentation](https://wasp-lang.dev/docs/auth/auth-hooks). + +### Bonus Section: Adding Email/Password Login with Wasp and Customizing Auth + +Now let’s imagine we want to add email and password authentication — with all the usual features we’d expect that would follow this login method (e.g. reset password, email verification, etc.). + +With Wasp, all we have to do is add a few lines to your main.wasp file, so, simply updating your Wasp configuration to include email/password authentication makes it work straight out of the box! + +![https://wasp-lang.dev/img/auth-ui/auth-demo-compiler.gif](https://wasp-lang.dev/img/auth-ui/auth-demo-compiler.gif) + +Wasp will handle the rest, also updating UI components and ensuring a smooth and secure authentication flow. + +```tsx +//main.wasp +app myApp { + wasp: { + version: "^0.14.0" + }, + title: "My App", + auth: { + // 1. Specify the User entity + userEntity: User, + methods: { + // 2. Enable Github Auth + gitHub: {}, + email: { + // 3. Specify the email from field + fromField: { + name: "My App Postman", + email: "hello@itsme.com" + }, + // 4. Specify the email verification and password reset options + emailVerification: { + clientRoute: EmailVerificationRoute, //this route/page should be created + }, + passwordReset: { + clientRoute: PasswordResetRoute, //this route/page should be created + }, + // Add an emailSender -- Dummy just logs to console for dev purposes + // but there are a ton of supported providers :D + emailSender: { + provider: Dummy, + }, + }, + }, + onAuthFailedRedirectTo: "/login" + }, +} +``` + +Implementing this in Next.js with Lucia would take a lot more work, involving a bunch of different stuff from actually sending the emails, to generating the verification tokens and more. They reference this [here](https://lucia-auth.com/guides/email-and-password/email-verification-links), but again, Wasp’s Auth makes the whole process way easier, handling a bunch of the complexity for us while also giving a bunch of other UI components, ready to use, to ease the UI details (e.g. `VerifyEmailForm`, `ForgotPasswordForm` and, `ResetPasswordForm`). + +The whole point here is the difference in time and developer experience in order to implement the same scenarios. For the Next.js project with Lucia, you will spend at least a few hours implementing everything if you’re going all by yourself. That same experience translates to no more than 1 hour with Wasp. What to do with the rest of the time? **Implement the important stuff your particular business requires!** + + +## Can you show us your support? + +![https://media2.giphy.com/media/l0MYAs5E2oIDCq9So/giphy.gif?cid=7941fdc6l6i66eq1dc7i5rz05nkl4mgjltyv206syb0o304g&ep=v1_gifs_search&rid=giphy.gif&ct=g](https://media2.giphy.com/media/l0MYAs5E2oIDCq9So/giphy.gif?cid=7941fdc6l6i66eq1dc7i5rz05nkl4mgjltyv206syb0o304g&ep=v1_gifs_search&rid=giphy.gif&ct=g) + +Are you interested in more content like this? Sign up for [our newsletter](https://wasp-lang.dev/#signup) and give us [a star on GitHub](https://www.github.com/wasp-lang/wasp)! We need your support to keep pushing our projects forward 😀 + +### Conclusion + +![https://media2.giphy.com/media/l1AsKaVNyNXHKUkUw/giphy.gif?cid=7941fdc6u6vp4j2gpjfuizupxlvfdzskl03ncci2e7jq17zr&ep=v1_gifs_search&rid=giphy.gif&ct=g](https://media2.giphy.com/media/l1AsKaVNyNXHKUkUw/giphy.gif?cid=7941fdc6u6vp4j2gpjfuizupxlvfdzskl03ncci2e7jq17zr&ep=v1_gifs_search&rid=giphy.gif&ct=g) + +I think that if you’re a developer who wants to get things done, you probably noted the significant difference in complexity levels of both of those implementations. + +By reducing boilerplate and abstracting repetitive tasks, Wasp allows developers to focus more on building unique features rather than getting bogged down by authentication details. This can be especially beneficial for small teams or individual developers aiming to launch products quickly. + +Of course, generally when we talk abstractions, it always comes with the downside of losing the finesse of a more personal implementation. In this case, Wasp provides a bunch of stuff for you to implement around and uses Lucia on the background, so the scenario where there’s a mismatch of content implementation is highly unlikable to happen. + +In summary, while implementing your own authentication with Next.js and Lucia provides complete control and customization, it can be complex and time-consuming. On the other hand, using a solution like Wasp simplifies the process, reduces code length, and speeds up development. \ No newline at end of file diff --git a/web/blog/authors.yml b/web/blog/authors.yml index e03e5c1642..9cbaab28e0 100644 --- a/web/blog/authors.yml +++ b/web/blog/authors.yml @@ -54,3 +54,9 @@ martinovicdev: title: Contributor @ Wasp url: https://martinovic.dev image_url: https://github.com/martinovicdev.png + +lucaslima: + name: Lucas Lima do Nascimento + title: Content contributor + url: https://github.com/LLxD + image_url: https://github.com/LLxD.png \ No newline at end of file diff --git a/web/static/img/lua-auth/comparison.png b/web/static/img/lua-auth/comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..22ea75aa64628e5163437c21608e12e0915fcfcf GIT binary patch literal 44846 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 G&X@Yj>Dejz}S6 z0nQU`qiLxpAB~+d9CpYW_VYiNoy?x}Ult@y#X(n_22Jiwqy{gEAmxKs*@9D^1Qu+D z#-k#Btx#Sf;daPZHCV)BO@Nb^cZr#y)s6eVHW%bfyqft-%g9?71;4tn+}r@8HMNGj zFVbsOyK{KvznFUSaBOyB;oMZ|`60%Kej+k58>}!z%Q2f>NQ8`$43_^b==nhe&UAFP z@`0JhbEi4lP&VsNfxa#kl*8KhKfY(cW5a3PM~&AGh?@gfm_GB<){{>MjCGRQ>6dWL zkCE0fB)wqmsXIKFn>bQc7?G{MYHCOza6v8!&kJQ`viznD(@fXLrTJ;r$@t}8-GWyB zjwI2E{iiVwtkkk)Wba8aVD9`TvLL@1$ae@%<}fpjhOYPH>maVEPW*3WpyY^JYfbB4 z7qBay#BzR_^K+c$YokXWq6lJ9vqC(&9*(H%!h^I~HwZ8~(ibTmk1f^$JQMTH*j-zo zD?zDfy-Az%t*WgOX@p52HKJj52!Q4v!96~)q`z$Plvb8HQI6R6VD(aL-t?Xm*{_t( zb&Zu|FtnFZEZiE%B&^ZJn{z~~-*-)lOl9Z;W=?srYfCG=mRBzw#c@BT;ltuOXjQyr zHKxf~POJ;F4QGy<4D5C9c_v_+K+6qV4BM)Mr+%^>^k1G5Kw%0&;*TeB(_I36mWl}}MW$JIlabev6D zO^Q?&5nzQZ*i5zX{*^hBLB!q3ArRePuydas1Xfn1YE8F)HO|a!9XYjDxkj?wC&|Ef z!?I}k3e-=A$SoQFVN33SP!XqlHh1YyjVYA+9Y`nH$UFeX<XmO=CwV-fFXT0szd@9xp+AHz0L2(XvYBA)E||OE0QCVb zuv3Z}TY#aZk59g|$c~vA#q)!hJc`f?6|ct7UGr{12}KaYP+fpMk#t5jTz(_YKLO1B ze(ouK!EcW9Lde|ld&k|8as8ZBym=OU5*>W$@l^8n5jeP(33q=aZ=rCT$+CE_qw>f; zQPlT53dPj-IO_X-Q5J5+@-_RVr1yU5EO{`?&s+Vyhv?^`ipl%ac5u;cGZU}R|3n;2 ztb%-6(ASAb@hzp_@$_}$nh9GEugw*z&`Rq@`u64mG?t_k{ZnzaVKD1Y_~yk^fvQ=? zhjr+nC>9&YB@_*-jpX}x^y5EqrZSOwoJMiAq|nS@;YRY%WNq8@;gd!(1vSO{|4Nia z>A>#h7CcpXUtm?_MMU_+*xMX*V(#kbJpo{Mj~l1 zhy|zaqSL3TMae>JIpuoTIyW{_G18B(JoI_uD<=K{+BT{Upq?0<{dX07U?(p$$79`W z3b&LZ4_9X$;NMPV;-XfpN61iVgG6lmXQH3gr1v$Wv*-0Koz=w3w#sU-ZlOp4nv}!2 zP(uP6251@;+w2_3mi+=%L;;cX?-oCoiK0k}EP1!6CQPe#{U?;X1>Z;(RYtiS&NJ6s z)rno;4l;QUM@7E0eP)VlwjzCE$i)Jw)0XNYbFIA7I0|a1nUxi!MfA3M17*tfT01;~ zmSnTJL{P!M`AGcn`QhJ|7Ixuo>g)llmQXB(QK~fHc_e536yig)wMD6wF|hzwmTqj? zM(b5R?EP%VcZE=NCD$woeQm+kuB%l7>2M< zT3cgAxtyU+w}XBjkLfZSG$-m*&8ba;>O7ByCr#YUUbfrPwT_4nUV!&&TM2SR*t2;F zi%~kQ*yPvAsJV~OBACy9sr30~%b>1_(}k^4k7oi>$`Ao7;pnxyPogHU{G=dn${#%7Y2^nMg0T+*ES{kFh<(L!CZ zAy+3^q|DqP=oy9gV)WK9&jdJ=xzNL{aNE0B2+Gm!@{N?4YXv-mL%5r18_w4%{v&(y z7zlE5dRsYo*znjHDsBBC_brxetdGt*4^dmdFHicP&dwv#91-n@D-kk~L^=AYg?xcQiK zebtt7qYbs3UC!1y=x6xIMD3(}fRGhaM-OjP-;g?|L>hQl5MJEHj&HD;E&CUYQ2SPw z+}hN{k|ibW#N3p_bJ%W@n|56OKC+G0g@ zm1Di1bF1iXjHa7%mlRx5LUKo)0hggb$5%z{=gvxLv2$*y8dX#;S|>TRfvb}$kyHna z$zi?7MW5{Ng4KTK*ZZQ)sZeSj(1-n)lhfeeGjpgXGpCdX?aays$<30B?>*1!_H=V- zYp)yl`LTHTgK41ARal4N+1b}Jw@FhD>>qdaRqHzyX^JU;(bx-6cMXNZz^Tb$1x(ru zHzqcE%{BiMk4eUt&QevxImkNU7>l^5_fBV~qn|?B;A!yJ+_e>E%RWZZ^@}W+PE!ON zBZWE9d#T9{p4@m|a39NlMO4)#|8!u?3zKY7NZf0gP7*S<>;-Kk4l}p2SeMTO_f%0} z-rf3yQ#)sBj~nX#GKmP}X=d7T?1J$&kT!4tVmm#4J-I#HxV)$b+tj!KjO~XRu5l*4 zD*?lCscxO62c+*in_)z(ma{Nc?v?Xd)?$_>qFG&%uAcbj6*qp}P3z}0IZgmBA(h=t z8ZK+ub$K~j*IfWp2yA$#-Gs5*?Q0KMDLzOyp1@R zHAFpFbJvZb|5N>O6c-K`F(W>hfNXJ-uwDTNaV6u)KW&X{jkM%>GvWO-HcilxIX5t& zFYoVDGV}UQoap`_ny~rY$M+T_ER%V0*`~^GWh_FypXRG zmaLG7P?>242a1ohyiPoa6CoV8OU8hF5X&9+)#tbWwF#nvK>VoE(Y8L>R;Y|9Zx?~6 zZR!XXbKZ6-q?{xXk~b3uf^_#08r zFCvd2Y;($6-X$k6IcO;h9f)xxgfUyu59EE4%C6cit%zGsEE7FM#?hHDpO&` znUlMxZpWs4hc7Ahh}k-!;=~(MZxqcgmZMuwm)b&Gj}cHPD$|L~fX&3NN6RfEO*WaZvX#Wgwq(lAm%hrB@A`HFw?ePJ!U z;kx6CHQbfw4f`gyoZ#~0Pl>HlFPiHjhNqh%R|zn#TJB5V$E3r52)YJ~FpM`<9|NF} zUOX>NHGuW!;BwKMdltx=RE6S{bQJt6fNds`95)I^UzTCp`IuwJ0H=SnGj;jEr6$=s z1>7&(Btm@dL(A6eMV@tOix`h~e1S!jA0hd6$-P1|eiOhc+6_XM6 zVQeoxEByI)h&{q3t%I z+$j4>VsGeDL}o?2ozwQEnbxT*BOHj$Vc#k@S9>z)D0n`fwN+X9Oz(}*&6 zg5SIDtx}`HsZiS_*J?#W^!61f8psbM={4v=oi2@Ta0pz&D>{qU*tu^9koti zl-?`Jd>LtKz5z6aMg6cgr0Mc{wi2gZ8QnbzDUM8MONm5BP?q6)uCxoU@MoWz9>?|^ zfzFyO$6c%kA59!DK1c0z4etmw5Vt*A-pDjFDbD|8&K{4C7mS3R*`IDA#2*uzG$E}{ z$g}WQpE-Zfgn0jVe(*^g9Jcen`V9lRt%u+~$D2WZ8!{ua zu~{c$zL82z1`7g4iW1{v5Nu04^QKoPNdzXUiaYZzItfC2`|YAwRYNl}L*&6I330~+ z6K2UqzESOa`MSY?QcMx6KO0-=KY$(;oq(VHE&LEg2VoZaA>rxs zgpe<(v}{0tHp%#2{#HyNsd3XE%n_~XEOK4DwImMtHD$AGIP)q_6e>nplUmGE1dR8a zQi0v1KTQp_1p0GwDR)$DOmYB+YF8C2f{85%7%VO}v4m{&zm%%hUYQsK4!sNOB2SYF@;a%&wUAE-(ef%2Y#KpYeiwwoEcf6vHTwHryiT6LGIex&vzKy}9)zYZ)VCy&FIGxDBVLciqi8 za|wtu=M5&;lImRDqWA-DhVwE%Ho8c?_Xm6WqPgt54-1xAOs>Y4jjP;6nqOCYav7Mr zyt-hr*-)dNKDW|Kxxadb9E^huJ%^KD99RY{sZ-b*kQZJ%A%VDjf8ervjZwLuTz~y< zP;?sTonY?s2Fo11_OKL6@)yR6mEg0Mq#m>(R@(==edP=P0v-g{Hif00d2e$SXyvJO z36F*{@)Drxlo_S%isKVVifN&vUV@*CuCfk$NNP;f(*m}S#K1t&{ki?Ub(5}xvrr7& z<)N-MN>i7~ZE6ikz=oRk1=#tG0U^2)x(P097CQtIX9O;Y<^I6Np0H17mj@0#EffM~ za;nUUFOiRn1}mJTDL_ae4w9sXGdInW4VoJ#33}(K08*0xb~@Vd`f*&!%x(K@D0>Aw zn+a8dE6*j~Q;Cf`$n^djV2o_#bi!_>7$QwlvyciO-P{^|Eujhzv5#__iVPX7(AGXX z7Lup{Q>Jzm?^na~D3n?gEbi`aGSlRU(3y&Ts7z7EUu57~P=UXDOQG&E!P}eS6CzL> zr6Lz+ou>md8HA7Iz3?f2iK2JH>~4=b1oT&cm%+c0jKC5ejx?oOx9_$_G)rl(q7rnP zH1aZw*IZz#?qOn5Lh4gc$~o)v0_mLeXr>y>8(*=fEOnooH$2RknuVk%US;agHd8GMhG!)?cdImd6c<*>)JPC7t}+dmkWbDDW)$<)maqZ4@tpkKY1pKyFvBgGoU zldRyB)G2;IwO?v?WExtaYL5z1fet$ZejE=Aek@=c3s$GdNtaM;GE|8nvFj za^!@vXm>cq#K7Qjh&UnXSmY&<=gI0jd76QdV#Y!%(p1DlSb{)nSm#06?Dsj(R;8~F+4W_PQ@ekeF3daxe2d& z2RZ4XxN;4xqwfSEaZ=v5WPHUEoC=^+W*F>&iP=gWBz;b1nsV9(S=u)Ndt%GWoH5mB zOR37PZdrb5XPZNU@VcECZGKohkl1(wBY>TZ^;K<}rmxuVks_J2@nzl#PS>e-a3t^@HEl zb@Th|j%E&2@ZX!pxh4v>Ry!-wuf&I1e2l+0(5K!<6Z++Ku54XHQwE>r4T6z;1&xC) z7=i+0ljh#L4W~*@;OsDqp%!_|)+t;6;S=6Oo@cTW0~)RAd^y1!{M_UC(eKW)8>nN% zWtw!*!fjZVjgRoO`qfSKq#R}TAnHqPBfE`C zO4L6Gn;hMWI#_-jEXZapCpN})ySgZDt>V(CU`v9*!}&(<2Bt*r@9!^g`qD_SZyEs# z#ldIgR$kqt&rQ19o^~Kh4fm4Bi~lapW&3?c4wx{Ptu`RY$S%cN9Hbq}x2!8_mupKZ zOKeVU1t759SEn>M8Qy9apo{e3f{TP1X_|t!wUp&{7usC9>vt4V!`UWLTak=}+B_S! z^YZeumDL#Zb$w+KY3^IpxGN+l z_lSVm(t``FK4gD`1K$ahOmC-+5vR30a65ES&Dqp$p+4=(%&Spn9v98}18k1>L!x9ov>ydAZ59si-CJs9yJPlhsRfxh!V~ z2I_QRbgDA|L&?d>?pnB{J^mpFQ~xwaa!N-P(bMid7!7{xOvz(%qpRUAMub#0h)3+1 z=vf5h#LUnG71S_k<$^z`&UbY;wzk>*Z==bpVT;Tf--+vFpTe?4*45rgGdLB5;V!A(e)Vu<&PneMj zkbPqP-qH?A{5`)MKDzx=(8{GD6Rd{UHju+*?_;bI)_PjT@BH+R40QbP<822!4>0^5 z4D@|>2nY5A2eN~QF?@{JgE}2=Lv^_9L0;PjvG`o}?-AXzcI^DJLkL_39@_)h>3!H1 zF0dP&VuBYP&qa{okS;4SQys%z1#{<5izs#*Z!?TuM7{;s>ph#T_raG*4?1^%@r`Ka zPKPZ0Jf_zI(uLFN@+VT~J6wKI=DQmOeP4)dIu;YNY;FoqjbXorT<;HWwYkkp-&5EY zknz<6O84p0=7h0%;HJ;T%4I4RCR~sI>3$J2OxW37==gutSz_zqqm=ip#Re|Ft66WL z_v?yzp07Kz-p5&k;1l>p04ZONO<#|-H<_~`S*-st_E z_){*30NS0R=jA^6c&+Rd#6%iW7F)9Qduy1G67{sFFRcMkwo;e zhKQgNV^L#vB4p)iMep26#{N9&?|ls*Y17Z1jxX?HCi^2?ptqUA&xJ)RD401lj&ghnb)?g`^^gZLsfu`F+Jy|<^;3V&(hv2 zYngb%AkdN^Wl;B6<_tpib_1WV+OcuX608S*5aOw;43?g&Qe}?mU=)z%P^Df2t?hgs zoW5wY2tft@vteaC3brE^Q3E$xgyr!jn2SM}!vcF5p^W3=_?|nCi8W9H%!??@av#UA zso@B}9h}9M?{KmSCV32e%tnCsdz86&z}uwPEBz7 zK%#qC2VU*g*EKCsaeK1@#_Cy7Uf@XS`DlSe3G{d)lj6Z&-ogyXQ#axw{ALewh9iOn zp?aifd<$?=jLzmGx^IUcVoxhnLo${RUNBM{dx7C9oY2ro1)NhFKgIP4n4l+(c@YHQ z?EoaU@K8)|8Q}^p&z05rRbBJYL%g zRdE9gWQXDD&L(VW)0nmI`K?4A4asT6_9U#+vx-mt_K|u|O7g|5&_1nG5*vowSU=_} zEcz!BEUq14MMVY7rmredY}U-X95pvn74Axki$wG+h?j==CI<~(X$udvZB{e(=#-lX z|5dN@kOCArn&nW!GvNd7q@aV8o>P0s&9#~Ya#YF@Ui8>{JZVn8k!Qah8KtjLJ3lS$ zQL_DJ#fGLywN=n-Z*O)gFrrzuq`TqglutcL2E;8Maf}}~`(T`qLS_4W6`3Gk8i%vu z0m;>Ubz)?&sDcpnLyj2hHjjorp6=Bp$%O$+SET+Td=uQL1tsydg}0NJ(Cd9lA>+>v zLF(21(KHVgN+7k!`ibx5%+}QFsfc|0iPr)yse*3vsF^2 zoU+4VB~-uE?YDuIQMP)QUzOuB_oXwZx|6mA znsHVzXtx__RV7(vJ^vD@hfT8( z=vp7k`;%i>r?W zoizm>&x`41pc9Ir)%{pyBu;RRv5AbuJA?pN7S1{x_0yew*;8K$#%NpRyc+3w{gyxu0CEvW>Bm|G5Yra#nCjU<52y2 z64sG#E1u5IM};fd(P}~|oEbe9oXgJ~R~V4s&Z}%bMs?CzVaeZTSFdDb$x)1ZDot2# zYIpEs#n9{+K$8qqNj*5mm^`q-9D4;2ms{b}lVm}5-1*24&U>ag)>ggvM07~1$J%1G zI?0`d^>cuEQ)w^o9jtdatt#k+koKdVhEV}HF_8;bKUTUp1p@8D$4p>E1}uJAyC$0a zR;FD@Z0(|1rU&m3!IsPr0_?J#F4T&{t1MW#P8y*F;Xg`Wo%cFruCg|w+182{;`K;x z3R`MF6|!li04mq42hl8DDzXZp#0k^DTqLUrA2zkb``&-*B)N))4=&7`#UMg?Z2$4ZpH1PO z4gr@Rj1ZKn;MPPgFxQ54k%lID!T1MO{oVAWhN?7&cv=RXO%w-9(x|5S4;mqrJUk@J z>Esgd=@4@G{mx{4)@|iCLcHh;513)bhiD>a)@ForYZ$zQ&Fx|;VoHs`g5j_m==s3k z`$VI$>|@RU^?>U*+8C1mi zu}}MwOS{~|CU&=9QI>mI{)wgM#_|dJybG^aeo3w1Sv@LawSMDz`PdqJdY;?5`_Gz* z_x=I>T^?T!JP4^7c&M#cDj=wa>#OR@Y{_NnI{@&I$Xk)i7zZn3f;NRh{ z-W@NrY`SMpPG7IZHx44<)MF6W3wl2_JbF9xB2a=6q`E4n$h{>4x|P!`+p zgz6CV+Y3Q3RqSJX3inzIIj$SP%0Bg6^!I3~2&V4IgV+|nwEl^kSXaB~{<=Y4Vvyns zVnc-${^v4-I0RcICaPcVQcWoR7CZbNsJ&U$iI834DL)%?98F{ z8+16g)NGO~qfpCo)aHO4^lQ<@cg=*bJ1K-ga3*j8-D+zpW8x{^&|hWNuuW zp+Itr?0TMw&25L}(^F>GvB>vJ#{h8xpUYmf&-~(pT5Z8=__JsjngUzYyVDW8rGn)#gCO*Fzfv+J94iuqbUSsFt_wHWh;OF3o%r}b` zi$?=1!54_et(H2F(cRqYTjPu}QP3#1Wb*)<-o43uryo>(!fbDIMiS@}8|zlFZ2n4K znt`|}MOh){bQpY)!7;}PVweEnBR>3xq9JFOIv*^9ho2A*aSOFBy>Qa3lE@a#6`eDvdS@5y@YQ7P%vY+-#J?pdHx(I9spU#Gw&a>{Zk);0%Eg zjGsLCWkL9xJaM|yBD4Zk=alaN!^^c)7! zQF#kn9|RQ8ZDZ9~ZtFMByRMkgsR;tw*Tr?WR&-4$5O@U!9B?gtQLaSa5JUb+f9}Ec zd7^H+U}d~XL+c5XV?KesOW%)KUrmjn_;^->6%ZOhzo$|b_X{)nsDHJVa( zfdxOSRNHIaZ03_gYH2-&7m+bNS=W3aQsW@jfSfi-RP|-GwU=I!yl~KDoE`J_K2$lF zcs>brTQtn{S_r>a4n+^h4M=#W1ceciD86lwiX`2fk&>^BMoUbP+Pf$;>{eOquC<>& zK1dHSb4MkwjPvPwtQTw+!NVxsw)bzSx0d|(iD(S8}jU*<~r~`cD_2$^-zIg12X&-6m){MAnhZ2G;tu54wAE2 zB7Ion_=kYTg@xoe_>aH3W|GfZQZ7_+zmm+H<=`1ct^=fgN^9KdZeZ#H@J^gZUiQWj zFf0<`0ba1^gke}80nw`jmg!MUTS)UsK^q>dwkpV-dVd56vO^NIu8MSib<&%Zy9L_# z%}dJBz?t}|lMt?CR5oKnuR&RgFd`7{tHB4=L|SX-cT)MYYxNM_mAP@NyNB2n;Lt{= zYQtg``Fds7j96t(jyzJz=Wsn&)%-BmGW~sGW9XipiH!84QUVB(@@xg5sc0&XLZ^#{ zJwHs7<%Q1iIcGDqujK@&>`8Qd?cFmS#>C&198P|BHgtgv$$+qW{tO` zzSV`a=J&jpOVvZ+;Q*3_TsTsh(3Eb(EH>F^m=M0(D7esW?V@xL;ucsm47fPn^?gwJ0tE1F*94}J@s6FcNBK1(Ku zM?I;W{x7NTBqgNc7tc3+t!`ZUhtlS+6yfsEoP_n?_JZR17VV%b?tgYFO4y(k#qkc$Luw^e_ zFgQFKjTK8&kcbz_6q+6^q`(&uQHDY28e|-d!s(-pua5hsXapU<783n5a7gs)Ln!)d zLliZ5oXyjp3O2O54-c&~W}XZN4rZ4@q9=#*J2{}E;|E3dT>6tJcPJiEZ-QraKN)!? z6OI7Anh*h(6vcJ#-r^hLclB04X;~$~MnJ3b^ly?%^qqZ#nG)?@4@p4}+QY&Peg7Ii zfm{P&sU~ng_Txn7WBB~~b~>{3^-FH9Ug2X(HAv+C2rXswYDlUUcB4U_XA?CKJv}UG z=H&5`C-ZY7#O${O{$k*`aqjKFZ4H!KbVGZf^_;ilt~%GgqEXbajcbHVxNIV;SQD)c z04;3|?@IKQyUED%F3O12{Byx2&iI<9_BjM8T-n90r(M^(Yu;67Z`-IKG!9hUhx>Tsij6-M_^{-gTZpPnJi+vxQND8EvcReDgOT(!+ExN#%mQQ?HCN!i3Ht+P9Q@7E_# zm$PB9>_6FdFV;=uo%tR59lD~w`-=@ucGILkNiTk6xeA4?RgrLn{}mE4f?esAU^^I= zlA&$-*O{pm_+HYeTwlz8M%uC8t_(;jn&wCf4oTEKL5a?)7j=QI!5gn6Zll{y!wo_A zg|{^6X2C@BMl|J4pqOm9yeO>1#B|XYgK?UD>t5EAcNn(mX0v*s1H(BX#U2;xsY}`= zw!McYre|e%KH@U3yqtX1vj?yz<;?W3RpTC<@|m#4ON5ef`Ula) z3>_J%&R}gEwN$xJCr7Uz^IHp9+i4FcRb({DTw;6bPW~ixf){q{@sZ?g5*9oRTp1JT zBhzrb%miNEl;mzX%~R@QAZ*M*i7V`4X?z>S6uK67arG8k+}5~OSLV}ZP*w&YiD!C4 z;&eIaIu_YPfOu@v?~rs|;=eSSG{XQL2`?M#(?NY!SZJGSkUl>qq8qRB&=We)W?2>t zZ%q+!<(chy*ZXbs-SoYzBq_C||1d(H?S;o!C}b9SO~5ISRg-b~uITs8 zi#FV@54eI1@Ap$8g}voRbIKg=;iZWAnJEyW_y3qIbf(UsGRjRqTHIiXAI?v#L4kR^ zMu-^Sht4`3_$H^2OBIv>d83=is@s58Q^T7eKQ6JYbgdi=8}usC!)G$+WISDvj#78+ zPi)&}TjGl(OZlH^AFaxQ!wnW9;$E=M?W}d*H67;$g7?mR}r=)l_Go;`|vwiNnwQgQI<1&eX$ABq>hp zPjHB`>0Xxyl2H$BdM>8sW8%q^{x-zV%I*EEyIRi{m!BrI`yw-2>0Ih1Rz9j~KP9GbHj+|gmfo^_%K%eiYUN{gZS@!s7^ zUUvAyQSP?@377RH(#q$v|NGMCY0qWH+!OHgzGt@jb99}3qDaXs!cBEp*O(7?{AcMW zr1V4d(M9mdt~Ieeq0WxreD-?6Z=k^IE~weO$Mf?->e~wOlmt48C_1_S!{L_Q@XqJ! zr*G67@#kThg2S-B=W&bQ`tlq#rOCJWpEoO-@o&(6Tqatd@BVL>D!cxEH>7KTZ9>2b zFIIitR|=x#bU*K>E19r(^4swr!6-+{PZTB8TlojUkHh0@sqnLH!B=TbPnx&yPx5Y1 zD#wg(=Wmh&O%FJCi%2psiw%H;EO{;Bvg1M&5h znW#wg0=fHPey+z>!I#<(JKIO=bNiD=>|^XRGEiZ5(NWU|3i$cJ|4lx0qeVUu7@(lO w#f?h;fdM8To~g3u2=>1d@c-YF9HLL=<_z<>I`S>k|FGw!#N&~ z)n8_&YOa>4t7p1;zUXKv<6==_As`^&s;VgHAs`^b5D*Y6Fp&Svd<%H{H$X$NDCKF3=-2*W1DDJyMP$JZG2*4pdlqCvoYen zUp5Ny5Hi+ccQE1J`k~`t!v~wt_jTa^>>;GB%o^b%tSrNfLrafEOfDtHh=oT;jgL=+ zhDt|D8slIRY@zEf%OOQe{Q(n$;T=J?n|ZCDb(gPNzA?WQ4=q0dw!6rOrV!^QC#hf! zaTzlFG%e2YAeA4!(!Cy1ycp;+et<8Ej2z@dcpC!qzG4}ZO> zmc2h%GE#54QSEtytuTPNH@Khc3p_}JZSgbD0cncHztVfdXpaZ>W~Qv(Q)y- zV`d@c<=-xnBjx1M73N$BlsWPsI&mdD^(H;_pgeM;`eLkb>_dC(O?&D^BZrTjWv#dG zMRV*$bLdHRtho{n~2fKwnZ zmlrEztcXA~8%t#raIzr&pe1*;A@`uO=(MwZuOVx-JaIfdq&*g>i;LNx6nHmSdEQrY z-kp2amV4ctdDEG9)AsG8IUV{v{kbXiqCWAaIq9}7<*_aGx+DFuG2yu-@wp@Ap(PdC zR`S#w{o0oN()#tHI_kbX;h{7AzBlK*E#;-_>r30$w~o};_VlN=%pcj2Z*6INeYNIF zQcvya``;5@Ix=3{GG96~-rCdOIx=E;d8bQL+A^X)d%Jt-DuQdW()szj3z7qk)cQMG zTM@MLnZ7qhch^6=C!GuN`RSF$qIv9mWYvQ&NeP{_nw#m@F03%eqEZz}@AV413d ztU&zHU3`l<-$HYc%^Y+x_F7LRp8bnOJJBO%3`wm5x z;Qv*krENs{5?tWUqm#!R?!47pqjfGcLyFgySsqNB z$m>4Feuva@$6e(Hb=Xg4UhKuc90MM%$vn~5RPFe@`ACvbR;zeEhHxEj z6a?qbtuMMKjisL)heOn!o~H??pp=>jdTdO{hYJbFno}JHN)XaL#7q!E0T12&M=>ID zWo6>eOd6LK@z1<)u5@Sf8@rB`A(edqhhg(%7~ z05vF2f}mpj*E4W~gse{n^V-)kq}_AKaMjJYX*nqV$hT8KjKL#9N;R3H~feD4Bd=1^$v^cbzgbZuKu; z#r!2;>02Pc>yg4&A3Ogy%(HVOx(jW9{_{NWeRPlRfpWh#SNK}uryZo05JrHeC|$fq zbw0%u&UGQ{s|7GWgZU?8S180hL{HVA)v6gNZ(s05aQ}PBmyO@Q=hU>m%fr=n-Ofe6 zV;X;O*X@3ehB@yJD!qGLF-;rwKHo`MASg`MxJ-k!{rzkN%;#J2A3RUpK3C)sZ+2&W zDSJ|wYGTv1EyZQ<=hx;{@VyBys+9-+9Nu&{h_j+ZeTjxqb1T0Gjs$W$4vm+!R!}Z5 zRuR*E(ZXJ*fw;%IZeE@%TppC+8{bymCeExpN~N-V<42!8t(g-JG^%YQy0e9_oL7^X zy8iJnh;uv4R1zP$^VWig{0!Xl{$@=!hkge`IRNNmII1H@VyljMOpF z5$7bsJUUSv{-!D%kb&fZ=D{8_v@#bNpAup5W%BSPj;xO-$KRfj%gPCO1o~@~%c8a( zPtGJAhQqFXCk6_%($3Xo|1&}9QCkmIVBvpu$|203C-D1dZTT7D?>O00AM9Z1n~Kr) z@dWlO9W@`33XJ93DUq>t&*oF#>VSYNI(J2OPwOUGp=PS3qLCHu2}P}jNh-w!OHK-F zkHTAY>hrENS>e-dICgmueGph=;kJGnQSaOIHtFXP@s-aOEo$9b8+AYW^@03e)Vg)L z*+&~Vh=B`1?3jm{#Uw8o-?z0TTJAi7Ol0qZwz|#4=hON+I_0ZlSoSm!i-@3k9NpiS%~XFe{hivvg5G=i zDqcpP^>0+mwfJ#Aj3G`tI@QQS0{?ih1PRekvc21hJWSoDfEca5cvJ089)IJ8(9~yI zeNiDPF#>Wka9VyO^+oTjYF|^e^O;Qgi+OT{%2hsj$d5|QxIOkZ~N5}f80q4CIIqu zerU8*Kt*-<)aY<;nLg$ZP~ZC=YfX8vcZHg>Ys$S1XvI7D3YSr39HTV{ijLSCYSpR8 zDGHu7L;85wykNDf#VLk!uOvyjFy#fha*Cg@5YpyN-wNX!<>6_s)!5+k7Bkmv_Mb&x-PM5}%e)OxMaxg2YH+@KZJ&3KnB9~*2Sf53$Pg$pWYo8; zdIFvdw5~4s*+2wW8eSs!gu(fy2ys_Io@}9ClY-Eoot;X=4Rc^KXc?ZeDca!7oc`!H z1wN7LxN#_S(w%w>?pG^}Ga|#!M?xGT>K(MyA74ZO>3ajl#p!iO2J-MT)>U7;y!)n2 z(!y;Wptwn#fs9fHEOk)8#NV3X*k7r24Gsw^rk%9OK+B#RQ zXr?^^blF1if5P^D^8rly3-v)#_AEhR#8vNm>J@kfc>pVz!vp(+~wf_?IJuy9=vX* z$Gj$A{H1_6aaj=Y&9Bc|SsB(^$e|#bka+m;k4tt9ZTASjHPz1eZyFr8JF7cF7TEy^ zv{$}m`JJ+o#LyYHAk~iUz7DtI-gP;&eaAl#GS*}jC`MNAeW>@cjdP-u^|IZ5FvM`e zEm@qjka`9e!axnm6G(&fG{H8%d`S9yVNxE|Fc*sl8Ei%Uxbxp_`~KDQjOf|MgxShx z(D+ckQ0DGKl%oROyA9P*WXN%I?8w}^5FAds1O=1h;Iiv62@XKxN5%m4LJWZ^2x+F$ zc_IU8mRy+k(178*4AY7&TF^WmeAj+A%u%jrjq8KxqD+c=8B?#qsDld@9K}YcHCxKh2^9Srm|v^kb4-Wi&p8< zzhoOHEv}DW+pqn1&{@O(Smu`ESMx^JqYBW(zsl9kuk8K%hgL_(AkkP8*G1vj)x(!i zb6_XJFNy+*%+K^eq5Y)+TFt7e3TPQxG8b01LMIH6K>f$ahcp;_U}&X?LSq=hP>RfL zbuo#g8EU6>1uaUEjC1;ELt>x6Ou{YgwaLBsyv$A1-)30b(5b>^SbHEX@=zH_dAQZ5 z;O*T`Nth*2-UVElv@Ws5>emQXkdiQ_7XsTQ(@y@PZbWDpVDA7x&&PD3qM97bnzDH?g<xHznACO{AP<1m44w+Tgh95Rmm(O_fem5C1LN-W0r*a$7^VV@tDsE?<=_bQb{Td` zRXmU1meZ2wNFgM8iGbzN1T*%Gjr>l0P_X^`EvB)IDrwG z(j9)bV6I{>A~MbPZjd9tf41lyHBG#SL`x-$BFm&IU3N9$#%kG}viC6QMpVzI=2B?_ z^VU9m#bWF4I+TrnQIX+N4Q_Oa7TUI17cxMps{Xx8xhc^)%XiSK*}uMJcqnlZ;+g^^ zv>EPjsT%+jiabbB#FLhDF%6bnzhbsQK%mvwn=b$Gk(h1@^B^K80IM(Zxvp%s#nVfgbW+Hl_U5P{F_-$2xMRuHkT2Jy~H?peSuyU!MvIi^$wT|+eY#ovoG zG!zDCh!%*$PsV451o@PgdWHs}PZS;L_eFDRSY~^|3b#Rs1l(x@zG4@J#OH#XMuc9C zHV$${S_deaG#K9vbjEaYVkU}IsT7kq#Fb8QpkjZ^!mOEl2-lX%*7e>=VN^Pi4N{EZ zmP=1gPEsFYH}jrZ;BcJEoE2I__4qeb?fDlf1Rpj}N%(B7aUi_kBC+i$IQhnxz9Tzm zB?)U-n)-7mt;893djC{oOBC*aHchirzD?w$e^ru~#E2XkjUZ4Vhz`r5-hFdm#(3j@ zuAE0?z>K`$8Ik@YQthVtZ;dEese@QDA%Gj>ja^qwcf5 zL?k`N|A!2Yy)}dAW}F!;5yp$-I8can-QJj+RDP<7CSeEV;G%WY40mq?pZD*-72jer z_tv4;wS;>%zy!Fab6Czn#+ZE84@xr+*-6{N9{%aiTC}gE1^c)XM2=(S*()~{y)x_9 zBPO$ptHC%U0E>9T`g6}78R~$M_klwnkjJi~88EzsUCrsLKd-G0EU8N>UgjuDqL&`1 ziX#~EBq+w7L|t$`kVU_W3*T~36TbWjAtQb%Wwxw$3!X#RzbR@F{cz>sOjfmQuHB8Q zy&$oLV$)4)Z|HhA$;Y798&~*#eEc4KyuKNeo6eFcV^w5;CVKfH8NmvSN#MOqIW)&F zWN=G=LQHnQ=#?aICiBK{g@@($82*Mlrd*1z=ewyq!gE$xXhTN)NF6PqW*?4FesA}y z+Ay2dtE6oc!sbQ%ycVbfk248rpW9_^x0=aK)jJ4!Mr02qYPiv@;f-HZzzx=yF7vT@ zZ|E!#@L!6YZcNIY*bu1_00jZRxJKAoEVn3CjW6)V`c8$cXZu|Icd0Fx6udgbOh-jr z@#X%Uq{r2E`Qmdf7@yY;eZ-h>^#100U8xdFUs4Q{CrTEk#zF_u$>%c5v{Z(PW%l4? zrFRbzoH56xJj=y282)C8OF`!=Jut1&RgsLj?!+n#RC!R3p81urjus=x<%l${WUuhH z@}83n;9m%f3fkV$j0siwGp)xjEcu;H&geI;E>D*R9u3b2`Ex&rAP}JV^f0IoBkPI< zdqR|95k6n88}Q#~tMfrOPgthH!2c9!7c^5uNP|#Giih9vBQwTwYQmON@M+>ad|;w; z(X{hoq;uMQQm<4owEr={x!;+V0NYCEr$b4MW8BvD<1GAnv<;mk=)85bMK_FL;^ZCJ z>c0%q0IDPaj~{U<=2_H$^JDqVpG_sE?uMe6l7R`ymzykbUqP%wQ$6uV!!@+ump7%_ z^B15HN>KNQcWE}!MLTxr8;611%4TFbdj+d zimmG)9gL0?B^qvd7Uj8WDo_UaHx3An-X4`OxENLYQ<2FJHv7jx&X?3x0J$m6u@T16 zlYBh^sq?IkoTG4}6x}`IDA)x<1{b0|N(E1%GNrq0c@<~qfts2i*-t|7chFnBSoP?l z1JP>a5kkq&xazTZ?q)wGt!N)(C$xigQgvz%WC2H2*ycV$=bTNUczJ6pVvjAbj?{Sp z>z5;6Wa8LWG(25^CLsV#9J};D2g^rYTbC;Jjk&aLH2}Y=pezt}8iN?<>uofMxWsJ- z`!5k&tw{l=rxK)gW2`%PC`hMVZ-ny=22sM6dVc}l4?gBeIId?4>x z4s01AcJt}G1&h0vdJyyg91IUszf_e9JWyjHVkXSkBvRSZ{_>@yJ1|&&SK8|FEC#q< z+>v*Kee19ze?(|R4dl&E3%<-+rM6ILkh&sr=ZV$gzxk90hRn>yY#4^MPY^q1Tn5Qk z{G`O8aP`%g15wo6IQ`gtU`J*DHf@*v{UX#slrSS{9^&n&z8ghTTX5uYl)uM zj$E}UMpgmVM5*1CCqB73|jIF@$=ewqVMSBVxS9VYu{on@_T zOfa$DmB%pUz9=L| z5#q-fGlDAqeAe~Sv3o5$7%dj6J1it~eHm;WmD$iszBCu@AvhM`qp`7eC)A68R~P#_ zQg=RZx1WC=cCl4w#G??4=YjYwBL^I42pdY$oRpF;#l>><&2%Ywn@Vg|fZ-kp(&JMH z^Wn{UvcehuRg2i?6-)mVeFwYwm1gS#7Go_cE#DCV*5~3ja(h>rJ=V-({sEpag+%KG zUM9w(mC~7E-N~1Zj)J6uu6MMhLXJ;o9o9hZFt6vNqe`1AsYjU?!{8&CJ50u)%@3d@ za=;L>rBE$ye-iwc`Ko^je!m~vNp1`t?KTF#I;(Ak+QLy?*}_5$?dn&ubh$VIcNm#n zwMvU!m3~rn_Go@0S@NV=#`YZOXaB{;sfhH;^R>40%XXpBpdGfpNKv%ZieiL76u6GO zHjJk7mq=p}bp@6rNVl*nP$V_`(>S?*% zA>}fzPLMDkP;`OIEW6xbdLFD>9&YD52cFza z0ELepAb-Je$xQ#bxT2k!axIUJScV+ksG>^DkdBoD)8D00F(WcmkHTut8=BD;x84)J z?`>IU`Br@s>tn4@J!l2F4|TrQ)!gYsbds2QZ?gQdmg{~GWL8&Jl))(*M#XTL~mU1anc{a zs`NFO5grg2Xoe`|9F6D(ZfTh08k(x^ z8lVM5=srIK+5<2a5R|teD;cVA zW?%^b2ArmL4!mA3S<=2-J#`lM-HgAb%Wc}%$~TsPxl|Cb99O~T)fg{0mDYN&-N2J0 zxww|Fj8dcD$aXk2lxHrp0U|qcgW>n!Q|1aBnyYVP;4OM);5=IuXav9&a`5uj3Zk8H z-!Z1%zukDU2|geDeXFD-HN8BSv?kh71Lmt#sQ82v4j8K-b^KnzpZU6vOm8axWhReQ zWQPKO;FRiHo3=ETCdm~G$ zIM?GmeH09zvFPIEvP_!4)}$vgVC&$C_0hL>GiZgNPrN-}>&pYYU-4k{t20DDZZB6M zd*eZjs|P;WNTD!$TmCl@bitGnmQYOhjYLg0cap2ez~s}MnbZ4TdzYj3Fwz$jzlhu- zRk(I~^#|Jx?bj|#DVr;iC|GJ(e)@wGL_a%N0tl=d66e{FhK%2Uug}#ZGcJBY%*hUz z^VCDd^?Ze$AGFI_dG0dIfx=g5q~?#Wlb!i-@Y`;GYNK9rQ{`8*7IP9e!e0exz2@4cI9lBo&3)vbws4-!A zSLlAOSEfH8eP_45H~8{*T6(bPRGAONyM6`s)lQ{*JJCa}&jlK(})IJTa zrm!Nq#y5fZ*FOrX%v^wj7wuxL4f@CJY@YsXBls?5svk~)EQ+Tze5E^E>hbZR(+5f? zh~+k8S}b`n*WJkT%ZDC)KwGieYY7{bjqWO|J6FrVYHr;Co4Up?r;C>%nSU+ zbPwvs-eU_>CtD$y8vG?bD}6DSdR}~TaM(|FK29bb`20d=`FJ=!%iWaHA4Yibsy&N* zXn}#kId{PP7WV;N_HXA}@H%i%Gcp`BIfKXg>L^=J(NEh#AH8f7cW(bRXzZ$z%g__R zrElKT^~+&dJKG4K=n;pWpy}NjO2UVX@ULmG=BZ*(SBh90Q^w_dYw99ow(vy~5&%alt|u(Z=Z#3Kp;Cv9(Vt%IG# z`UUMDpJ&oNDC>F8HlyKdpY~^?W#}cUS?L$)M4Shxlkj$brpW!7Dajjg#9Lom7^@FR9ljcaIg99Yq==F1J+-a- zccw!`g^4q7s;hyI4&3J+`cb0<^6}n-OUHp}dq+3*i~Ko3#?U12kPkIgo?j3=bWVc| z10|e7BhqSO85m|Jn`S@4R2`O#eKdTs2LDiK7^4ai7oi9G`TrGuXwsZc>O)L%x64iL z>1hY3ul4@(SD}*c#PUKQwNT+#wJ8NxFdC^mbvC{q@4n%P5qFWx&DAZD?*$yvU9 z3ya#b{QtauDu4>Coz_y^b4>h#MY=W7sq(*n>GxPt!m!10y6Wc|lIFTgHq36%6IPk%+nqU#*3?B%&JAivgi)E0c@JP&b?DVnUxDWpU>;Rd6V7)8yn8E zqG3p~%m|h}=yq+ycY7n=2i|?XRnz2#%g+*J$Q`P25Q3N&3yGvpve0WZLVvfqQjb(3 zDq^GT<0e(bINiyPwA1FGAbZzxPE3@@spPX^*%Bf>)^LLg?K0}NzNhl6JG1QZh^v(E zLR{2w*5@A7$`ELLUW$%er$&E^a0-0;sA`{5m`JikJ`a{=zu3TSPMipepr_J+M``wG zr|BPf*9ucUT;vqZ=|1L_*Q_c)) zwCL*1(TpN(IC(J#flmX>pv~5$n`Og|2HPn4K20~vrs2N_L6-(LZsaFy1XHga+D|iS z;q$Cma%|Nb=J&JxR*Vp}x~HWB_+iZHREB0Y96s94GlK~2Q;NJC^Jib~K@3nkN;gR531+7L0GFA158;F!l%D9?;pRt7ip5-Ei}(1HG4 zt%pw}19-h=;rNbb;LGt`YR9)*{4jWbSm@2sB+no_X?CI|cj?EA%C3%%KCwF(q`a}h z@`V@h(rP&%!bf=Rb|8^2?qY66-E$;JnVr3e^v=AWmD-V_=cSsf#TQm%Z9O; z+c~EohW{^5gJvDWp4?L_H>{tg>}+ERwh3;3pi8)WzHoG$saO&C@m!wjKr8v|gW6^B zDYvlD+|qL0#N622*m&6(`cGC(%!&(Nf@18$wZI|{7Xqr6l=#ZKB9 z3E=bd85uA0qa(ky{9SL?EWfAhSxWE}%F*@Xy4;b`ae)?-4fWp?PV0% z@D?T9o>wU87c?t)aXTf}oF#oU3kXVm#f7TBs`gdCity&(Ax$mj!biKi+bjPinZ@K7 zH{pD-+0(KP*$bc0qDeb`Z0x%5XUEx(QlE;Ru8tqZ!vPVmHzOVoWq-sZoPhv;bXnz$ zP#-;3Gui{t%u@F2oJz@_z%p=*uf+%N~l*omtGBN8TOLWhk=zsjG8rxkKqN^^EITqIjAD~-#C zU93H_eWq}|1Pa@^O}*InQVY8T;NaQ3vClFryEqQtWlQ8Cnz)EG-;)Thvz*e|V`?a_ER`5k$ck^Lzy0DB^Hz2zdd8h42-Ea zr$PlheAsYc2JBTw`b`VM)$cY|ZA?TE0ZTBVSBj6efh)qv)+PFiSEz;YyI&B%%|2TF zguq33k5lHqh@L@5E%oH9X++0AdGb~-W(*ZR@eu-JuXik_rq+uBMJ+$K3MjcijT^Xg>|CTBERzf#dF#I=qvN+?{7bY4>Y$E$6Cm+YaWl8%R%24t;!^( zgxN6?!xmOyo+y$(amIK`sSpZV)Vs+!l75-8;EN&vBNwm%Y{P*c5P%wt`}hDK+H0Q6 zAv3VjOtJsoYt1T+HWK6q4Iv!3Yq5Jfwf}5(*%}kGerwTf!9%QtUBe!*VQ3cjv3|=$ z@CV86jBAW4H~QL|81KpPY?hR_v9@RE26{i#!*7Ud(Bu7Ydvdloo)MJpl|6jU_44fp zyhw{CNXgCxW!w9w>E~gw9H3|HZ&McOBCX2-bj84t(Wsf;A6%B>k_hmwhH=l@4-T&- z$Q@cn5qsjv$!>2__R% zirSLz-}@zWM3reUBZU9$z8$AJM=-vHze1fs;I8Xme+3}pmp2^^FfljjlDwVwwM4nU zKwSg_5OBsgnUq9g!Ji?4p&nXdI^*;Oqm~~bXi5O3idPZ=$iHp@womi5$J+TFOKZgY zCC$fs{1QqC-#D7jZcwd8p$Fr=_#=f}8HJ^X3U=PQ31JiIUypZjCArRO^e)C6hQ~o?n<*Fo2AbmjKwiR#*bt&-yM-S7y8uKKnK^1X!02Dp!wu&-L+_ zLqzb+LKHd@Oyg~1zkJ(q1=_E-vt1U13Ec}(c!sxir%I1ot@+Wnn{>KYx1RPPJa&Yb zqy5=(X_}S^=Dz!UlgN{zrinmfekZ?FHkx!tSrvq#JiInrFZIA&hz14~IGK$pEe$yD zV0C=n+b#=i<9lLf6Hm8jUF~Ox6q$U?J;1SJ+E<^h~X?$F`^Kl|{pD@%j*=1fbK>q!pN z+|xPLo%`+WE)(aGzvMMgw2EP2c}uF~7I);#Q-@yn&SACk22)}9l6Tmb9XWwwX~61= z7~39p9B$Y4_lR5ShS32)2N6O~viHpiY2-jlb1Oc(U_MRn{Ldlr``ht$q&AeqHmYQh z&if+RmYO{gnVd(uTT?)zSy|b2!`B^JQXspi!Uj69`8czzqyVWY1+C{h&>l5S4$K?CfjKhN)5ffEZ=nW>&ZVXQu{)JR#WW@CudAQhJVU2IQki%e7Y0I(K zZS>}ziOPcg?^@?D9eR5MC4!h$ihxa%YLmDZU(W04;?21O?W_YL(17Uq_UDa|C;~Z3 z`24|awuHdO?=s5TrJu@=Uw@}WRs3|`PK#Am+3ku$ksMB!=L$+cBVyW@)tkV6T(C3R zw`zXcBxh2De&kdWa{uq^hhD1|MhbjOu`kkOn(md?q^j?+~3 zJHUoJ=y)mI%P|)V<4;bo%y}L#x4Xb|cW6&(MpyKjI@+sKm&<_6!;0*oJ=mvV{Jkg+ z#PA3lJgyT&(|FQB3_b7MGI~#)uEA(3P#8P{|1WiN$nu zsG5|!Km$jov8Nzp_of4rj4U)o$|}!I4_BF!0*Y7H_D61@mPiLYX5cg+J`DT~bev7_G>g8tX!aWx`{2$1*&i0C=H`xsH@DAM95NSlw{jMH}mMt4Z zc|Ha;y9G>$&(UM1rFBseFfFsHDWwFffV;n?*92-mhM#3-I$`F}$H?3n@xla08Dbi3 zV@OD{trI@V2Qk1BoX%ck$X+h2OIT`9Buh+zAGZ9Tg8Bc`^^NEU5`>?*;h|Q@^So>{ zN|cDt1YhNMZ+~>SLm+S0-Q!1!GZ?@NLS97e-wN&e&}t#-C*x_pGt;be}=}YP>23Tg!&uKWczotHZgEYVtq3;SVO&IQf#ICCC~5drciL8 z^*_}WYl)@|USz7#U7bAq(t6dP#4yTnj`6gv&U9-m8khMJ?sEdLEn*2(dBhCr9J-81 zv^HGrn^l{c%-pUyZvZ}fyfV8Fq@;HgRPS$o-1eB=9TL=sBkL)Wn##lRkfBGB7mJ1SW5vIB-n%R~Mb-1n z)+{t6u;>aqK;ONZ94$H3$xUvkN}MZg#Bv}dH~_rp9QA3y7izn)LHn)MN57=?zANgr zqYMz`5c#2+H0+MF5Ho~J@i}4HHoLDRwFuiR6^%-){5XZGcL3<`{pz|h&lY&`cWZyn zg&EWomY_d9%(-L+qO#mvRtCK?Anv5Bo}&Fc1=}}@IqT5%Cs&9N?ECoA{oIxb7t_IY zDK9Z^5@%i4ZUKH>8=p@UL3r_MZADPF(YsbV zId@_73jR9ybdu()6T7!xea-asnq@IO^AYenU9R=qWW?ff)}!>!(|7DpSJdL%ioa#f3of| zZUj5=YVF9&W;3fado=_nG*EG5vcjtPjC3g(F44_Ng2CU(fV0bHpIKoalX62#dhx^; zy>cUJ-X#?!2ID(8?2Cwah5=*!X;i|zLHl$D5DKkX>6gFhYgZT(B=bcvGbh` zDp1@;z#2;yI!__qUnu8j5Ct5niwA>Ui3^;$Q5g+T5AAjtNq@DClI=v1hse}S2uV<$ z+RWA>d*qZyG-xPS%77Oc(>%NvK>=Js%V+#wHL5+WsA(oC>g=78E3xVxdefbTCeVRL z=V^{-h%}By8LraQz;*kd=x~%z=$Je@b}Jvi^1ItJ$TwjYT(exBHjH>i&BIy((g`5V z(xd|EP?Plu54vwx(~~aMQBndq*GeigY$%&O10H^Fw~<=e?JkDYadm%fjJooZJ++Si zo)I2KTJY?_j7)2S)YXiTIldBCahRu?R}+kl&>BM}yLNtdd)G+({zxI6smuqQ$O;@|jmPz%T+Xs9p_csbadt2(?K%=s3*e%U?h0n6E zFeM~CPHfNU`I=qW!ZZqstI#5}GUoI-DNuTT`0*b~mDB|k#UkX?YOiy`l*qgm$?==9%eoXQu$3$&I;+F|fBDH#_biM><3$qBx!^-0(6aoDY$D4LOEA`*n z)G5 z*#vK*aWIIQC+{pycQQwkQFbnxo?TxR7h)u){y=s(ZG`1irh!eNNV?~gBST=o-9{m?>HOab~)RDgh2cQZ}#_=Gu^~EfK&b* zu1n(i1uJlrZ`x}BQ!j3YHJ*RV3YScX$8~R!YFO8^-TO|Xt{VU93K5w>j*=zo_DPFd zib(D$b#T`lQT=Aj^^X*g`mRi(*7&~zTbKIZV|dE-W!X6fP>sIrSc=>a`UJ4RjC>?YO>poSpn18gh_3>ZswP*^*I+( zVb^+#W!}CJs0+fO=*)}wc8^hB<@MO?K`sudDJKE{aOQbUXJ*;DL6j`nXigR(2Ecqr zd=Fx-CBW3r05;s1l$buks=b_T^_pHH`O|fT+#^VF&}R4*A2!jZB@H7)0ccL&R*?zi z@bMk0t~8D8Z(r`8{1iUJL*3$9&I-KwM5q#m!vOPjP0WRs`=D|HxaA+reW4tCa}Q+2 z2(Z{g=l;HFlgR$r9I5(u`+$@Xlqha3Tiz%xfa2RFk2ILUC84?2*}17l1FEqgd6?A( zKs|pinDrapuzn`IRS&Y4@#dE&v**vG(65b#BX$$<>Xq?$+zuw%Yhr$YDFnS0Axqzn z&_7@<5Emg;{!@=`fZJnFZApk+T3m8@W7=NWA<=cS|IzyLdS&Y2R(D_ydVL6DBR8u3 zTedWJ`*R}o9vwb}w%^FIevn`jODsbE`A-4*B0eZ1S`aN;K#Zqlxy1nqZ%8mh+1MQ_ZTZhBSytKATS6DX9EiDkzl6smnaXBum=39WQ9lgyB^YL^hw{^{sg#jRfRlN|oR!V%PXyV0puy^qlThbwC~-xXx^CnW8BH%T$6 z5@+ow*`jXoBw*34-5D}Tc&~BF7idDOpefKraE~5beHOCsPq}t(4j&9{?#=zQk8Dif z(M_T7zF{rrR^TLS6jyI&Sv}qEBT%UP^w(pE{_I^VPwFhbrW-|S(y?#j%IfQ#WTJ&8 z;AM_`&F0}b;&f)IDJ51l_q<|7i#s}gf!;in^0AiLuRi-;ZAS1&Hy#q1^=^B(}S4zaItCZ?!Xy#y&5rupPG=t90gtF-dl_7(* z>{imNqQzwY9fFKN`FiPDJuYtZCMS^!)q;gxv3VJ1K1pbdTR#~A)X@s#Q5xlFWF?F$ zz;Zu@vZc*(nB}~lgm3hi|9Jf$O7B_$cQp^N|A-S79EqF-U@taYNf1fuY!8_BJ?W93 zCoHv|uBm1>>QYK##$gT?!qzG@g^Q-B4}FDED|i;m0u#p)2Ack0Gotc7)I>m{=Avw< z56P=D_ro)LGC8rz1)+%i&!t&bgP9VicTW>JI68TMmr*S(Dn???IF`cNb2@r0t~0=y+5GFtJ8sB{u1?qUTf=Gv>J07 z4IoUDxt_*uV%DY>uI>uJC?JMR0KX=5^RH{(Ca30gMD%H5>yh)tLCKYuzl z`cRK}oiPHCC=!)oCOaNyOHTG@3S?mI6hQj|WyE|+6 zQ!KIWiswS5TlcL5mx=fh0kO+P9sPE`+ZiaY0 zYmF0Gw-Lo!OXH3TR%wfPK`+U$~8nyJy}`3U7k8jmhKA zog1w}K>y8fs`oqj=#Bgz0GB{$zX?zNoeI^EhV^kt1sTCASn0sH%N_0SJ6Ye_1)R6; zMc(Jrgj>I@T)ch9b=NmGHi5gjxs}c3@;$zVGx3$e<;yp&k7dGvQ7{>tp3+r0_VWXAB<-V-7=rnX zNUAyi$Kj|aiJn-DMlx3lXYOv^bMHSWmP(~^MNleL%GGSH=VHI2to&9`2K{|~zTUv_ zXmFCEdor5Dyd8q$Z_at$xm3#L9?;knI6`wri0=FY+Y{Zvvb(_zrcU|dQgn&rn2DO= zhvrkUMV6SInT6;kJWErX?8FHdW!{L%YHT!f{ql{WZFgg%SlQXx+1;zv>a|9tQZ85B zO?UfF{sL?dp@1jbA$!1U%7bXqG}(-10*dJ=@DI_GCL%hSPNW^}Z%A|pDZp|XqT6cZ zl7Hav5?vyZ12sz8{XS@pDff)nQzy|aZk;^Z7NRq5nJi&NCP#fYFDpG8?na}uv(s$0 z_V?>;*p9GX-7HcrzkVm*v%1g^*+a^W!Lf`FvIo(XhwXY4z-q=A{R{JkVUXzD6J1p5 z9{&>^pF_*eNZEQYFnIou5?vyZK=bkVm@hb~>nd8^24jY3hl^g=$;)c^x+e6T;p+5c zc-UWvUpP2$cUuoZtJCV%>-Ac#R3VDR;{8o`YYU-$VbBZh{b$DdCc+fkX#$6dJ6EHL z#W~THw~d5hL1k{Od7h^PHdXGTe5d2(v^9t>zGkTU;ira_NF<+pIS}{vUYb%>vAV`o zf&nUhh2(e+Znt)J+U?qtr)6aF#UgCq zMk24!1n#%Ojj_HAb?JiBgsxf|>h%QEG{!_zj;H^Se4enGhOYoi6SA-2Yqo83l^(u9 zR_KQ!k)FpdP7IGmRD0PF=tPwAXUD-Z%BjxgWJZw+Af$4ADi#j(6;>{|PoF)9=g_?M z;zhmQ?Y8g%=yW&edJraTIOl90isL(uxXTiLH zTLc5%Y%M)MBf59`WMJYunYl|Ohw$Z(-}Ll;KRTUMktrM8Frorl9CzkUEqYRjo?_^r zPfZSw6_lQ>XU`hVb{BN^J1@F#yDh=PX0y|2Hrsoo`o}tQosQ2 z%5|*LVZs-rG#+I;5D`5E=+x5!g9*(|2dw{PFR`0(LF{l$xRtF@1G zzKe9eL36i86`{Rc{Fu$=hE~rgzq5DdPiKG2UA z{no7;2s&iSTdrNM8@%#pcw_=ePry7|B9YvhoL^Z1)?+aMeQ_}!i_b>mv8Cl`bkf$^ zI26}B!dg0neemt~ptc69>Ea?8C6sb>RA4%p3ye4Yl>Bzx%KG z-655c%$@BI96lneifovY^{9-ODL6#vPytb&P}c?ubu7tm9+734$+A&)IQxpfjHHQ9 zLGKXBkFE2`s_cV5OWLm_m5~g`OKhiP{=4?F9nuZ+koXOnL3$>I?CKkcWFF@dqwtWkd@+&J-@Na5r zcnD~Ru>IBQ!PiHjknUZey{7hBZBtuIR~PylH$XTe0RLbo$k%#XyZifY-fR!|wl!U= zsXP3Cvfr8b%g!J0ei^@05cVOysL*@qI37l#ZW2jmJEb29h&z_Q7-3h*mKaE}KcX>` zSJ>?u6NpX_fc}R=s*D|xO2qC{CL?QUsFDM8uhYP4rlI3NqV9H%Hcj(F_vt1#9<=Od znZ_T`cKdc8tWm+cJOG2OZEdxe-yMDTgNgCU*@@LfNXn%qCsXOIjGiTDP+;m& z@pwFjmOi}|jmDvjZhU-tXas9(z>y!l4~{%U?Po7ugUXstNYV8~V1m7)57X`)SX0;9 z7mk2&$Gbq*RGzCS&wOVjU7;_UIwni7>dkytn!!})fB=&TKV7%YJo8zP=~bbqPe_uc zg=EA`+_AQ#BY<{DBPS!IFy?c-M`K=5x6|{y=mefj*ZU2omq_2Ibe;cFLj^$3e%H(t zfKJHiOp)9`hpsaUfDS`O-(kQ*Oxr^%s*asGbFR7`Z-3s_+aKwHDK_Buj&F!Cy-5GOnopJ%dh?JkYbdgRbe! z2;`3zMLr17RUbWqKT9e?Vzw2%5a=|JgrF0VYQPP29Gts?E-B0-iF$l5tthupKYgmE z=~`oJKWzF2iTCU6Rt2gBIYiny`V}SeG+KY#;e5R)?99B1NFi}()R9l)UKdgqz`;E67KB8WL~%jGIFR0EKR>~ zYVgV{Plm^*w-EHHDX`^R$&EDVr>PCnvs5~r0wL?M#bwk=Gzvlc+VUF2?vsy85$FH`|00aE)z^ja{8>osG3M=dT{CpazS*b@Jm;epR8y)A#6Coz6Qw z<{Wo-&^@wz7(kbaqpl8+9(sU72+Ys)C2><5I>o+bZ00z_wT8a@QI-WlhaR_*Gwb`s-B{JMS{{ljFX3 z&}F7DrkZqx5rZDg=iGmQpp)kgl9dv*`;eFU^APrnK(}X0ct|w|=w{v&n8svR(9v*< zK=<;TYldtk-;Zcc(A`^6QBig7bS1Km%hGXGnzfuvY|&Be-M#nfepU^p_8zQ?X=uRA zJtW3kTdpA2|M`zjU`GDR;3y>N-l>L@R)YZlstR3{(3bM-n8YVDS?<}xWn}^C7nudPZ-jY; zj=MYP&>A3hZYd z5$Md4>~~sz0^Q3{>S5mGxPgwO2X=z)=kvt|Q)Q3W>r-%Ik7-4=0+y`ed|UnHhOTe~ zI0qrx4buc|Mg3k&NRP+Wo@+$En)EZyTfgb_ugrK3?d&t0H_LL3R~bmrvi$-+J@35pj(c&SL+_c?k0Q_wu5W@mQ+!^p zM^>3yw&!GAR&-)|iYc<3tGs|C7ORpdmn&txBcCdXK$l^JcvMy6L53gvL&=nxkG~SQ zfexgrfqc+;CpDnvl5&z)WlSr&6%|L1o_W3boqL@KI(qJ6i{1^}!}RrcU49RW+kf%P zpIp5UhW1@p?RpJD=kEU2whO14n;$(GpNPiND{;UWF&BUiHr)n&3qXfIHeYUnu*_yA z5nHykxQH3~=*0Zg+Ug`!(v5ud`LE7YRVaU&&#ib;!4t^hN`2$uQf_{)&W>dJCCEGP z8aeJogH9a>$O}N{LnnihavH$8H_#<5BZWJ$mXQje>r9uZxy7m^SL2aYvbj* z`_(^u{`}XkR9=Cpu+w$*HBC)057yOmvhIH6$nexe{4<<81CY0bprDwl;0O z1SOJL&_S@i9hKgioqqiI@$>h8P+rcwg+M2ZsvA4zM{RP~njeo*|LrUM%Q- z7Ak1bLv)@XF%R+^`Jfv+k@m7(PmJ;hDJ?{2E=DDhT~JtvjE5L>P=GF{K2-oZj4Ua4 z=#V?;NV?<%oe+hGL8k*C?WYz0`n_|bzp+8z-F3(H;^3nyttk7~ zGu4+Hk@EI-I~gY^m}!R_C_-6U3zWPLHXk2(0_E*59-aW!o3GT}Yl8Xila=>hePV-N zz@nq+f|Qq_%p+Ae zNO(C=$-ZVkNsfE5p!;N%dAS%u06Luoyoy2-qmo7n6a~7(yj1j4oJx{7uMdU`IpqS- z32*Wy9iS85bWLyr9Td#Fw9C5FU-dGQyq{M5>36H^n_9vhIK_q)GXoT(bD(2Ud^;4k zH(3kT#)n6yC&yvg>G4W1>+hYveDP#`Gnn*=+4KV1b2Qf=XV!fqMaqJ{zO=LgprbOL zJZwIPO2rmt5)i8|FRzV%{I#PM%v*pqzEvtUHkWy%%!tQMh!Sj+B_qeZNYGW;(CG3W z5`Ydp<&2^jCyhWC%N=y8@G#(K(JG0$OILWS;olW>jW_oq(0M<+5a75%NGr+%Ay-`W+yD0C!%6{hq+4cQ(O-wTC0aLld*};}3>D zdgax3V0Y)bH%?SvdShsO0``xCIv$lkCEZ8q--#zoz=i`%~zMQc^ z-vBvXcfLx_0lMwXXF*TGnzsZ%Zh<}rlk96_zkcheUI28!n?^h3Flc_n$I3WtGG&RB z{t`RxMT0JxI+KO9?q+_pNByiF6zI%T3efi}8Z&4nD03>SU%W+UT&$(>AK@c*zdPt| ztthWLQ+J^=449*K1>HvddPgJzyT#qB92 zvle}OS0U)>9OeLe8kDjHwmhfUTx@YMHaqt553Bxv0ninlkJVM*j{1Jd$D8qhlXMRY z@{ardK@TZR7q3(t zODoEcT|L~BUQeO--B_ujt$ttaEFt1niUS61fd$HvE> z{ODJw&s?f}GQGMv;|4m2Ku00y_0S|<@?WjL{^@(FV>=rqcL z!mK-S2Bx{NMHi4x$vASp-9UF~MFkl2769GC{4U*Cafd~>K)-b>a;LScrS{(7;E9p( z`PtP^K8eCkQPX4NV?&>xs66pve(KYW{ezC$PW|+!Kix=fpk5|mvhC^m>XYZc_->$F zoOS0H>?pcb5*p&Cx@hMK#j*56T*$l+&>5p6hge7qIzJIu2y}lL$t=!wH|TvusU%9e z`IxOB&5?*fm-q-;5`fOn&3OufE}KjdfXb}>3AcewAAIN0^!V%?u1ASZOitpm@&_Ni7+Z@*7yf6UZ~W8- z9W8po0zE!G{@~;H-#VHhohyMgok_O z(P+>p{zIDAD--C&wxZ(9`HP+1J-4m{=yw40JlFkA{+DIZZ^0^-w$9p%?+#WzoSvPU zTmNKk3l^h9aaZT**=Tfe5kZI5=f#4aon!~XL1@webRc~(u@IdcdGO&^e^6CkE~<>9 z;qBKla;!kon5<8%%stt_hqpn$-hrfF#szDWv$M-kATu!m3sXR|QHakMW3*A9?Qw1$vMvSW+KS^ zu%M&lK0`J~G0379+loJ}x^lLmH_}6(g9!ATfOQ0Y;Fd*tPq?MA;ogVA?YxrbMjMWbk}sM#yq&-N0%A%@o|+4 z=v0($u#ju5yDF1O7l1C|>of(xRJrV6LC;nLNP3YIY$Z_wMI=Sf8zLZI$bV?JM42gr zJVCy`L2?D1cA23b&tKXc^66ZRUTiD==2GS5w$~zeyP+HgA$I}2|L(V8XPN5*cfv5q zc4~0&mB){#=av^1UM6N17m0KPJ+Xh#X|g?mq{ngZ*tzKJ$m5@X^*>+}DaOf*A(G1k zDY7GJUY{(R68SRjuDhahfwv3jToTq0cC2#`0guesfr3umY!(@(mqg_jevKqi36`*8 zm6lJ?9Jfdza4KCv2l?_gKO<8kkSrJ5ivR!hQ%!9hk%4f}UO>OwapyMP8m+q}jG!iT)o7t1=>S2e>Ih2V zl;kew1`|3Xg(xyC0J@~Wb)XRFm{E5FopzaVf=;o!3+V2xsQB{fvkk2s5#0INO2Q4G zcDLvqeSKikBa!Y%xUH?>-rJ+cM*#HY1&GjNiwQ``}C##@{I@yM@#S5@I;(O`7#C8wz& zgS)84pnf%pR=J=>x0S*lNnE@J79Q8PtfZegJ`3frF^JJ&XTmZ zRkZ-<8r5#NfKI#2n;bkh}d_g0jjsjKaR+aR|C=mWTF&C;%*XDmM6y0|CO-ql(A zv(az87@Ple3Y_)Dr^)2gr%BlSZ4MWuY!n84E(QUoP-_j!93)hBd?A^H`7?$?f}v{jG*bj_3*ZOZNnI+bQSj~CRLUZ&+8S(l4z zMS0b^Q#R<~4CuED2|&+X3Gg<@us9v|d0tzMPFVL``)mUQtj2)M!k~kmy@Z8qz&U6J zYPlRf(?glB(3_mEauODH*8qX;dOKB= z6|O_P9&Ty5c7C+-=Pw?A3dy(a?Ic>@RC;v_FbB?EKu;t=3DnHu=87fjwv11$_3^i`2!6Z>mE@N> zIov*(WE_(7i^0lfRf~sNg6cRgH(ZJBe-*_ zjN}B`tFw^9F(P?(ezPI|lzAOX(!2n(Ef_&wO`;B_W{6H9ewL)+rm{Y*#O@B2RB`P5 zh0gAQj((84>u%X{OX$M)!L5v2+rXq(e>k+Z4v=mpo3}#}U%f~q+xDC~{v5(Q|AFXGxfRjVF*$5l&56cqFZJ~+UPvi}=uk4@ z95ZDQ6w~1!0$D#d>i*`;!_0Jntt&%{rrRb-h?@Wup_oIazxLXPiSDzA5o-rJIBYq& ze*K33+6mkm+09I{>cLpt{PAUqcmw=@`s2M`_G*U{#*?Z~0g?)mYM6T;YQultO- z93>$$T1a$&($3EK{DJL5)w1n`j!h{J-4o_6h+0%p_RT0QLSZZq4GxdIuyk@g#^e4Q zWSdTZvAWB)NTldncOPm0(DO|6)&}DSQqgmT-rla`JNNc&*X+O}B=*JD7D}Uq=yQDe zIXWsk*9>!P_rc9$O4YPI3V4!<{^ne^T@|87LUco~sO70guRd7!Uokx^Bk^l78Mlg& zNYU5t#ZX+Xc)D1;BSgOi(OV!BUCgA5eQZZ|jqV-PZO-G@>nvuB#qnG#i5{h-%j4^Y zHMDPYU-!OBMYFwt1DYlJTuLUo&v{_k%c@!`zw`9uf8KOVhQaV3eQTBP{FF#GtjBU0 zlyN?NdIh56(7jN&+KYbWoBz^}EapUXT!}#veV)wp&n=i)sHM~$r!sh;uXF63vTA$a z1JU1%qK`#qgg6H0%U+1t^zAVHKdU06L`SPPZRFHTu$!9@>Px@p>!*J@P+CCi+6kCq+*y#@1?%B#+qf%p8t#lp3L(`SyL@#3IKn$4LeBL?%uA-ND(JP@ncqpZk# zqXAuKz(a9;=zo%0&9F6P;=r*3?^J_j${ozRxt3+cahm%0osVz{Fbt*i>b+J>mq?`O zyN|S8$U*cXM1TGnL{ED)4T#n*x38T)he+?-p?l5g=_aKXtJRoLchX-FenRvGA^HMD zpA!i`*O+Yx;!l9DFi%(1cXs#nPw2Yka5m#o%Q92ZeF1JGUr@&heJwVeYB?(x`ISf{ zlJ9NZd!()B&YgTFdM0^`qTdvv=TUj;+QoAnhY$Vbz>v)wO+wv-)d*pt+{_Hb#BC;e z6v6EzgL7PyIQf{E!D?MCmqyOso1ah>n-eAi-Q)>y-6+CE6odtJAkOOT>f#IcWu!|a zUq6k$_vo2oKEEQ-aqNEQX7S?1Yd6oep=I*febtZxaUKoP8LKnlW(_OZeRv*6NyBZp zmVk3h49)XTK!Ii1x>|aAY|~V!YC6!{q7c0Sni;O}Tx@is3{Wpn2cMp7A<`uhDSCVH zd|`#6qm(3$`!D9uV0Gt-z8h8DHbtj2I4B^{U8w2%5M6X!ahr`M1ug`} zP{^NaJAAiu?|fM`EjC%7WNw4g(6$YlZ8}XwXKp5|3lf(x-%lSUu0Xse4)zUGS6(>z zpj6QV>f#kwXr75qaUq0Q+%s$s*kRz1pt`YzNS8=tqPOK%BsxGR<>H0nokF3|({=pl z?#}HcRk7IgBugkq=-Sng)5&S*8)G<4xDCM}Ekc=zA^B*s(Qw^HN+vo^y&X#*+-AoRG0P!^>32>ckL>qDFS#&pZ0%TAz$YPni1S4#6EFWfkA zVClhS{5`n5w6yg8)9quArluAjEw!*bP9l+_=L!(LH-GgG68+gl2Uzpoa}JAUM*AxY znTF_^M>K8h;MsQ+;~({h(TpqHCWc{%mFj_MnB#$3sZ>-=Q&rq(<#HJhDw<}R%ciP~ z|C7D5fN>k?;`mBMF;iLmiM16o#Is2Q-`$njDsz{P@1im%3P^61J=li!ie9+IgEEtQ z9MaV>1e~!QSIqauDRadzzc5(*)Biog8{hInX+BMUxR=OevfWO>@Al61ATP@@UY6rL z2(b)eBawVpmn2ZnDU^3D-5-liI`#Jy{qUYWJ3Cri*DXHw(Va8Bw&-Wa&L;mqH(H4I z|9;`p1?a#>MuvuZfq^)mO2rd}2ANFZITDG)IruqsV)^#My?cp7A=~8)gVo4`T4u?y zq9iFIpw2?Fq87)o90C}o>FrP`G|{&b(Sy6}k?p~EZ`H|YXgkq&!_qD7t*b(CS$e7= z`n79(eDCr(=TiKyKVQ1>3t4_)pqJ#A3v8m z9-iBM?q6R%8etGKLn!4`MJ!jUnpUgTurA6D)Fc^ZT~yRuNuK(au~HNY72Qitfejpn zQ(%wmK5*cD6CIXsI(!(0#}d&ux2}SDuyKC){N>@Xfq_(f;c{0pHFW7`DBDM14_h*k zInm{FK@rY+y-Z8I?@$Gb`|=_0YnG+C07KjZi35^e~7{>hB}F?L-gm ze=pH(0u4IXubX%DP9qZV@D1p(u$& zaBP6C8pbNv>iAs2HEex~R%1S2qkxw?J^+v`kI6j5_2#gg#K5!8DV! zuNpdRMn$Jk-bM>dm}!UM5glYWBw0R@n7-eBes1uq{pKan_t^xu0)Z`UohzVrzjJnM z=>E|CzP^U&=Mtx!ZjUEYQYv+DylR*ruZ63IR*oU$kVW{e3jUK{G~G0enq^>IEh5#j zO!ASm;q{8BO2wEUPlhHQU>Ss1PL37ropjP<+N4t`Z`zmV%7 zc<`0$E;d9brU!#t18o~uE&KN1iTK#?pFjP1g-`EY?z|^v^KK6pQ|=&Y8xH&ZaF6;qkA2vU zn>Fqo_PSFjbi~ZMZCiHkgwYeNWdAw%{Mtl^*XMYe=)tXU|D<)*((jJ`KYgtq#>Nc~ z#C@KqRN|PhOR3<8H4T#j+^AQ`F)?tL^Lh}#FkYLv3}V=bT$EI?Qnheywq#Vxq9m|j zxR>R^QQ?8h*>&PhCR0ej?OY+#?Q^;wM8lC8O;mKsf9#zJP*dBQ@8A4h-h179SJ4A| zQ}-r4?R2HbU8$spkRF`{6$d~(sDOe5Wh`oT_EaGkk4Tr=%^f6!Fouu>Nr(`RT$#iP z5KrON(lhitch@}keMwb>Rvna;D zQ%sAOT{LLDfDTRfRC(*5-Xba_ zoo2U-iiYR|^yq&a5`An_w}{=KtO{96iyZeoqE~o{qSYd?fkfRMKiWi5hwhWC+;|XI z-pg*$0j)|V4Jtw7c%r1p7W?Wasdfu`S)W=fkTP?mu&RcYc8^;080h?jeAT{xZ;hH_ zh+}$RQBiT$QB{1T{8Xs_x*Ov<%;IDV^10s z-Ov&WdjrmXkIOmM{;u`?i|=mRWZuz?sEsBf|&?^GrCrL3guNb5E=~+!tpO92hGz$zf?T(E} z#fijZ7C9#aryC>x8r;%pbvyq!i9W!#-1P>FB5jerK}iz-rJC0PedW7WtQw#ba*~p+ zCIcN^m$?q;7&6it18!Et6kCz8=i1RCT*INFzOfbty@_ESU1p0b`O2tXtH%09rkaYV zs;kZ+8n@5o1&EKPynU^E|N3tccKh-tFK)vJf3dTB$>nr8ogQD*Jo^WN*oZncF&PfC zD=-cCec0UAA8Z3C z(mmYVQVP;$+a#?AIt?UE(1}P{pA2*i&dd*juBL0bXgEZwtvIoJf5ACNb#--Z&DAT& zX$9l4Wi}ExZ_-jleFc*P|8T3;ajp;rrN+F&4D^8Ob=Eh3^S57rb8GwF=J)rO-a7jO z0e|1*z(6qaB*;oZKU;)`gP~~cn8hbU4;CXqSa)B)=WX-$6EAjkk9p`4mxC2gb#vl zRU}d4K$`(NHJ4hkrBpy|>x&MG&a1GA*C`!z*`V$ZC{T7=Ix<%m*EnBvr-GB`7)}|$R&CHt z37i|~5UI8zD`$T}aZT;zt5@0fma4j{y33a@--znd=>IGqrUo8*Erg(5Sp|wmUAp+a z&uXjd&z`Nu2?FkWJ&HuuR3T+%cYDXcqlb}+P=EXTy;--;XFv6NeSY7he`qK&gIZA} zRx@stX&R&tvs!bwe)4oM=ySH_HMj13)123GxV^(Y5gM8sfueP4q8c8?935^$@W(#) z>-YK$IxQOFQ5H3(H1urjaUJix3yOgp_m2l%P)rJD{d9)W2Hl>>xnUDQC(j)c(zmGH zfOLu>0bzp{=&{uj9#Sz5bZf#An5YOzL018^7U(*jb1_qh2H$NWJ4DK@*pZiiw8YVL zy#L-MZv-qKLa66<>o7BF|PChvR;K9E`_Uhvon;P@kR;4Fo!}k!$n( z?dul@bFMEr!|(z^C>+UyK8$JoXfPP|wr8jP0-d_z?U<_2eL-1$)SQ;4r+yI>J@<_$ zI?i!V1$1-*O#{q|UaMnO-m6f}LNxepG^-yEdZri^t>Wp$n9K@4AXrPbsNH~MA^r?( zP;6SDD^Ups-ewZ$>=u)3=1opA&>89awV)gLcyXp83pSn3XkrU{ikNyUvMNs&oV#%a zq+`2jSyfrxXUirXLOu)w9WXaFUA%Y|FKL9Yey+HRHa#}7w>!HJ>Cfk5Z( zgT2U}eZF+PGVfZOb86Dh4#7b8N3~oA9zMQn>5bK}#%ixT!g;gGYU5=EN*9;=1^3f= z=bdxhQv@BoXQh7B0^P#(ja^bqMx74J`ih*E{;{C1i2L9b{koD4JF?PVg!i_TswkGL zu6RdAS=9nvzzDI)vdDvs|M|wjY9P)}X=*9}?bvGJ6z40j)&q@bjzsJIT!d<}c1v8w3U z-BZ0Cz91|2IOKI@AAHl^;X#!+nBwu-SK|nl$MlS8b~>tM+(#cjo*o_^2>Sx=>jzuf zJt+3-bY`X_XZN1#~q*hYXUe zk}sJ6dhCae_omkaouYOLpmP&4b{-&EB{B6@WbD|Jf2_C)*J8L7Bfar6GUx!Et)RiL zzX-z(RTUQu(3J1JhIeFclKzM30&_CFF{*#>E4yV%#zLziV z;)gk(faa!L&tKo729iaUENj+BRw2_x9VFF8iAP2}LL$dKRnQHJd0mTcrq8hx^N_(3 z4?4N%VtRbHYkx44!A@Zz`s6L8BC-qVikXauHt3L^PNzm$19Xfmb@kBZ zDBZQkI{@kiT9IL|JYG=ZsHtF}R{(TG;Ya{IS^<*9)vHQN&z0Q#VR^$RpER7hd*{yG z9~{3~P;#d12F!g$y`%W(5AI~+a!R3TnDnq~@LJw=teJ;!VV1>(@!{FWU_Gi=xI}t9 z=y2Q-g~ydzoP*a6=5~4m6DVN8P;U98vfG7}SO371Ii_X5ojLAf@80}Zq^>49D0W3A zFD8)`+rf0z1 zj;4cJpp)&S9$yQ(NSI1Oa?ly+>87|I*Kw0i<7TuX?RQS)7ZjD&eR}co#rk@HzQQPm|WZhrr6&#Byfhr7Fa_vPoD>iNO((FJ z^c$T(H9*IwkXNzZ!l){e^eKU^#(oDAPI+5ORVwH8VYrY}t^qpXP2S{M(1ADk)5$@H z>Te93QHaJ74-nUZe?k$j)9KoTTLxo^Xj@{RBz9}+f#nM z3sdhte=t1X*>(L?PyVr@y0YqO_yWZj*i}{g!$^VooPj==+i-n8ddbCw*;z*VtJzl& zI8Ow96xU0CJQwr_y32FAVZS3NGC6`;bFSx0xeYnp?H-nIGl}dOxb4GH=iT%4#dk7j z(DSXLcC9>U;36ZoSU{9uqbM0U?kR#U3l@=1?`93q(NpoWD20&iJLj?JKFXHP{eG{zqYb2I zw>kTqh|eK29(l4;Q`phc_U3j5eHE%K&}iq}7Yk)IkcVWVwGqm5*LK`f&Wuyjuv)GK zI*kg+7#l9SWmz^0bfX+QlW$R*x&Q_@p*Bf048BNIzOwT2=wieN|C|-iZ7+fPSN~wD8FHdk*az>~K2~VH+Bq9zvpP$J^}k@&gx& z&Nv(l^aBiZ-@x!gB(7n5nfvunSmuDMh zOXd^(9_LbSUf%ia*29Opd!M#-4mzuTlg8fK?C#@ zT0yh*jI6wC`%8*h&>d=OWMY%_rivKoHFd?Ozu&XF*BR);mXx81(cr|SKj3jcZ@<>? zgJXpyWw7XH3U2lQ^nn4E%Z8JcicA) zy4j>i+PjtP+^Dc@I_P9!wkGHs5&@0DLsMM}=xTwUY>qB`{o&xmG@FCt;w!#@$2r)xyXW}P!a4?e z;mrn?8s~p9GV*XbH0AU9CWn|o$0Qw~Kc1b91D(_2985aS4wJzFoEav=0bc;5KOFgd zXx`uFb}rr9^(MEaa?kC9dm)sj!M|-8lG`F%apVw+9zRG(%8bLOaXIk(D_kj*NnOoXE4p{TXYT5DHuo2 zcO2-cwt_%sq#r{9Ohwb>ixo&=M}m7 zki>p}ML?ZQ`s_1aUwrXuCc4!eFS`GL{f|8_<4g$JqqNLa0P(ke55!7H4UV}MXTMA6m->0qzkfEFb)*PZ!c0H9X-7n z>*(lb)}bkDODeaUe^~}vu+jjX=6mFsCxC8{P28kvebA}O3=cZ<(P+@58~%%^(+LE6 zs;!_vFeCjqR@qAHV4bmY-c$ymIBZ3AQ`NbWANJ(BJG=p(+v)7xcP%&jaND38MPhuu zaJcQzo%|An_32xH!<2D;8M$Ae1@@)1F^K% zP$(P*>(Ep`Bfi7KDpc$|e_{s;Ptfo-h|7xGyCW)sxa_eD^u))2ZkH8EwkH9dxehks zSPOKc!~to>(>mRUK&M|OCD83G8(L<;z|^!QGQQd=C>o&ajp%0Tu{EHpRtf{LbAJ-h zsmcr;g*I*lfu_C%1{+(g59x|7fR@k-YcK0^P2dM6}l|OIxI;DoILOc7~r)v(kKY zpUuVMK~ERb6~(0IC)i0qrvesql-2i;%}LKBi@uRoP)ry`efP=z1%+qIni%NyAl*@W z@iL0X95}VxIoLPl4GdmCSovb-i@n?T9?Yw}*2c2dyzcy-@1HI%EiF9IaA+wo0mNhT zZg37*nP#G^=Py49It$8!Zh$_+IA`ygnPsFS!+j2}cfqRP zJHP!`73=!pR8g_94L_2gC`Nu>l>~H3N{018(dB*PD7EMVONEth-s51(JRV800x$AC{xQTZX(77P2MYCh$ zYY5l`McGu)shh1^^Yj!&=@tf&q*4l&X2vRQpP)5vEt%mDCIuZbCKNx5jo!>8q2QES z!4DH=)SL6+zn9ilU%ZUGI8=TA%u#Z)r?TyNUpVZ2daCl?*xUD?w7eS|8|!WPB&XHo z^!EFr@wmc*<9Bl1eE@xKnR9sL034J@L8m$TT8sW{1@zhR83_N+LUT{pk>DY)e+v&s zux$4jw7+~g{@_7yZUQd6`}vy_zp*;nNqUO9@$B$rDw2YZhv}@H40MVJikhw(Z8Rip z3h1=1NXu*~XiHpy2}vQDsg%PypsVR1Xg$!a3hYpF(5cD{^*B|C)doHFRxksnC(<)c z-{u~ye997HJF%F4 z?AXyC;)1IE0Yu@LO=sRa!s)MO0Ovp$zuDiIv^b~09Ag`dFW-#vzJQYka}egBQ7Tmt ziHwZAdWn@czx#P>){fQhlq3@Yq6X;r+LMCLm(!Gu$v~%#L)yU?IQJm^TLfL*0)1m5 zUrevq#1%>D-18csQ;}BcAx+L@Lvqlm%1mO9TM*CD27M!~fJ}U7IpaIG4q=x|F(T=; zS1wkUmICzLb{Cv-_xrr;=j|IwJzvjdl_(;cUXBSx-oT*t+GR-(8L5|Jv59e7BAt!`@PR!@7cEMyof8(DRx>} zAa?kY$f;O#Jf0MESbbtu19X;;XaCkf=MS*ux^JX}6rHQdMIu|N3A&ml3 zJ|qX7s>~$zIBrN*ZO}K+3P=^=>qnoswfn%a!lF_KR?UjpZk1~QJv`O9JMZc9cg^S9 z<|kQoX18ZwUhbebFgZVXt>MtVedVVPyHW0y2VEO(EzmXeY%XTezhJ)q47(F0f0Qk< zzkK-wq6s!1`t>mde*R@;`!bJ_y)KA*EYr{UVZN|cfc zJ&J4|=nKoB&$0mB+#Cz!_vE!E1Rh(2*VNP0$ck?4mzL4 zU`lS$DgTt+(f}PaS`;PIYKR{$nVSMST5qSHAFnN?E5fp3(`^DnSeAtDR3w2{y250# zs?iWs#`gp^8aLG zOEWX;7YYlH0(2KZe>8t>U#IK!p7%?A*km>ooSN@{+U=giTp1PK@(#UkIMmiR^!fPa zfzDj@iP7oB*@swsn_bb&+{`f6+F1Ua*Yo<8-6$}{Rc_IvCCgGIgH2*BGqQ$JxSK>@ zdi;{S1t*9Pm0=TP>eH1|sYD;SreoT91-M^qp+{ z5BBaDrg0?=;P~~;)h8FPzw)j;y)Fa*vJ!g;nv-Z=^P26ObXz>SfV2%wNSwe5VmmhW z*q+G*PhuP6A;H)S${x`oUEkL?HhO5A(@D2>b9_H%MSAJ4$$G}0|EGCz0MxhkTe}Cl zVxp^}-4NRih8O3pqvfEFC^ZGm)OdbU%?NjX`R&(}-Y}ewFk#u_b*BQDtA|mu+cRc>l75!#Zgf2QCd68{XD!xa|%(B!*#KR~Y z%-2>b4E@i4g14E0w?Y!j`pV%~d58!d*_Lv7w0Au2=+wk!0h=uHgZts-S+B1cmX8Qy zvn+om^+(MfV~4Rww9Y(_6g=X2j4)?9CFBZ)z2#9&s&GNif4TqsR>rmfP}}rR$ca8bfVpS*gkLEpzetLGdi*EJqpno@k!>4#tkF&fA~r z)r9^!M&hseX55mB-)iwyNq}yzNR9{?i}d(3774)b`tR)%OUw!J)jf z*ZO?X2{nWeH7RkfuQiPa$Qs!;`eK=^#1;J|bd#AT6>Nk;R|wTkN9lD>#1rXKMWO#J zjzj!S?90J^)tdrp&9Q1BG@4*vx!nE7_E}e!)r+B_-3OuTQ|^q&)s^Q&l!_?L;t7@? z51sRjWsKs~8tR5&r~@T87|6o-_5CFBgeX6;COV&$6nc_}p5N;0b^6P% z?;2~*f|w4uzP+le1CCdy2F zhltQKR!-=%$nzZQ?0l!OcGncc-G3_vyl?!{+I?=c%3ja`0Fv}+b=(P%?ISG=?v2aE z+1c&csij%Aji$DfWI~*b{1IbJd@UpNI2E0fFDL688+&^jt)q_(LA>Je{QP9m9slc4 zg3`+dfOL4=9U$wv7{P3*a=&kA+(KxAy{T>UESLEHC=v^L83$(K*(iU53vo^lK0dED z+P7U1SucR18_9buN>38GFEbJ2R5UZ=CD znD|=4ik_yUWaK!-tC=no)lkJp(^Op_>cg<#Z68AEG`RJP^F#eCi!%kq37w$tC; zyF)}-6jipOCq?B6=Un_PM0x1c=#P*0;eH$dRgk3mr=zvCRk5Z0@n~;vT}+2`X+_htewrU~FW2 zK38>Qk=M}E3PS%jpvoov@SCji2xCg~cQ)kjKYd8cz3cuOdYXNQb51cP z$VPggj#pui4S)(s`>W$24#KHJ|IOZc@V1S#377y^*Wc@?26&AC7vB(N@?l938h!$1 zd%fPv{)7DoM!Sxh4RF1=Zi{8vT3eD6$s3(zTehQEk&T6e7|xYHaxNOUh3JBt6g^lx7)pMPfp~S`mL5+NmHpTFT8Vo({pl4CSqtR z<~R=L+8Ep%r^Jn`4=~0OqJiv zgVURB(GOKZ+vO%z;!AQ;^oF2SUtg~-K9NgdsfqYn4Bc@Vv6$!6;E{>o;c60&HVNO1 z6|FugQxU^=8DqehXF9`I3=`prMPQf{Fl2N^MpzNgm6;q$0P!>xh{M#pHX(-X`C9S; zd@MnR2Qff2gcoIUOkx87Df)D(D59Sseoh8gVcq*;sZ!f-wp!UmpN666hthPRx@^;H z)ur=oVY&$l(F@*?F))FQUcP7n#N&1W@wG`Xh-16@q)e4iQx+8q0D%?0g#%(H76FF| za7_mwj4=Y>QY~jXe8ASyBXmr3Q&ZvG_iT9~VR36J2InRNuzd{=;KTO&sFe$fSkhNM<4FD{(F_}G07Ga3tK zXfPR8z}y4kYeEf%`q_5a%tJww;H!yX{vecdhoNT4nMz#%%i&5V!-C+HTshiIDgu07 z1yA5!7QNwtotr)-wykEWGePuWUV|SO6Y*`ZXqxDn3*H3LsS9?j0e66Bieh@v5%>Ay zrL{`E)%fofJ)95-zpdUEH`AXko;{!axf%43Xeu6fR4E|~JQ zipUndI#am~UbHGUEOry3lL9^}YB|}7T4C9fM8^v$QFJtt=xL(Mi}Om+sTJv>VG`M+ zxK@i^blzU5?zaA?L~jVuTU&dZJA12h&y^Xu5{wU!JZ+2uL}Yell~lY zueIc8dGOyLdXRQ6SVRkP$w^<`^+OQL(ABuzXmCp(687NLZti7s)$Ne~?|h)vT(7k>H4qDMV9Fp2C@ zTu*f7&R#68%UfNyEjr$D3vRFvTXcaG{hJ3{^JmZBn3=(#CJbpz2%k6A&N~Am-f>SC zoq+{Fe5_%TGqn`;+_*u}NkK!HrR8MD1S6ubkt90aEeT=3$3*udx4<~C6w$Haj*4!o zo^y`{lkYB!**5| z9v_c>L=(lDO{u4-W12da3jSmX9m2+IU<2GF(IJ2t<83C2Zi0k3s$OZLOVjnZ=!QC9>;Yk}X%;L1 zCKJmNMF!D_;E_X$GjBh6`k*0|>;F%PE*kco9r-h2HrM92FJ?dfAuUAd&B7>n0s@N< z%f%p;+Id$y?%71wIQW={Ntx;?WmB@jDww9r2oUq7C*y|TiSa407&C|Q$`o_5;txxZ z7POE8p$VeP{MTJV_?SK>s1K>nps3aaDWXf$i5?T(!`4_Qqe(ex67(=r6se+P+kr=7 z19Qh*Sly8AxfFeHP0@pOF~|hbgHd`vm;!7z8xJ3DtXIm*E01UI{`^o^EE`vuax+XD z++n$t)XqD{j(cX&vEZcg@k~{RP99FmaR%^mqGK0IIWfP42+?h@DTbSq6=siIF>pdR zQFMV}kNly;i-;cnW8yQ$MA329E+V=zAd~d~;@f*qw!uWG3jBce95v734DrcHA?H zZh$kfMR)K#C3Ie3cu~>4xY8zEd18rC!f7Eqb50hpU9iBxJJN}wOLVMG3nVJKqyTi3 zv@=O`G@Yu_MHDS*DwJl8;`*X%cRqc#Qj;s=OlwNh;to;u6Ns#&Gq$8rF#Che<#w5!C0tGc=!^Gs$*PVf*tqFqSN9?WIs`KtaT`{ zv@wiG#v(5zIszsx`pL-#j`R!w3ny`tM8~!hOFS+*M@?-uNpv*b8n4<-W$;r6KjdhH-0NA=4+uN+!`FrBLiB#;XuZ0){o>W=od!dh8F9l2QIyRCp4xFw5uGrP zWA*ODGZm}%Vex?i$Ba!TU36R<;mN;qvVz5BTR2hefpMkiTy5@?L{|-(B)X0z7!jS} z3wk*0A7ZoYQCwg2kDt$P)myEj>xeFqo(uZu^EiWmen_`_awz5m#Ixd8SBn0iR$pIV zT|9sOT^e0G;41d&7Tz1db?$1%J)`I<)C7wriH;d-7sAWMyu`aH(F-K3$+ev9*p@P& zwrm{oP7vKs5#4?{(TQUEm~?jRuDW^=WQrmtItl^lq7V7_c)nb33DZxe?Yaw3h3L)D z^h=*ZqdQ1{pfvA?hh5pAcLoFTK#2ZOP!GPbdVc)fS7Ub;3ScVQ$O%q_gBR(zPb)h0 zZD5IO-Tmlj4?hpTDbc~5c7UFP^IjfMW#*KT+i%f98EbL%E$WEfNEbal3LLFdJU#x8 zk+jLUdkfbVy?xYfG!FuX`#(w&TJ_5YT^`wN2*iVi*!x+~s@E&k#fzW&nPRNoq6M`X z*T+qFp`>=)rx)F^z)t?QQc1ZgyxS3-gFo#6JqNFGQc#DwKKPSGpD;#eFF8hs_|jfzZAVOz38o4>qt1;6f_#ao>50#$#DLy+uRqk>)q~w=%aTf z(rhtTCtnkt{N|&BN8dbnu(MTJn?Ha1W9K_Y{QihTh@(z$YKR)ErDYbKSTwro^Tfy>`@>TS#;|r=5DE`>?q`=pIVb4+6p(U~sxGd_N8T>^Jv!_nXan zz252UHX8e%xby1JiqY(Y2(8Swo z-uTyxKw#p_*Se36`j^jP-nMXx8h=tbplSRi}X2wLp^ch-z{$W1>@EnFeBnrihNa%wQ_m z$%5Yeg63I=bwweLgobW z-_IYkz^$rM2Au7>7u(} z`8szjaMMJ`Zj=09Ty%91K`kiC4|B7km%!p8UWeGZ=~=Puv~6cpF9~A=@Nqa6Q$@F! z1z_pw06Rr=+`s};8NCPF9LvKNeX1x*N`fu{z>kUVPifJw*L9boSE|+JvyWaJ&))sy zle^-N_$$I}@b`bt9v|PkckftmZ}#qAeel6wz53}JZ@lrrTSD@g#ED1_u1NrF22fDP zRcWG^z{55;MRbEOY|;}%r}A~Y1ptKIaEoqV3Qp~!mXirSaSGG2BbSJv;27Ff6JIq?X~ZH@0C|x`N2DHd9Q^( z2yW)8TZ{6uQf?L)^C|Xa(!1`KtqiSKI#q4Jor{|!F5`!ZY z7aUI7VTRfS?{O#LfUBj6E-6GdKf|Ub0miaNF}XIN#MV+<^t$#@yE$_jP`zOEg)n_X!%d27% zUHsV#2)gvu<(2aC;`y_;aZfmO(F3ft5P}Bq1kp|4siLdfX_7*k==eF3Ctoy!5dAhq zr_+g^gMBd_Tt39M)YoI8qvtM`P@?C=NEaP*(K(>FDJ?oapCUT8`tp2n(dBx)(yfWECZKCM86Ye&H;r8+Y%3E*rzR18 zOc0&p+KqJ4u~k*mGr{(gMb93EgtCPFqkTerEnRf|w?DsMsrLsbr&Eb8j@~$|cecd6 zv%T_KWqo5~{QY5 zn4~3-65RsNxFyjk83ykWEoZtP&q4~3t}u>%6L7- zO&&?vW>ZBG;1KXi8lsy7C*LREUi-DLcBSZp({HnhE{_W~j5;~m>}>6p_o`ye%#jei zeX=2GZya?x{YK+qb7yn2R(*0lI};P#wxYFHq*~MAhXI&RQFDfIO%&Z%7cr)b?kn?Q zev;@K^#DBI7{6S+>xquhm+;@0C&vPINjTg_G1w(G_!`(u#R7@tQ!F7i1_1%_)V{bi zdao>NOb|tvrjO34T!-OL@iHZzd`aL<6-9_4%m!3$t?XA69fAFv^wvZTf9|^kMhS0q6NGxODsn_-vzc7nz94KOj5lcgKutvw&hHJ~n zio?L7wX>4On9v?D|Eg`+7{M~tLWqs0j1?^Y6d$meXG-LO0-|4$u}mqX2`9#z{;uiD zx94QQU<#T-i6NfGqPQkEG{k2S3Z~DsD-MwQt4S%BZSrR^e2)b6>)Mx$QemwGn?8iJi2`EwzB8Zjz`+Zn6{6xT_#PM5N!*s6k3&wrCfU9l5em(z0pV^ksN59 zkSR$BU;;n_ZxgFPzz&ONygF0kehKUtgMmG-=_2j6z!V>NeyF|W_}BCLeeuiN;I|$O zbh>i?8Lw?Y3(X&7q7n8*n0cAzY3TCI6TRJ<{&<4|+HDbZrv&vY@_wH3Z3l3rDtE}ELt-fs}Hz4#zy{>d& zKHood@UPHiLSP$SEEXG$-Q$~gG5>c<9zh77&tJ0%!yF8q{xtO53GYty`9oJENvKxO zPA^V&cRoB?$IiWikUtP*HDlyB!(qRdq)T_cNr?3SgsyZ8r)Q^U<@|>)kLlyNM-ak= zI}?GbH(%JC1D{iDhQ> zGJO}i+P-Md8ahx2X_QM+iRUh_JRIi;Ay~L43>vy^o5{_sWhQoW7rF=&eU8vCR8pyz z_-u}Qf91o@5%PB7uA9!lvB$T)&Hat#(DLz7vnrfjkyZ7Ra_`W^b5J`c? zGjr&mN;3!fJohB%=|D#a2YN&|Mz-A_PAqFYhR{Rd@Ii`~$jqUGmT=x_x2hk(MLEyy zg}n?NAruI+`pB^+lS$vQ24h2uGlAH3X712iq9{~LrBb=xeIKSJmx}fL5%-JA8L3mF8P56B4g_R6sxg+QWh`PUrS*q#w6OV6JUFbrlGc3oKA-Bw33MW=v0BvP?-F~c=t@M}%g%5oXWKE#Xdm%-O{gzb}J z>xaZUn0pRr&`ug7@og!Fhtp6B{N~1VtEy52{szH0y*Ga!X>7TaU0=@u=!F6fr2C+s z{<3duW|9LP7M=jXtGAMKNq>Mv+&Lr8$pbx^oSPUOxcqTvSMQ~b!Zu8EKO(Pc`g=u{ z9c=Kb0UI?CmL5NJM8}CTl72`gjqR5b4aqAN?<9DsG*1lV_+K#@DIz)r?IEs(5MwSJ z(q$}a)rhT9IwNaoyL;*pt_m;H)NKVD5?$`St<5we8e@u1?V;2POlI;2)HxV6O>jI@ zVXhr7oym&ZE@Po;N)h-Q1n1Nkp5aL2i8OfZJK(zKadny8`}cVOz2!eHU&kbMn1Yr- z(EqpifTf3kHL%T#NPoz02GD`?g`&tkjgpF#O$(gL4brWw`{Gg+ltQ9wIva!!WByi=Oo-Vxy? zpzXq1h!!usYBQxqdX-WXzEZ>T*5}nV(*>Xtatd=SIq0A$vn8NIlTr2=@Gvv0DMgu} z<9ZW*l6wvkW?&VmO;}+jlkV#HuaU7Ce|T*ktoqW@!)Xv&^shl*l@ze(yPKz{7nf&| z^XaKuBWTc9vKw$0*?|=;nj0zsUFU7E<{si@Gn=a{)nPW4E6g1zia(sv4bXAb3P9&T zb}T`q(!JRZ1zU@w9R%oZjNZj+$X1~s6^VUO|2eQU0j_%jA9oC#FD)bJi$&1C@o@%o|M06l zpx^(-(|z1|_U_$ea%y~d=!=tsJuBJGoh>+Wwwt=?<$!MRY{!XuPz0-zSBwQ)OD_9bM^_OaVIvkY3x}+*B^;g2~AIOsOx4(-}CXseKl%#tkEkbzDXA}j+P8ku6rK?i9} z7lR(;T$O+>DMh)U*GK>9Xw$Kl)(aUA^c_^*1AS)$KtFwTbaXB`JNw`P@QoH7}Fg1X%Dgs^eMoV}|%{`#&fgv!H88Xnxa0@_> z@SK}A#*-BzYRW(tl%j0V|Fx;P?UR$;9j!eXSZksLdSP>OYim23Zg0PGZG0vPq|e@+ zon8F;>m`W3!_!g!um~ya56b~P0lxdp*u5J=S30{cWj6ryot<~vnUyq*vDNRdYGKsf z3fM7=4`#B`)^J^2h^~vqLR^ioh|F=9fDRQ$w}vnai7M6Ny$UOAVDR0Dg{|^Iw-0-w zQM^!bLzwXm0!vb(whFo0-aD}B$8E%|&ro@r$%7tYC^sCyOA0!Y9@-DO$~4-;X08^E zL}CsO>@l;NQpiF7)tS?sr%uAtkvltkvIzRlJD>DIVRHvSU+L;Ner;rODwVto|0QP^ z=a!a%>W2@(!~^@~S@dLbW^ClLZ_qaixg5@QU(aO0U1+M`U)4&aBz2$F-rd4^v#eBj zmw_A;ioEO7^Uk~6ahHJ(HK$V@iYnFSu1#EFPAn3MYA$o@$_~cuiaYVH4CWX{iFG() zrK*Wyxz?_C6mu;R=uo?%sOy?MKJdc7wRDZef_DNL=s>y~3WCl%sUf!%l(Ql(V`ep_ zkb>UO)Y8?{3%P2SItMRh)=Qx00rWil$fhA0cNtcJO~KPulAyUHdhbhLFV1@Mo|7sB z9aOUDsmZ0WzJcSdU9cJ*tRfAZZx^=LH?o&bwKmiXs#-Fr5Do3(N?(X_AvZOmu;}h} ziSy38DRtZ>pwpj6$OkHw?>gBOlrsU=@<6xDq8#qTW>GG4G=v!JvP6qO%7gaqkgyu;_)& z?QM*_mjyamRK?ymvQR=G!a~K-Y*q@tQw7Q$cRA=G7M5D{Fr6n(%!5=r2)cc^D2Ko7 z;uHH){#+*QRP-tc}h1_LR0J=$-Dw+&* zBHh`0Ymac9&)DBo3OVTY4M&>WdwSDZ7%~UKVFh-SDd;hSaaUClRVtkYyb9Uyfn}0H6@hNC2qpd0 zRGBQ!>x1S(PPqVd!kfIwAm|{4E|ekxofHq;+VN|22HZx{swjmRbmQ-iG`5_C$!b|x z2XbQ_T=z~7bh79``a1v}eD~JIrnW~{?pzzWejS2xsT5$IOePk=s{d}z&y9uug`lHg z@6`On$iVTI7I+l1my3hS7hnW$15J7WbP;WQskm~LB99aqiTVLif{mhN631N*x~thL z-QL53O66|vnj#oEkc^j<1v=$M*!Wt$Y6>!-IK0(RMW6>+VG$ANydN$DJw#V90J=sW zg#2#*t`x0`QV2n>|F>hUr%$GF9mpN%G;eGG=obL=&Ap)Sya&*`n;ZZ9k4Mg2eEj+N z$gTPLR4SR8!l>Nb+|8Re5p*!=m>E}^?SgsmMbHzT=BGvnuEI0ie$$(Q4!Wl;1ii2U zSu-7I(&eCAu12k$b6;%AY9J5Ep|KIlbC){qa?p8MbxgaeezNSL8p*XQ%lQ<-d>nqvX$Gy zeAEnrzJj3V^1MZVpWlFh+0hrz{&c?SkNpkPkX!!53Zk2fy>QYtg?c zfj&8L?Th0rjV&kAnVl^}9ql^y4c5VTKP3abgg3Qzieb>mLX6dM*c8(eDf|_1+^YrM z(iNr&bKUh|Z;wi29u(*-TI--!D{3=nCMa^Mxxc(cXIx*)0gH9Hv)2lB|eRQqNJ~|VmMw9DKUkQL-MJdc6=+HYq)xDC*qT}wl(K#XL_{(N~8*|c+ zJ$tkI^4ouII&=K98+}6y<6zbAr&70XPfn*mfcW(Evi}O2^AYzoGc&h{*{>fpKYISC zu?u{N9O@mOc?Zlp1l~_KHpoFIpu;T0$KDi$Aava@AK(l|vC7LH74qg7dSFhA%yrka zUk3CL)2Ut7RFP<&M4Z*(z-EaU#Snwex3ah}>Q0=2X_i}b0qGQsBTriny1W!Y(4Ck! zsD@Fo^^HyMK@B+^L<7(VJ0aB_HXz=pJje@>XCX4){B-rlAAfrG+qUL&$G_|E8yXr$ zyFQfw+n!9N0PtD-hcjM43GWpthaWSr3f0*7@OS6VKmX}DEMbGa1GMKrI)V;Qc!Tsf zAYB%9rwKcb;-!R!Y2bsZL8JN%%<$qs*Qx-WF*-7yTON#yxl+*8I+9+Q>u%$IRj4Kk zy2Y5UIE|5rLAUrGv=sn7=qE>|pldpFM4;|`^}G*y2G);j`k541 zeQ(e$#C$oWG3yv^jTf z{rw~305PP)LPtD_u+J?e5(GK~>Octk!q9h*+Mcey`SHnlST}wHN%v2b^CJFe(q)-( z)Vx)*s6BIcOlFuxkKLdT$^kv@GLRepV8V>fqI5|_pvM#f5(5NqlOoV1DX`^(9>;8G zml?HAdc^|cD@#EUfF6nwns~*6pj$eHf$-ih2c1@#;X$W<0|<;h-%Z!Fs!Cy(oca2* zEgd}=T;JIO<#Jv+doG8dV`AL)9?iegU>W{Xa`Srys zkMHzf9vK-OogbS?An3`Y-zhJFj--#ldUMzBTx@#u4o?AR_JRO| zjSUjeT}{&Yiuy*&>zy;3QPeA$^mm)bB~hVS{Y9UgSYa2Rt!d|Ij;bXvfI2fg?mx{tetZ4l^Hl!9Wy z4NZ{pnpw|*IS1vu#a;nx1pPwiU>ZROBVV%UFpiG9t;46Se|-7+_3JhK_vYpEKmGaq z`SWMbee~&IR-VGAuHUadW)}wsQIEPCDsH71n&Banial(&cFg`!cl7r4CrQ0n0A<$LV zAd@Zt-NMgl2!J_8-NAyc6alx$Ju6Q&nbHuZqXe1=C!(*JO1DrClPpTXlC3afDK3q1ixl>) ziyU-NEU@?)nHp)wvHVh$nn^vF^B$O0vg3pPu7IHDb07e{*9RRJn4w@CI@hpsVPmDc z9esD;e9hC_wKuEZKY9M`i%*)`&Yt`K_Z)6lSJPaoO-tfq+gLDkQvFCgeRQs2{f#Gp7eiADJ7sE0`*in{Ua1eU3g zgHD^_9CFb4h@dHS)o7w2=|DiIaYY(tD_=G7OEV~pRC3~6Ljt z9gq6%a?r~y1sb?e{a@QVdzdz|wU586S16=IN*VILDJZr{la&%hLR;hpvNxt#Zjr_k z4Gqoq4Lv1^#3m88SIVuZx8J@?X>B&%B?$z~d@*M}&KY~=%zgf6#`qYIZya=k#MSvl zfUzh3$`WafBWZeztI={^6Tr@@7}%p^Y>piSKc1G%yw-1c(dMU zhglqpLUc)@b4h*v^`-yU(r3*@dg{Zo){sT5i=skwyzSMZSC`XVy#G1T)$^F#`GVvg zrhh%rZ(T%mgO-b7>FNA{nFspqlSD_6R{ayI@Eieu8qrminRBA!uj+nvp}~v13h>~Y zRjT^X2_te$^h6@^9xRivKJ7`W>I~6kQbzQ+5FLpe zPLKAf$-c6*@@#v1b93|gn?HVdO#JZIA8(#N-`w1O_-yCd(x+oI?x~G_`le1Nn<$p5 z03{wolJ6w?dabszTqU|TFX8^;{D9&5UAkQtT`!3|bwtPYpAlV)`f#;Ebj-(l_?1N0 z?!ct(7cL=%b9F_EgjiWE`mJk=IIB(;ef|cCKzT4x--OPCJPo4f1v$F7I&IM4Px&pENXbQ!-oo_%_B`1aMa zwUye^7>{nw-v0Rhi2keV_@2}Kq23_T(H8*Ei=p&fpgXQs``g_L(J5kUFJ(LgV>#FP zPw62#IX)}8-i>*E=Ch*Xn8{Nf%jGl+vtLQ{TZ@AikNHrB3vJJ`c)uzYM(cM>bhL!; zEuvJ=MA7HxZm11CrWIYAnvKJ?x??lf{`cHH&s@LAt3YpieH|%tqGrj!@IqtR%b|Ln zgvAV440~~iK0pwO%%XsD_w6IZbIW&pABuYpVc8B`_q#4d_JhO2!w+xYzyI{<)vHhM z-@g6ufvz~%KRW9AUCTu};B_C@HgLWXh~>Q;Ky+2z;>pU=-Eq-p9*m#8ptqLFenX>c z+GZCIZ(!_W3eo5ENsONpUGM$Jr3%qe;P3l|x!KV_mxcd?=y>%Hi-*9^=`qk^#*(7B zJrrYb{S1AaG-jhghk^%lS~<2GBNP)b7W7>F!P);+qMzL%iLRM`_LzF%D7r7IEejTK z6R~iiSFv29Q7!UIqGY=On#)|xPAf#0oR5hPD5lc}N{1B7Er--*Fr7lX&lvN)qKnRQ zEV|OQ-EQ~v^!W6&OBeCGrOpe?X3X|!%FTz`Pt7pmeRL5BNKWunX4LDyvAwoNI|+{P z{ddDROq;(By&s$%Gc$W{1_N66)f-iIck5{PF(UK=oggNaVY|LK{7eU@(wX5yp8H_+ zU3}=#7OnvtNZ>3!KRj9!UHgzGKd?6FfA8ADBL4gI7-p|)jHG?q^$QqO8|B`eV&0iP zsHSuO&Ky4W$^)RkeplL`ZS`}Rom-$nq5yj>-kH07p;vKlxwg8|#8Neh6{5Q40G;r| zh^~vS5Jm8(1M0837V|C3rth`~NNClS z9Q|N5X!kwD13-U4cjk*t-}IL;`5`7=3+7Q&_I~y3D1+f9tzl_EbCh3&SrA!+6A>bM zqZ4s0qU#6|g^jHz`^;s`aV;q80j7i|3Y{HXE+l7GVLiSq3!>Z1a=P~Z&em=_N_sh( z57cU)`-bQd&NLf;|MBV4qf4F~d0T6(Us()>t>+vt~5O?7-z0i4;cjfOkScYFpc@8sn8O>Kij=e$VWF~}#AoO1V|wYS%3 z@2VxMmqxMZ^x@Sn+hQ=Dqj?_p`zhz8=gQ+)i`G1e0*D?=5FK#r%~U(=+O~ZH(Jfu{ zGDiovrp(=Ko3Y|opFl*ny%V)kwG(j+?hQoedCIXP%+GsGis`G5E^*}LI&8;a+!e-P zJYT78HL!ar6i?IAb0MU@=K7$8AjON93gtcXTq}-ehDskegUi= zfmw+0zHPaOYwNq6EGOmsbOCwM|3cXw;;&@Obg3Yexk&{QwJ3K))u>9)@fup~W7 zxk%1ZcY)JT9JF5SHJZdvwaYLa>jG!)VO;J?k5?HCNZWT?DAmsUWiW^2m7;f4L>K)+ z^z#jLwQd|^?W>=MXD8|rxbxZjn!udm?bk5 z-Ls~{f#{a)`S#IA)$Ps)qSJHBA$pb}cW*R1S)}Sve0643DV{5h!JyWjH#?yeX__X9 zME0$<&c`BpqloB}Mdy7^-EsBzr>qcNhxtWR*BJT5$4DDQcU|lFO&yb9(}C!`6g|z< z!kT6v`q|5=JLC)of#iZGL(x;rcQ1=y(3Qb7&2)po@QAwGo7kU0g-bFW8T`1z zpxC5A?Y!3OSB|ZTLiN6+q`H2H&U44MPnd;iGfBbX&tNc~Z>iaEMYf&;A;I~~JuXErQ}<>tE_!?>dJm$jtsGq2MPr*0K1827qC388 z*=VFUI$6efPYlQvTn+NQ45K&;!eZNWgTXM_^Ox;T5M`3KI8{+;K|FiX@Hh7`~RBq9pUtCDx*<)!E% z*AI+!(N($FB#GMA1#-t`gy&n+<5}p&vkq(Ps3w(+ny&Vf=rpL29>!_fPiWA7 z$t3RvLnX^gtC%LEn&%?dqIhLI2O{SqqE`*0i=GlaPh{AkDv^I3do~J65!M&sTRyX$ zgW7tl5S{!Uik@TP3>xX}ASLUgR%7B!ScAdzw=2&HiFt67i3i_EbXghEM<_&(vrdba zr60IR#Tnsy@ONs_ZObRoSGIOL*eW6)ieAiy%>va(4`trxG5X_H#$KVpV8E(WcrKOb zJ<*$jVwq|wdcTL&qhdVnBe0W-G78(x7xl--tOSlvkF7-CU#stSvT@OI?;Tp$(r(E- z#fERYl|?8F2Gif(Kv!1E3(<1{S>vj3t~JunL~jSOFEr6L*Xf6Z=xH2w+KsL4eU~w- zC>mo;j}OtAwZBtuDAD<-=t4%w-Kk4H;;E#I&B|qL27~cD46_8)WJHqm&Q)?Y*GTk);9Lx#`%kb_1Vj&_L?%fT(P&%Uw9*ZRQP1l%Pdt$T;%JN1sw~&*KB6>Z z0kHs1|3ir`3ef>w)DM&@^7eQp$-li->UhV3mM?`gx2@xk1JO|hLm?IPq?PEA5OJ1B ziP1I_(hUZkM>P~(BqJecwdmE#3(kugtnDxs6%oBSOiGBJ^F$)0u0Qz`RioI&MGutd zATLEvBwZ{;$M%m9y}fQ)=>~(&-Q}H~ohKJ%XJ>6~XX;~jmY3&WU7TCXlOJmIdC()> d{U5^>;a@I;^>Whsgn0k}002ovPDHLkV1flI6HfpD literal 0 HcmV?d00001 From 087d8bb03d5f8d293ddec747edb8c5052526a5bd Mon Sep 17 00:00:00 2001 From: Mihovil Ilakovac Date: Wed, 14 Aug 2024 12:51:05 +0200 Subject: [PATCH 02/12] Use code block types and titles (#2238) --- ...uth-with-lucia-to-your-react-nextjs-app.md | 44 +++++++------------ 1 file changed, 15 insertions(+), 29 deletions(-) diff --git a/web/blog/2024-08-13-how-to-add-auth-with-lucia-to-your-react-nextjs-app.md b/web/blog/2024-08-13-how-to-add-auth-with-lucia-to-your-react-nextjs-app.md index 0ac881b8c6..4cc9fc8110 100644 --- a/web/blog/2024-08-13-how-to-add-auth-with-lucia-to-your-react-nextjs-app.md +++ b/web/blog/2024-08-13-how-to-add-auth-with-lucia-to-your-react-nextjs-app.md @@ -88,8 +88,7 @@ declare module "lucia" { Let’s add a database file to contain our schemas for now: -```tsx -// lib/db.ts +```tsx title="lib/db.ts" import sqlite from "better-sqlite3"; export const db = sqlite("main.db"); @@ -118,16 +117,14 @@ export interface DatabaseUser { To make this happen, we firstly have to create a GitHub OAuth app. This is relatively simple, you create it, add the necessary ENVs and callback URLs into your application and you’re good to go. You can [follow GitHub docs](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app) to check how to do that. -```tsx -//.env.local +```tsx title=".env.local" GITHUB_CLIENT_ID=your-github-client-id GITHUB_CLIENT_SECRET=your-github-client-secret ``` After that, it’s a matter of adding login and signup functionalities to your pages, so, let’s do that real quick: -```tsx -// login/page.tsx +```tsx title="login/page.tsx" import { validateRequest } from "@/lib/auth"; import { redirect } from "next/navigation"; @@ -147,8 +144,7 @@ export default async function Page() { After adding the page, we also have to add the login redirect to GitHub and the callback that’s going to be called. Let’s first add the login redirect with the authorization URL: -```tsx -// login/github/route.ts +```tsx title="login/github/route.ts" import { generateState } from "arctic"; import { github } from "../../../lib/auth"; import { cookies } from "next/headers"; @@ -171,8 +167,7 @@ export async function GET(): Promise { And finally, the callback (which is what we actually add in GitHub OAuth): -```tsx -// login/github/callback/route.ts +```tsx title="login/github/callback/route.ts" import { github, lucia } from "@/lib/auth"; import { db } from "@/lib/db"; import { cookies } from "next/headers"; @@ -252,8 +247,7 @@ interface GitHubUser { Other important thing here is that, now, we’re going with GitHub OAuth, but, generally, these libraries contain a bunch of different login providers (including simple username and password), so it’s usually just a pick and choose if you want to add other providers. -```tsx -// lib/auth.ts +```tsx title="lib/auth.ts" import { Lucia } from "lucia"; import { BetterSqlite3Adapter } from "@lucia-auth/adapter-sqlite"; import { db } from "./db"; @@ -329,7 +323,7 @@ export const github = new GitHub(process.env.GITHUB_CLIENT_ID!, process.env.GITH After adding all that stuff to make the login properly work, we just have to ensure that routes are protected by checking authentication status — in this case, this is a simple page that shows username, id and a button in case signed in, and redirects to /login, where the user will complete the login above through a form. -```tsx +```tsx title="profile/page.tsx" import { lucia, validateRequest } from "@/lib/auth"; import { redirect } from "next/navigation"; import { cookies } from "next/headers"; @@ -414,7 +408,7 @@ cd my-wasp-app As simple as defining the `app.auth.userEntity` entity in the `schema.prisma` file and running some migrations: -```tsx +```prisma model User { id Int @id @default(autoincrement()) email String @unique @@ -428,8 +422,7 @@ model User { In your main Wasp configuration, add the authentication provider you want for your app -```tsx -//main.wasp +```wasp title="main.wasp" app myApp { wasp: { version: "^0.14.0" @@ -461,8 +454,7 @@ This part is similar for both frameworks, you can follow the documentation GitHu After that, get your secrets and add it to the env file: -```tsx -//.env.server +```tsx title=".env.server" GITHUB_CLIENT_ID=your-github-client-id GITHUB_CLIENT_SECRET=your-github-client-secret ``` @@ -471,9 +463,7 @@ GITHUB_CLIENT_SECRET=your-github-client-secret Now, let’s simply add some routing and the page necessary for login — the process is way easier since Wasp has pre-built Login and Signup Forms, we can simply add those directly: -```tsx -// main.wasp - +```wasp title="main.wasp" route SignupRoute { path: "/signup", to: SignupPage } page SignupPage { component: import { SignupPage } from "@src/SignupPage" @@ -485,8 +475,7 @@ page LoginPage { } ``` -```tsx -// src/LoginPage.jsx +```tsx title="src/LoginPage.jsx" import { Link } from 'react-router-dom' import { LoginForm } from 'wasp/client/auth' @@ -503,8 +492,7 @@ export const LoginPage = () => { } ``` -```tsx -// src/SignupPage.jsx +```tsx title="src/SignupPage.jsx" import { Link } from 'react-router-dom' import { SignupForm } from 'wasp/client/auth' @@ -523,8 +511,7 @@ export const SignupPage = () => { And finally, for protecting routes, is as simple as changing it in `main.wasp` adding **`authRequired: true`** , so, we can simply add it like this: -```tsx -// main.wasp +```wasp title="main.wasp" page MainPage { component: import Main from "@src/pages/Main", authRequired: true @@ -561,8 +548,7 @@ With Wasp, all we have to do is add a few lines to your main.wasp file, so, simp Wasp will handle the rest, also updating UI components and ensuring a smooth and secure authentication flow. -```tsx -//main.wasp +```wasp title="main.wasp" app myApp { wasp: { version: "^0.14.0" From e39be99cc94364811dab25bdeb13ad3eaf978631 Mon Sep 17 00:00:00 2001 From: vincanger <70215737+vincanger@users.noreply.github.com> Date: Tue, 20 Aug 2024 15:37:29 +0200 Subject: [PATCH 03/12] add blogpost --- web/blog/2024-08-20-django-vs-wasp.md | 704 ++++++++++++++++++ web/static/img/django-vs-wasp/mindblown.gif | Bin 0 -> 520256 bytes web/static/img/django-vs-wasp/usemage.png | Bin 0 -> 63337 bytes .../img/django-vs-wasp/wasp-cli-menu.png | Bin 0 -> 35479 bytes .../img/django-vs-wasp/wasp-todo-app.gif | Bin 0 -> 161592 bytes 5 files changed, 704 insertions(+) create mode 100644 web/blog/2024-08-20-django-vs-wasp.md create mode 100644 web/static/img/django-vs-wasp/mindblown.gif create mode 100644 web/static/img/django-vs-wasp/usemage.png create mode 100644 web/static/img/django-vs-wasp/wasp-cli-menu.png create mode 100644 web/static/img/django-vs-wasp/wasp-todo-app.gif diff --git a/web/blog/2024-08-20-django-vs-wasp.md b/web/blog/2024-08-20-django-vs-wasp.md new file mode 100644 index 0000000000..060bc17367 --- /dev/null +++ b/web/blog/2024-08-20-django-vs-wasp.md @@ -0,0 +1,704 @@ +--- +title: 'Want a Django experience for Javascript? Meet Wasp - a full-stack React & Node.js framework that is simply better' +authors: [sam] +image: /img/lua-auth/lucia-auth-banner.png +tags: [webdev, auth, react, django, tutorial, full-stack] +--- + +import ImgWithCaption from './components/ImgWithCaption' + +## Wasp v Django: Building a full stack application just got a lot easier + +Hey, I’m Sam, a backend engineer with a lot of experience with Django. I wanted to make the jump and learn some frontend for a full stack app. I quickly experienced the arduous nature of a React-with-Django project and thought the pain was just part of the development process. However, I came across a very cool new full stack framework called [Wasp](https://wasp-lang.dev/). + +Wasp is an amazing dev tool for full stack applications. Combining things like React, Node.js and Prisma, Wasp allows for development to be expedited in ways never before seen. + +In this article, I am going to walk through creating a full stack application in Django versus Wasp to prove the simplicity of Wasp against a very conventional full-stack technology. I am also going to make a react frontend connected to Django. The point is to highlight the inefficiencies, difficulties, and issues that can (and will) arise with Django/react that are made vastly simpler via + +This article is not intended as a how to, but I do provide some code as to highlight the exhaustive-nature of a Django app. + + + +## Part 1: Let There Be Light! + +### Let’s create some projects and set things up + +This part is about the only part where there is significant overlap between Django and Wasp. Both starting from the terminal, let’s make a simple task app (I am assuming you have Django and [Wasp installed](https://wasp-lang.dev/docs/quick-start) and in your path). + +**Django** 🟢 + +```sh title="terminal" +django-admin startproject +python manage.py starapp Todo +``` + +**Wasp** 🐝 + +```sh title="terminal" +wasp new Todo +wasp start +``` + +Now Wasp starts hot out of the gate. Check out the menu you are given below. Wasp can either start a basic app for you, or you can select from a multitude of pre-made templates (including a fully functioning SaaS app) or even use an AI-generated app based on your description! + +![wasp cli menu](/img/django-vs-wasp/wasp-cli-menu.png) + +Meanwhile, Django works as a project with apps within the project (again, this is essentially all for backend operations) and there can be many apps to one Django project. Thus, you have to register each app in the Django project settings. + +```sh title="terminal" +python `manage.py` startapp todo +``` + +```py title="settings.py" +INSTALLED_APPS [ +... +'Todo' +] +``` + +### Database Time + +So now we need a database, and this is another area where Wasp really shines. With Django, we need to create a model in the `models.py` file. Wasp, meanwhile, uses Prisma as it's ORM which allows us to clearly define necessary fields and make database creation simple in an easy to understand way. + +**Django** 🟢 + +```py title="models.py" +from django.db import models + +class Task(models.Model): + title = models.CharField(max_length=200) + completed = models.BooleanField(default=False) + + def __str__(self): + return self.title +``` + +**Wasp** 🐝 + +```jsx title="schema.prisma" +model Task { + id Int @id @default(autoincrement()) + description String + isDone Boolean @default(false) +} +``` + +Django and Wasp do share similar ways to migrate databases: + +**Django** 🟢 + +```sh +python manage.py makemigrations +python manage.py migrate +``` + +**Wasp** 🐝 + +```sh +wasp db migrate-dev +``` + +But with Wasp, you can also do some pretty nifty database stuff that Django can't. + +Right now we're using SQLite, but how about instantly setting up a development Posgres database? Wasp can do that with: + +```sh +wasp db start +``` + +That's it! With that you've got a docker container running a Postgres instance and it's instantly connected to your Wasp app. 🤯 + +Or what if you want to see your database in real time via Prisma’s database studio UI, something not possible without third party extensions with Django. For that, just run: + +```sh +wasp db studio +``` + +Are you starting to see what I mean now? + +### Routes + +Routes in Django and Wasp follow a shomewhat similar pattern. However, if you're familiar with React, then Wasp’s system is far superior. + +- Django works through the backend (`views.py`, which I will get to later in this article) which do all the CRUD operations. Those view functions are associated to a specific route within an app within a project (I know, a lot), and it can get more complicated if you start using primary keys and IDs. You need to create a `urls.py` file and direct your specific views file and functions to a route. Those app urls are then connected to the project urls. Phew. +- Wasp’s way: define a route and direct it to a component. + +**Django** 🟢 + +```py title="todo/urls.py" +from django.urls import path +from . import views + +urlpatterns = [ + path('', views.index, name='index'), + path('update//', views.updateTask, name='update_task'), + path('delete//', views.deleteTask, name='delete_task'), +``` + +```py title="./urls.py" +from django.contrib import admin +from django.urls import path, include + +urlpatterns = [ + path('admin/', admin.site.urls), + path('', include('todo.urls')), +] +``` + +**Wasp** 🐝 + +```jsx title="main.wasp" +route TaskRoute { path: "/", to: TaskPage } +page TaskPage { + component: import { TaskPage } from "@src/TaskPage" +} +``` + +### CRUD + +Ok, this is where the benefits of Wasp are about to become even more apparent. + +Firstly, I am going to revisit the `views.py` file. This is where magic is going to happen for Django backend. Here is a simple version of what the create, update, and delete functions could look like for our Task/Todo example: + +**Django** 🟢 + +```py title="todo/views.py" +from django.shortcuts import render, redirect +from .models import Task +from .forms import TaskForm + +def index(request): + tasks = Task.objects.all() + form = TaskForm() + if request.method == 'POST': + form = TaskForm(request.POST) + if form.is_valid(): + form.save() + return redirect('/') + context = {'tasks': tasks, 'form': form} + return render(request, 'todo/index.html', context) + +def updateTask(request, pk): + task = Task.objects.get(id=pk) + form = TaskForm(instance=task) + if request.method == 'POST': + form = TaskForm(request.POST, instance=task) + if form.is_valid(): + form.save() + return redirect('/') + context = {'form': form} + return render(request, 'todo/update_task.html', context) + +def deleteTask(request, pk): + task = Task.objects.get(id=pk) + if request.method == 'POST': + task.delete() + return redirect('/') + context = {'task': task} + return render(request, 'todo/delete.html', context) +``` + +```py title="app/forms.py" +from django import forms +from .models import Task + +class TaskForm(forms.ModelForm): + class Meta: + model = Task + fields = ['title', 'completed'] +``` + +**Wasp** 🐝 + +```jsx title="main.wasp" +query getTasks { + fn: import { getTasks } from "@src/operations", + // Tell Wasp that this operation affects the `Task` entity. Wasp will automatically + // refresh the client (cache) with the results of the operation when tasks are modified. + entities: [Task] +} + +action updateTask { + fn: import { updateTask } from "@src/operations", + entities: [Task] +} + +action deleteTask { + fn: import { deleteTask } from "@src/operations", + entities: [Task] +} +``` + +```jsx title="operations.js" +export const getTasks = async (args, context) => { + return context.entities.Task.findMany({ + orderBy: { id: 'asc' }, + }) +} + +export const updateTask = async ({ id, data }, context) => { + return context.entities.Task.update({ + where: { id }, + data + }) +} + +export const deleteTask = async ({ id }, context) => { + return context.entities.Task.delete({ + where: { id } + }) +} +``` + +So right now, Wasp has a fully functioning backend with middleware configured for you. At this point we can create some React components, and then import and call these operations from the client. That is not the case with Django, unfortunately there is still a lot we need to do to configure React in our app and get things working together, which we will look at below. + +## Part 2: So you want to use React with Django? + + + +At this point we could just create a simple client with HTML and CSS to go with our Django app, but then this wouldn't be a fair comparison, as Wasp is a true full-stack framework and gives you a managed React-NodeJS-Prisma app out-of-the-box. So let's see what we'd have to do to get the same thing set up with Django. + +Note that this section is going to highlight Django, so keep in mind that you can skip all the following steps if you just use Wasp. :) + +**Django** 🟢 + +First thing’s first. Django needs a REST framework and CORS (Cross Origin Resource Sharing): + +```sh title="terminal" +pip install djangorestframework +pip install django-cors-headers +``` + +Include Rest Framework and Cors Header as installed apps, CORS headers as middleware, and then also set a local host for the react frontend to be able to communicate with the backend (Django) server (again, there is no need to do any of this initial setup in Wasp as it's all handled for you): + +```py title="settings.py" +INSTALLED_APPS = [ + ... + 'corsheaders', +] + +MIDDLEWARE = [ + ... + 'corsheaders.middleware.CorsMiddleware', + ... +] + +CORS_ALLOWED_ORIGINS = [ + 'http://localhost:3000', +] +``` + +And now a very important step, which is to serialize all the data from Django to be able to work in json format for React frontend + +```py title="app/serializers.py" +from rest_framework import serializers +from .models import Task + +class TaskSerializer(serializers.ModelSerializer): + class Meta: + model = Task + fields = '__all__' +``` + +Now, since we are handling CRUD on the React side, we can change the views.py file: + +```py title="app/views.py" +from rest_framework import viewsets +from .models import Task +from .serializers import TaskSerializer + +class TaskViewSet(viewsets.ModelViewSet): + queryset = Task.objects.all() + serializer_class = TaskSerializer +``` +And now we need to change both app and project URLS since we have a frontend application on a different url than our backend. + +```py title="urls.py" +from django.contrib import admin +from django.urls import path, include + +urlpatterns = [ + path('admin/', admin.site.urls), + path('api/', include('todo.urls')), # Add this line +] +``` + +```py title="todo/urls.py" +from django.urls import path, include +from rest_framework.routers import DefaultRouter +from .views import TaskViewSet + +router = DefaultRouter() +router.register(r'tasks', TaskViewSet) + +urlpatterns = [ + path('', include(router.urls)), +] +``` + +By now you should be understanding why I've made the switch to using Wasp when building full-stack apps. Anyways, now we are actually able to make a react component with a Django backend 🙃 + +### React time + +Ok, so now we can actually get back to comparing Wasp and Django. + +**Django** 🟢 + +To start, lets create our React app in our Django project: + +```sh title="terminal" +npx create-react-app frontend +``` + +Finally, we can make a component in React. A few things: + +- I am using axios in the Django project here. Wasp comes bundled with [React-Query (aka Tanstack Query)](https://tanstack.com/query/v3), so the execution of (CRUD) operations is a lot more elegant and powerful. +- The api call is to my local server, obviously this will change in development. +- You can make this many different ways, I tried to keep it simple. + +```jsx title="main.jsx" +import React, { useEffect, useState } from 'react'; +import axios from 'axios'; + +const TaskList = () => { + const [tasks, setTasks] = useState([]); + const [newTask, setNewTask] = useState(''); + const [editingTask, setEditingTask] = useState(null); + + useEffect(() => { + fetchTasks(); + }, []); + + const fetchTasks = () => { + axios.get('http://127.0.0.1:8000/api/tasks/') + .then(response => { + setTasks(response.data); + }) + .catch(error => { + console.error('There was an error fetching the tasks!', error); + }); + }; + + const handleAddTask = () => { + if (newTask.trim()) { + axios.post('http://127.0.0.1:8000/api/tasks/', { title: newTask, completed: false }) + .then(() => { + setNewTask(''); + fetchTasks(); + }) + .catch(error => { + console.error('There was an error adding the task!', error); + }); + } + }; + + const handleUpdateTask = (task) => { + axios.put(`http://127.0.0.1:8000/api/tasks/${task.id}/`, task) + .then(() => { + fetchTasks(); + setEditingTask(null); + }) + .catch(error => { + console.error('There was an error updating the task!', error); + }); + }; + + const handleDeleteTask = (taskId) => { + axios.delete(`http://127.0.0.1:8000/api/tasks/${taskId}/`) + .then(() => { + fetchTasks(); + }) + .catch(error => { + console.error('There was an error deleting the task!', error); + }); + }; + + const handleEditTask = (task) => { + setEditingTask(task); + }; + + const handleChange = (e) => { + setNewTask(e.target.value); + }; + + const handleEditChange = (e) => { + setEditingTask({ ...editingTask, title: e.target.value }); + }; + + const handleEditCompleteToggle = () => { + setEditingTask({ ...editingTask, completed: !editingTask.completed }); + }; + + return ( +
+

To-Do List

+ + +
    + {tasks.map(task => ( +
  • + {editingTask && editingTask.id === task.id ? ( +
    + + + + +
    + ) : ( +
    + {task.title} - {task.completed ? 'Completed' : 'Incomplete'} + + +
    + )} +
  • + ))} +
+
+ ); +}; + +export default TaskList; +``` + +**Wasp** 🐝 + +And here's the Wasp React client for comparison. Take note how we're able to import the operations we defined earlier and call them here easily on the client with less configuration than the Django app. We also get the built-in caching power of the `useQuery` hook, as well as the ability to pass in our authenticated user as a prop (we'll get into this more below): + +```jsx title="Main.jsx" +import React, { FormEventHandler, FormEvent } from "react"; +import { type Task } from "wasp/entities"; +import { type AuthUser, getUsername } from "wasp/auth"; +import { logout } from "wasp/client/auth"; +import { createTask, updateTask, deleteTasks, useQuery, getTasks } from "wasp/client/operations"; +import waspLogo from "./waspLogo.png"; + +import "./Main.css"; + +export const MainPage = ({ user }) => { + const { data: tasks, isLoading, error } = useQuery(getTasks); + + if (isLoading) return "Loading..."; + if (error) return "Error: " + error; + + const completed = tasks?.filter((task) => task.isDone).map((task) => task.id); + + return ( +
+ wasp logo + {user && user.identities.username && ( +

+ {user.identities.username.id} + {`'s tasks :)`} +

+ )} + + {tasks && } +
+ + +
+
+ ); +}; + +function Todo({ id, isDone, description }) { + const handleIsDoneChange = async ( + event + ) => { + try { + await updateTask({ + id, + isDone: event.currentTarget.checked, + }); + } catch (err: any) { + window.alert("Error while updating task " + err?.message); + } + }; + + return ( +
  • + + + {description} + + +
  • + ); +} + +function TasksList({ tasks }) { + if (tasks.length === 0) return

    No tasks yet.

    ; + return ( +
      + {tasks.map((task, idx) => ( + + ))} +
    + ); +} + +function NewTaskForm() { + const handleSubmit = async (event) => { + event.preventDefault(); + + try { + const description = event.currentTarget.description.value; + console.log(description); + event.currentTarget.reset(); + await createTask({ description }); + } catch (err: any) { + window.alert("Error: " + err?.message); + } + }; + + return ( +
    + + +
    + ); +} +``` + + + +Very nice! In the Wasp app you can see how much easier it is to call the server-side code via Wasp operations. Plus, Wasp gives you the added benefit of refreshing the client-side cache for the Entity that's referenced in the operation definition (in this case `Task`). And the cherry on top is how easy it is to pass the authenticated user to the component, something we haven't even touched on in the Django app, and which we will talk about more below. + +## Part 3: Auth with Django? No way, José + + + +So we already started to get a feel in the above code for how simple it is to pass an authenticated user around in Wasp. But how do we actually go about implementing full-stack Authentication in Wasp and Django. + +This is one of Wasp’s biggest advantages. It couldn't be easier or more intuitive. On the other hand, the Django implementation is so long and complicated I'm not going to even bother showing you the code and I'll just list out the stps instead; + +**Wasp** 🐝 + +```jsx title="main.wasp" +app TodoApp { + wasp: { + version: "^0.14.0" + }, + + title: "Todo App", + + auth: { + userEntity: User, + methods: { + usernameAndPassword: {} + } + } + + //... +``` + +And that's all it takes to implement full-stack [Auth with Wasp](https://wasp-lang.dev/docs/auth/overview)! But that's just one example, you can also add other auth methods easily, like `google: {}`, `gitHub: {}` and `discord: {}` social auth, after configuring the apps and adding your environment variables. + +Wasp allows you to get building without worrying about so many things. I don’t need to worry about password hashing, multiple projects and apps, CORS headers, etc. I just need to add a couple lines of code. + +**Wasp just makes sense.** + + + +**Django** 🟢 + +Let's check out what it takes to add a simple username and password auth implementation to a Django app (remember, this isn't even the code, just a checklist!): + +1. **Install Necessary Packages:** + - Use `pip` to install `djangorestframework`, `djoser`, and `djangorestframework-simplejwt` for Django. + - Use `npm` to install `axios` and `jwt-decode` for React. +2. **Update Django Settings:** + - Add required apps (`rest_framework`, `djoser`, `corsheaders`, and your Django app) to `INSTALLED_APPS`. + - Configure middleware to include `CorsMiddleware`. + - Set up Django REST Framework settings for authentication and permissions. + - Configure SimpleJWT settings for token expiration and authorization header types. +3. **Set Up URL Routing:** + - Include the `djoser` URLs for authentication and JWT endpoints in Django’s `urls.py`. +4. **Implement Authentication Context in React:** + - Create an authentication context in React to manage login state and tokens. + - Provide methods for logging in and out, and store tokens in local storage. +5. **Create Login Component in React:** + - Build a login form component in React that allows users to enter their credentials and authenticate using the Django backend. +6. **Protect React Routes and Components:** + - Use React Router to protect routes that require authentication. + - Ensure that API requests include the JWT token for authenticated endpoints. +7. **Implement Task Update and Delete Functionality:** + - Add methods in the React components to handle updating and deleting tasks. + - Use `axios` to make PUT and DELETE requests to the Django API. +8. **Add Authentication to Django Views:** + - Ensure that Django views and endpoints require authentication. + - Use Django REST Framework permissions to protect API endpoints. + + + + +## One Final Thing + +I just want to highlight one more aspect of Wasp that I really love. In Django, we're completely responsible for dealing with all the boilerplate code when setting up a new app. In other words, we have to set up new apps from scratch every time (even if it's been done before a million times by us and other devs). But with Wasp we can scaffold a new app template in a number of ways to *really* jump start the development process. + +Let's check out these other ways to get a full-stack app started in Wasp. + +### Way #1: Straight Outta Terminal + +A simple **wasp new** in the terminal shows numerous starting options and app templates. If I really want to make a todo app for example, well there you have it, option 2. + +Right out of the box you have a to-do application with authentication, CRUD functionality, and some basic styling. All of this is ready to be amended for your specific use case. + +Or what if you want to turn code into money? Well, you can also get a [fully functioning SaaS app](https://opensaas.sh). Interested in the latest AI offereings? You also have a vector embeddings template, or an AI full-stack app protoyper! 5 options that save you from having to write a ton of boilerplate code. + +![wasp cli menu](/img/django-vs-wasp/wasp-cli-menu.png) + +### Way #2: [Mage.ai](https://usemage.ai/) (Free!) + +Just throw a name, prompt, and select a few of your desired settings and boom, you get a fully functioning prototype app. From here you can use other other AI tools, like [Cursor's AI code editor](https://www.cursor.com/), to generate new features and help you debug! + +![mage](/img/django-vs-wasp/usemage.png) + +:::note +💡 The Mage functionality is also achievable via the terminal ("ai-generated"), but you need to provide your own open-ai api key for it to work. +::: + +## Can you show us your support? + +![https://media2.giphy.com/media/l0MYAs5E2oIDCq9So/giphy.gif?cid=7941fdc6l6i66eq1dc7i5rz05nkl4mgjltyv206syb0o304g&ep=v1_gifs_search&rid=giphy.gif&ct=g](https://media2.giphy.com/media/l0MYAs5E2oIDCq9So/giphy.gif?cid=7941fdc6l6i66eq1dc7i5rz05nkl4mgjltyv206syb0o304g&ep=v1_gifs_search&rid=giphy.gif&ct=g) + +Are you interested in more content like this? Sign up for [our newsletter](https://wasp-lang.dev/#signup) and give us [a star on GitHub](https://www.github.com/wasp-lang/wasp)! We need your support to keep pushing our projects forward 😀 + +### Conclusion + +So there you have it. As I said in the beginning, coming from Django I was amazed how easy it was to build full-stack apps with Wasp, which is what inspired me to write this article. + +Hopefully I was able to show you why breaking away from Django in favor of Wasp can be beneficial in time, energy, and emotion. diff --git a/web/static/img/django-vs-wasp/mindblown.gif b/web/static/img/django-vs-wasp/mindblown.gif new file mode 100644 index 0000000000000000000000000000000000000000..53fab01df9ed3d8e123d0f5373dbd7a98ba381b9 GIT binary patch literal 520256 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�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

    Z<$tOJL~#~tK(=5B2Las# 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 FH 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 z06B>b&?7cLPGSS}hz*dF*Z=?k000000000000000000000000000000008g{FG;9B UllcB-LI3~&07*qoM6N<$g4RbbXaE2J literal 0 HcmV?d00001 diff --git a/web/static/img/django-vs-wasp/wasp-todo-app.gif b/web/static/img/django-vs-wasp/wasp-todo-app.gif new file mode 100644 index 0000000000000000000000000000000000000000..9859b223d19eeacc7a1df34f236b994cfd8f845b GIT binary patch literal 161592 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

    @;iYQW` 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 z℘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 fxirUHf7Vt Date: Tue, 20 Aug 2024 16:14:03 +0200 Subject: [PATCH 04/12] Update authors.yml --- web/blog/authors.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/web/blog/authors.yml b/web/blog/authors.yml index 9cbaab28e0..c850441814 100644 --- a/web/blog/authors.yml +++ b/web/blog/authors.yml @@ -59,4 +59,10 @@ lucaslima: name: Lucas Lima do Nascimento title: Content contributor url: https://github.com/LLxD - image_url: https://github.com/LLxD.png \ No newline at end of file + image_url: https://github.com/LLxD.png + +sam: + name: Sam Jakshtis + title: Content contributor + url: https://samjakshtis.com + image_url: https://samjakshtis.com/static/media/profile.0cff8a5a83086bb3b00b.jpg \ No newline at end of file From 416181723d0ce297796e6129a20db2ff131b26f0 Mon Sep 17 00:00:00 2001 From: vincanger <70215737+vincanger@users.noreply.github.com> Date: Tue, 20 Aug 2024 16:51:36 +0200 Subject: [PATCH 05/12] add banner --- web/blog/2024-08-20-django-vs-wasp.md | 105 +++++++++++++----- .../img/django-vs-wasp/wasp-django-banner.png | Bin 0 -> 67844 bytes 2 files changed, 77 insertions(+), 28 deletions(-) create mode 100644 web/static/img/django-vs-wasp/wasp-django-banner.png diff --git a/web/blog/2024-08-20-django-vs-wasp.md b/web/blog/2024-08-20-django-vs-wasp.md index 060bc17367..46fd72b3bf 100644 --- a/web/blog/2024-08-20-django-vs-wasp.md +++ b/web/blog/2024-08-20-django-vs-wasp.md @@ -1,10 +1,11 @@ --- -title: 'Want a Django experience for Javascript? Meet Wasp - a full-stack React & Node.js framework that is simply better' +title: 'Wasp: The JavaScript Answer to Django for Web Development' authors: [sam] -image: /img/lua-auth/lucia-auth-banner.png +image: /img/django-vs-wasp/wasp-django-banner.png tags: [webdev, auth, react, django, tutorial, full-stack] --- - +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; import ImgWithCaption from './components/ImgWithCaption' ## Wasp v Django: Building a full stack application just got a lot easier @@ -15,7 +16,17 @@ Wasp is an amazing dev tool for full stack applications. Combining things like R In this article, I am going to walk through creating a full stack application in Django versus Wasp to prove the simplicity of Wasp against a very conventional full-stack technology. I am also going to make a react frontend connected to Django. The point is to highlight the inefficiencies, difficulties, and issues that can (and will) arise with Django/react that are made vastly simpler via -This article is not intended as a how to, but I do provide some code as to highlight the exhaustive-nature of a Django app. +This article is not intended as a how-to, but I do provide code snippets to give you a feel for their differences. Also note that in order to give a side-by-side comparison, I'll use tabs which you can switch back and forth between, like this: + + + + Django info will go here... + + + ...and the Wasp comparison here. + + + + ```sh title="terminal" django-admin startproject python manage.py starapp Todo ``` -**Wasp** 🐝 + + ```sh title="terminal" wasp new Todo -wasp start +wasp ``` -Now Wasp starts hot out of the gate. Check out the menu you are given below. Wasp can either start a basic app for you, or you can select from a multitude of pre-made templates (including a fully functioning SaaS app) or even use an AI-generated app based on your description! + + + +Now Wasp starts hot out of the gate. After running `wasp new` you'll see a menu, as shown below. Wasp can either start a basic app for you, or you can select from a multitude of pre-made templates (including a [fully functioning SaaS app](https://opensaas.sh)) or even use an AI-generated app based on your description! ![wasp cli menu](/img/django-vs-wasp/wasp-cli-menu.png) @@ -63,7 +80,8 @@ INSTALLED_APPS [ So now we need a database, and this is another area where Wasp really shines. With Django, we need to create a model in the `models.py` file. Wasp, meanwhile, uses Prisma as it's ORM which allows us to clearly define necessary fields and make database creation simple in an easy to understand way. -**Django** 🟢 + + ```py title="models.py" from django.db import models @@ -76,7 +94,8 @@ class Task(models.Model): return self.title ``` -**Wasp** 🐝 + + ```jsx title="schema.prisma" model Task { @@ -86,21 +105,29 @@ model Task { } ``` + + + Django and Wasp do share similar ways to migrate databases: -**Django** 🟢 + + ```sh python manage.py makemigrations python manage.py migrate ``` -**Wasp** 🐝 + + ```sh wasp db migrate-dev ``` + + + But with Wasp, you can also do some pretty nifty database stuff that Django can't. Right now we're using SQLite, but how about instantly setting up a development Posgres database? Wasp can do that with: @@ -126,7 +153,8 @@ Routes in Django and Wasp follow a shomewhat similar pattern. However, if you're - Django works through the backend (`views.py`, which I will get to later in this article) which do all the CRUD operations. Those view functions are associated to a specific route within an app within a project (I know, a lot), and it can get more complicated if you start using primary keys and IDs. You need to create a `urls.py` file and direct your specific views file and functions to a route. Those app urls are then connected to the project urls. Phew. - Wasp’s way: define a route and direct it to a component. -**Django** 🟢 + + ```py title="todo/urls.py" from django.urls import path @@ -148,7 +176,8 @@ urlpatterns = [ ] ``` -**Wasp** 🐝 + + ```jsx title="main.wasp" route TaskRoute { path: "/", to: TaskPage } @@ -157,13 +186,18 @@ page TaskPage { } ``` + + + + ### CRUD Ok, this is where the benefits of Wasp are about to become even more apparent. Firstly, I am going to revisit the `views.py` file. This is where magic is going to happen for Django backend. Here is a simple version of what the create, update, and delete functions could look like for our Task/Todo example: -**Django** 🟢 + + ```py title="todo/views.py" from django.shortcuts import render, redirect @@ -211,7 +245,8 @@ class TaskForm(forms.ModelForm): fields = ['title', 'completed'] ``` -**Wasp** 🐝 + + ```jsx title="main.wasp" query getTasks { @@ -253,6 +288,9 @@ export const deleteTask = async ({ id }, context) => { } ``` + + + So right now, Wasp has a fully functioning backend with middleware configured for you. At this point we can create some React components, and then import and call these operations from the client. That is not the case with Django, unfortunately there is still a lot we need to do to configure React in our app and get things working together, which we will look at below. ## Part 2: So you want to use React with Django? @@ -348,7 +386,8 @@ By now you should be understanding why I've made the switch to using Wasp when b Ok, so now we can actually get back to comparing Wasp and Django. -**Django** 🟢 + + To start, lets create our React app in our Django project: @@ -469,7 +508,8 @@ const TaskList = () => { export default TaskList; ``` -**Wasp** 🐝 + + And here's the Wasp React client for comparison. Take note how we're able to import the operations we defined earlier and call them here easily on the client with less configuration than the Django app. We also get the built-in caching power of the `useQuery` hook, as well as the ability to pass in our authenticated user as a prop (we'll get into this more below): @@ -581,12 +621,15 @@ function NewTaskForm() { } ``` + + + -Very nice! In the Wasp app you can see how much easier it is to call the server-side code via Wasp operations. Plus, Wasp gives you the added benefit of refreshing the client-side cache for the Entity that's referenced in the operation definition (in this case `Task`). And the cherry on top is how easy it is to pass the authenticated user to the component, something we haven't even touched on in the Django app, and which we will talk about more below. +In the Wasp app you can see how much easier it is to call the server-side code via Wasp operations. Plus, Wasp gives you the added benefit of refreshing the client-side cache for the Entity that's referenced in the operation definition (in this case `Task`). And the cherry on top is how easy it is to pass the authenticated user to the component, something we haven't even touched on in the Django app, and which we will talk about more below. ## Part 3: Auth with Django? No way, José @@ -597,9 +640,10 @@ Very nice! In the Wasp app you can see how much easier it is to call the server- So we already started to get a feel in the above code for how simple it is to pass an authenticated user around in Wasp. But how do we actually go about implementing full-stack Authentication in Wasp and Django. -This is one of Wasp’s biggest advantages. It couldn't be easier or more intuitive. On the other hand, the Django implementation is so long and complicated I'm not going to even bother showing you the code and I'll just list out the stps instead; +This is one of Wasp’s biggest advantages. It couldn't be easier or more intuitive. On the other hand, the Django implementation is so long and complicated I'm not going to even bother showing you the code and I'll just list out the stps instead. Let's also look at Wasp first this time. -**Wasp** 🐝 + + ```jsx title="main.wasp" app TodoApp { @@ -619,18 +663,15 @@ app TodoApp { //... ``` -And that's all it takes to implement full-stack [Auth with Wasp](https://wasp-lang.dev/docs/auth/overview)! But that's just one example, you can also add other auth methods easily, like `google: {}`, `gitHub: {}` and `discord: {}` social auth, after configuring the apps and adding your environment variables. - -Wasp allows you to get building without worrying about so many things. I don’t need to worry about password hashing, multiple projects and apps, CORS headers, etc. I just need to add a couple lines of code. - -**Wasp just makes sense.** +That's it! -**Django** 🟢 + + Let's check out what it takes to add a simple username and password auth implementation to a Django app (remember, this isn't even the code, just a checklist!): @@ -664,6 +705,14 @@ Let's check out what it takes to add a simple username and password auth impleme source="https://c.tenor.com/dJCFZSkf3bAAAAAC/tenor.gif" /> + + + +And that's all it takes to implement full-stack [Auth with Wasp](https://wasp-lang.dev/docs/auth/overview)! But that's just one example, you can also add other auth methods easily, like `google: {}`, `gitHub: {}` and `discord: {}` social auth, after configuring the apps and adding your environment variables. + +Wasp allows you to get building without worrying about so many things. I don’t need to worry about password hashing, multiple projects and apps, CORS headers, etc. I just need to add a couple lines of code. + +**Wasp just makes sense.** ## One Final Thing @@ -688,7 +737,7 @@ Just throw a name, prompt, and select a few of your desired settings and boom, y ![mage](/img/django-vs-wasp/usemage.png) :::note -💡 The Mage functionality is also achievable via the terminal ("ai-generated"), but you need to provide your own open-ai api key for it to work. +💡 The Mage functionality is also achievable via the terminal (`wasp new -> ai-generated`), but you need to provide your own OpenAI api key for it to work. ::: ## Can you show us your support? diff --git a/web/static/img/django-vs-wasp/wasp-django-banner.png b/web/static/img/django-vs-wasp/wasp-django-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..1629a4b00d0d8267ca44f8519e316a616b21d337 GIT binary patch literal 67844 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 literal 0 HcmV?d00001 From 7b937ad3bb5f6c98ea4711eca746abfd24dc9209 Mon Sep 17 00:00:00 2001 From: vincanger <70215737+vincanger@users.noreply.github.com> Date: Tue, 20 Aug 2024 17:12:10 +0200 Subject: [PATCH 06/12] Update 2024-08-20-django-vs-wasp.md --- web/blog/2024-08-20-django-vs-wasp.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/web/blog/2024-08-20-django-vs-wasp.md b/web/blog/2024-08-20-django-vs-wasp.md index 46fd72b3bf..d613200622 100644 --- a/web/blog/2024-08-20-django-vs-wasp.md +++ b/web/blog/2024-08-20-django-vs-wasp.md @@ -8,7 +8,9 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import ImgWithCaption from './components/ImgWithCaption' -## Wasp v Django: Building a full stack application just got a lot easier +![a django dev tries wasp](/img/django-vs-wasp/wasp-django-banner.png) + +## Wasp vs Django: Building a full stack application just got a lot easier Hey, I’m Sam, a backend engineer with a lot of experience with Django. I wanted to make the jump and learn some frontend for a full stack app. I quickly experienced the arduous nature of a React-with-Django project and thought the pain was just part of the development process. However, I came across a very cool new full stack framework called [Wasp](https://wasp-lang.dev/). From 4147b661f77529c90ab44d6df15874618fbc411a Mon Sep 17 00:00:00 2001 From: vincanger <70215737+vincanger@users.noreply.github.com> Date: Tue, 20 Aug 2024 17:13:25 +0200 Subject: [PATCH 07/12] capitalize React --- web/blog/2024-08-20-django-vs-wasp.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web/blog/2024-08-20-django-vs-wasp.md b/web/blog/2024-08-20-django-vs-wasp.md index d613200622..5bc2aac7bf 100644 --- a/web/blog/2024-08-20-django-vs-wasp.md +++ b/web/blog/2024-08-20-django-vs-wasp.md @@ -16,7 +16,7 @@ Hey, I’m Sam, a backend engineer with a lot of experience with Django. I wante Wasp is an amazing dev tool for full stack applications. Combining things like React, Node.js and Prisma, Wasp allows for development to be expedited in ways never before seen. -In this article, I am going to walk through creating a full stack application in Django versus Wasp to prove the simplicity of Wasp against a very conventional full-stack technology. I am also going to make a react frontend connected to Django. The point is to highlight the inefficiencies, difficulties, and issues that can (and will) arise with Django/react that are made vastly simpler via +In this article, I am going to walk through creating a full stack application in Django versus Wasp to prove the simplicity of Wasp against a very conventional full-stack technology. I am also going to make a React frontend connected to Django. The point is to highlight the inefficiencies, difficulties, and issues that can (and will) arise with Django/React that are made vastly simpler via This article is not intended as a how-to, but I do provide code snippets to give you a feel for their differences. Also note that in order to give a side-by-side comparison, I'll use tabs which you can switch back and forth between, like this: @@ -315,7 +315,7 @@ pip install djangorestframework pip install django-cors-headers ``` -Include Rest Framework and Cors Header as installed apps, CORS headers as middleware, and then also set a local host for the react frontend to be able to communicate with the backend (Django) server (again, there is no need to do any of this initial setup in Wasp as it's all handled for you): +Include Rest Framework and Cors Header as installed apps, CORS headers as middleware, and then also set a local host for the React frontend to be able to communicate with the backend (Django) server (again, there is no need to do any of this initial setup in Wasp as it's all handled for you): ```py title="settings.py" INSTALLED_APPS = [ @@ -382,7 +382,7 @@ urlpatterns = [ ] ``` -By now you should be understanding why I've made the switch to using Wasp when building full-stack apps. Anyways, now we are actually able to make a react component with a Django backend 🙃 +By now you should be understanding why I've made the switch to using Wasp when building full-stack apps. Anyways, now we are actually able to make a React component with a Django backend 🙃 ### React time From 8a2d7e22f96e54dbff2bb6005f800ada1d86edf9 Mon Sep 17 00:00:00 2001 From: vincanger <70215737+vincanger@users.noreply.github.com> Date: Tue, 20 Aug 2024 17:15:58 +0200 Subject: [PATCH 08/12] Update 2024-08-20-django-vs-wasp.md --- web/blog/2024-08-20-django-vs-wasp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/blog/2024-08-20-django-vs-wasp.md b/web/blog/2024-08-20-django-vs-wasp.md index 5bc2aac7bf..5ce9c35d6a 100644 --- a/web/blog/2024-08-20-django-vs-wasp.md +++ b/web/blog/2024-08-20-django-vs-wasp.md @@ -16,7 +16,7 @@ Hey, I’m Sam, a backend engineer with a lot of experience with Django. I wante Wasp is an amazing dev tool for full stack applications. Combining things like React, Node.js and Prisma, Wasp allows for development to be expedited in ways never before seen. -In this article, I am going to walk through creating a full stack application in Django versus Wasp to prove the simplicity of Wasp against a very conventional full-stack technology. I am also going to make a React frontend connected to Django. The point is to highlight the inefficiencies, difficulties, and issues that can (and will) arise with Django/React that are made vastly simpler via +In this article, I am going to walk through creating a full stack application in Django versus Wasp to prove the simplicity of Wasp against a very conventional full-stack technology. I am also going to make a React frontend connected to Django. The point is to highlight the inefficiencies, difficulties, and issues that can (and will) arise with Django/React that are made vastly simpler when working with Wasp. This article is not intended as a how-to, but I do provide code snippets to give you a feel for their differences. Also note that in order to give a side-by-side comparison, I'll use tabs which you can switch back and forth between, like this: From a6573c2201a16b38a5f9f9c3c7b9bbaafb677b9e Mon Sep 17 00:00:00 2001 From: Mihovil Ilakovac Date: Mon, 26 Aug 2024 14:32:04 +0200 Subject: [PATCH 09/12] Add support for refresh tokens (#2212) --- .../templates/sdk/wasp/server/auth/hooks.ts | 83 +-- .../templates/sdk/wasp/server/auth/index.ts | 13 +- .../wasp/server/auth}/oauth/env.ts | 7 +- .../sdk/wasp/server/auth/oauth/index.ts | 31 ++ .../sdk/wasp/server/auth/oauth/oneTimeCode.ts | 50 ++ .../sdk/wasp/server/auth/oauth/provider.ts | 23 + .../server/auth/oauth/providers/discord.ts | 28 + .../server/auth/oauth/providers/github.ts | 26 + .../server/auth/oauth/providers/google.ts | 28 + .../server/auth/oauth/providers/keycloak.ts | 29 + .../wasp/server/auth}/oauth/redirect.ts | 22 +- .../src/auth/providers/config/discord.ts | 23 +- .../src/auth/providers/config/github.ts | 21 +- .../src/auth/providers/config/google.ts | 25 +- .../src/auth/providers/config/keycloak.ts | 26 +- .../server/src/auth/providers/email/login.ts | 6 +- .../src/auth/providers/oauth/handler.ts | 33 +- .../src/auth/providers/oauth/oneTimeCode.ts | 52 +- .../server/src/auth/providers/oauth/user.ts | 29 +- .../src/auth/providers/username/login.ts | 6 +- .../waspComplexTest-golden/files.manifest | 26 +- .../waspComplexTest/.wasp/out/.waspchecksums | 72 ++- .../.wasp/out/installedNpmDepsLog.json | 2 +- .../out/sdk/wasp/dist/server/auth/hooks.d.ts | 69 ++- .../out/sdk/wasp/dist/server/auth/index.d.ts | 3 +- .../out/sdk/wasp/dist/server/auth/index.js | 1 + .../sdk/wasp/dist/server/auth/index.js.map | 2 +- .../sdk/wasp/dist/server/auth/oauth/env.d.ts | 1 + .../sdk/wasp/dist/server/auth/oauth/env.js | 13 + .../wasp/dist/server/auth/oauth/env.js.map | 1 + .../wasp/dist/server/auth/oauth/index.d.ts | 3 + .../sdk/wasp/dist/server/auth/oauth/index.js | 7 + .../wasp/dist/server/auth/oauth/index.js.map | 1 + .../dist/server/auth/oauth/oneTimeCode.d.ts | 8 + .../dist/server/auth/oauth/oneTimeCode.js | 39 ++ .../dist/server/auth/oauth/oneTimeCode.js.map | 1 + .../wasp/dist/server/auth/oauth/provider.d.ts | 12 + .../wasp/dist/server/auth/oauth/provider.js | 9 + .../dist/server/auth/oauth/provider.js.map | 1 + .../server/auth/oauth/providers/google.d.ts | 7 + .../server/auth/oauth/providers/google.js | 16 + .../server/auth/oauth/providers/google.js.map | 1 + .../wasp/dist/server/auth/oauth/redirect.d.ts | 6 + .../wasp/dist/server/auth/oauth/redirect.js | 34 ++ .../dist/server/auth/oauth/redirect.js.map | 1 + .../.wasp/out/sdk/wasp/package.json | 1 + .../.wasp/out/sdk/wasp/server/auth/hooks.ts | 71 +-- .../.wasp/out/sdk/wasp/server/auth/index.ts | 3 + .../wasp/server/auth}/oauth/env.ts | 7 +- .../out/sdk/wasp/server/auth/oauth/index.ts | 16 + .../sdk/wasp/server/auth/oauth/oneTimeCode.ts | 50 ++ .../sdk/wasp/server/auth/oauth/provider.ts | 23 + .../server/auth/oauth/providers/google.ts | 27 + .../wasp/server/auth}/oauth/redirect.ts | 22 +- .../.wasp/out/server/package.json | 1 - .../src/auth/providers/config/google.ts | 25 +- .../src/auth/providers/oauth/handler.ts | 33 +- .../src/auth/providers/oauth/oneTimeCode.ts | 52 +- .../server/src/auth/providers/oauth/user.ts | 29 +- waspc/examples/todoApp/package-lock.json | 496 ++++++++++++++++++ waspc/examples/todoApp/src/auth/hooks.ts | 8 +- waspc/src/Wasp/Generator/SdkGenerator.hs | 2 + .../src/Wasp/Generator/SdkGenerator/AuthG.hs | 2 + .../Generator/SdkGenerator/Server/AuthG.hs | 14 +- .../Generator/SdkGenerator/Server/OAuthG.hs | 103 ++++ waspc/src/Wasp/Generator/ServerGenerator.hs | 2 - .../ServerGenerator/Auth/OAuthAuthG.hs | 34 +- waspc/waspc.cabal | 1 + web/docs/auth/auth-hooks.md | 189 +++++-- 69 files changed, 1594 insertions(+), 514 deletions(-) rename waspc/data/Generator/templates/{server/src/auth/providers => sdk/wasp/server/auth}/oauth/env.ts (74%) create mode 100644 waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/index.ts create mode 100644 waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/oneTimeCode.ts create mode 100644 waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/provider.ts create mode 100644 waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/discord.ts create mode 100644 waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/github.ts create mode 100644 waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/google.ts create mode 100644 waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/keycloak.ts rename waspc/data/Generator/templates/{server/src/auth/providers => sdk/wasp/server/auth}/oauth/redirect.ts (87%) create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/env.d.ts create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/env.js create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/env.js.map create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/index.d.ts create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/index.js create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/index.js.map create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/oneTimeCode.d.ts create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/oneTimeCode.js create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/oneTimeCode.js.map create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/provider.d.ts create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/provider.js create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/provider.js.map create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/providers/google.d.ts create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/providers/google.js create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/providers/google.js.map create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/redirect.d.ts create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/redirect.js create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/redirect.js.map rename waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/{server/src/auth/providers => sdk/wasp/server/auth}/oauth/env.ts (74%) create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/index.ts create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/oneTimeCode.ts create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/provider.ts create mode 100644 waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/providers/google.ts rename waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/{server/src/auth/providers => sdk/wasp/server/auth}/oauth/redirect.ts (86%) create mode 100644 waspc/src/Wasp/Generator/SdkGenerator/Server/OAuthG.hs diff --git a/waspc/data/Generator/templates/sdk/wasp/server/auth/hooks.ts b/waspc/data/Generator/templates/sdk/wasp/server/auth/hooks.ts index a3754e7f6a..6b5824dec8 100644 --- a/waspc/data/Generator/templates/sdk/wasp/server/auth/hooks.ts +++ b/waspc/data/Generator/templates/sdk/wasp/server/auth/hooks.ts @@ -1,3 +1,4 @@ +{{={= =}=}} import type { Request as ExpressRequest } from 'express' import { type ProviderId, createUser, findAuthWithUserBy } from '../../auth/utils.js' import { prisma } from '../index.js' @@ -35,7 +36,7 @@ export type OnAfterLoginHook = ( export type InternalAuthHookParams = { /** * Prisma instance that can be used to interact with the database. - */ + */ prisma: typeof prisma } @@ -48,86 +49,98 @@ export type InternalAuthHookParams = { type OnBeforeSignupHookParams = { /** * Provider ID object that contains the provider name and the provide user ID. - */ + */ providerId: ProviderId /** * Request object that can be used to access the incoming request. - */ + */ req: ExpressRequest } & InternalAuthHookParams type OnAfterSignupHookParams = { /** * Provider ID object that contains the provider name and the provide user ID. - */ + */ providerId: ProviderId /** * User object that was created during the signup process. - */ + */ user: Awaited> - oauth?: { - /** - * Access token that was received during the OAuth flow. - */ - accessToken: string - /** - * Unique request ID that was generated during the OAuth flow. - */ - uniqueRequestId: string - }, + /** + * OAuth flow data that was generated during the OAuth flow. This is only + * available if the user signed up using OAuth. + */ + oauth?: OAuthData /** * Request object that can be used to access the incoming request. - */ + */ req: ExpressRequest } & InternalAuthHookParams type OnBeforeOAuthRedirectHookParams = { /** * URL that the OAuth flow should redirect to. - */ + */ url: URL /** * Unique request ID that was generated during the OAuth flow. - */ - uniqueRequestId: string + */ + oauth: Pick /** * Request object that can be used to access the incoming request. - */ + */ req: ExpressRequest } & InternalAuthHookParams type OnBeforeLoginHookParams = { /** * Provider ID object that contains the provider name and the provide user ID. - */ + */ providerId: ProviderId /** * Request object that can be used to access the incoming request. - */ + */ req: ExpressRequest } & InternalAuthHookParams type OnAfterLoginHookParams = { /** * Provider ID object that contains the provider name and the provide user ID. - */ + */ providerId: ProviderId - oauth?: { - /** - * Access token that was received during the OAuth flow. - */ - accessToken: string - /** - * Unique request ID that was generated during the OAuth flow. - */ - uniqueRequestId: string - }, /** * User that is logged in. - */ + */ user: Awaited>['user'] + /** + * OAuth flow data that was generated during the OAuth flow. This is only + * available if the user logged in using OAuth. + */ + oauth?: OAuthData /** * Request object that can be used to access the incoming request. - */ + */ req: ExpressRequest } & InternalAuthHookParams + +// PUBLIC API +export type OAuthData = { + /** + * Unique request ID that was generated during the OAuth flow. + */ + uniqueRequestId: string +} & ( + {=# enabledProviders.isGoogleAuthEnabled =} + | { providerName: 'google'; tokens: import('arctic').GoogleTokens } + {=/ enabledProviders.isGoogleAuthEnabled =} + {=# enabledProviders.isDiscordAuthEnabled =} + | { providerName: 'discord'; tokens: import('arctic').DiscordTokens } + {=/ enabledProviders.isDiscordAuthEnabled =} + {=# enabledProviders.isGitHubAuthEnabled =} + | { providerName: 'github'; tokens: import('arctic').GitHubTokens } + {=/ enabledProviders.isGitHubAuthEnabled =} + {=# enabledProviders.isKeycloakAuthEnabled =} + | { providerName: 'keycloak'; tokens: import('arctic').KeycloakTokens } + {=/ enabledProviders.isKeycloakAuthEnabled =} + | never +) diff --git a/waspc/data/Generator/templates/sdk/wasp/server/auth/index.ts b/waspc/data/Generator/templates/sdk/wasp/server/auth/index.ts index 9c305a8749..945793b0bc 100644 --- a/waspc/data/Generator/templates/sdk/wasp/server/auth/index.ts +++ b/waspc/data/Generator/templates/sdk/wasp/server/auth/index.ts @@ -30,12 +30,17 @@ export type { OnBeforeLoginHook, OnAfterLoginHook, InternalAuthHookParams, + OAuthData, } from './hooks.js' -{=# isEmailAuthEnabled =} +{=# isExternalAuthEnabled =} +export * from './oauth/index.js' +{=/ isExternalAuthEnabled =} + +{=# enabledProviders.isEmailAuthEnabled =} export * from './email/index.js' -{=/ isEmailAuthEnabled =} +{=/ enabledProviders.isEmailAuthEnabled =} -{=# isUsernameAndPasswordAuthEnabled =} +{=# enabledProviders.isUsernameAndPasswordAuthEnabled =} export * from './username.js' -{=/ isUsernameAndPasswordAuthEnabled =} +{=/ enabledProviders.isUsernameAndPasswordAuthEnabled =} diff --git a/waspc/data/Generator/templates/server/src/auth/providers/oauth/env.ts b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/env.ts similarity index 74% rename from waspc/data/Generator/templates/server/src/auth/providers/oauth/env.ts rename to waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/env.ts index 24776c6dd3..ada2452b8e 100644 --- a/waspc/data/Generator/templates/server/src/auth/providers/oauth/env.ts +++ b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/env.ts @@ -1,14 +1,13 @@ -import { type ProviderConfig } from "wasp/auth/providers/types"; - +// PRIVATE API (SDK) export function ensureEnvVarsForProvider( envVarNames: EnvVarName[], - provider: ProviderConfig, + providerName: string, ): Record { const result: Record = {}; for (const envVarName of envVarNames) { const value = process.env[envVarName]; if (!value) { - throw new Error(`${envVarName} env variable is required when using the ${provider.displayName} auth provider.`); + throw new Error(`${envVarName} env variable is required when using the ${providerName} auth provider.`); } result[envVarName] = value; } diff --git a/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/index.ts b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/index.ts new file mode 100644 index 0000000000..7fc28ed4c2 --- /dev/null +++ b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/index.ts @@ -0,0 +1,31 @@ +{{={= =}=}} +{=# enabledProviders.isGoogleAuthEnabled =} +// PUBLIC API +export { google } from './providers/google.js'; +{=/ enabledProviders.isGoogleAuthEnabled =} +{=# enabledProviders.isDiscordAuthEnabled =} +// PUBLIC API +export { discord } from './providers/discord.js'; +{=/ enabledProviders.isDiscordAuthEnabled =} +{=# enabledProviders.isGitHubAuthEnabled =} +// PUBLIC API +export { github } from './providers/github.js'; +{=/ enabledProviders.isGitHubAuthEnabled =} +{=# enabledProviders.isKeycloakAuthEnabled =} +// PUBLIC API +export { keycloak } from './providers/keycloak.js'; +{=/ enabledProviders.isKeycloakAuthEnabled =} + +// PRIVATE API +export { + loginPath, + callbackPath, + exchangeCodeForTokenPath, + handleOAuthErrorAndGetRedirectUri, + getRedirectUriForOneTimeCode, +} from './redirect.js' + +// PRIVATE API +export { + tokenStore, +} from './oneTimeCode.js' diff --git a/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/oneTimeCode.ts b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/oneTimeCode.ts new file mode 100644 index 0000000000..4f2d8ebb08 --- /dev/null +++ b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/oneTimeCode.ts @@ -0,0 +1,50 @@ +import { createJWT, validateJWT, TimeSpan } from '../../../auth/jwt.js' + +export const tokenStore = createTokenStore(); + +function createTokenStore() { + const usedTokens = new Map(); + + const validFor = new TimeSpan(1, 'm') // 1 minute + const cleanupAfter = 1000 * 60 * 60; // 1 hour + + function createToken(userId: string): Promise { + return createJWT( + { + id: userId, + }, + { + expiresIn: validFor, + } + ); + } + + function verifyToken(token: string): Promise<{ id: string }> { + return validateJWT(token); + } + + function isUsed(token: string): boolean { + return usedTokens.has(token); + } + + function markUsed(token: string): void { + usedTokens.set(token, Date.now()); + cleanUp(); + } + + function cleanUp(): void { + const now = Date.now(); + for (const [token, timestamp] of usedTokens.entries()) { + if (now - timestamp > cleanupAfter) { + usedTokens.delete(token); + } + } + } + + return { + createToken, + verifyToken, + isUsed, + markUsed, + }; +} diff --git a/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/provider.ts b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/provider.ts new file mode 100644 index 0000000000..c2aee70897 --- /dev/null +++ b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/provider.ts @@ -0,0 +1,23 @@ +import { OAuth2Provider, OAuth2ProviderWithPKCE } from "arctic"; + +export function defineProvider< + OAuthClient extends OAuth2Provider | OAuth2ProviderWithPKCE, + Env extends Record +>({ + id, + displayName, + env, + oAuthClient, +}: { + id: string; + displayName: string; + env: Env; + oAuthClient: OAuthClient; +}) { + return { + id, + displayName, + env, + oAuthClient, + }; +} diff --git a/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/discord.ts b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/discord.ts new file mode 100644 index 0000000000..52e396f7a6 --- /dev/null +++ b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/discord.ts @@ -0,0 +1,28 @@ +{{={= =}=}} +import { Discord } from "arctic"; + +import { defineProvider } from "../provider.js"; +import { ensureEnvVarsForProvider } from "../env.js"; +import { getRedirectUriForCallback } from "../redirect.js"; + +const id = "{= providerId =}"; +const displayName = "{= displayName =}"; + +const env = ensureEnvVarsForProvider( + ["DISCORD_CLIENT_ID", "DISCORD_CLIENT_SECRET"], + displayName +); + +const oAuthClient = new Discord( + env.DISCORD_CLIENT_ID, + env.DISCORD_CLIENT_SECRET, + getRedirectUriForCallback(id).toString(), +); + +// PUBLIC API +export const discord = defineProvider({ + id, + displayName, + env, + oAuthClient, +}); diff --git a/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/github.ts b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/github.ts new file mode 100644 index 0000000000..e9c5019c37 --- /dev/null +++ b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/github.ts @@ -0,0 +1,26 @@ +{{={= =}=}} +import { GitHub } from "arctic"; + +import { ensureEnvVarsForProvider } from "../env.js"; +import { defineProvider } from "../provider.js"; + +const id = "{= providerId =}"; +const displayName = "{= displayName =}"; + +const env = ensureEnvVarsForProvider( + ["GITHUB_CLIENT_ID", "GITHUB_CLIENT_SECRET"], + displayName +); + +const oAuthClient = new GitHub( + env.GITHUB_CLIENT_ID, + env.GITHUB_CLIENT_SECRET, +); + +// PUBLIC API +export const github = defineProvider({ + id, + displayName, + env, + oAuthClient, +}); diff --git a/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/google.ts b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/google.ts new file mode 100644 index 0000000000..cf157ae12b --- /dev/null +++ b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/google.ts @@ -0,0 +1,28 @@ +{{={= =}=}} +import { Google } from "arctic"; + +import { ensureEnvVarsForProvider } from "../env.js"; +import { getRedirectUriForCallback } from "../redirect.js"; +import { defineProvider } from "../provider.js"; + +const id = "{= providerId =}"; +const displayName = "{= displayName =}"; + +const env = ensureEnvVarsForProvider( + ["GOOGLE_CLIENT_ID", "GOOGLE_CLIENT_SECRET"], + displayName, +); + +const oAuthClient = new Google( + env.GOOGLE_CLIENT_ID, + env.GOOGLE_CLIENT_SECRET, + getRedirectUriForCallback(id).toString(), +); + +// PUBLIC API +export const google = defineProvider({ + id, + displayName, + env, + oAuthClient, +}); diff --git a/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/keycloak.ts b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/keycloak.ts new file mode 100644 index 0000000000..93136732d9 --- /dev/null +++ b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/keycloak.ts @@ -0,0 +1,29 @@ +{{={= =}=}} +import { Keycloak } from "arctic"; + +import { ensureEnvVarsForProvider } from "../env.js"; +import { getRedirectUriForCallback } from "../redirect.js"; +import { defineProvider } from "../provider.js"; + +const id = "{= providerId =}"; +const displayName = "{= displayName =}"; + +const env = ensureEnvVarsForProvider( + ["KEYCLOAK_REALM_URL", "KEYCLOAK_CLIENT_ID", "KEYCLOAK_CLIENT_SECRET"], + displayName, +); + +const oAuthClient = new Keycloak( + env.KEYCLOAK_REALM_URL, + env.KEYCLOAK_CLIENT_ID, + env.KEYCLOAK_CLIENT_SECRET, + getRedirectUriForCallback(id).toString(), +); + +// PUBLIC API +export const keycloak = defineProvider({ + id, + displayName, + env, + oAuthClient, +}); diff --git a/waspc/data/Generator/templates/server/src/auth/providers/oauth/redirect.ts b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/redirect.ts similarity index 87% rename from waspc/data/Generator/templates/server/src/auth/providers/oauth/redirect.ts rename to waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/redirect.ts index 2408a27b5e..415459bf17 100644 --- a/waspc/data/Generator/templates/server/src/auth/providers/oauth/redirect.ts +++ b/waspc/data/Generator/templates/sdk/wasp/server/auth/oauth/redirect.ts @@ -1,20 +1,23 @@ {{={= =}=}} -import { config } from 'wasp/server' -import { HttpError } from 'wasp/server' +import { config, HttpError } from '../../index.js' +// PRIVATE API (server) export const loginPath = '{= serverOAuthLoginHandlerPath =}' -export const callbackPath = '{= serverOAuthCallbackHandlerPath =}' + +// PRIVATE API (server) export const exchangeCodeForTokenPath = '{= serverExchangeCodeForTokenHandlerPath =}' -const clientOAuthCallbackPath = '{= clientOAuthCallbackPath =}' -export function getRedirectUriForCallback(providerName: string): URL { - return new URL(`${config.serverUrl}/auth/${providerName}/${callbackPath}`); -} +// PRIVATE API (server) +export const callbackPath = '{= serverOAuthCallbackHandlerPath =}' +const clientOAuthCallbackPath = '{= clientOAuthCallbackPath =}' + +// PRIVATE API (server) export function getRedirectUriForOneTimeCode(oneTimeCode: string): URL { return new URL(`${config.frontendUrl}${clientOAuthCallbackPath}#${oneTimeCode}`); } +// PRIVATE API (server) export function handleOAuthErrorAndGetRedirectUri(error: unknown): URL { if (error instanceof HttpError) { const errorMessage = isHttpErrorWithExtraMessage(error) @@ -26,6 +29,11 @@ export function handleOAuthErrorAndGetRedirectUri(error: unknown): URL { return getRedirectUriForError("An unknown error occurred while trying to log in with the OAuth provider."); } +// PRIVATE API (SDK) +export function getRedirectUriForCallback(providerName: string): URL { + return new URL(`${config.serverUrl}/auth/${providerName}/${callbackPath}`); +} + function getRedirectUriForError(error: string): URL { return new URL(`${config.frontendUrl}${clientOAuthCallbackPath}?error=${error}`); } diff --git a/waspc/data/Generator/templates/server/src/auth/providers/config/discord.ts b/waspc/data/Generator/templates/server/src/auth/providers/config/discord.ts index a5e3bcd6fe..0f7d11bbc7 100644 --- a/waspc/data/Generator/templates/server/src/auth/providers/config/discord.ts +++ b/waspc/data/Generator/templates/server/src/auth/providers/config/discord.ts @@ -1,9 +1,7 @@ {{={= =}=}} -import { Discord } from "arctic"; import type { ProviderConfig } from "wasp/auth/providers/types"; -import { getRedirectUriForCallback } from "../oauth/redirect.js"; -import { ensureEnvVarsForProvider } from "../oauth/env.js"; +import { discord } from "wasp/server/auth"; import { mergeDefaultAndUserConfig } from "../oauth/config.js"; import { createOAuthProviderRouter } from "../oauth/handler.js"; @@ -23,20 +21,9 @@ const _waspUserDefinedConfigFn = undefined {=/ configFn.isDefined =} const _waspConfig: ProviderConfig = { - id: "{= providerId =}", - displayName: "{= displayName =}", + id: discord.id, + displayName: discord.displayName, createRouter(provider) { - const env = ensureEnvVarsForProvider( - ["DISCORD_CLIENT_ID", "DISCORD_CLIENT_SECRET"], - provider - ); - - const discord = new Discord( - env.DISCORD_CLIENT_ID, - env.DISCORD_CLIENT_SECRET, - getRedirectUriForCallback(provider.id).toString(), - ); - const config = mergeDefaultAndUserConfig({ scopes: {=& requiredScopes =}, }, _waspUserDefinedConfigFn); @@ -72,8 +59,8 @@ const _waspConfig: ProviderConfig = { provider, oAuthType: 'OAuth2', userSignupFields: _waspUserSignupFields, - getAuthorizationUrl: ({ state }) => discord.createAuthorizationURL(state, config), - getProviderTokens: ({ code }) => discord.validateAuthorizationCode(code), + getAuthorizationUrl: ({ state }) => discord.oAuthClient.createAuthorizationURL(state, config), + getProviderTokens: ({ code }) => discord.oAuthClient.validateAuthorizationCode(code), getProviderInfo: ({ accessToken }) => getDiscordProfile(accessToken), }); }, diff --git a/waspc/data/Generator/templates/server/src/auth/providers/config/github.ts b/waspc/data/Generator/templates/server/src/auth/providers/config/github.ts index 12723302f9..da79e04bf2 100644 --- a/waspc/data/Generator/templates/server/src/auth/providers/config/github.ts +++ b/waspc/data/Generator/templates/server/src/auth/providers/config/github.ts @@ -1,8 +1,7 @@ {{={= =}=}} -import { GitHub } from "arctic"; import type { ProviderConfig } from "wasp/auth/providers/types"; -import { ensureEnvVarsForProvider } from "../oauth/env.js"; +import { github } from "wasp/server/auth"; import { mergeDefaultAndUserConfig } from "../oauth/config.js"; import { createOAuthProviderRouter } from "../oauth/handler.js"; @@ -22,19 +21,9 @@ const _waspUserDefinedConfigFn = undefined {=/ configFn.isDefined =} const _waspConfig: ProviderConfig = { - id: "{= providerId =}", - displayName: "{= displayName =}", + id: github.id, + displayName: github.displayName, createRouter(provider) { - const env = ensureEnvVarsForProvider( - ["GITHUB_CLIENT_ID", "GITHUB_CLIENT_SECRET"], - provider - ); - - const github = new GitHub( - env.GITHUB_CLIENT_ID, - env.GITHUB_CLIENT_SECRET, - ); - const config = mergeDefaultAndUserConfig({ scopes: {=& requiredScopes =}, }, _waspUserDefinedConfigFn); @@ -79,8 +68,8 @@ const _waspConfig: ProviderConfig = { provider, oAuthType: 'OAuth2', userSignupFields: _waspUserSignupFields, - getAuthorizationUrl: ({ state }) => github.createAuthorizationURL(state, config), - getProviderTokens: ({ code }) => github.validateAuthorizationCode(code), + getAuthorizationUrl: ({ state }) => github.oAuthClient.createAuthorizationURL(state, config), + getProviderTokens: ({ code }) => github.oAuthClient.validateAuthorizationCode(code), getProviderInfo: ({ accessToken }) => getGithubProfile(accessToken), }); }, diff --git a/waspc/data/Generator/templates/server/src/auth/providers/config/google.ts b/waspc/data/Generator/templates/server/src/auth/providers/config/google.ts index 93ba70bf2e..0209353162 100644 --- a/waspc/data/Generator/templates/server/src/auth/providers/config/google.ts +++ b/waspc/data/Generator/templates/server/src/auth/providers/config/google.ts @@ -1,9 +1,7 @@ {{={= =}=}} -import { Google } from "arctic"; - import type { ProviderConfig } from "wasp/auth/providers/types"; -import { getRedirectUriForCallback } from "../oauth/redirect.js"; -import { ensureEnvVarsForProvider } from "../oauth/env.js"; +import { google } from "wasp/server/auth"; + import { mergeDefaultAndUserConfig } from "../oauth/config.js"; import { createOAuthProviderRouter } from "../oauth/handler.js"; @@ -23,20 +21,9 @@ const _waspUserDefinedConfigFn = undefined {=/ configFn.isDefined =} const _waspConfig: ProviderConfig = { - id: "{= providerId =}", - displayName: "{= displayName =}", + id: google.id, + displayName: google.displayName, createRouter(provider) { - const env = ensureEnvVarsForProvider( - ["GOOGLE_CLIENT_ID", "GOOGLE_CLIENT_SECRET"], - provider - ); - - const google = new Google( - env.GOOGLE_CLIENT_ID, - env.GOOGLE_CLIENT_SECRET, - getRedirectUriForCallback(provider.id).toString(), - ); - const config = mergeDefaultAndUserConfig({ scopes: {=& requiredScopes =}, }, _waspUserDefinedConfigFn); @@ -68,8 +55,8 @@ const _waspConfig: ProviderConfig = { provider, oAuthType: 'OAuth2WithPKCE', userSignupFields: _waspUserSignupFields, - getAuthorizationUrl: ({ state, codeVerifier }) => google.createAuthorizationURL(state, codeVerifier, config), - getProviderTokens: ({ code, codeVerifier }) => google.validateAuthorizationCode(code, codeVerifier), + getAuthorizationUrl: ({ state, codeVerifier }) => google.oAuthClient.createAuthorizationURL(state, codeVerifier, config), + getProviderTokens: ({ code, codeVerifier }) => google.oAuthClient.validateAuthorizationCode(code, codeVerifier), getProviderInfo: ({ accessToken }) => getGoogleProfile(accessToken), }); }, diff --git a/waspc/data/Generator/templates/server/src/auth/providers/config/keycloak.ts b/waspc/data/Generator/templates/server/src/auth/providers/config/keycloak.ts index 95d75c656f..f80d56ad46 100644 --- a/waspc/data/Generator/templates/server/src/auth/providers/config/keycloak.ts +++ b/waspc/data/Generator/templates/server/src/auth/providers/config/keycloak.ts @@ -1,9 +1,7 @@ {{={= =}=}} -import { Keycloak } from "arctic"; import type { ProviderConfig } from "wasp/auth/providers/types"; -import { getRedirectUriForCallback } from "../oauth/redirect.js"; -import { ensureEnvVarsForProvider } from "../oauth/env.js"; +import { keycloak } from "wasp/server/auth"; import { mergeDefaultAndUserConfig } from "../oauth/config.js"; import { createOAuthProviderRouter } from "../oauth/handler.js"; @@ -23,21 +21,9 @@ const _waspUserDefinedConfigFn = undefined {=/ configFn.isDefined =} const _waspConfig: ProviderConfig = { - id: "{= providerId =}", - displayName: "{= displayName =}", + id: keycloak.id, + displayName: keycloak.displayName, createRouter(provider) { - const env = ensureEnvVarsForProvider( - ["KEYCLOAK_REALM_URL", "KEYCLOAK_CLIENT_ID", "KEYCLOAK_CLIENT_SECRET"], - provider - ); - - const keycloak = new Keycloak( - env.KEYCLOAK_REALM_URL, - env.KEYCLOAK_CLIENT_ID, - env.KEYCLOAK_CLIENT_SECRET, - getRedirectUriForCallback(provider.id).toString(), - ); - const config = mergeDefaultAndUserConfig({ scopes: {=& requiredScopes =}, }, _waspUserDefinedConfigFn); @@ -46,7 +32,7 @@ const _waspConfig: ProviderConfig = { providerProfile: unknown; providerUserId: string; }> { - const userInfoEndpoint = `${env.KEYCLOAK_REALM_URL}/protocol/openid-connect/userinfo`; + const userInfoEndpoint = `${keycloak.env.KEYCLOAK_REALM_URL}/protocol/openid-connect/userinfo`; const response = await fetch( userInfoEndpoint, { @@ -70,8 +56,8 @@ const _waspConfig: ProviderConfig = { provider, oAuthType: 'OAuth2WithPKCE', userSignupFields: _waspUserSignupFields, - getAuthorizationUrl: ({ state, codeVerifier }) => keycloak.createAuthorizationURL(state, codeVerifier, config), - getProviderTokens: ({ code, codeVerifier }) => keycloak.validateAuthorizationCode(code, codeVerifier), + getAuthorizationUrl: ({ state, codeVerifier }) => keycloak.oAuthClient.createAuthorizationURL(state, codeVerifier, config), + getProviderTokens: ({ code, codeVerifier }) => keycloak.oAuthClient.validateAuthorizationCode(code, codeVerifier), getProviderInfo: ({ accessToken }) => getKeycloakProfile(accessToken), }); }, diff --git a/waspc/data/Generator/templates/server/src/auth/providers/email/login.ts b/waspc/data/Generator/templates/server/src/auth/providers/email/login.ts index 9fdf60b8aa..4e3ddb3913 100644 --- a/waspc/data/Generator/templates/server/src/auth/providers/email/login.ts +++ b/waspc/data/Generator/templates/server/src/auth/providers/email/login.ts @@ -36,7 +36,11 @@ export function getLoginRoute() { const auth = await findAuthWithUserBy({ id: authIdentity.authId }) - await onBeforeLoginHook({ req, providerId }) + await onBeforeLoginHook({ + req, + providerId, + user: auth.user, + }) const session = await createSession(auth.id) diff --git a/waspc/data/Generator/templates/server/src/auth/providers/oauth/handler.ts b/waspc/data/Generator/templates/server/src/auth/providers/oauth/handler.ts index 869052d7ac..ec02cf5a67 100644 --- a/waspc/data/Generator/templates/server/src/auth/providers/oauth/handler.ts +++ b/waspc/data/Generator/templates/server/src/auth/providers/oauth/handler.ts @@ -6,7 +6,6 @@ import { type UserSignupFields, type ProviderConfig, } from 'wasp/auth/providers/types' - import { type OAuthType, type OAuthStateFor, @@ -19,10 +18,11 @@ import { callbackPath, loginPath, handleOAuthErrorAndGetRedirectUri, -} from './redirect.js' +} from 'wasp/server/auth' +import { OAuthData } from 'wasp/server/auth' import { onBeforeOAuthRedirectHook } from '../../hooks.js' -export function createOAuthProviderRouter({ +export function createOAuthProviderRouter({ provider, oAuthType, userSignupFields, @@ -51,14 +51,12 @@ export function createOAuthProviderRouter({ */ getProviderTokens: ( oAuthState: OAuthStateWithCodeFor, - ) => Promise<{ - accessToken: string - }> + ) => Promise /* The function that returns the user's profile and ID using the access token. */ - getProviderInfo: ({ accessToken }: { accessToken: string }) => Promise<{ + getProviderInfo: (tokens: Tokens) => Promise<{ providerUserId: string providerProfile: unknown }> @@ -77,7 +75,7 @@ export function createOAuthProviderRouter({ const { url: redirectUrlAfterHook } = await onBeforeOAuthRedirectHook({ req, url: redirectUrl, - uniqueRequestId: oAuthState.state, + oauth: { uniqueRequestId: oAuthState.state } }) return redirect(res, redirectUrlAfterHook.toString()) }), @@ -92,11 +90,9 @@ export function createOAuthProviderRouter({ provider, req, }) - const { accessToken } = await getProviderTokens(oAuthState) + const tokens = await getProviderTokens(oAuthState) - const { providerProfile, providerUserId } = await getProviderInfo({ - accessToken, - }) + const { providerProfile, providerUserId } = await getProviderInfo(tokens) try { const redirectUri = await finishOAuthFlowAndGetRedirectUri({ provider, @@ -104,8 +100,17 @@ export function createOAuthProviderRouter({ providerUserId, userSignupFields, req, - accessToken, - oAuthState, + oauth: { + uniqueRequestId: oAuthState.state, + // OAuth params are built as a discriminated union + // of provider names and their respective tokens. + // We are using a generic ProviderConfig and tokens type + // is inferred from the getProviderTokens function. + // Instead of building complex TS machinery to ensure that + // the providerName and tokens match, we are using any here. + providerName: provider.id as any, + tokens, + }, }) // Redirect to the client with the one time code return redirect(res, redirectUri.toString()) diff --git a/waspc/data/Generator/templates/server/src/auth/providers/oauth/oneTimeCode.ts b/waspc/data/Generator/templates/server/src/auth/providers/oauth/oneTimeCode.ts index 0b98a1d879..cf1410c10f 100644 --- a/waspc/data/Generator/templates/server/src/auth/providers/oauth/oneTimeCode.ts +++ b/waspc/data/Generator/templates/server/src/auth/providers/oauth/oneTimeCode.ts @@ -2,12 +2,9 @@ import { Router } from "express"; import { HttpError } from 'wasp/server'; import { handleRejection } from 'wasp/server/utils' -import { createJWT, validateJWT, TimeSpan } from 'wasp/auth/jwt' import { findAuthWithUserBy } from 'wasp/auth/utils' import { createSession } from 'wasp/auth/session' -import { exchangeCodeForTokenPath } from "./redirect.js"; - -export const tokenStore = createTokenStore(); +import { exchangeCodeForTokenPath, tokenStore } from "wasp/server/auth"; export function setupOneTimeCodeRoute(router: Router) { router.post( @@ -40,50 +37,3 @@ export function setupOneTimeCodeRoute(router: Router) { }) ); } - -function createTokenStore() { - const usedTokens = new Map(); - - const validFor = new TimeSpan(1, 'm') // 1 minute - const cleanupAfter = 1000 * 60 * 60; // 1 hour - - function createToken(userId: string): Promise { - return createJWT( - { - id: userId, - }, - { - expiresIn: validFor, - } - ); - } - - function verifyToken(token: string): Promise<{ id: string }> { - return validateJWT(token); - } - - function isUsed(token: string): boolean { - return usedTokens.has(token); - } - - function markUsed(token: string): void { - usedTokens.set(token, Date.now()); - cleanUp(); - } - - function cleanUp(): void { - const now = Date.now(); - for (const [token, timestamp] of usedTokens.entries()) { - if (now - timestamp > cleanupAfter) { - usedTokens.delete(token); - } - } - } - - return { - createToken, - verifyToken, - isUsed, - markUsed, - }; -} diff --git a/waspc/data/Generator/templates/server/src/auth/providers/oauth/user.ts b/waspc/data/Generator/templates/server/src/auth/providers/oauth/user.ts index e1958d0510..5733fb8943 100644 --- a/waspc/data/Generator/templates/server/src/auth/providers/oauth/user.ts +++ b/waspc/data/Generator/templates/server/src/auth/providers/oauth/user.ts @@ -11,8 +11,8 @@ import { import { type {= authEntityUpper =} } from 'wasp/entities' import { prisma } from 'wasp/server' import { type UserSignupFields, type ProviderConfig } from 'wasp/auth/providers/types' -import { getRedirectUriForOneTimeCode } from './redirect' -import { tokenStore } from './oneTimeCode' +import { type OAuthData } from 'wasp/server/auth' +import { getRedirectUriForOneTimeCode, tokenStore } from 'wasp/server/auth' import { onBeforeSignupHook, onAfterSignupHook, @@ -26,16 +26,14 @@ export async function finishOAuthFlowAndGetRedirectUri({ providerUserId, userSignupFields, req, - accessToken, - oAuthState, + oauth }: { provider: ProviderConfig; providerProfile: unknown; providerUserId: string; userSignupFields: UserSignupFields | undefined; req: ExpressRequest; - accessToken: string; - oAuthState: { state: string }; + oauth: OAuthData; }): Promise { const providerId = createProviderId(provider.id, providerUserId); @@ -44,8 +42,7 @@ export async function finishOAuthFlowAndGetRedirectUri({ providerProfile, userSignupFields, req, - accessToken, - oAuthState, + oauth, }); const oneTimeCode = await tokenStore.createToken(authId) @@ -60,15 +57,13 @@ async function getAuthIdFromProviderDetails({ providerProfile, userSignupFields, req, - accessToken, - oAuthState, + oauth, }: { providerId: ProviderId; providerProfile: any; userSignupFields: UserSignupFields | undefined; req: ExpressRequest; - accessToken: string; - oAuthState: { state: string }; + oauth: OAuthData; }): Promise<{= authEntityUpper =}['id']> { const existingAuthIdentity = await prisma.{= authIdentityEntityLower =}.findUnique({ where: { @@ -102,10 +97,7 @@ async function getAuthIdFromProviderDetails({ await onAfterLoginHook({ req, providerId, - oauth: { - accessToken, - uniqueRequestId: oAuthState.state, - }, + oauth, user: auth.user, }) @@ -131,10 +123,7 @@ async function getAuthIdFromProviderDetails({ req, providerId, user, - oauth: { - accessToken, - uniqueRequestId: oAuthState.state, - }, + oauth, }) return user.auth.id diff --git a/waspc/data/Generator/templates/server/src/auth/providers/username/login.ts b/waspc/data/Generator/templates/server/src/auth/providers/username/login.ts index 106de623ac..e45aecfae5 100644 --- a/waspc/data/Generator/templates/server/src/auth/providers/username/login.ts +++ b/waspc/data/Generator/templates/server/src/auth/providers/username/login.ts @@ -35,7 +35,11 @@ export default handleRejection(async (req, res) => { id: authIdentity.authId }) - await onBeforeLoginHook({ req, providerId }) + await onBeforeLoginHook({ + req, + providerId, + user: auth.user, + }) const session = await createSession(auth.id) diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/files.manifest b/waspc/e2e-test/test-outputs/waspComplexTest-golden/files.manifest index 6ea2d6db28..951d996bb5 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/files.manifest +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/files.manifest @@ -278,6 +278,24 @@ waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/hooks.js.map waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/index.d.ts waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/index.js waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/index.js.map +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/env.d.ts +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/env.js +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/env.js.map +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/index.d.ts +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/index.js +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/index.js.map +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/oneTimeCode.d.ts +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/oneTimeCode.js +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/oneTimeCode.js.map +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/provider.d.ts +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/provider.js +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/provider.js.map +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/providers/google.d.ts +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/providers/google.js +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/providers/google.js.map +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/redirect.d.ts +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/redirect.js +waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/redirect.js.map waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/user.d.ts waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/user.js waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/user.js.map @@ -397,6 +415,12 @@ waspComplexTest/.wasp/out/sdk/wasp/server/_types/taggedEntities.ts waspComplexTest/.wasp/out/sdk/wasp/server/api/index.ts waspComplexTest/.wasp/out/sdk/wasp/server/auth/hooks.ts waspComplexTest/.wasp/out/sdk/wasp/server/auth/index.ts +waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/env.ts +waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/index.ts +waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/oneTimeCode.ts +waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/provider.ts +waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/providers/google.ts +waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/redirect.ts waspComplexTest/.wasp/out/sdk/wasp/server/auth/user.ts waspComplexTest/.wasp/out/sdk/wasp/server/config.ts waspComplexTest/.wasp/out/sdk/wasp/server/crud/index.ts @@ -445,10 +469,8 @@ waspComplexTest/.wasp/out/server/src/auth/providers/config/google.ts waspComplexTest/.wasp/out/server/src/auth/providers/index.ts waspComplexTest/.wasp/out/server/src/auth/providers/oauth/config.ts waspComplexTest/.wasp/out/server/src/auth/providers/oauth/cookies.ts -waspComplexTest/.wasp/out/server/src/auth/providers/oauth/env.ts waspComplexTest/.wasp/out/server/src/auth/providers/oauth/handler.ts waspComplexTest/.wasp/out/server/src/auth/providers/oauth/oneTimeCode.ts -waspComplexTest/.wasp/out/server/src/auth/providers/oauth/redirect.ts waspComplexTest/.wasp/out/server/src/auth/providers/oauth/state.ts waspComplexTest/.wasp/out/server/src/auth/providers/oauth/types.ts waspComplexTest/.wasp/out/server/src/auth/providers/oauth/user.ts diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/.waspchecksums b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/.waspchecksums index caae341236..d935f01b32 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/.waspchecksums +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/.waspchecksums @@ -487,7 +487,7 @@ "file", "../out/sdk/wasp/package.json" ], - "ffe30beba7b57b22ad6ca7c28fe2639b492bd3054117b36e9010a48d447b52a0" + "cb651813806e472b31ebc0691b88efd7361439781c6e10dc47363f15567294a3" ], [ [ @@ -529,14 +529,56 @@ "file", "../out/sdk/wasp/server/auth/hooks.ts" ], - "3105d318bcb86a6638f414a155aad29dcea3613f7f14c6c282b677b9333eac57" + "1112920618b85e793ed676fd2987cf1dde59820e9a3a58bc43208f86c752b3a2" ], [ [ "file", "../out/sdk/wasp/server/auth/index.ts" ], - "20277db8773191867bd7938215abdf4a6814f84ba38fd55dd36ae5ebbbbe0754" + "9f932aba0d2ca6d1d2ff6fd826d238da3719b7676e7b42e97430af6f86fd03e2" + ], + [ + [ + "file", + "../out/sdk/wasp/server/auth/oauth/env.ts" + ], + "50416a8c284fdbb3952e21e1617da2270b99dba717023babc7c32f5b12a63a32" + ], + [ + [ + "file", + "../out/sdk/wasp/server/auth/oauth/index.ts" + ], + "bc8cf4d3b89018a68704d30bc3183bbd58461c9db0796f603f3e13179d604630" + ], + [ + [ + "file", + "../out/sdk/wasp/server/auth/oauth/oneTimeCode.ts" + ], + "0cee805003b69e48c01bb1e7bfefb4bc6d0fab504ada926f5c3de6f8a5505335" + ], + [ + [ + "file", + "../out/sdk/wasp/server/auth/oauth/provider.ts" + ], + "2a2015d905a2ceddb45ff1034b283b242df153ddf2cabd05fddd4746365622df" + ], + [ + [ + "file", + "../out/sdk/wasp/server/auth/oauth/providers/google.ts" + ], + "2a30b51f7be3a627d652e164669b01832345763597aa1e0badf7d321ccdc3bdb" + ], + [ + [ + "file", + "../out/sdk/wasp/server/auth/oauth/redirect.ts" + ], + "2fb01e01e8e5209c8b96b0f25f2fcab5fb30c0c8c3a228d65711f3ce11031942" ], [ [ @@ -837,7 +879,7 @@ "file", "server/package.json" ], - "23fbe60e2f89a7fb12a11bd11aef43e3ed713ffd49697ab40c1cbbf0b3c4c84d" + "204a25f8a86edd2b492f841d2314c510a8f450205620427bb52de7d3ebb1ea1c" ], [ [ @@ -879,7 +921,7 @@ "file", "server/src/auth/providers/config/google.ts" ], - "d53d1fb541e3ef3f2b2996731c4da7ef5db0568aed39f03f1de3f9b6d3d30471" + "b2ebe3b7789b4abfb66a4c206a189e8559627ab0ebcf8b9b812747a962c35cce" ], [ [ @@ -902,33 +944,19 @@ ], "7fb6658564e8af442d0f0b5874879e6788e91e89d98a8265621dd323135f5916" ], - [ - [ - "file", - "server/src/auth/providers/oauth/env.ts" - ], - "65c5ce3b4ead10faad600435654d2614a862281ce5177996599bc159c39bb551" - ], [ [ "file", "server/src/auth/providers/oauth/handler.ts" ], - "7ca4820825cb4cc445c9161c391f2aaefe7c0d072e84fd9569f8d607e2bf2a28" + "a8ce8d2b140a59e07d767cc640b9a2b0116e2dafc3ef98ae67fa7cdab3527416" ], [ [ "file", "server/src/auth/providers/oauth/oneTimeCode.ts" ], - "6a23d30c2d98e14f6e293ebf3bb9392d25a3eeb7f1ec98078440a11af0aa0c78" - ], - [ - [ - "file", - "server/src/auth/providers/oauth/redirect.ts" - ], - "099d0b7aee0eafd258f4e656f405816e3f0d26dcaa705d97d3c9044f67824146" + "c9bf9cb3ce635f8f53f2b176e4e9f8e39851ee1a2ba972221f3eaf1a0826fab9" ], [ [ @@ -949,7 +977,7 @@ "file", "server/src/auth/providers/oauth/user.ts" ], - "4ae56549dccf3fa5d75250ef9593e1cf65012bf48219895dc92df586e5d95a45" + "088acfe21e47d5a4a68faefa898c0174529e1b5a76dd86d32a0fce7d2a781f44" ], [ [ diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/installedNpmDepsLog.json b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/installedNpmDepsLog.json index 68f57c2ba9..208cc81108 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/installedNpmDepsLog.json +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/installedNpmDepsLog.json @@ -1 +1 @@ -{"_waspSdkNpmDeps":{"dependencies":[{"name":"@prisma/client","version":"4.16.2"},{"name":"prisma","version":"4.16.2"},{"name":"@tanstack/react-query","version":"^4.29.0"},{"name":"axios","version":"^1.4.0"},{"name":"express","version":"~4.18.1"},{"name":"mitt","version":"3.0.0"},{"name":"react","version":"^18.2.0"},{"name":"lodash.merge","version":"^4.6.2"},{"name":"react-router-dom","version":"^5.3.3"},{"name":"react-hook-form","version":"^7.45.4"},{"name":"superjson","version":"^1.12.2"},{"name":"@types/express-serve-static-core","version":"^4.17.13"},{"name":"@types/react-router-dom","version":"^5.3.3"},{"name":"@stitches/react","version":"^1.2.8"},{"name":"@node-rs/argon2","version":"^1.8.3"},{"name":"lucia","version":"^3.0.1"},{"name":"oslo","version":"^1.1.2"},{"name":"@lucia-auth/adapter-prisma","version":"^4.0.0"},{"name":"@sendgrid/mail","version":"^7.7.0"},{"name":"uuid","version":"^9.0.0"},{"name":"vitest","version":"^1.2.1"},{"name":"@vitest/ui","version":"^1.2.1"},{"name":"jsdom","version":"^21.1.1"},{"name":"@testing-library/react","version":"^14.1.2"},{"name":"@testing-library/jest-dom","version":"^6.3.0"},{"name":"msw","version":"^1.1.0"},{"name":"pg-boss","version":"^8.4.2"}],"devDependencies":[{"name":"@tsconfig/node18","version":"latest"}]},"_userNpmDeps":{"userDependencies":[{"name":"react","version":"^18.2.0"},{"name":"wasp","version":"file:.wasp/out/sdk/wasp"}],"userDevDependencies":[{"name":"@types/react","version":"^18.0.37"},{"name":"prisma","version":"4.16.2"},{"name":"typescript","version":"^5.1.0"},{"name":"vite","version":"^4.3.9"}]},"_waspFrameworkNpmDeps":{"npmDepsForWebApp":{"dependencies":[{"name":"@tanstack/react-query","version":"^4.29.0"},{"name":"axios","version":"^1.4.0"},{"name":"mitt","version":"3.0.0"},{"name":"react-dom","version":"^18.2.0"},{"name":"react-hook-form","version":"^7.45.4"},{"name":"react-router-dom","version":"^5.3.3"},{"name":"superjson","version":"^1.12.2"}],"devDependencies":[{"name":"@tsconfig/vite-react","version":"^2.0.0"},{"name":"@types/react-dom","version":"^18.0.11"},{"name":"@types/react-router-dom","version":"^5.3.3"},{"name":"@vitejs/plugin-react","version":"^4.2.1"},{"name":"dotenv","version":"^16.0.3"}]},"npmDepsForServer":{"dependencies":[{"name":"arctic","version":"^1.2.1"},{"name":"cookie-parser","version":"~1.4.6"},{"name":"cors","version":"^2.8.5"},{"name":"dotenv","version":"16.0.2"},{"name":"express","version":"~4.18.1"},{"name":"helmet","version":"^6.0.0"},{"name":"morgan","version":"~1.10.0"},{"name":"rate-limiter-flexible","version":"^2.4.1"},{"name":"superjson","version":"^1.12.2"}],"devDependencies":[{"name":"@tsconfig/node18","version":"latest"},{"name":"@types/cors","version":"^2.8.5"},{"name":"@types/express","version":"^4.17.13"},{"name":"@types/express-serve-static-core","version":"^4.17.13"},{"name":"@types/node","version":"^18.0.0"},{"name":"nodemon","version":"^2.0.19"},{"name":"rollup","version":"^4.9.6"},{"name":"rollup-plugin-esbuild","version":"^6.1.1"},{"name":"standard","version":"^17.0.0"}]}}} \ No newline at end of file +{"_waspSdkNpmDeps":{"dependencies":[{"name":"@prisma/client","version":"4.16.2"},{"name":"prisma","version":"4.16.2"},{"name":"@tanstack/react-query","version":"^4.29.0"},{"name":"axios","version":"^1.4.0"},{"name":"express","version":"~4.18.1"},{"name":"mitt","version":"3.0.0"},{"name":"react","version":"^18.2.0"},{"name":"lodash.merge","version":"^4.6.2"},{"name":"react-router-dom","version":"^5.3.3"},{"name":"react-hook-form","version":"^7.45.4"},{"name":"superjson","version":"^1.12.2"},{"name":"@types/express-serve-static-core","version":"^4.17.13"},{"name":"@types/react-router-dom","version":"^5.3.3"},{"name":"@stitches/react","version":"^1.2.8"},{"name":"@node-rs/argon2","version":"^1.8.3"},{"name":"arctic","version":"^1.2.1"},{"name":"lucia","version":"^3.0.1"},{"name":"oslo","version":"^1.1.2"},{"name":"@lucia-auth/adapter-prisma","version":"^4.0.0"},{"name":"@sendgrid/mail","version":"^7.7.0"},{"name":"uuid","version":"^9.0.0"},{"name":"vitest","version":"^1.2.1"},{"name":"@vitest/ui","version":"^1.2.1"},{"name":"jsdom","version":"^21.1.1"},{"name":"@testing-library/react","version":"^14.1.2"},{"name":"@testing-library/jest-dom","version":"^6.3.0"},{"name":"msw","version":"^1.1.0"},{"name":"pg-boss","version":"^8.4.2"}],"devDependencies":[{"name":"@tsconfig/node18","version":"latest"}]},"_userNpmDeps":{"userDependencies":[{"name":"react","version":"^18.2.0"},{"name":"wasp","version":"file:.wasp/out/sdk/wasp"}],"userDevDependencies":[{"name":"@types/react","version":"^18.0.37"},{"name":"prisma","version":"4.16.2"},{"name":"typescript","version":"^5.1.0"},{"name":"vite","version":"^4.3.9"}]},"_waspFrameworkNpmDeps":{"npmDepsForWebApp":{"dependencies":[{"name":"@tanstack/react-query","version":"^4.29.0"},{"name":"axios","version":"^1.4.0"},{"name":"mitt","version":"3.0.0"},{"name":"react-dom","version":"^18.2.0"},{"name":"react-hook-form","version":"^7.45.4"},{"name":"react-router-dom","version":"^5.3.3"},{"name":"superjson","version":"^1.12.2"}],"devDependencies":[{"name":"@tsconfig/vite-react","version":"^2.0.0"},{"name":"@types/react-dom","version":"^18.0.11"},{"name":"@types/react-router-dom","version":"^5.3.3"},{"name":"@vitejs/plugin-react","version":"^4.2.1"},{"name":"dotenv","version":"^16.0.3"}]},"npmDepsForServer":{"dependencies":[{"name":"cookie-parser","version":"~1.4.6"},{"name":"cors","version":"^2.8.5"},{"name":"dotenv","version":"16.0.2"},{"name":"express","version":"~4.18.1"},{"name":"helmet","version":"^6.0.0"},{"name":"morgan","version":"~1.10.0"},{"name":"rate-limiter-flexible","version":"^2.4.1"},{"name":"superjson","version":"^1.12.2"}],"devDependencies":[{"name":"@tsconfig/node18","version":"latest"},{"name":"@types/cors","version":"^2.8.5"},{"name":"@types/express","version":"^4.17.13"},{"name":"@types/express-serve-static-core","version":"^4.17.13"},{"name":"@types/node","version":"^18.0.0"},{"name":"nodemon","version":"^2.0.19"},{"name":"rollup","version":"^4.9.6"},{"name":"rollup-plugin-esbuild","version":"^6.1.1"},{"name":"standard","version":"^17.0.0"}]}}} \ No newline at end of file diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/hooks.d.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/hooks.d.ts index e8ab8850ae..866269e469 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/hooks.d.ts +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/hooks.d.ts @@ -17,89 +17,88 @@ export type OnAfterLoginHook = (params: Expand) => void export type InternalAuthHookParams = { /** * Prisma instance that can be used to interact with the database. - */ + */ prisma: typeof prisma; }; type OnBeforeSignupHookParams = { /** * Provider ID object that contains the provider name and the provide user ID. - */ + */ providerId: ProviderId; /** * Request object that can be used to access the incoming request. - */ + */ req: ExpressRequest; } & InternalAuthHookParams; type OnAfterSignupHookParams = { /** * Provider ID object that contains the provider name and the provide user ID. - */ + */ providerId: ProviderId; /** * User object that was created during the signup process. - */ + */ user: Awaited>; - oauth?: { - /** - * Access token that was received during the OAuth flow. - */ - accessToken: string; - /** - * Unique request ID that was generated during the OAuth flow. - */ - uniqueRequestId: string; - }; + /** + * OAuth flow data that was generated during the OAuth flow. This is only + * available if the user signed up using OAuth. + */ + oauth?: OAuthData; /** * Request object that can be used to access the incoming request. - */ + */ req: ExpressRequest; } & InternalAuthHookParams; type OnBeforeOAuthRedirectHookParams = { /** * URL that the OAuth flow should redirect to. - */ + */ url: URL; /** * Unique request ID that was generated during the OAuth flow. - */ - uniqueRequestId: string; + */ + oauth: Pick; /** * Request object that can be used to access the incoming request. - */ + */ req: ExpressRequest; } & InternalAuthHookParams; type OnBeforeLoginHookParams = { /** * Provider ID object that contains the provider name and the provide user ID. - */ + */ providerId: ProviderId; /** * Request object that can be used to access the incoming request. - */ + */ req: ExpressRequest; } & InternalAuthHookParams; type OnAfterLoginHookParams = { /** * Provider ID object that contains the provider name and the provide user ID. - */ + */ providerId: ProviderId; - oauth?: { - /** - * Access token that was received during the OAuth flow. - */ - accessToken: string; - /** - * Unique request ID that was generated during the OAuth flow. - */ - uniqueRequestId: string; - }; /** * User that is logged in. - */ + */ user: Awaited>['user']; + /** + * OAuth flow data that was generated during the OAuth flow. This is only + * available if the user logged in using OAuth. + */ + oauth?: OAuthData; /** * Request object that can be used to access the incoming request. - */ + */ req: ExpressRequest; } & InternalAuthHookParams; +export type OAuthData = { + /** + * Unique request ID that was generated during the OAuth flow. + */ + uniqueRequestId: string; +} & ({ + providerName: 'google'; + tokens: import('arctic').GoogleTokens; +} | never); export {}; diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/index.d.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/index.d.ts index 54d5306997..d387a6172f 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/index.d.ts +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/index.d.ts @@ -1,4 +1,5 @@ export { defineUserSignupFields, } from '../../auth/providers/types.js'; export { createProviderId, sanitizeAndSerializeProviderData, updateAuthIdentityProviderData, deserializeAndSanitizeProviderData, findAuthIdentity, createUser, type ProviderId, type ProviderName, type EmailProviderData, type UsernameProviderData, type OAuthProviderData, } from '../../auth/utils.js'; export { ensurePasswordIsPresent, ensureValidPassword, ensureTokenIsPresent, } from '../../auth/validation.js'; -export type { OnBeforeSignupHook, OnAfterSignupHook, OnBeforeOAuthRedirectHook, OnBeforeLoginHook, OnAfterLoginHook, InternalAuthHookParams, } from './hooks.js'; +export type { OnBeforeSignupHook, OnAfterSignupHook, OnBeforeOAuthRedirectHook, OnBeforeLoginHook, OnAfterLoginHook, InternalAuthHookParams, OAuthData, } from './hooks.js'; +export * from './oauth/index.js'; diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/index.js b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/index.js index 66289fd100..7f489c9a62 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/index.js +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/index.js @@ -1,4 +1,5 @@ export { defineUserSignupFields, } from '../../auth/providers/types.js'; export { createProviderId, sanitizeAndSerializeProviderData, updateAuthIdentityProviderData, deserializeAndSanitizeProviderData, findAuthIdentity, createUser, } from '../../auth/utils.js'; export { ensurePasswordIsPresent, ensureValidPassword, ensureTokenIsPresent, } from '../../auth/validation.js'; +export * from './oauth/index.js'; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/index.js.map b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/index.js.map index 279d2fda3a..4fad2ccaeb 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/index.js.map +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GACvB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,gBAAgB,EAChB,gCAAgC,EAChC,8BAA8B,EAC9B,kCAAkC,EAClC,gBAAgB,EAChB,UAAU,GAMX,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,0BAA0B,CAAA"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GACvB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,gBAAgB,EAChB,gCAAgC,EAChC,8BAA8B,EAC9B,kCAAkC,EAClC,gBAAgB,EAChB,UAAU,GAMX,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,0BAA0B,CAAA;AAYjC,cAAc,kBAAkB,CAAA"} \ No newline at end of file diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/env.d.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/env.d.ts new file mode 100644 index 0000000000..08d2627b88 --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/env.d.ts @@ -0,0 +1 @@ +export declare function ensureEnvVarsForProvider(envVarNames: EnvVarName[], providerName: string): Record; diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/env.js b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/env.js new file mode 100644 index 0000000000..56281b5e36 --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/env.js @@ -0,0 +1,13 @@ +// PRIVATE API (SDK) +export function ensureEnvVarsForProvider(envVarNames, providerName) { + const result = {}; + for (const envVarName of envVarNames) { + const value = process.env[envVarName]; + if (!value) { + throw new Error(`${envVarName} env variable is required when using the ${providerName} auth provider.`); + } + result[envVarName] = value; + } + return result; +} +//# sourceMappingURL=env.js.map \ No newline at end of file diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/env.js.map b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/env.js.map new file mode 100644 index 0000000000..b25f2f9870 --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/env.js.map @@ -0,0 +1 @@ +{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../../server/auth/oauth/env.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,MAAM,UAAU,wBAAwB,CACtC,WAAyB,EACzB,YAAoB;IAEpB,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,4CAA4C,YAAY,iBAAiB,CAAC,CAAC;QAC1G,CAAC;QACD,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;IAC7B,CAAC;IACD,OAAO,MAAoC,CAAC;AAC9C,CAAC"} \ No newline at end of file diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/index.d.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/index.d.ts new file mode 100644 index 0000000000..8e9db44404 --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/index.d.ts @@ -0,0 +1,3 @@ +export { google } from './providers/google.js'; +export { loginPath, callbackPath, exchangeCodeForTokenPath, handleOAuthErrorAndGetRedirectUri, getRedirectUriForOneTimeCode, } from './redirect.js'; +export { tokenStore, } from './oneTimeCode.js'; diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/index.js b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/index.js new file mode 100644 index 0000000000..64a91e37b4 --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/index.js @@ -0,0 +1,7 @@ +// PUBLIC API +export { google } from './providers/google.js'; +// PRIVATE API +export { loginPath, callbackPath, exchangeCodeForTokenPath, handleOAuthErrorAndGetRedirectUri, getRedirectUriForOneTimeCode, } from './redirect.js'; +// PRIVATE API +export { tokenStore, } from './oneTimeCode.js'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/index.js.map b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/index.js.map new file mode 100644 index 0000000000..0e31443824 --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/auth/oauth/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,cAAc;AACd,OAAO,EACL,SAAS,EACT,YAAY,EACZ,wBAAwB,EACxB,iCAAiC,EACjC,4BAA4B,GAC7B,MAAM,eAAe,CAAA;AAEtB,cAAc;AACd,OAAO,EACL,UAAU,GACX,MAAM,kBAAkB,CAAA"} \ No newline at end of file diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/oneTimeCode.d.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/oneTimeCode.d.ts new file mode 100644 index 0000000000..6d3404f4a3 --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/oneTimeCode.d.ts @@ -0,0 +1,8 @@ +export declare const tokenStore: { + createToken: (userId: string) => Promise; + verifyToken: (token: string) => Promise<{ + id: string; + }>; + isUsed: (token: string) => boolean; + markUsed: (token: string) => void; +}; diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/oneTimeCode.js b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/oneTimeCode.js new file mode 100644 index 0000000000..202551ec8a --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/oneTimeCode.js @@ -0,0 +1,39 @@ +import { createJWT, validateJWT, TimeSpan } from '../../../auth/jwt.js'; +export const tokenStore = createTokenStore(); +function createTokenStore() { + const usedTokens = new Map(); + const validFor = new TimeSpan(1, 'm'); // 1 minute + const cleanupAfter = 1000 * 60 * 60; // 1 hour + function createToken(userId) { + return createJWT({ + id: userId, + }, { + expiresIn: validFor, + }); + } + function verifyToken(token) { + return validateJWT(token); + } + function isUsed(token) { + return usedTokens.has(token); + } + function markUsed(token) { + usedTokens.set(token, Date.now()); + cleanUp(); + } + function cleanUp() { + const now = Date.now(); + for (const [token, timestamp] of usedTokens.entries()) { + if (now - timestamp > cleanupAfter) { + usedTokens.delete(token); + } + } + } + return { + createToken, + verifyToken, + isUsed, + markUsed, + }; +} +//# sourceMappingURL=oneTimeCode.js.map \ No newline at end of file diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/oneTimeCode.js.map b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/oneTimeCode.js.map new file mode 100644 index 0000000000..9eea0cae38 --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/oneTimeCode.js.map @@ -0,0 +1 @@ +{"version":3,"file":"oneTimeCode.js","sourceRoot":"","sources":["../../../../server/auth/oauth/oneTimeCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAEvE,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;AAE7C,SAAS,gBAAgB;IACvB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE7C,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAC,WAAW;IACjD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS;IAE9C,SAAS,WAAW,CAAC,MAAc;QACjC,OAAO,SAAS,CACd;YACE,EAAE,EAAE,MAAM;SACX,EACD;YACE,SAAS,EAAE,QAAQ;SACpB,CACF,CAAC;IACJ,CAAC;IAED,SAAS,WAAW,CAAC,KAAa;QAChC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,SAAS,MAAM,CAAC,KAAa;QAC3B,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS,QAAQ,CAAC,KAAa;QAC7B,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,SAAS,OAAO;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,GAAG,GAAG,SAAS,GAAG,YAAY,EAAE,CAAC;gBACnC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW;QACX,WAAW;QACX,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/provider.d.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/provider.d.ts new file mode 100644 index 0000000000..44d23b4952 --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/provider.d.ts @@ -0,0 +1,12 @@ +import { OAuth2Provider, OAuth2ProviderWithPKCE } from "arctic"; +export declare function defineProvider>({ id, displayName, env, oAuthClient, }: { + id: string; + displayName: string; + env: Env; + oAuthClient: OAuthClient; +}): { + id: string; + displayName: string; + env: Env; + oAuthClient: OAuthClient; +}; diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/provider.js b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/provider.js new file mode 100644 index 0000000000..bc0d9a2fd8 --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/provider.js @@ -0,0 +1,9 @@ +export function defineProvider({ id, displayName, env, oAuthClient, }) { + return { + id, + displayName, + env, + oAuthClient, + }; +} +//# sourceMappingURL=provider.js.map \ No newline at end of file diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/provider.js.map b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/provider.js.map new file mode 100644 index 0000000000..02fe380099 --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/provider.js.map @@ -0,0 +1 @@ +{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../server/auth/oauth/provider.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAG5B,EACA,EAAE,EACF,WAAW,EACX,GAAG,EACH,WAAW,GAMZ;IACC,OAAO;QACL,EAAE;QACF,WAAW;QACX,GAAG;QACH,WAAW;KACZ,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/providers/google.d.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/providers/google.d.ts new file mode 100644 index 0000000000..7910449649 --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/providers/google.d.ts @@ -0,0 +1,7 @@ +import { Google } from "arctic"; +export declare const google: { + id: string; + displayName: string; + env: Record<"GOOGLE_CLIENT_ID" | "GOOGLE_CLIENT_SECRET", string>; + oAuthClient: Google; +}; diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/providers/google.js b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/providers/google.js new file mode 100644 index 0000000000..7a49678dec --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/providers/google.js @@ -0,0 +1,16 @@ +import { Google } from "arctic"; +import { ensureEnvVarsForProvider } from "../env.js"; +import { getRedirectUriForCallback } from "../redirect.js"; +import { defineProvider } from "../provider.js"; +const id = "google"; +const displayName = "Google"; +const env = ensureEnvVarsForProvider(["GOOGLE_CLIENT_ID", "GOOGLE_CLIENT_SECRET"], displayName); +const oAuthClient = new Google(env.GOOGLE_CLIENT_ID, env.GOOGLE_CLIENT_SECRET, getRedirectUriForCallback(id).toString()); +// PUBLIC API +export const google = defineProvider({ + id, + displayName, + env, + oAuthClient, +}); +//# sourceMappingURL=google.js.map \ No newline at end of file diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/providers/google.js.map b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/providers/google.js.map new file mode 100644 index 0000000000..1bebbd38aa --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/providers/google.js.map @@ -0,0 +1 @@ +{"version":3,"file":"google.js","sourceRoot":"","sources":["../../../../../server/auth/oauth/providers/google.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAG,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,EAAE,GAAG,QAAQ,CAAC;AACpB,MAAM,WAAW,GAAG,QAAQ,CAAC;AAE7B,MAAM,GAAG,GAAG,wBAAwB,CAClC,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,EAC5C,WAAW,CACZ,CAAC;AAEF,MAAM,WAAW,GAAG,IAAI,MAAM,CAC5B,GAAG,CAAC,gBAAgB,EACpB,GAAG,CAAC,oBAAoB,EACxB,yBAAyB,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CACzC,CAAC;AAEF,aAAa;AACb,MAAM,CAAC,MAAM,MAAM,GAAG,cAAc,CAAC;IACnC,EAAE;IACF,WAAW;IACX,GAAG;IACH,WAAW;CACZ,CAAC,CAAC"} \ No newline at end of file diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/redirect.d.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/redirect.d.ts new file mode 100644 index 0000000000..cb65431704 --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/redirect.d.ts @@ -0,0 +1,6 @@ +export declare const loginPath = "login"; +export declare const exchangeCodeForTokenPath = "exchange-code"; +export declare const callbackPath = "callback"; +export declare function getRedirectUriForOneTimeCode(oneTimeCode: string): URL; +export declare function handleOAuthErrorAndGetRedirectUri(error: unknown): URL; +export declare function getRedirectUriForCallback(providerName: string): URL; diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/redirect.js b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/redirect.js new file mode 100644 index 0000000000..c228948ef6 --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/redirect.js @@ -0,0 +1,34 @@ +import { config, HttpError } from '../../index.js'; +// PRIVATE API (server) +export const loginPath = 'login'; +// PRIVATE API (server) +export const exchangeCodeForTokenPath = 'exchange-code'; +// PRIVATE API (server) +export const callbackPath = 'callback'; +const clientOAuthCallbackPath = '/oauth/callback'; +// PRIVATE API (server) +export function getRedirectUriForOneTimeCode(oneTimeCode) { + return new URL(`${config.frontendUrl}${clientOAuthCallbackPath}#${oneTimeCode}`); +} +// PRIVATE API (server) +export function handleOAuthErrorAndGetRedirectUri(error) { + if (error instanceof HttpError) { + const errorMessage = isHttpErrorWithExtraMessage(error) + ? `${error.message}: ${error.data.message}` + : error.message; + return getRedirectUriForError(errorMessage); + } + console.error("Unknown OAuth error:", error); + return getRedirectUriForError("An unknown error occurred while trying to log in with the OAuth provider."); +} +// PRIVATE API (SDK) +export function getRedirectUriForCallback(providerName) { + return new URL(`${config.serverUrl}/auth/${providerName}/${callbackPath}`); +} +function getRedirectUriForError(error) { + return new URL(`${config.frontendUrl}${clientOAuthCallbackPath}?error=${error}`); +} +function isHttpErrorWithExtraMessage(error) { + return error.data && typeof error.data.message === 'string'; +} +//# sourceMappingURL=redirect.js.map \ No newline at end of file diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/redirect.js.map b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/redirect.js.map new file mode 100644 index 0000000000..d8e07016ca --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/oauth/redirect.js.map @@ -0,0 +1 @@ +{"version":3,"file":"redirect.js","sourceRoot":"","sources":["../../../../server/auth/oauth/redirect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAElD,uBAAuB;AACvB,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAA;AAEhC,uBAAuB;AACvB,MAAM,CAAC,MAAM,wBAAwB,GAAG,eAAe,CAAA;AAEvD,uBAAuB;AACvB,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAA;AAEtC,MAAM,uBAAuB,GAAG,iBAAiB,CAAA;AAEjD,uBAAuB;AACvB,MAAM,UAAU,4BAA4B,CAAC,WAAmB;IAC9D,OAAO,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,uBAAuB,IAAI,WAAW,EAAE,CAAC,CAAC;AACnF,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,iCAAiC,CAAC,KAAc;IAC9D,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,2BAA2B,CAAC,KAAK,CAAC;YACrD,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;YAC3C,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QAClB,OAAO,sBAAsB,CAAC,YAAY,CAAC,CAAA;IAC7C,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;IAC7C,OAAO,sBAAsB,CAAC,2EAA2E,CAAC,CAAC;AAC7G,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,yBAAyB,CAAC,YAAoB;IAC5D,OAAO,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,SAAS,SAAS,YAAY,IAAI,YAAY,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,OAAO,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,uBAAuB,UAAU,KAAK,EAAE,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAgB;IACnD,OAAO,KAAK,CAAC,IAAI,IAAI,OAAQ,KAAK,CAAC,IAAY,CAAC,OAAO,KAAK,QAAQ,CAAC;AACvE,CAAC"} \ No newline at end of file diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/package.json b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/package.json index a599b9c91e..01bd69e2b5 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/package.json +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/package.json @@ -11,6 +11,7 @@ "@types/express-serve-static-core": "^4.17.13", "@types/react-router-dom": "^5.3.3", "@vitest/ui": "^1.2.1", + "arctic": "^1.2.1", "axios": "^1.4.0", "express": "~4.18.1", "jsdom": "^21.1.1", diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/hooks.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/hooks.ts index a3754e7f6a..af64f6df9d 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/hooks.ts +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/hooks.ts @@ -35,7 +35,7 @@ export type OnAfterLoginHook = ( export type InternalAuthHookParams = { /** * Prisma instance that can be used to interact with the database. - */ + */ prisma: typeof prisma } @@ -48,86 +48,87 @@ export type InternalAuthHookParams = { type OnBeforeSignupHookParams = { /** * Provider ID object that contains the provider name and the provide user ID. - */ + */ providerId: ProviderId /** * Request object that can be used to access the incoming request. - */ + */ req: ExpressRequest } & InternalAuthHookParams type OnAfterSignupHookParams = { /** * Provider ID object that contains the provider name and the provide user ID. - */ + */ providerId: ProviderId /** * User object that was created during the signup process. - */ + */ user: Awaited> - oauth?: { - /** - * Access token that was received during the OAuth flow. - */ - accessToken: string - /** - * Unique request ID that was generated during the OAuth flow. - */ - uniqueRequestId: string - }, + /** + * OAuth flow data that was generated during the OAuth flow. This is only + * available if the user signed up using OAuth. + */ + oauth?: OAuthData /** * Request object that can be used to access the incoming request. - */ + */ req: ExpressRequest } & InternalAuthHookParams type OnBeforeOAuthRedirectHookParams = { /** * URL that the OAuth flow should redirect to. - */ + */ url: URL /** * Unique request ID that was generated during the OAuth flow. - */ - uniqueRequestId: string + */ + oauth: Pick /** * Request object that can be used to access the incoming request. - */ + */ req: ExpressRequest } & InternalAuthHookParams type OnBeforeLoginHookParams = { /** * Provider ID object that contains the provider name and the provide user ID. - */ + */ providerId: ProviderId /** * Request object that can be used to access the incoming request. - */ + */ req: ExpressRequest } & InternalAuthHookParams type OnAfterLoginHookParams = { /** * Provider ID object that contains the provider name and the provide user ID. - */ + */ providerId: ProviderId - oauth?: { - /** - * Access token that was received during the OAuth flow. - */ - accessToken: string - /** - * Unique request ID that was generated during the OAuth flow. - */ - uniqueRequestId: string - }, /** * User that is logged in. - */ + */ user: Awaited>['user'] + /** + * OAuth flow data that was generated during the OAuth flow. This is only + * available if the user logged in using OAuth. + */ + oauth?: OAuthData /** * Request object that can be used to access the incoming request. - */ + */ req: ExpressRequest } & InternalAuthHookParams + +// PUBLIC API +export type OAuthData = { + /** + * Unique request ID that was generated during the OAuth flow. + */ + uniqueRequestId: string +} & ( + | { providerName: 'google'; tokens: import('arctic').GoogleTokens } + | never +) diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/index.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/index.ts index 15b3c36b07..117225dae7 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/index.ts +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/index.ts @@ -29,6 +29,9 @@ export type { OnBeforeLoginHook, OnAfterLoginHook, InternalAuthHookParams, + OAuthData, } from './hooks.js' +export * from './oauth/index.js' + diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/env.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/env.ts similarity index 74% rename from waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/env.ts rename to waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/env.ts index 24776c6dd3..ada2452b8e 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/env.ts +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/env.ts @@ -1,14 +1,13 @@ -import { type ProviderConfig } from "wasp/auth/providers/types"; - +// PRIVATE API (SDK) export function ensureEnvVarsForProvider( envVarNames: EnvVarName[], - provider: ProviderConfig, + providerName: string, ): Record { const result: Record = {}; for (const envVarName of envVarNames) { const value = process.env[envVarName]; if (!value) { - throw new Error(`${envVarName} env variable is required when using the ${provider.displayName} auth provider.`); + throw new Error(`${envVarName} env variable is required when using the ${providerName} auth provider.`); } result[envVarName] = value; } diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/index.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/index.ts new file mode 100644 index 0000000000..a63e4264fb --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/index.ts @@ -0,0 +1,16 @@ +// PUBLIC API +export { google } from './providers/google.js'; + +// PRIVATE API +export { + loginPath, + callbackPath, + exchangeCodeForTokenPath, + handleOAuthErrorAndGetRedirectUri, + getRedirectUriForOneTimeCode, +} from './redirect.js' + +// PRIVATE API +export { + tokenStore, +} from './oneTimeCode.js' diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/oneTimeCode.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/oneTimeCode.ts new file mode 100644 index 0000000000..4f2d8ebb08 --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/oneTimeCode.ts @@ -0,0 +1,50 @@ +import { createJWT, validateJWT, TimeSpan } from '../../../auth/jwt.js' + +export const tokenStore = createTokenStore(); + +function createTokenStore() { + const usedTokens = new Map(); + + const validFor = new TimeSpan(1, 'm') // 1 minute + const cleanupAfter = 1000 * 60 * 60; // 1 hour + + function createToken(userId: string): Promise { + return createJWT( + { + id: userId, + }, + { + expiresIn: validFor, + } + ); + } + + function verifyToken(token: string): Promise<{ id: string }> { + return validateJWT(token); + } + + function isUsed(token: string): boolean { + return usedTokens.has(token); + } + + function markUsed(token: string): void { + usedTokens.set(token, Date.now()); + cleanUp(); + } + + function cleanUp(): void { + const now = Date.now(); + for (const [token, timestamp] of usedTokens.entries()) { + if (now - timestamp > cleanupAfter) { + usedTokens.delete(token); + } + } + } + + return { + createToken, + verifyToken, + isUsed, + markUsed, + }; +} diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/provider.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/provider.ts new file mode 100644 index 0000000000..c2aee70897 --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/provider.ts @@ -0,0 +1,23 @@ +import { OAuth2Provider, OAuth2ProviderWithPKCE } from "arctic"; + +export function defineProvider< + OAuthClient extends OAuth2Provider | OAuth2ProviderWithPKCE, + Env extends Record +>({ + id, + displayName, + env, + oAuthClient, +}: { + id: string; + displayName: string; + env: Env; + oAuthClient: OAuthClient; +}) { + return { + id, + displayName, + env, + oAuthClient, + }; +} diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/providers/google.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/providers/google.ts new file mode 100644 index 0000000000..9f6aaf216c --- /dev/null +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/providers/google.ts @@ -0,0 +1,27 @@ +import { Google } from "arctic"; + +import { ensureEnvVarsForProvider } from "../env.js"; +import { getRedirectUriForCallback } from "../redirect.js"; +import { defineProvider } from "../provider.js"; + +const id = "google"; +const displayName = "Google"; + +const env = ensureEnvVarsForProvider( + ["GOOGLE_CLIENT_ID", "GOOGLE_CLIENT_SECRET"], + displayName, +); + +const oAuthClient = new Google( + env.GOOGLE_CLIENT_ID, + env.GOOGLE_CLIENT_SECRET, + getRedirectUriForCallback(id).toString(), +); + +// PUBLIC API +export const google = defineProvider({ + id, + displayName, + env, + oAuthClient, +}); diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/redirect.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/redirect.ts similarity index 86% rename from waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/redirect.ts rename to waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/redirect.ts index be677f0ff6..1eac920af7 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/redirect.ts +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/oauth/redirect.ts @@ -1,19 +1,22 @@ -import { config } from 'wasp/server' -import { HttpError } from 'wasp/server' +import { config, HttpError } from '../../index.js' +// PRIVATE API (server) export const loginPath = 'login' -export const callbackPath = 'callback' + +// PRIVATE API (server) export const exchangeCodeForTokenPath = 'exchange-code' -const clientOAuthCallbackPath = '/oauth/callback' -export function getRedirectUriForCallback(providerName: string): URL { - return new URL(`${config.serverUrl}/auth/${providerName}/${callbackPath}`); -} +// PRIVATE API (server) +export const callbackPath = 'callback' +const clientOAuthCallbackPath = '/oauth/callback' + +// PRIVATE API (server) export function getRedirectUriForOneTimeCode(oneTimeCode: string): URL { return new URL(`${config.frontendUrl}${clientOAuthCallbackPath}#${oneTimeCode}`); } +// PRIVATE API (server) export function handleOAuthErrorAndGetRedirectUri(error: unknown): URL { if (error instanceof HttpError) { const errorMessage = isHttpErrorWithExtraMessage(error) @@ -25,6 +28,11 @@ export function handleOAuthErrorAndGetRedirectUri(error: unknown): URL { return getRedirectUriForError("An unknown error occurred while trying to log in with the OAuth provider."); } +// PRIVATE API (SDK) +export function getRedirectUriForCallback(providerName: string): URL { + return new URL(`${config.serverUrl}/auth/${providerName}/${callbackPath}`); +} + function getRedirectUriForError(error: string): URL { return new URL(`${config.frontendUrl}${clientOAuthCallbackPath}?error=${error}`); } diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/package.json b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/package.json index c857d727d6..3a4ce1d6b9 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/package.json +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/package.json @@ -1,7 +1,6 @@ { "comment-filip": "The server.js location changed because we have now included client source files above .wasp/out/server/src.", "dependencies": { - "arctic": "^1.2.1", "cookie-parser": "~1.4.6", "cors": "^2.8.5", "dotenv": "16.0.2", diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/config/google.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/config/google.ts index dae5b818a6..3358c5ada4 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/config/google.ts +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/config/google.ts @@ -1,8 +1,6 @@ -import { Google } from "arctic"; - import type { ProviderConfig } from "wasp/auth/providers/types"; -import { getRedirectUriForCallback } from "../oauth/redirect.js"; -import { ensureEnvVarsForProvider } from "../oauth/env.js"; +import { google } from "wasp/server/auth"; + import { mergeDefaultAndUserConfig } from "../oauth/config.js"; import { createOAuthProviderRouter } from "../oauth/handler.js"; @@ -10,20 +8,9 @@ const _waspUserSignupFields = undefined const _waspUserDefinedConfigFn = undefined const _waspConfig: ProviderConfig = { - id: "google", - displayName: "Google", + id: google.id, + displayName: google.displayName, createRouter(provider) { - const env = ensureEnvVarsForProvider( - ["GOOGLE_CLIENT_ID", "GOOGLE_CLIENT_SECRET"], - provider - ); - - const google = new Google( - env.GOOGLE_CLIENT_ID, - env.GOOGLE_CLIENT_SECRET, - getRedirectUriForCallback(provider.id).toString(), - ); - const config = mergeDefaultAndUserConfig({ scopes: ['profile'], }, _waspUserDefinedConfigFn); @@ -55,8 +42,8 @@ const _waspConfig: ProviderConfig = { provider, oAuthType: 'OAuth2WithPKCE', userSignupFields: _waspUserSignupFields, - getAuthorizationUrl: ({ state, codeVerifier }) => google.createAuthorizationURL(state, codeVerifier, config), - getProviderTokens: ({ code, codeVerifier }) => google.validateAuthorizationCode(code, codeVerifier), + getAuthorizationUrl: ({ state, codeVerifier }) => google.oAuthClient.createAuthorizationURL(state, codeVerifier, config), + getProviderTokens: ({ code, codeVerifier }) => google.oAuthClient.validateAuthorizationCode(code, codeVerifier), getProviderInfo: ({ accessToken }) => getGoogleProfile(accessToken), }); }, diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/handler.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/handler.ts index 869052d7ac..ec02cf5a67 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/handler.ts +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/handler.ts @@ -6,7 +6,6 @@ import { type UserSignupFields, type ProviderConfig, } from 'wasp/auth/providers/types' - import { type OAuthType, type OAuthStateFor, @@ -19,10 +18,11 @@ import { callbackPath, loginPath, handleOAuthErrorAndGetRedirectUri, -} from './redirect.js' +} from 'wasp/server/auth' +import { OAuthData } from 'wasp/server/auth' import { onBeforeOAuthRedirectHook } from '../../hooks.js' -export function createOAuthProviderRouter({ +export function createOAuthProviderRouter({ provider, oAuthType, userSignupFields, @@ -51,14 +51,12 @@ export function createOAuthProviderRouter({ */ getProviderTokens: ( oAuthState: OAuthStateWithCodeFor, - ) => Promise<{ - accessToken: string - }> + ) => Promise /* The function that returns the user's profile and ID using the access token. */ - getProviderInfo: ({ accessToken }: { accessToken: string }) => Promise<{ + getProviderInfo: (tokens: Tokens) => Promise<{ providerUserId: string providerProfile: unknown }> @@ -77,7 +75,7 @@ export function createOAuthProviderRouter({ const { url: redirectUrlAfterHook } = await onBeforeOAuthRedirectHook({ req, url: redirectUrl, - uniqueRequestId: oAuthState.state, + oauth: { uniqueRequestId: oAuthState.state } }) return redirect(res, redirectUrlAfterHook.toString()) }), @@ -92,11 +90,9 @@ export function createOAuthProviderRouter({ provider, req, }) - const { accessToken } = await getProviderTokens(oAuthState) + const tokens = await getProviderTokens(oAuthState) - const { providerProfile, providerUserId } = await getProviderInfo({ - accessToken, - }) + const { providerProfile, providerUserId } = await getProviderInfo(tokens) try { const redirectUri = await finishOAuthFlowAndGetRedirectUri({ provider, @@ -104,8 +100,17 @@ export function createOAuthProviderRouter({ providerUserId, userSignupFields, req, - accessToken, - oAuthState, + oauth: { + uniqueRequestId: oAuthState.state, + // OAuth params are built as a discriminated union + // of provider names and their respective tokens. + // We are using a generic ProviderConfig and tokens type + // is inferred from the getProviderTokens function. + // Instead of building complex TS machinery to ensure that + // the providerName and tokens match, we are using any here. + providerName: provider.id as any, + tokens, + }, }) // Redirect to the client with the one time code return redirect(res, redirectUri.toString()) diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/oneTimeCode.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/oneTimeCode.ts index 0b98a1d879..cf1410c10f 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/oneTimeCode.ts +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/oneTimeCode.ts @@ -2,12 +2,9 @@ import { Router } from "express"; import { HttpError } from 'wasp/server'; import { handleRejection } from 'wasp/server/utils' -import { createJWT, validateJWT, TimeSpan } from 'wasp/auth/jwt' import { findAuthWithUserBy } from 'wasp/auth/utils' import { createSession } from 'wasp/auth/session' -import { exchangeCodeForTokenPath } from "./redirect.js"; - -export const tokenStore = createTokenStore(); +import { exchangeCodeForTokenPath, tokenStore } from "wasp/server/auth"; export function setupOneTimeCodeRoute(router: Router) { router.post( @@ -40,50 +37,3 @@ export function setupOneTimeCodeRoute(router: Router) { }) ); } - -function createTokenStore() { - const usedTokens = new Map(); - - const validFor = new TimeSpan(1, 'm') // 1 minute - const cleanupAfter = 1000 * 60 * 60; // 1 hour - - function createToken(userId: string): Promise { - return createJWT( - { - id: userId, - }, - { - expiresIn: validFor, - } - ); - } - - function verifyToken(token: string): Promise<{ id: string }> { - return validateJWT(token); - } - - function isUsed(token: string): boolean { - return usedTokens.has(token); - } - - function markUsed(token: string): void { - usedTokens.set(token, Date.now()); - cleanUp(); - } - - function cleanUp(): void { - const now = Date.now(); - for (const [token, timestamp] of usedTokens.entries()) { - if (now - timestamp > cleanupAfter) { - usedTokens.delete(token); - } - } - } - - return { - createToken, - verifyToken, - isUsed, - markUsed, - }; -} diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/user.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/user.ts index ac7abc0121..88c2c33eac 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/user.ts +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/user.ts @@ -10,8 +10,8 @@ import { import { type Auth } from 'wasp/entities' import { prisma } from 'wasp/server' import { type UserSignupFields, type ProviderConfig } from 'wasp/auth/providers/types' -import { getRedirectUriForOneTimeCode } from './redirect' -import { tokenStore } from './oneTimeCode' +import { type OAuthData } from 'wasp/server/auth' +import { getRedirectUriForOneTimeCode, tokenStore } from 'wasp/server/auth' import { onBeforeSignupHook, onAfterSignupHook, @@ -25,16 +25,14 @@ export async function finishOAuthFlowAndGetRedirectUri({ providerUserId, userSignupFields, req, - accessToken, - oAuthState, + oauth }: { provider: ProviderConfig; providerProfile: unknown; providerUserId: string; userSignupFields: UserSignupFields | undefined; req: ExpressRequest; - accessToken: string; - oAuthState: { state: string }; + oauth: OAuthData; }): Promise { const providerId = createProviderId(provider.id, providerUserId); @@ -43,8 +41,7 @@ export async function finishOAuthFlowAndGetRedirectUri({ providerProfile, userSignupFields, req, - accessToken, - oAuthState, + oauth, }); const oneTimeCode = await tokenStore.createToken(authId) @@ -59,15 +56,13 @@ async function getAuthIdFromProviderDetails({ providerProfile, userSignupFields, req, - accessToken, - oAuthState, + oauth, }: { providerId: ProviderId; providerProfile: any; userSignupFields: UserSignupFields | undefined; req: ExpressRequest; - accessToken: string; - oAuthState: { state: string }; + oauth: OAuthData; }): Promise { const existingAuthIdentity = await prisma.authIdentity.findUnique({ where: { @@ -101,10 +96,7 @@ async function getAuthIdFromProviderDetails({ await onAfterLoginHook({ req, providerId, - oauth: { - accessToken, - uniqueRequestId: oAuthState.state, - }, + oauth, user: auth.user, }) @@ -130,10 +122,7 @@ async function getAuthIdFromProviderDetails({ req, providerId, user, - oauth: { - accessToken, - uniqueRequestId: oAuthState.state, - }, + oauth, }) return user.auth.id diff --git a/waspc/examples/todoApp/package-lock.json b/waspc/examples/todoApp/package-lock.json index 4d72d07985..e944c46469 100644 --- a/waspc/examples/todoApp/package-lock.json +++ b/waspc/examples/todoApp/package-lock.json @@ -35,6 +35,7 @@ "@types/express-serve-static-core": "^4.17.13", "@types/react-router-dom": "^5.3.3", "@vitest/ui": "^1.2.1", + "arctic": "^1.2.1", "autoprefixer": "^10.4.13", "axios": "^1.4.0", "express": "~4.18.1", @@ -3011,6 +3012,501 @@ "node": ">= 8" } }, + "node_modules/arctic": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/arctic/-/arctic-1.9.2.tgz", + "integrity": "sha512-VTnGpYx+ypboJdNrWnK17WeD7zN/xSCHnpecd5QYsBfVZde/5i+7DJ1wrf/ioSDMiEjagXmyNWAE3V2C9f1hNg==", + "dependencies": { + "oslo": "1.2.0" + } + }, + "node_modules/arctic/node_modules/@node-rs/argon2": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2/-/argon2-1.7.0.tgz", + "integrity": "sha512-zfULc+/tmcWcxn+nHkbyY8vP3+MpEqKORbszt4UkpqZgBgDAAIYvuDN/zukfTgdmo6tmJKKVfzigZOPk4LlIog==", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@node-rs/argon2-android-arm-eabi": "1.7.0", + "@node-rs/argon2-android-arm64": "1.7.0", + "@node-rs/argon2-darwin-arm64": "1.7.0", + "@node-rs/argon2-darwin-x64": "1.7.0", + "@node-rs/argon2-freebsd-x64": "1.7.0", + "@node-rs/argon2-linux-arm-gnueabihf": "1.7.0", + "@node-rs/argon2-linux-arm64-gnu": "1.7.0", + "@node-rs/argon2-linux-arm64-musl": "1.7.0", + "@node-rs/argon2-linux-x64-gnu": "1.7.0", + "@node-rs/argon2-linux-x64-musl": "1.7.0", + "@node-rs/argon2-wasm32-wasi": "1.7.0", + "@node-rs/argon2-win32-arm64-msvc": "1.7.0", + "@node-rs/argon2-win32-ia32-msvc": "1.7.0", + "@node-rs/argon2-win32-x64-msvc": "1.7.0" + } + }, + "node_modules/arctic/node_modules/@node-rs/argon2-android-arm-eabi": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-android-arm-eabi/-/argon2-android-arm-eabi-1.7.0.tgz", + "integrity": "sha512-udDqkr5P9E+wYX1SZwAVPdyfYvaF4ry9Tm+R9LkfSHbzWH0uhU6zjIwNRp7m+n4gx691rk+lqqDAIP8RLKwbhg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/argon2-android-arm64": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-android-arm64/-/argon2-android-arm64-1.7.0.tgz", + "integrity": "sha512-s9j/G30xKUx8WU50WIhF0fIl1EdhBGq0RQ06lEhZ0Gi0ap8lhqbE2Bn5h3/G2D1k0Dx+yjeVVNmt/xOQIRG38A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/argon2-darwin-arm64": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-darwin-arm64/-/argon2-darwin-arm64-1.7.0.tgz", + "integrity": "sha512-ZIz4L6HGOB9U1kW23g+m7anGNuTZ0RuTw0vNp3o+2DWpb8u8rODq6A8tH4JRL79S+Co/Nq608m9uackN2pe0Rw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/argon2-darwin-x64": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-darwin-x64/-/argon2-darwin-x64-1.7.0.tgz", + "integrity": "sha512-5oi/pxqVhODW/pj1+3zElMTn/YukQeywPHHYDbcAW3KsojFjKySfhcJMd1DjKTc+CHQI+4lOxZzSUzK7mI14Hw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/argon2-freebsd-x64": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-freebsd-x64/-/argon2-freebsd-x64-1.7.0.tgz", + "integrity": "sha512-Ify08683hA4QVXYoIm5SUWOY5DPIT/CMB0CQT+IdxQAg/F+qp342+lUkeAtD5bvStQuCx/dFO3bnnzoe2clMhA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/argon2-linux-arm-gnueabihf": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm-gnueabihf/-/argon2-linux-arm-gnueabihf-1.7.0.tgz", + "integrity": "sha512-7DjDZ1h5AUHAtRNjD19RnQatbhL+uuxBASuuXIBu4/w6Dx8n7YPxwTP4MXfsvuRgKuMWiOb/Ub/HJ3kXVCXRkg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/argon2-linux-arm64-gnu": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm64-gnu/-/argon2-linux-arm64-gnu-1.7.0.tgz", + "integrity": "sha512-nJDoMP4Y3YcqGswE4DvP080w6O24RmnFEDnL0emdI8Nou17kNYBzP2546Nasx9GCyLzRcYQwZOUjrtUuQ+od2g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/argon2-linux-arm64-musl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm64-musl/-/argon2-linux-arm64-musl-1.7.0.tgz", + "integrity": "sha512-BKWS8iVconhE3jrb9mj6t1J9vwUqQPpzCbUKxfTGJfc+kNL58F1SXHBoe2cDYGnHrFEHTY0YochzXoAfm4Dm/A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/argon2-linux-x64-gnu": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-x64-gnu/-/argon2-linux-x64-gnu-1.7.0.tgz", + "integrity": "sha512-EmgqZOlf4Jurk/szW1iTsVISx25bKksVC5uttJDUloTgsAgIGReCpUUO1R24pBhu9ESJa47iv8NSf3yAfGv6jQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/argon2-linux-x64-musl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-x64-musl/-/argon2-linux-x64-musl-1.7.0.tgz", + "integrity": "sha512-/o1efYCYIxjfuoRYyBTi2Iy+1iFfhqHCvvVsnjNSgO1xWiWrX0Rrt/xXW5Zsl7vS2Y+yu8PL8KFWRzZhaVxfKA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/argon2-wasm32-wasi": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-wasm32-wasi/-/argon2-wasm32-wasi-1.7.0.tgz", + "integrity": "sha512-Evmk9VcxqnuwQftfAfYEr6YZYSPLzmKUsbFIMep5nTt9PT4XYRFAERj7wNYp+rOcBenF3X4xoB+LhwcOMTNE5w==", + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@emnapi/core": "^0.45.0", + "@emnapi/runtime": "^0.45.0", + "@tybys/wasm-util": "^0.8.1", + "memfs-browser": "^3.4.13000" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/arctic/node_modules/@node-rs/argon2-win32-arm64-msvc": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-arm64-msvc/-/argon2-win32-arm64-msvc-1.7.0.tgz", + "integrity": "sha512-qgsU7T004COWWpSA0tppDqDxbPLgg8FaU09krIJ7FBl71Sz8SFO40h7fDIjfbTT5w7u6mcaINMQ5bSHu75PCaA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/argon2-win32-ia32-msvc": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-ia32-msvc/-/argon2-win32-ia32-msvc-1.7.0.tgz", + "integrity": "sha512-JGafwWYQ/HpZ3XSwP4adQ6W41pRvhcdXvpzIWtKvX+17+xEXAe2nmGWM6s27pVkg1iV2ZtoYLRDkOUoGqZkCcg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/argon2-win32-x64-msvc": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-x64-msvc/-/argon2-win32-x64-msvc-1.7.0.tgz", + "integrity": "sha512-9oq4ShyFakw8AG3mRls0AoCpxBFcimYx7+jvXeAf2OqKNO+mSA6eZ9z7KQeVCi0+SOEUYxMGf5UiGiDb9R6+9Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/bcrypt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt/-/bcrypt-1.9.0.tgz", + "integrity": "sha512-u2OlIxW264bFUfvbFqDz9HZKFjwe8FHFtn7T/U8mYjPZ7DWYpbUB+/dkW/QgYfMSfR0ejkyuWaBBe0coW7/7ig==", + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@node-rs/bcrypt-android-arm-eabi": "1.9.0", + "@node-rs/bcrypt-android-arm64": "1.9.0", + "@node-rs/bcrypt-darwin-arm64": "1.9.0", + "@node-rs/bcrypt-darwin-x64": "1.9.0", + "@node-rs/bcrypt-freebsd-x64": "1.9.0", + "@node-rs/bcrypt-linux-arm-gnueabihf": "1.9.0", + "@node-rs/bcrypt-linux-arm64-gnu": "1.9.0", + "@node-rs/bcrypt-linux-arm64-musl": "1.9.0", + "@node-rs/bcrypt-linux-x64-gnu": "1.9.0", + "@node-rs/bcrypt-linux-x64-musl": "1.9.0", + "@node-rs/bcrypt-wasm32-wasi": "1.9.0", + "@node-rs/bcrypt-win32-arm64-msvc": "1.9.0", + "@node-rs/bcrypt-win32-ia32-msvc": "1.9.0", + "@node-rs/bcrypt-win32-x64-msvc": "1.9.0" + } + }, + "node_modules/arctic/node_modules/@node-rs/bcrypt-android-arm-eabi": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm-eabi/-/bcrypt-android-arm-eabi-1.9.0.tgz", + "integrity": "sha512-nOCFISGtnodGHNiLrG0WYLWr81qQzZKYfmwHc7muUeq+KY0sQXyHOwZk9OuNQAWv/lnntmtbwkwT0QNEmOyLvA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/bcrypt-android-arm64": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm64/-/bcrypt-android-arm64-1.9.0.tgz", + "integrity": "sha512-+ZrIAtigVmjYkqZQTThHVlz0+TG6D+GDHWhVKvR2DifjtqJ0i+mb9gjo++hN+fWEQdWNGxKCiBBjwgT4EcXd6A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/bcrypt-darwin-arm64": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-arm64/-/bcrypt-darwin-arm64-1.9.0.tgz", + "integrity": "sha512-CQiS+F9Pa0XozvkXR1g7uXE9QvBOPOplDg0iCCPRYTN9PqA5qYxhwe48G3o+v2UeQceNRrbnEtWuANm7JRqIhw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/bcrypt-darwin-x64": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-x64/-/bcrypt-darwin-x64-1.9.0.tgz", + "integrity": "sha512-4pTKGawYd7sNEjdJ7R/R67uwQH1VvwPZ0SSUMmeNHbxD5QlwAPXdDH11q22uzVXsvNFZ6nGQBg8No5OUGpx6Ug==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/bcrypt-freebsd-x64": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-freebsd-x64/-/bcrypt-freebsd-x64-1.9.0.tgz", + "integrity": "sha512-UmWzySX4BJhT/B8xmTru6iFif3h0Rpx3TqxRLCcbgmH43r7k5/9QuhpiyzpvKGpKHJCFNm4F3rC2wghvw5FCIg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/bcrypt-linux-arm-gnueabihf": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm-gnueabihf/-/bcrypt-linux-arm-gnueabihf-1.9.0.tgz", + "integrity": "sha512-8qoX4PgBND2cVwsbajoAWo3NwdfJPEXgpCsZQZURz42oMjbGyhhSYbovBCskGU3EBLoC8RA2B1jFWooeYVn5BA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/bcrypt-linux-arm64-gnu": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-gnu/-/bcrypt-linux-arm64-gnu-1.9.0.tgz", + "integrity": "sha512-TuAC6kx0SbcIA4mSEWPi+OCcDjTQUMl213v5gMNlttF+D4ieIZx6pPDGTaMO6M2PDHTeCG0CBzZl0Lu+9b0c7Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/bcrypt-linux-arm64-musl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-musl/-/bcrypt-linux-arm64-musl-1.9.0.tgz", + "integrity": "sha512-/sIvKDABOI8QOEnLD7hIj02BVaNOuCIWBKvxcJOt8+TuwJ6zmY1UI5kSv9d99WbiHjTp97wtAUbZQwauU4b9ew==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/bcrypt-linux-x64-gnu": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-gnu/-/bcrypt-linux-x64-gnu-1.9.0.tgz", + "integrity": "sha512-DyyhDHDsLBsCKz1tZ1hLvUZSc1DK0FU0v52jK6IBQxrj24WscSU9zZe7ie/V9kdmA4Ep57BfpWX8Dsa2JxGdgQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/bcrypt-linux-x64-musl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-musl/-/bcrypt-linux-x64-musl-1.9.0.tgz", + "integrity": "sha512-duIiuqQ+Lew8ASSAYm6ZRqcmfBGWwsi81XLUwz86a2HR7Qv6V4yc3ZAUQovAikhjCsIqe8C11JlAZSK6+PlXYg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/bcrypt-wasm32-wasi": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-wasm32-wasi/-/bcrypt-wasm32-wasi-1.9.0.tgz", + "integrity": "sha512-ylaGmn9Wjwv/D5lxtawttx3H6Uu2WTTR7lWlRHGT6Ga/MB1Vj4OjSGUW8G8zIVnKuXpGbZ92pgHlt4HUpSLctw==", + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@emnapi/core": "^0.45.0", + "@emnapi/runtime": "^0.45.0", + "@tybys/wasm-util": "^0.8.1", + "memfs-browser": "^3.4.13000" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/arctic/node_modules/@node-rs/bcrypt-win32-arm64-msvc": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-arm64-msvc/-/bcrypt-win32-arm64-msvc-1.9.0.tgz", + "integrity": "sha512-2h86gF7QFyEzODuDFml/Dp1MSJoZjxJ4yyT2Erf4NkwsiA5MqowUhUsorRwZhX6+2CtlGa7orbwi13AKMsYndw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/bcrypt-win32-ia32-msvc": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-ia32-msvc/-/bcrypt-win32-ia32-msvc-1.9.0.tgz", + "integrity": "sha512-kqxalCvhs4FkN0+gWWfa4Bdy2NQAkfiqq/CEf6mNXC13RSV673Ev9V8sRlQyNpCHCNkeXfOT9pgoBdJmMs9muA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/@node-rs/bcrypt-win32-x64-msvc": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-x64-msvc/-/bcrypt-win32-x64-msvc-1.9.0.tgz", + "integrity": "sha512-2y0Tuo6ZAT2Cz8V7DHulSlv1Bip3zbzeXyeur+uR25IRNYXKvI/P99Zl85Fbuu/zzYAZRLLlGTRe6/9IHofe/w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/arctic/node_modules/oslo": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/oslo/-/oslo-1.2.0.tgz", + "integrity": "sha512-OoFX6rDsNcOQVAD2gQD/z03u4vEjWZLzJtwkmgfRF+KpQUXwdgEXErD7zNhyowmHwHefP+PM9Pw13pgpHMRlzw==", + "dependencies": { + "@node-rs/argon2": "1.7.0", + "@node-rs/bcrypt": "1.9.0" + } + }, "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", diff --git a/waspc/examples/todoApp/src/auth/hooks.ts b/waspc/examples/todoApp/src/auth/hooks.ts index 2bbbe416cd..8e4e6612a2 100644 --- a/waspc/examples/todoApp/src/auth/hooks.ts +++ b/waspc/examples/todoApp/src/auth/hooks.ts @@ -25,7 +25,7 @@ export const onAfterSignup: OnAfterSignupHook = async (args) => { // If this is a OAuth signup, we have access token and uniqueRequestId if (args.oauth) { - log('accessToken', args.oauth.accessToken) + log('accessToken', args.oauth.tokens.accessToken) log('uniqueRequestId', args.oauth.uniqueRequestId) const id = args.oauth.uniqueRequestId const query = oAuthQueryStore.get(id) @@ -43,7 +43,7 @@ export const onBeforeOAuthRedirect: OnBeforeOAuthRedirectHook = async ( log('query params before oAuth redirect', args.req.query) // Saving query params for later use in onAfterSignup hook - const id = args.uniqueRequestId + const id = args.oauth.uniqueRequestId oAuthQueryStore.set(id, args.req.query) return { url: args.url } @@ -58,8 +58,8 @@ export const onAfterLogin: OnAfterLoginHook = async (args) => { const log = createLoggerForHook('onAfterLogin') log('providerId object', args.providerId) log('user object', args.user) - if (args.oauth) { - log('accessToken', args.oauth.accessToken) + if (args.oauth && args.oauth.providerName === 'google') { + log('accessToken', args.oauth.tokens.accessToken) } } diff --git a/waspc/src/Wasp/Generator/SdkGenerator.hs b/waspc/src/Wasp/Generator/SdkGenerator.hs index 3ea36a85f2..11dc7ac956 100644 --- a/waspc/src/Wasp/Generator/SdkGenerator.hs +++ b/waspc/src/Wasp/Generator/SdkGenerator.hs @@ -48,6 +48,7 @@ import Wasp.Generator.SdkGenerator.Server.AuthG (genNewServerApi) import Wasp.Generator.SdkGenerator.Server.CrudG (genNewServerCrudApi) import Wasp.Generator.SdkGenerator.Server.EmailSenderG (depsRequiredByEmail, genNewEmailSenderApi) import Wasp.Generator.SdkGenerator.Server.JobGenerator (depsRequiredByJobs, genNewJobsApi) +import Wasp.Generator.SdkGenerator.Server.OAuthG (depsRequiredByOAuth) import qualified Wasp.Generator.SdkGenerator.Server.OperationsGenerator as ServerOpsGen import Wasp.Generator.SdkGenerator.ServerApiG (genServerApi) import Wasp.Generator.SdkGenerator.WebSocketGenerator (depsRequiredByWebSockets, genWebSockets) @@ -195,6 +196,7 @@ npmDepsForSdk spec = ("@types/react-router-dom", "^5.3.3") ] ++ depsRequiredForAuth spec + ++ depsRequiredByOAuth spec -- This must be installed in the SDK because it lists prisma/client as a dependency. -- Installing it inside .wasp/out/server/node_modules would also -- install prisma/client in the same folder, which would cause our diff --git a/waspc/src/Wasp/Generator/SdkGenerator/AuthG.hs b/waspc/src/Wasp/Generator/SdkGenerator/AuthG.hs index 72712c70d8..40283b5ca1 100644 --- a/waspc/src/Wasp/Generator/SdkGenerator/AuthG.hs +++ b/waspc/src/Wasp/Generator/SdkGenerator/AuthG.hs @@ -19,6 +19,7 @@ import Wasp.Generator.SdkGenerator.Auth.EmailAuthG (genEmailAuth) import Wasp.Generator.SdkGenerator.Auth.LocalAuthG (genLocalAuth) import Wasp.Generator.SdkGenerator.Auth.OAuthAuthG (genOAuthAuth) import qualified Wasp.Generator.SdkGenerator.Common as C +import Wasp.Generator.SdkGenerator.Server.OAuthG (genOAuth) import Wasp.Generator.WebAppGenerator.Auth.Common (getOnAuthSucceededRedirectToOrDefault) import Wasp.Util ((<++>)) import qualified Wasp.Util as Util @@ -54,6 +55,7 @@ genAuth spec = genUtils auth, genProvidersTypes auth ] + <++> genOAuth auth <++> genIndexTs auth where maybeAuth = AS.App.auth $ snd $ getApp spec diff --git a/waspc/src/Wasp/Generator/SdkGenerator/Server/AuthG.hs b/waspc/src/Wasp/Generator/SdkGenerator/Server/AuthG.hs index 9689736115..4ca826c216 100644 --- a/waspc/src/Wasp/Generator/SdkGenerator/Server/AuthG.hs +++ b/waspc/src/Wasp/Generator/SdkGenerator/Server/AuthG.hs @@ -26,7 +26,7 @@ genNewServerApi spec = sequence [ genAuthIndex auth, genAuthUser auth, - genFileCopy [relfile|server/auth/hooks.ts|] + genHooks auth ] <++> genAuthEmail auth <++> genAuthUsername auth @@ -40,7 +40,12 @@ genAuthIndex auth = [relfile|server/auth/index.ts|] tmplData where - tmplData = AuthProviders.getEnabledAuthProvidersJson auth + tmplData = + object + [ "enabledProviders" .= AuthProviders.getEnabledAuthProvidersJson auth, + "isExternalAuthEnabled" .= isExternalAuthEnabled + ] + isExternalAuthEnabled = AS.Auth.isExternalAuthEnabled auth genAuthUser :: AS.Auth.Auth -> Generator FileDraft genAuthUser auth = @@ -61,6 +66,11 @@ genAuthUser auth = "enabledProviders" .= AuthProviders.getEnabledAuthProvidersJson auth ] +genHooks :: AS.Auth.Auth -> Generator FileDraft +genHooks auth = return $ C.mkTmplFdWithData [relfile|server/auth/hooks.ts|] tmplData + where + tmplData = object ["enabledProviders" .= AuthProviders.getEnabledAuthProvidersJson auth] + genAuthEmail :: AS.Auth.Auth -> Generator [FileDraft] genAuthEmail auth = if AS.Auth.isEmailAuthEnabled auth diff --git a/waspc/src/Wasp/Generator/SdkGenerator/Server/OAuthG.hs b/waspc/src/Wasp/Generator/SdkGenerator/Server/OAuthG.hs new file mode 100644 index 0000000000..fb533e22f1 --- /dev/null +++ b/waspc/src/Wasp/Generator/SdkGenerator/Server/OAuthG.hs @@ -0,0 +1,103 @@ +module Wasp.Generator.SdkGenerator.Server.OAuthG + ( genOAuth, + depsRequiredByOAuth, + ) +where + +import Data.Aeson (KeyValue ((.=)), object) +import Data.Maybe (fromJust, isJust) +import StrongPath (Dir', File', Path', Rel, reldir, relfile, ()) +import qualified StrongPath as SP +import Wasp.AppSpec (AppSpec) +import qualified Wasp.AppSpec.App as AS.App +import qualified Wasp.AppSpec.App.Auth as AS.App.Auth +import qualified Wasp.AppSpec.App.Auth as AS.Auth +import qualified Wasp.AppSpec.App.Dependency as AS.Dependency +import qualified Wasp.AppSpec.Valid as AS.Valid +import Wasp.Generator.AuthProviders (discordAuthProvider, getEnabledAuthProvidersJson, gitHubAuthProvider, googleAuthProvider, keycloakAuthProvider) +import Wasp.Generator.AuthProviders.OAuth + ( OAuthAuthProvider, + clientOAuthCallbackPath, + serverExchangeCodeForTokenHandlerPath, + serverOAuthCallbackHandlerPath, + serverOAuthLoginHandlerPath, + ) +import qualified Wasp.Generator.AuthProviders.OAuth as OAuth +import Wasp.Generator.FileDraft (FileDraft) +import Wasp.Generator.Monad (Generator) +import Wasp.Generator.SdkGenerator.Common (SdkTemplatesDir) +import qualified Wasp.Generator.SdkGenerator.Common as C +import Wasp.Util ((<++>)) + +genOAuth :: AS.Auth.Auth -> Generator [FileDraft] +genOAuth auth + | AS.Auth.isExternalAuthEnabled auth = + sequence + [ genIndexTs auth, + genRedirectHelper, + genFileCopy $ oauthDirInSdkTemplatesDir [relfile|env.ts|], + genFileCopy $ oauthDirInSdkTemplatesDir [relfile|oneTimeCode.ts|], + genFileCopy $ oauthDirInSdkTemplatesDir [relfile|provider.ts|] + ] + <++> genOAuthProvider discordAuthProvider (AS.Auth.discord . AS.Auth.methods $ auth) + <++> genOAuthProvider googleAuthProvider (AS.Auth.google . AS.Auth.methods $ auth) + <++> genOAuthProvider keycloakAuthProvider (AS.Auth.keycloak . AS.Auth.methods $ auth) + <++> genOAuthProvider gitHubAuthProvider (AS.Auth.gitHub . AS.Auth.methods $ auth) + | otherwise = return [] + where + genFileCopy = return . C.mkTmplFd + +genIndexTs :: AS.Auth.Auth -> Generator FileDraft +genIndexTs auth = return $ C.mkTmplFdWithData tmplFile tmplData + where + tmplFile = oauthDirInSdkTemplatesDir [relfile|index.ts|] + tmplData = + object + [ "enabledProviders" .= getEnabledAuthProvidersJson auth + ] + +genRedirectHelper :: Generator FileDraft +genRedirectHelper = return $ C.mkTmplFdWithData tmplFile tmplData + where + tmplFile = oauthDirInSdkTemplatesDir [relfile|redirect.ts|] + tmplData = + object + [ "serverOAuthCallbackHandlerPath" .= serverOAuthCallbackHandlerPath, + "clientOAuthCallbackPath" .= clientOAuthCallbackPath, + "serverOAuthLoginHandlerPath" .= serverOAuthLoginHandlerPath, + "serverExchangeCodeForTokenHandlerPath" .= serverExchangeCodeForTokenHandlerPath + ] + +genOAuthProvider :: + OAuthAuthProvider -> + Maybe AS.Auth.ExternalAuthConfig -> + Generator [FileDraft] +genOAuthProvider provider maybeUserConfig + | isJust maybeUserConfig = sequence [genOAuthConfig provider] + | otherwise = return [] + +genOAuthConfig :: + OAuthAuthProvider -> + Generator FileDraft +genOAuthConfig provider = return $ C.mkTmplFdWithData tmplFile tmplData + where + tmplFile = oauthDirInSdkTemplatesDir [reldir|providers|] providerTsFile + tmplData = + object + [ "providerId" .= OAuth.providerId provider, + "displayName" .= OAuth.displayName provider + ] + + providerTsFile :: Path' (Rel ()) File' + providerTsFile = fromJust $ SP.parseRelFile $ providerId ++ ".ts" + + providerId = OAuth.providerId provider + +depsRequiredByOAuth :: AppSpec -> [AS.Dependency.Dependency] +depsRequiredByOAuth spec = + [AS.Dependency.make ("arctic", "^1.2.1") | (AS.App.Auth.isExternalAuthEnabled <$> maybeAuth) == Just True] + where + maybeAuth = AS.App.auth $ snd $ AS.Valid.getApp spec + +oauthDirInSdkTemplatesDir :: Path' (Rel SdkTemplatesDir) Dir' +oauthDirInSdkTemplatesDir = [reldir|server/auth/oauth|] diff --git a/waspc/src/Wasp/Generator/ServerGenerator.hs b/waspc/src/Wasp/Generator/ServerGenerator.hs index 7705473b61..d35c0446eb 100644 --- a/waspc/src/Wasp/Generator/ServerGenerator.hs +++ b/waspc/src/Wasp/Generator/ServerGenerator.hs @@ -44,7 +44,6 @@ import Wasp.Generator.FileDraft (FileDraft, createTextFileDraft) import Wasp.Generator.Monad (Generator) import qualified Wasp.Generator.NpmDependencies as N import Wasp.Generator.ServerGenerator.ApiRoutesG (genApis) -import Wasp.Generator.ServerGenerator.Auth.OAuthAuthG (depsRequiredByOAuth) import Wasp.Generator.ServerGenerator.AuthG (genAuth) import qualified Wasp.Generator.ServerGenerator.Common as C import Wasp.Generator.ServerGenerator.CrudG (genCrud) @@ -153,7 +152,6 @@ npmDepsForWasp spec = ("rate-limiter-flexible", "^2.4.1"), ("superjson", "^1.12.2") ] - ++ depsRequiredByOAuth spec ++ depsRequiredByWebSockets spec, N.waspDevDependencies = AS.Dependency.fromList diff --git a/waspc/src/Wasp/Generator/ServerGenerator/Auth/OAuthAuthG.hs b/waspc/src/Wasp/Generator/ServerGenerator/Auth/OAuthAuthG.hs index 789a2a03bf..a44da128ce 100644 --- a/waspc/src/Wasp/Generator/ServerGenerator/Auth/OAuthAuthG.hs +++ b/waspc/src/Wasp/Generator/ServerGenerator/Auth/OAuthAuthG.hs @@ -1,6 +1,5 @@ module Wasp.Generator.ServerGenerator.Auth.OAuthAuthG ( genOAuthAuth, - depsRequiredByOAuth, ) where @@ -19,26 +18,15 @@ import StrongPath (), ) import qualified StrongPath as SP -import Wasp.AppSpec (AppSpec) import qualified Wasp.AppSpec as AS -import qualified Wasp.AppSpec.App as AS.App -import qualified Wasp.AppSpec.App.Auth as AS.App.Auth import qualified Wasp.AppSpec.App.Auth as AS.Auth -import qualified Wasp.AppSpec.App.Dependency as App.Dependency -import Wasp.AppSpec.Valid (getApp) import Wasp.Generator.AuthProviders ( discordAuthProvider, gitHubAuthProvider, googleAuthProvider, keycloakAuthProvider, ) -import Wasp.Generator.AuthProviders.OAuth - ( OAuthAuthProvider, - clientOAuthCallbackPath, - serverExchangeCodeForTokenHandlerPath, - serverOAuthCallbackHandlerPath, - serverOAuthLoginHandlerPath, - ) +import Wasp.Generator.AuthProviders.OAuth (OAuthAuthProvider) import qualified Wasp.Generator.AuthProviders.OAuth as OAuth import qualified Wasp.Generator.DbGenerator.Auth as DbAuth import Wasp.Generator.FileDraft (FileDraft) @@ -64,11 +52,9 @@ genOAuthHelpers auth = sequence [ genTypes auth, genUser, - genRedirectHelpers, return $ C.mkSrcTmplFd [relfile|auth/providers/oauth/handler.ts|], return $ C.mkSrcTmplFd [relfile|auth/providers/oauth/state.ts|], return $ C.mkSrcTmplFd [relfile|auth/providers/oauth/cookies.ts|], - return $ C.mkSrcTmplFd [relfile|auth/providers/oauth/env.ts|], return $ C.mkSrcTmplFd [relfile|auth/providers/oauth/config.ts|], return $ C.mkSrcTmplFd [relfile|auth/providers/oauth/oneTimeCode.ts|] ] @@ -85,18 +71,6 @@ genUser = return $ C.mkTmplFdWithData tmplFile (Just tmplData) "userFieldOnAuthEntityName" .= (DbAuth.userFieldOnAuthEntityName :: String) ] -genRedirectHelpers :: Generator FileDraft -genRedirectHelpers = return $ C.mkTmplFdWithData tmplFile (Just tmplData) - where - tmplFile = C.srcDirInServerTemplatesDir [relfile|auth/providers/oauth/redirect.ts|] - tmplData = - object - [ "clientOAuthCallbackPath" .= clientOAuthCallbackPath, - "serverOAuthLoginHandlerPath" .= serverOAuthLoginHandlerPath, - "serverOAuthCallbackHandlerPath" .= serverOAuthCallbackHandlerPath, - "serverExchangeCodeForTokenHandlerPath" .= serverExchangeCodeForTokenHandlerPath - ] - genTypes :: AS.Auth.Auth -> Generator FileDraft genTypes auth = return $ C.mkTmplFdWithData tmplFile (Just tmplData) where @@ -144,9 +118,3 @@ genOAuthConfig provider maybeUserConfig pathToConfigTmpl = return $ C.mkTmplFdWi relPathFromAuthConfigToServerSrcDir :: Path Posix (Rel importLocation) (Dir C.ServerSrcDir) relPathFromAuthConfigToServerSrcDir = [reldirP|../../../|] - -depsRequiredByOAuth :: AppSpec -> [App.Dependency.Dependency] -depsRequiredByOAuth spec = - [App.Dependency.make ("arctic", "^1.2.1") | (AS.App.Auth.isExternalAuthEnabled <$> maybeAuth) == Just True] - where - maybeAuth = AS.App.auth $ snd $ getApp spec diff --git a/waspc/waspc.cabal b/waspc/waspc.cabal index ed91e620cf..2515e921d0 100644 --- a/waspc/waspc.cabal +++ b/waspc/waspc.cabal @@ -311,6 +311,7 @@ library Wasp.Generator.SdkGenerator.CrudG Wasp.Generator.SdkGenerator.EmailSender.Providers Wasp.Generator.SdkGenerator.Server.AuthG + Wasp.Generator.SdkGenerator.Server.OAuthG Wasp.Generator.SdkGenerator.Server.CrudG Wasp.Generator.SdkGenerator.Server.EmailSenderG Wasp.Generator.SdkGenerator.Server.JobGenerator diff --git a/web/docs/auth/auth-hooks.md b/web/docs/auth/auth-hooks.md index a5de3c0839..9106e988fd 100644 --- a/web/docs/auth/auth-hooks.md +++ b/web/docs/auth/auth-hooks.md @@ -4,12 +4,14 @@ title: Auth Hooks import { EmailPill, UsernameAndPasswordPill, GithubPill, GooglePill, KeycloakPill, DiscordPill } from "./Pills"; import ImgWithCaption from '@site/blog/components/ImgWithCaption' +import { ShowForTs } from '@site/src/components/TsJsHelpers' Auth hooks allow you to "hook into" the auth process at various stages and run your custom code. For example, if you want to forbid certain emails from signing up, or if you wish to send a welcome email to the user after they sign up, auth hooks are the way to go. ## Supported hooks The following auth hooks are available in Wasp: + - [`onBeforeSignup`](#executing-code-before-the-user-signs-up) - [`onAfterSignup`](#executing-code-after-the-user-signs-up) - [`onBeforeOAuthRedirect`](#executing-code-before-the-oauth-redirect) @@ -35,7 +37,6 @@ We'll go through each of these hooks in detail. But first, let's see how the hoo \* When using the OAuth auth providers, the login hooks are both called before the session is created but the session is created quickly afterward, so it shouldn't make any difference in practice. - If you are using OAuth, the flow includes extra steps before the auth flow: @@ -90,6 +92,7 @@ app myApp { }, } ``` + @@ -123,11 +126,7 @@ app myApp { ```js title="src/auth/hooks.js" import { HttpError } from 'wasp/server' -export const onBeforeSignup = async ({ - providerId, - prisma, - req, -}) => { +export const onBeforeSignup = async ({ providerId, prisma, req }) => { const count = await prisma.user.count() console.log('number of users before', count) console.log('provider name', providerId.providerName) @@ -137,7 +136,10 @@ export const onBeforeSignup = async ({ throw new HttpError(403, 'Too many users') } - if (providerId.providerName === 'email' && providerId.providerUserId === 'some@email.com') { + if ( + providerId.providerName === 'email' && + providerId.providerUserId === 'some@email.com' + ) { throw new HttpError(403, 'This email is not allowed') } } @@ -174,7 +176,10 @@ export const onBeforeSignup: OnBeforeSignupHook = async ({ throw new HttpError(403, 'Too many users') } - if (providerId.providerName === 'email' && providerId.providerUserId === 'some@email.com') { + if ( + providerId.providerName === 'email' && + providerId.providerUserId === 'some@email.com' + ) { throw new HttpError(403, 'This email is not allowed') } } @@ -191,7 +196,7 @@ Wasp calls the `onAfterSignup` hook after the user is created. The `onAfterSignup` hook can be useful if you want to send the user a welcome email or perform some other action after the user signs up like syncing the user with a third-party service. -Since the `onAfterSignup` hook receives the OAuth access token, it can also be used to store the OAuth access token for the user in your database. +Since the `onAfterSignup` hook receives the OAuth tokens, you can use this hook to store the OAuth access token and/or [refresh token](#refreshing-the-oauth-access-token) in your database. Works with @@ -220,9 +225,9 @@ export const onAfterSignup = async ({ console.log('number of users after', count) console.log('user object', user) - // If this is an OAuth signup, we have the access token and uniqueRequestId + // If this is an OAuth signup, you have access to the OAuth tokens and the uniqueRequestId if (oauth) { - console.log('accessToken', oauth.accessToken) + console.log('accessToken', oauth.tokens.accessToken) console.log('uniqueRequestId', oauth.uniqueRequestId) const id = oauth.uniqueRequestId @@ -262,9 +267,9 @@ export const onAfterSignup: OnAfterSignupHook = async ({ console.log('number of users after', count) console.log('user object', user) - // If this is an OAuth signup, we have the access token and uniqueRequestId + // If this is an OAuth signup, you have access to the OAuth tokens and the uniqueRequestId if (oauth) { - console.log('accessToken', oauth.accessToken) + console.log('accessToken', oauth.tokens.accessToken) console.log('uniqueRequestId', oauth.uniqueRequestId) const id = oauth.uniqueRequestId @@ -306,14 +311,14 @@ app myApp { ```js title="src/auth/hooks.js" export const onBeforeOAuthRedirect = async ({ url, - uniqueRequestId, + oauth, prisma, req, }) => { console.log('query params before oAuth redirect', req.query) // Saving query params for later use in onAfterSignup or onAfterLogin hooks - const id = uniqueRequestId + const id = oauth.uniqueRequestId someKindOfStore.set(id, req.query) return { url } @@ -338,14 +343,14 @@ import type { OnBeforeOAuthRedirectHook } from 'wasp/server/auth' export const onBeforeOAuthRedirect: OnBeforeOAuthRedirectHook = async ({ url, - uniqueRequestId, + oauth, prisma, req, }) => { console.log('query params before oAuth redirect', req.query) // Saving query params for later use in onAfterSignup or onAfterLogin hooks - const id = uniqueRequestId + const id = oauth.uniqueRequestId someKindOfStore.set(id, req.query) return { url } @@ -383,12 +388,11 @@ app myApp { ```js title="src/auth/hooks.js" import { HttpError } from 'wasp/server' -export const onBeforeLogin = async ({ - providerId, - prisma, - req, -}) => { - if (providerId.providerName === 'email' && providerId.providerUserId === 'some@email.com') { +export const onBeforeLogin = async ({ providerId, prisma, req }) => { + if ( + providerId.providerName === 'email' && + providerId.providerUserId === 'some@email.com' + ) { throw new HttpError(403, 'You cannot log in with this email') } } @@ -416,7 +420,10 @@ export const onBeforeLogin: OnBeforeLoginHook = async ({ prisma, req, }) => { - if (providerId.providerName === 'email' && providerId.providerUserId === 'some@email.com') { + if ( + providerId.providerName === 'email' && + providerId.providerUserId === 'some@email.com' + ) { throw new HttpError(403, 'You cannot log in with this email') } } @@ -433,7 +440,7 @@ Wasp calls the `onAfterLogin` hook after the user logs in. The `onAfterLogin` hook can be useful if you want to perform some action after the user logs in, like syncing the user with a third-party service. -Since the `onAfterLogin` hook receives the OAuth access token, it can also be used to update the OAuth access token for the user in your database. +Since the `onAfterLogin` hook receives the OAuth tokens, you can use it to update the OAuth access token for the user in your database. You can also use it to [refresh the OAuth access token](#refreshing-the-oauth-access-token) if the provider supports it. Works with @@ -460,9 +467,9 @@ export const onAfterLogin = async ({ }) => { console.log('user object', user) - // If this is an OAuth signup, we have the access token and uniqueRequestId + // If this is an OAuth signup, you have access to the OAuth tokens and the uniqueRequestId if (oauth) { - console.log('accessToken', oauth.accessToken) + console.log('accessToken', oauth.tokens.accessToken) console.log('uniqueRequestId', oauth.uniqueRequestId) const id = oauth.uniqueRequestId @@ -500,9 +507,9 @@ export const onAfterLogin: OnAfterLoginHook = async ({ }) => { console.log('user object', user) - // If this is an OAuth signup, we have the access token and uniqueRequestId + // If this is an OAuth signup, you have access to the OAuth tokens and the uniqueRequestId if (oauth) { - console.log('accessToken', oauth.accessToken) + console.log('accessToken', oauth.tokens.accessToken) console.log('uniqueRequestId', oauth.uniqueRequestId) const id = oauth.uniqueRequestId @@ -520,6 +527,58 @@ export const onAfterLogin: OnAfterLoginHook = async ({ Read more about the data the `onAfterLogin` hook receives in the [API Reference](#the-onafterlogin-hook). +### Refreshing the OAuth access token + +Some OAuth providers support refreshing the access token when it expires. To refresh the access token, you need the OAuth **refresh token**. + +Wasp exposes the OAuth refresh token in the `onAfterSignup` and `onAfterLogin` hooks. You can store the refresh token in your database and use it to refresh the access token when it expires. + +Import the provider object with the OAuth client from the `wasp/server/oauth` module. For example, to refresh the Google OAuth access token, import the `google` object from the `wasp/server/oauth` module. You use the `refreshAccessToken` method of the OAuth client to refresh the access token. + +Here's an example of how you can refresh the access token for Google OAuth: + + + + + +```js title="src/auth/hooks.js" +import { google } from 'wasp/server/oauth' + +export const onAfterLogin = async ({ oauth }) => { + if (oauth.provider === 'google' && oauth.tokens.refreshToken !== null) { + const newTokens = await google.oAuthClient.refreshAccessToken( + oauth.tokens.refreshToken + ) + log('new tokens', newTokens) + } +} +``` + + + + + +```ts title="src/auth/hooks.ts" +import type { OnAfterLoginHook } from 'wasp/server/auth' +import { google } from 'wasp/server/oauth' + +export const onAfterLogin: OnAfterLoginHook = async ({ oauth }) => { + if (oauth.provider === 'google' && oauth.tokens.refreshToken !== null) { + const newTokens = await google.oAuthClient.refreshAccessToken( + oauth.tokens.refreshToken + ) + log('new tokens', newTokens) + } +} +``` + + + + +Google exposes the `accessTokenExpiresAt` field in the `oauth.tokens` object. You can use this field to determine when the access token expires. + +If you want to refresh the token periodically, use a [Wasp Job](../advanced/jobs.md). + ## API Reference @@ -543,6 +602,7 @@ app myApp { }, } ``` + @@ -564,6 +624,7 @@ app myApp { }, } ``` + @@ -585,11 +646,7 @@ The following properties are available in all auth hooks: ```js title="src/auth/hooks.js" -export const onBeforeSignup = async ({ - providerId, - prisma, - req, -}) => { +export const onBeforeSignup = async ({ providerId, prisma, req }) => { // Hook code goes here } ``` @@ -658,11 +715,12 @@ export const onAfterSignup: OnAfterSignupHook = async ({ The hook receives an object as **input** with the following properties: + - [`providerId: ProviderId`](#providerid-fields) - - `user: User` - + The user object that was created. + - [`oauth?: OAuthFields`](#oauth-fields) - Plus the [common hook input](#common-hook-input) @@ -677,7 +735,7 @@ Wasp ignores this hook's **return value**. ```js title="src/auth/hooks.js" export const onBeforeOAuthRedirect = async ({ url, - uniqueRequestId, + oauth, prisma, req, }) => { @@ -695,7 +753,7 @@ import type { OnBeforeOAuthRedirectHook } from 'wasp/server/auth' export const onBeforeOAuthRedirect: OnBeforeOAuthRedirectHook = async ({ url, - uniqueRequestId, + oauth, prisma, req, }) => { @@ -709,14 +767,21 @@ export const onBeforeOAuthRedirect: OnBeforeOAuthRedirectHook = async ({ The hook receives an object as **input** with the following properties: + - `url: URL` - Wasp uses the URL for the OAuth redirect. -- `uniqueRequestId: string` + Wasp uses the URL for the OAuth redirect. + +- `oauth: { uniqueRequestId: string }` + + The `oauth` object has the following fields: + + - `uniqueRequestId: string` + + The unique request ID for the OAuth flow (you might know it as the `state` parameter in OAuth.) - The unique request ID for the OAuth flow (you might know it as the `state` parameter in OAuth.) + You can use the unique request ID to save data (e.g. request query params) that you can later use in the `onAfterSignup` or `onAfterLogin` hooks. - You can use the unique request ID to save data (e.g. request query params) that you can later use in the `onAfterSignup` or `onAfterLogin` hooks. - Plus the [common hook input](#common-hook-input) This hook's return value must be an object that looks like this: `{ url: URL }`. Wasp uses the URL to redirect the user to the OAuth provider. @@ -727,19 +792,16 @@ This hook's return value must be an object that looks like this: `{ url: URL }`. ```js title="src/auth/hooks.js" -export const onBeforeLogin = async ({ - providerId, - prisma, - req, -}) => { +export const onBeforeLogin = async ({ providerId, prisma, req }) => { // Hook code goes here } ``` + ```ts title="src/auth/hooks.ts" -import type { OnBeforeLoginHook } from 'wasp/server/auth' +import type { OnBeforeLoginHook } from 'wasp/server/auth' export const onBeforeLogin: OnBeforeLoginHook = async ({ providerId, @@ -749,10 +811,12 @@ export const onBeforeLogin: OnBeforeLoginHook = async ({ // Hook code goes here } ``` + The hook receives an object as **input** with the following properties: + - [`providerId: ProviderId`](#providerid-fields) - Plus the [common hook input](#common-hook-input) @@ -776,6 +840,7 @@ export const onAfterLogin = async ({ // Hook code goes here } ``` + @@ -792,10 +857,12 @@ export const onAfterLogin: OnAfterLoginHook = async ({ // Hook code goes here } ``` + The hook receives an object as **input** with the following properties: + - [`providerId: ProviderId`](#providerid-fields) - `user: User` @@ -828,9 +895,31 @@ Wasp passes the `oauth` object to the `onAfterSignup` and `onAfterLogin` hooks o It has the following fields: -- `accessToken: string` +- `providerName: string` + + The name of the OAuth provider the user authenticated with (e.g. `'google'`, `'github'`). + +- `tokens: Tokens` + + You can use the OAuth tokens to make requests to the provider's API on the user's behalf. + + Depending on the OAuth provider, the `tokens` object might have different fields. For example, Google has the fields `accessToken`, `refreshToken`, `idToken`, and `accessTokenExpiresAt`. + + + + To access the provider-specific fields, you must first narrow down the `oauth.tokens` object type to the specific OAuth provider type. + + ```ts + if (oauth && oauth.providerName === 'google') { + console.log(oauth.tokens.accessToken) + // ^ Google specific tokens are available here + console.log(oauth.tokens.refreshToken) + console.log(oauth.tokens.idToken) + console.log(oauth.tokens.accessTokenExpiresAt) + } + ``` - You can use the OAuth access token to make requests to the provider's API on the user's behalf. + - `uniqueRequestId: string` From 3e66173ef9f5b14f88b6afa7bb585d87559b436e Mon Sep 17 00:00:00 2001 From: Lucas Lima Date: Tue, 27 Aug 2024 06:29:12 -0300 Subject: [PATCH 10/12] Fix version number in docs (#2217) --- web/docs/auth/auth-hooks.md | 8 ++++---- web/docs/auth/email.md | 4 ++-- web/docs/auth/social-auth/github.md | 16 ++++++++-------- web/docs/auth/social-auth/google.md | 16 ++++++++-------- web/docs/auth/social-auth/keycloak.md | 16 ++++++++-------- web/docs/auth/social-auth/overview.md | 8 ++++---- web/docs/auth/username-and-pass.md | 12 ++++++------ web/docs/data-model/crud.md | 2 +- web/docs/introduction/introduction.md | 2 +- web/docs/migrate-from-0-13-to-0-14.md | 2 +- web/docs/project/customizing-app.md | 8 ++++---- web/docs/tutorial/03-pages.md | 4 ++-- web/docs/tutorial/07-auth.md | 2 +- .../version-0.14.0/auth/auth-hooks.md | 8 ++++---- web/versioned_docs/version-0.14.0/auth/email.md | 4 ++-- .../version-0.14.0/auth/social-auth/github.md | 16 ++++++++-------- .../version-0.14.0/auth/social-auth/google.md | 16 ++++++++-------- .../version-0.14.0/auth/social-auth/keycloak.md | 16 ++++++++-------- .../version-0.14.0/auth/social-auth/overview.md | 8 ++++---- .../version-0.14.0/auth/username-and-pass.md | 12 ++++++------ .../version-0.14.0/data-model/crud.md | 2 +- .../version-0.14.0/introduction/introduction.md | 2 +- .../version-0.14.0/migrate-from-0-13-to-0-14.md | 2 +- .../version-0.14.0/project/customizing-app.md | 8 ++++---- .../version-0.14.0/tutorial/03-pages.md | 4 ++-- .../version-0.14.0/tutorial/07-auth.md | 2 +- 26 files changed, 100 insertions(+), 100 deletions(-) diff --git a/web/docs/auth/auth-hooks.md b/web/docs/auth/auth-hooks.md index 86476ad28f..95aa6b3e72 100644 --- a/web/docs/auth/auth-hooks.md +++ b/web/docs/auth/auth-hooks.md @@ -40,7 +40,7 @@ To use auth hooks, you must first declare them in the Wasp file: ```wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, auth: { userEntity: User, @@ -59,7 +59,7 @@ app myApp { ```wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, auth: { userEntity: User, @@ -349,7 +349,7 @@ Read more about the data the `onBeforeOAuthRedirect` hook receives in the [API R ```wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, auth: { userEntity: User, @@ -368,7 +368,7 @@ app myApp { ```wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, auth: { userEntity: User, diff --git a/web/docs/auth/email.md b/web/docs/auth/email.md index c5e48fcf48..90feb806ce 100644 --- a/web/docs/auth/email.md +++ b/web/docs/auth/email.md @@ -49,7 +49,7 @@ Let's start with adding the following to our `main.wasp` file: ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -83,7 +83,7 @@ app myApp { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { diff --git a/web/docs/auth/social-auth/github.md b/web/docs/auth/social-auth/github.md index 17df1f516a..bdb54c83ed 100644 --- a/web/docs/auth/social-auth/github.md +++ b/web/docs/auth/social-auth/github.md @@ -43,7 +43,7 @@ Let's start by properly configuring the Auth object: ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -68,7 +68,7 @@ app myApp { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -276,7 +276,7 @@ Add `gitHub: {}` to the `auth.methods` dictionary to use it with default setting ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -296,7 +296,7 @@ app myApp { ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -374,7 +374,7 @@ For an up to date info about the data received from GitHub, please refer to the ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -421,7 +421,7 @@ export function getConfig() { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -489,7 +489,7 @@ When you receive the `user` object [on the client or the server](../overview.md# ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -513,7 +513,7 @@ app myApp { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { diff --git a/web/docs/auth/social-auth/google.md b/web/docs/auth/social-auth/google.md index 9be2c97150..69a7fbeaac 100644 --- a/web/docs/auth/social-auth/google.md +++ b/web/docs/auth/social-auth/google.md @@ -43,7 +43,7 @@ Let's start by properly configuring the Auth object: ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -66,7 +66,7 @@ app myApp { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -317,7 +317,7 @@ Add `google: {}` to the `auth.methods` dictionary to use it with default setting ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -337,7 +337,7 @@ app myApp { ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -400,7 +400,7 @@ For an up to date info about the data received from Google, please refer to the ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -447,7 +447,7 @@ export function getConfig() { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -515,7 +515,7 @@ When you receive the `user` object [on the client or the server](../overview.md# ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -539,7 +539,7 @@ app myApp { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { diff --git a/web/docs/auth/social-auth/keycloak.md b/web/docs/auth/social-auth/keycloak.md index d576b00ce1..ef241a1d96 100644 --- a/web/docs/auth/social-auth/keycloak.md +++ b/web/docs/auth/social-auth/keycloak.md @@ -42,7 +42,7 @@ Let's start by properly configuring the Auth object: ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -65,7 +65,7 @@ app myApp { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -283,7 +283,7 @@ Add `keycloak: {}` to the `auth.methods` dictionary to use it with default setti ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -303,7 +303,7 @@ app myApp { ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -359,7 +359,7 @@ For up-to-date info about the data received from Keycloak, please refer to the [ ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -406,7 +406,7 @@ export function getConfig() { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -474,7 +474,7 @@ When you receive the `user` object [on the client or the server](../overview.md# ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -498,7 +498,7 @@ app myApp { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { diff --git a/web/docs/auth/social-auth/overview.md b/web/docs/auth/social-auth/overview.md index 1244c91d16..35987b1d6d 100644 --- a/web/docs/auth/social-auth/overview.md +++ b/web/docs/auth/social-auth/overview.md @@ -36,7 +36,7 @@ Here's what the full setup looks like: ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -63,7 +63,7 @@ model User { ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -148,7 +148,7 @@ Declare an import under `app.auth.methods.google.userSignupFields` (the example ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -180,7 +180,7 @@ export const userSignupFields = { ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { diff --git a/web/docs/auth/username-and-pass.md b/web/docs/auth/username-and-pass.md index 89f40ae925..9a731b9e40 100644 --- a/web/docs/auth/username-and-pass.md +++ b/web/docs/auth/username-and-pass.md @@ -44,7 +44,7 @@ Let's start with adding the following to our `main.wasp` file: ```wasp title="main.wasp" {11} app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -64,7 +64,7 @@ app myApp { ```wasp title="main.wasp" {11} app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -623,7 +623,7 @@ When you receive the `user` object [on the client or the server](./overview.md#a ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -647,7 +647,7 @@ model User { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -678,7 +678,7 @@ model User { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -699,7 +699,7 @@ app myApp { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { diff --git a/web/docs/data-model/crud.md b/web/docs/data-model/crud.md index 122aaca18b..a2d62de2df 100644 --- a/web/docs/data-model/crud.md +++ b/web/docs/data-model/crud.md @@ -73,7 +73,7 @@ We can start by running `wasp new tasksCrudApp` and then adding the following to ```wasp title="main.wasp" app tasksCrudApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "Tasks Crud App", diff --git a/web/docs/introduction/introduction.md b/web/docs/introduction/introduction.md index a4a229eebc..43da634178 100644 --- a/web/docs/introduction/introduction.md +++ b/web/docs/introduction/introduction.md @@ -55,7 +55,7 @@ Let's give our app a title and let's immediately turn on the full-stack authenti ```wasp title="main.wasp" app RecipeApp { title: "My Recipes", - wasp: { version: "^0.13.0" }, + wasp: { version: "^0.14.0" }, auth: { methods: { usernameAndPassword: {} }, onAuthFailedRedirectTo: "/login", diff --git a/web/docs/migrate-from-0-13-to-0-14.md b/web/docs/migrate-from-0-13-to-0-14.md index a49503fd7e..97bd5fd064 100644 --- a/web/docs/migrate-from-0-13-to-0-14.md +++ b/web/docs/migrate-from-0-13-to-0-14.md @@ -50,7 +50,7 @@ psl=} ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "MyApp", } diff --git a/web/docs/project/customizing-app.md b/web/docs/project/customizing-app.md index 1d569a4329..31c262f8e6 100644 --- a/web/docs/project/customizing-app.md +++ b/web/docs/project/customizing-app.md @@ -9,7 +9,7 @@ Each Wasp project can have only one `app` type declaration. It is used to config ```wasp app todoApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "ToDo App", head: [ @@ -27,7 +27,7 @@ You may want to change the title of your app, which appears in the browser tab, ```wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "BookFace" } @@ -42,7 +42,7 @@ An example of adding extra style sheets and scripts: ```wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", head: [ // optional @@ -58,7 +58,7 @@ app myApp { ```wasp app todoApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "ToDo App", head: [ diff --git a/web/docs/tutorial/03-pages.md b/web/docs/tutorial/03-pages.md index bfd25672ae..bfea88d2ec 100644 --- a/web/docs/tutorial/03-pages.md +++ b/web/docs/tutorial/03-pages.md @@ -194,7 +194,7 @@ Your Wasp file should now look like this: ```wasp title="main.wasp" app TodoApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "TodoApp" } @@ -211,7 +211,7 @@ page MainPage { ```wasp title="main.wasp" app TodoApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "TodoApp" } diff --git a/web/docs/tutorial/07-auth.md b/web/docs/tutorial/07-auth.md index 9f40d819ca..d4736bf0d5 100644 --- a/web/docs/tutorial/07-auth.md +++ b/web/docs/tutorial/07-auth.md @@ -38,7 +38,7 @@ Next, tell Wasp to use full-stack [authentication](../auth/overview): ```wasp title="main.wasp" app TodoApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, // highlight-start title: "TodoApp", diff --git a/web/versioned_docs/version-0.14.0/auth/auth-hooks.md b/web/versioned_docs/version-0.14.0/auth/auth-hooks.md index 86476ad28f..95aa6b3e72 100644 --- a/web/versioned_docs/version-0.14.0/auth/auth-hooks.md +++ b/web/versioned_docs/version-0.14.0/auth/auth-hooks.md @@ -40,7 +40,7 @@ To use auth hooks, you must first declare them in the Wasp file: ```wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, auth: { userEntity: User, @@ -59,7 +59,7 @@ app myApp { ```wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, auth: { userEntity: User, @@ -349,7 +349,7 @@ Read more about the data the `onBeforeOAuthRedirect` hook receives in the [API R ```wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, auth: { userEntity: User, @@ -368,7 +368,7 @@ app myApp { ```wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, auth: { userEntity: User, diff --git a/web/versioned_docs/version-0.14.0/auth/email.md b/web/versioned_docs/version-0.14.0/auth/email.md index c5e48fcf48..90feb806ce 100644 --- a/web/versioned_docs/version-0.14.0/auth/email.md +++ b/web/versioned_docs/version-0.14.0/auth/email.md @@ -49,7 +49,7 @@ Let's start with adding the following to our `main.wasp` file: ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -83,7 +83,7 @@ app myApp { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { diff --git a/web/versioned_docs/version-0.14.0/auth/social-auth/github.md b/web/versioned_docs/version-0.14.0/auth/social-auth/github.md index 17df1f516a..bdb54c83ed 100644 --- a/web/versioned_docs/version-0.14.0/auth/social-auth/github.md +++ b/web/versioned_docs/version-0.14.0/auth/social-auth/github.md @@ -43,7 +43,7 @@ Let's start by properly configuring the Auth object: ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -68,7 +68,7 @@ app myApp { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -276,7 +276,7 @@ Add `gitHub: {}` to the `auth.methods` dictionary to use it with default setting ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -296,7 +296,7 @@ app myApp { ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -374,7 +374,7 @@ For an up to date info about the data received from GitHub, please refer to the ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -421,7 +421,7 @@ export function getConfig() { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -489,7 +489,7 @@ When you receive the `user` object [on the client or the server](../overview.md# ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -513,7 +513,7 @@ app myApp { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { diff --git a/web/versioned_docs/version-0.14.0/auth/social-auth/google.md b/web/versioned_docs/version-0.14.0/auth/social-auth/google.md index 9be2c97150..69a7fbeaac 100644 --- a/web/versioned_docs/version-0.14.0/auth/social-auth/google.md +++ b/web/versioned_docs/version-0.14.0/auth/social-auth/google.md @@ -43,7 +43,7 @@ Let's start by properly configuring the Auth object: ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -66,7 +66,7 @@ app myApp { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -317,7 +317,7 @@ Add `google: {}` to the `auth.methods` dictionary to use it with default setting ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -337,7 +337,7 @@ app myApp { ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -400,7 +400,7 @@ For an up to date info about the data received from Google, please refer to the ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -447,7 +447,7 @@ export function getConfig() { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -515,7 +515,7 @@ When you receive the `user` object [on the client or the server](../overview.md# ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -539,7 +539,7 @@ app myApp { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { diff --git a/web/versioned_docs/version-0.14.0/auth/social-auth/keycloak.md b/web/versioned_docs/version-0.14.0/auth/social-auth/keycloak.md index d576b00ce1..ef241a1d96 100644 --- a/web/versioned_docs/version-0.14.0/auth/social-auth/keycloak.md +++ b/web/versioned_docs/version-0.14.0/auth/social-auth/keycloak.md @@ -42,7 +42,7 @@ Let's start by properly configuring the Auth object: ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -65,7 +65,7 @@ app myApp { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -283,7 +283,7 @@ Add `keycloak: {}` to the `auth.methods` dictionary to use it with default setti ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -303,7 +303,7 @@ app myApp { ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -359,7 +359,7 @@ For up-to-date info about the data received from Keycloak, please refer to the [ ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -406,7 +406,7 @@ export function getConfig() { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -474,7 +474,7 @@ When you receive the `user` object [on the client or the server](../overview.md# ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -498,7 +498,7 @@ app myApp { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { diff --git a/web/versioned_docs/version-0.14.0/auth/social-auth/overview.md b/web/versioned_docs/version-0.14.0/auth/social-auth/overview.md index 1244c91d16..35987b1d6d 100644 --- a/web/versioned_docs/version-0.14.0/auth/social-auth/overview.md +++ b/web/versioned_docs/version-0.14.0/auth/social-auth/overview.md @@ -36,7 +36,7 @@ Here's what the full setup looks like: ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -63,7 +63,7 @@ model User { ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -148,7 +148,7 @@ Declare an import under `app.auth.methods.google.userSignupFields` (the example ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -180,7 +180,7 @@ export const userSignupFields = { ```wasp title=main.wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { diff --git a/web/versioned_docs/version-0.14.0/auth/username-and-pass.md b/web/versioned_docs/version-0.14.0/auth/username-and-pass.md index 89f40ae925..9a731b9e40 100644 --- a/web/versioned_docs/version-0.14.0/auth/username-and-pass.md +++ b/web/versioned_docs/version-0.14.0/auth/username-and-pass.md @@ -44,7 +44,7 @@ Let's start with adding the following to our `main.wasp` file: ```wasp title="main.wasp" {11} app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -64,7 +64,7 @@ app myApp { ```wasp title="main.wasp" {11} app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -623,7 +623,7 @@ When you receive the `user` object [on the client or the server](./overview.md#a ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -647,7 +647,7 @@ model User { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -678,7 +678,7 @@ model User { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { @@ -699,7 +699,7 @@ app myApp { ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", auth: { diff --git a/web/versioned_docs/version-0.14.0/data-model/crud.md b/web/versioned_docs/version-0.14.0/data-model/crud.md index 122aaca18b..a2d62de2df 100644 --- a/web/versioned_docs/version-0.14.0/data-model/crud.md +++ b/web/versioned_docs/version-0.14.0/data-model/crud.md @@ -73,7 +73,7 @@ We can start by running `wasp new tasksCrudApp` and then adding the following to ```wasp title="main.wasp" app tasksCrudApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "Tasks Crud App", diff --git a/web/versioned_docs/version-0.14.0/introduction/introduction.md b/web/versioned_docs/version-0.14.0/introduction/introduction.md index a4a229eebc..43da634178 100644 --- a/web/versioned_docs/version-0.14.0/introduction/introduction.md +++ b/web/versioned_docs/version-0.14.0/introduction/introduction.md @@ -55,7 +55,7 @@ Let's give our app a title and let's immediately turn on the full-stack authenti ```wasp title="main.wasp" app RecipeApp { title: "My Recipes", - wasp: { version: "^0.13.0" }, + wasp: { version: "^0.14.0" }, auth: { methods: { usernameAndPassword: {} }, onAuthFailedRedirectTo: "/login", diff --git a/web/versioned_docs/version-0.14.0/migrate-from-0-13-to-0-14.md b/web/versioned_docs/version-0.14.0/migrate-from-0-13-to-0-14.md index a49503fd7e..97bd5fd064 100644 --- a/web/versioned_docs/version-0.14.0/migrate-from-0-13-to-0-14.md +++ b/web/versioned_docs/version-0.14.0/migrate-from-0-13-to-0-14.md @@ -50,7 +50,7 @@ psl=} ```wasp title="main.wasp" app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "MyApp", } diff --git a/web/versioned_docs/version-0.14.0/project/customizing-app.md b/web/versioned_docs/version-0.14.0/project/customizing-app.md index 1d569a4329..31c262f8e6 100644 --- a/web/versioned_docs/version-0.14.0/project/customizing-app.md +++ b/web/versioned_docs/version-0.14.0/project/customizing-app.md @@ -9,7 +9,7 @@ Each Wasp project can have only one `app` type declaration. It is used to config ```wasp app todoApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "ToDo App", head: [ @@ -27,7 +27,7 @@ You may want to change the title of your app, which appears in the browser tab, ```wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "BookFace" } @@ -42,7 +42,7 @@ An example of adding extra style sheets and scripts: ```wasp app myApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "My App", head: [ // optional @@ -58,7 +58,7 @@ app myApp { ```wasp app todoApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "ToDo App", head: [ diff --git a/web/versioned_docs/version-0.14.0/tutorial/03-pages.md b/web/versioned_docs/version-0.14.0/tutorial/03-pages.md index bfd25672ae..bfea88d2ec 100644 --- a/web/versioned_docs/version-0.14.0/tutorial/03-pages.md +++ b/web/versioned_docs/version-0.14.0/tutorial/03-pages.md @@ -194,7 +194,7 @@ Your Wasp file should now look like this: ```wasp title="main.wasp" app TodoApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "TodoApp" } @@ -211,7 +211,7 @@ page MainPage { ```wasp title="main.wasp" app TodoApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, title: "TodoApp" } diff --git a/web/versioned_docs/version-0.14.0/tutorial/07-auth.md b/web/versioned_docs/version-0.14.0/tutorial/07-auth.md index 9f40d819ca..d4736bf0d5 100644 --- a/web/versioned_docs/version-0.14.0/tutorial/07-auth.md +++ b/web/versioned_docs/version-0.14.0/tutorial/07-auth.md @@ -38,7 +38,7 @@ Next, tell Wasp to use full-stack [authentication](../auth/overview): ```wasp title="main.wasp" app TodoApp { wasp: { - version: "^0.13.0" + version: "^0.14.0" }, // highlight-start title: "TodoApp", From dd837835a9937a1c9ab82c9643aafd63d277b10c Mon Sep 17 00:00:00 2001 From: Mihovil Ilakovac Date: Tue, 27 Aug 2024 12:27:26 +0200 Subject: [PATCH 11/12] Fix onBeforeLogin hook params (#2254) --- .../templates/sdk/wasp/server/auth/hooks.ts | 4 +++ .../server/src/auth/providers/oauth/user.ts | 14 ++++++---- .../waspComplexTest/.wasp/out/.waspchecksums | 4 +-- .../out/sdk/wasp/dist/server/auth/hooks.d.ts | 4 +++ .../.wasp/out/sdk/wasp/server/auth/hooks.ts | 4 +++ .../server/src/auth/providers/oauth/user.ts | 14 ++++++---- web/docs/auth/auth-hooks.md | 27 ++++++++----------- 7 files changed, 43 insertions(+), 28 deletions(-) diff --git a/waspc/data/Generator/templates/sdk/wasp/server/auth/hooks.ts b/waspc/data/Generator/templates/sdk/wasp/server/auth/hooks.ts index 6b5824dec8..67b1f2431c 100644 --- a/waspc/data/Generator/templates/sdk/wasp/server/auth/hooks.ts +++ b/waspc/data/Generator/templates/sdk/wasp/server/auth/hooks.ts @@ -97,6 +97,10 @@ type OnBeforeLoginHookParams = { * Provider ID object that contains the provider name and the provide user ID. */ providerId: ProviderId + /** + * User that is trying to log in. + */ + user: Awaited>['user'] /** * Request object that can be used to access the incoming request. */ diff --git a/waspc/data/Generator/templates/server/src/auth/providers/oauth/user.ts b/waspc/data/Generator/templates/server/src/auth/providers/oauth/user.ts index 5733fb8943..799e615439 100644 --- a/waspc/data/Generator/templates/server/src/auth/providers/oauth/user.ts +++ b/waspc/data/Generator/templates/server/src/auth/providers/oauth/user.ts @@ -81,17 +81,21 @@ async function getAuthIdFromProviderDetails({ if (existingAuthIdentity) { const authId = existingAuthIdentity.{= authFieldOnAuthIdentityEntityName =}.id + // NOTE: Fetching the user to pass it to the login hooks - it's a bit wasteful + // but we wanted to keep the onAfterLoginHook params consistent for all auth providers. + const auth = await findAuthWithUserBy({ id: authId }) + // NOTE: We are calling login hooks here even though we didn't log in the user yet. // It's because we have access to the OAuth tokens here and we want to pass them to the hooks. // We could have stored the tokens temporarily and called the hooks after the session is created, // but this keeps the implementation simpler. // The downside of this approach is that we can't provide the session to the login hooks, but this is // an okay trade-off because OAuth tokens are more valuable to users than the session ID. - await onBeforeLoginHook({ req, providerId }) - - // NOTE: Fetching the user to pass it to the onAfterLoginHook - it's a bit wasteful - // but we wanted to keep the onAfterLoginHook params consistent for all auth providers. - const auth = await findAuthWithUserBy({ id: authId }) + await onBeforeLoginHook({ + req, + providerId, + user: auth.user, + }) // NOTE: check the comment above onBeforeLoginHook for the explanation why we call onAfterLoginHook here. await onAfterLoginHook({ diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/.waspchecksums b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/.waspchecksums index d935f01b32..0d9eb6a1ec 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/.waspchecksums +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/.waspchecksums @@ -529,7 +529,7 @@ "file", "../out/sdk/wasp/server/auth/hooks.ts" ], - "1112920618b85e793ed676fd2987cf1dde59820e9a3a58bc43208f86c752b3a2" + "1626df1c652b4f5d5f6a64c6537bae422243e62c867e668c16968738fd9637b1" ], [ [ @@ -977,7 +977,7 @@ "file", "server/src/auth/providers/oauth/user.ts" ], - "088acfe21e47d5a4a68faefa898c0174529e1b5a76dd86d32a0fce7d2a781f44" + "0798bdc8635f62e693d7bb4df5ab5ee4ec08a59b43cee3ce14094fd9ae19c89e" ], [ [ diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/hooks.d.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/hooks.d.ts index 866269e469..fe3999de1d 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/hooks.d.ts +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/server/auth/hooks.d.ts @@ -68,6 +68,10 @@ type OnBeforeLoginHookParams = { * Provider ID object that contains the provider name and the provide user ID. */ providerId: ProviderId; + /** + * User that is trying to log in. + */ + user: Awaited>['user']; /** * Request object that can be used to access the incoming request. */ diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/hooks.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/hooks.ts index af64f6df9d..bb61fe8b95 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/hooks.ts +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/server/auth/hooks.ts @@ -96,6 +96,10 @@ type OnBeforeLoginHookParams = { * Provider ID object that contains the provider name and the provide user ID. */ providerId: ProviderId + /** + * User that is trying to log in. + */ + user: Awaited>['user'] /** * Request object that can be used to access the incoming request. */ diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/user.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/user.ts index 88c2c33eac..c252b60f1a 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/user.ts +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/auth/providers/oauth/user.ts @@ -80,17 +80,21 @@ async function getAuthIdFromProviderDetails({ if (existingAuthIdentity) { const authId = existingAuthIdentity.auth.id + // NOTE: Fetching the user to pass it to the login hooks - it's a bit wasteful + // but we wanted to keep the onAfterLoginHook params consistent for all auth providers. + const auth = await findAuthWithUserBy({ id: authId }) + // NOTE: We are calling login hooks here even though we didn't log in the user yet. // It's because we have access to the OAuth tokens here and we want to pass them to the hooks. // We could have stored the tokens temporarily and called the hooks after the session is created, // but this keeps the implementation simpler. // The downside of this approach is that we can't provide the session to the login hooks, but this is // an okay trade-off because OAuth tokens are more valuable to users than the session ID. - await onBeforeLoginHook({ req, providerId }) - - // NOTE: Fetching the user to pass it to the onAfterLoginHook - it's a bit wasteful - // but we wanted to keep the onAfterLoginHook params consistent for all auth providers. - const auth = await findAuthWithUserBy({ id: authId }) + await onBeforeLoginHook({ + req, + providerId, + user: auth.user, + }) // NOTE: check the comment above onBeforeLoginHook for the explanation why we call onAfterLoginHook here. await onAfterLoginHook({ diff --git a/web/docs/auth/auth-hooks.md b/web/docs/auth/auth-hooks.md index 2ae1e8ed6a..69937590ef 100644 --- a/web/docs/auth/auth-hooks.md +++ b/web/docs/auth/auth-hooks.md @@ -309,12 +309,7 @@ app myApp { ``` ```js title="src/auth/hooks.js" -export const onBeforeOAuthRedirect = async ({ - url, - oauth, - prisma, - req, -}) => { +export const onBeforeOAuthRedirect = async ({ url, oauth, prisma, req }) => { console.log('query params before oAuth redirect', req.query) // Saving query params for later use in onAfterSignup or onAfterLogin hooks @@ -388,7 +383,7 @@ app myApp { ```js title="src/auth/hooks.js" import { HttpError } from 'wasp/server' -export const onBeforeLogin = async ({ providerId, prisma, req }) => { +export const onBeforeLogin = async ({ providerId, user, prisma, req }) => { if ( providerId.providerName === 'email' && providerId.providerUserId === 'some@email.com' @@ -417,6 +412,7 @@ import type { OnBeforeLoginHook } from 'wasp/server/auth' export const onBeforeLogin: OnBeforeLoginHook = async ({ providerId, + user, prisma, req, }) => { @@ -733,12 +729,7 @@ Wasp ignores this hook's **return value**. ```js title="src/auth/hooks.js" -export const onBeforeOAuthRedirect = async ({ - url, - oauth, - prisma, - req, -}) => { +export const onBeforeOAuthRedirect = async ({ url, oauth, prisma, req }) => { // Hook code goes here return { url } @@ -776,11 +767,11 @@ The hook receives an object as **input** with the following properties: The `oauth` object has the following fields: - - `uniqueRequestId: string` + - `uniqueRequestId: string` - The unique request ID for the OAuth flow (you might know it as the `state` parameter in OAuth.) + The unique request ID for the OAuth flow (you might know it as the `state` parameter in OAuth.) - You can use the unique request ID to save data (e.g. request query params) that you can later use in the `onAfterSignup` or `onAfterLogin` hooks. + You can use the unique request ID to save data (e.g. request query params) that you can later use in the `onAfterSignup` or `onAfterLogin` hooks. - Plus the [common hook input](#common-hook-input) @@ -819,6 +810,10 @@ The hook receives an object as **input** with the following properties: - [`providerId: ProviderId`](#providerid-fields) +- `user: User` + + The user that is trying to log in. + - Plus the [common hook input](#common-hook-input) Wasp ignores this hook's **return value**. From ccc652ebfbbc47638519be0c41a55d4531721bbd Mon Sep 17 00:00:00 2001 From: Mihovil Ilakovac Date: Tue, 27 Aug 2024 14:39:06 +0200 Subject: [PATCH 12/12] Prepare 0.14.1 Wasp version (#2252) --- waspc/ChangeLog.md | 22 + .../waspBuild-golden/waspBuild/main.wasp | 2 +- .../waspCompile-golden/waspCompile/main.wasp | 2 +- .../waspComplexTest/main.wasp | 2 +- .../waspJob-golden/waspJob/main.wasp | 2 +- .../waspMigrate-golden/waspMigrate/main.wasp | 2 +- .../waspNew-golden/waspNew/main.wasp | 2 +- waspc/waspc.cabal | 2 +- web/docs/data-model/entities.md | 2 +- .../version-0.14.0/auth/auth-hooks.md | 544 +++++++++++++++--- .../version-0.14.0/auth/username-and-pass.md | 2 +- 11 files changed, 480 insertions(+), 104 deletions(-) diff --git a/waspc/ChangeLog.md b/waspc/ChangeLog.md index ff5c907542..3ee26f32fc 100644 --- a/waspc/ChangeLog.md +++ b/waspc/ChangeLog.md @@ -1,5 +1,27 @@ # Changelog +## 0.14.1 (2024-08-26) + +### 🎉 New Features + +- Wasp now supports `onBeforeLogin` and `onAfterLogin` auth hooks! You can use these hooks to run custom logic before and after a user logs in. For example, you can use the `onBeforeLogin` hook to check if the user is allowed to log in. +- OAuth refresh tokens are here. If the OAuth provider supports refresh tokens, you'll be able to use them to refresh the access token when it expires. This is useful for using OAuth provider APIs in the background e.g. accessing user's calendar events. + +### ⚠️ Breaking Changes + +- To make the API consistent across different auth hooks, we change how the `onBeforeOAuthRedirect` hook receives the `uniqueRequestId` value to `oauth.uniqueRequestId`. + +### 🐞 Bug fixes + +- Prisma file parser now allows using empty arrays as default values. + +### 🔧 Small improvements + +- Replace `oslo/password` with directly using `@node-rs/argon2` +- We now use `websocket` transport for the WebSocket client to avoid issues when deploying the server behind a load balancer. + +Community contributions by @rubyisrust @santolucito @sezercik @LLxD! + ## 0.14.0 (2024-07-17) ### 🎉 New Features diff --git a/waspc/e2e-test/test-outputs/waspBuild-golden/waspBuild/main.wasp b/waspc/e2e-test/test-outputs/waspBuild-golden/waspBuild/main.wasp index eb7c32e2d1..1d5e7fc6a1 100644 --- a/waspc/e2e-test/test-outputs/waspBuild-golden/waspBuild/main.wasp +++ b/waspc/e2e-test/test-outputs/waspBuild-golden/waspBuild/main.wasp @@ -1,6 +1,6 @@ app waspBuild { wasp: { - version: "^0.14.0" + version: "^0.14.1" }, title: "waspBuild" } diff --git a/waspc/e2e-test/test-outputs/waspCompile-golden/waspCompile/main.wasp b/waspc/e2e-test/test-outputs/waspCompile-golden/waspCompile/main.wasp index 925dc6c4fe..6e0a63a5de 100644 --- a/waspc/e2e-test/test-outputs/waspCompile-golden/waspCompile/main.wasp +++ b/waspc/e2e-test/test-outputs/waspCompile-golden/waspCompile/main.wasp @@ -1,6 +1,6 @@ app waspCompile { wasp: { - version: "^0.14.0" + version: "^0.14.1" }, title: "waspCompile" } diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/main.wasp b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/main.wasp index 91b9f55274..4148dd52a2 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/main.wasp +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/main.wasp @@ -1,6 +1,6 @@ app waspComplexTest { wasp: { - version: "^0.14.0" + version: "^0.14.1" }, auth: { userEntity: User, diff --git a/waspc/e2e-test/test-outputs/waspJob-golden/waspJob/main.wasp b/waspc/e2e-test/test-outputs/waspJob-golden/waspJob/main.wasp index 8e24bfcb6f..1deb5bca3a 100644 --- a/waspc/e2e-test/test-outputs/waspJob-golden/waspJob/main.wasp +++ b/waspc/e2e-test/test-outputs/waspJob-golden/waspJob/main.wasp @@ -1,6 +1,6 @@ app waspJob { wasp: { - version: "^0.14.0" + version: "^0.14.1" }, title: "waspJob" } diff --git a/waspc/e2e-test/test-outputs/waspMigrate-golden/waspMigrate/main.wasp b/waspc/e2e-test/test-outputs/waspMigrate-golden/waspMigrate/main.wasp index 79f0eb6743..d2692a3560 100644 --- a/waspc/e2e-test/test-outputs/waspMigrate-golden/waspMigrate/main.wasp +++ b/waspc/e2e-test/test-outputs/waspMigrate-golden/waspMigrate/main.wasp @@ -1,6 +1,6 @@ app waspMigrate { wasp: { - version: "^0.14.0" + version: "^0.14.1" }, title: "waspMigrate" } diff --git a/waspc/e2e-test/test-outputs/waspNew-golden/waspNew/main.wasp b/waspc/e2e-test/test-outputs/waspNew-golden/waspNew/main.wasp index 40033d108b..5ea5f45250 100644 --- a/waspc/e2e-test/test-outputs/waspNew-golden/waspNew/main.wasp +++ b/waspc/e2e-test/test-outputs/waspNew-golden/waspNew/main.wasp @@ -1,6 +1,6 @@ app waspNew { wasp: { - version: "^0.14.0" + version: "^0.14.1" }, title: "waspNew" } diff --git a/waspc/waspc.cabal b/waspc/waspc.cabal index 2515e921d0..1560cc70c6 100644 --- a/waspc/waspc.cabal +++ b/waspc/waspc.cabal @@ -6,7 +6,7 @@ cabal-version: 2.4 -- Consider using hpack, or maybe even hpack-dhall. name: waspc -version: 0.14.0 +version: 0.14.1 description: Please see the README on GitHub at homepage: https://github.com/wasp-lang/wasp/waspc#readme bug-reports: https://github.com/wasp-lang/wasp/issues diff --git a/web/docs/data-model/entities.md b/web/docs/data-model/entities.md index 77994e92fc..37b2b5a1c4 100644 --- a/web/docs/data-model/entities.md +++ b/web/docs/data-model/entities.md @@ -99,7 +99,7 @@ Entity types are available everywhere, including the client code: ```ts import { Task } from "wasp/entities" -export function ExamplePage() {} +export function ExamplePage() { const task: Task = { id: 123, description: "Some random task", diff --git a/web/versioned_docs/version-0.14.0/auth/auth-hooks.md b/web/versioned_docs/version-0.14.0/auth/auth-hooks.md index 95aa6b3e72..69937590ef 100644 --- a/web/versioned_docs/version-0.14.0/auth/auth-hooks.md +++ b/web/versioned_docs/version-0.14.0/auth/auth-hooks.md @@ -4,17 +4,21 @@ title: Auth Hooks import { EmailPill, UsernameAndPasswordPill, GithubPill, GooglePill, KeycloakPill, DiscordPill } from "./Pills"; import ImgWithCaption from '@site/blog/components/ImgWithCaption' +import { ShowForTs } from '@site/src/components/TsJsHelpers' Auth hooks allow you to "hook into" the auth process at various stages and run your custom code. For example, if you want to forbid certain emails from signing up, or if you wish to send a welcome email to the user after they sign up, auth hooks are the way to go. ## Supported hooks The following auth hooks are available in Wasp: + - [`onBeforeSignup`](#executing-code-before-the-user-signs-up) - [`onAfterSignup`](#executing-code-after-the-user-signs-up) - [`onBeforeOAuthRedirect`](#executing-code-before-the-oauth-redirect) +- [`onBeforeLogin`](#executing-code-before-the-user-logs-in) +- [`onAfterLogin`](#executing-code-after-the-user-logs-in) -We'll go through each of these hooks in detail. But first, let's see how the hooks fit into the signup flow: +We'll go through each of these hooks in detail. But first, let's see how the hooks fit into the auth flows: -If you are using OAuth, the flow includes extra steps before the signup flow: + + + + +\* When using the OAuth auth providers, the login hooks are both called before the session is created but the session is created quickly afterward, so it shouldn't make any difference in practice. + + +If you are using OAuth, the flow includes extra steps before the auth flow: @@ -69,9 +87,12 @@ app myApp { onBeforeSignup: import { onBeforeSignup } from "@src/auth/hooks", onAfterSignup: import { onAfterSignup } from "@src/auth/hooks", onBeforeOAuthRedirect: import { onBeforeOAuthRedirect } from "@src/auth/hooks", + onBeforeLogin: import { onBeforeLogin } from "@src/auth/hooks", + onAfterLogin: import { onAfterLogin } from "@src/auth/hooks", }, } ``` + @@ -105,11 +126,7 @@ app myApp { ```js title="src/auth/hooks.js" import { HttpError } from 'wasp/server' -export const onBeforeSignup = async ({ - providerId, - prisma, - req, -}) => { +export const onBeforeSignup = async ({ providerId, prisma, req }) => { const count = await prisma.user.count() console.log('number of users before', count) console.log('provider name', providerId.providerName) @@ -119,7 +136,10 @@ export const onBeforeSignup = async ({ throw new HttpError(403, 'Too many users') } - if (providerId.providerName === 'email' && providerId.providerUserId === 'some@email.com') { + if ( + providerId.providerName === 'email' && + providerId.providerUserId === 'some@email.com' + ) { throw new HttpError(403, 'This email is not allowed') } } @@ -156,7 +176,10 @@ export const onBeforeSignup: OnBeforeSignupHook = async ({ throw new HttpError(403, 'Too many users') } - if (providerId.providerName === 'email' && providerId.providerUserId === 'some@email.com') { + if ( + providerId.providerName === 'email' && + providerId.providerUserId === 'some@email.com' + ) { throw new HttpError(403, 'This email is not allowed') } } @@ -173,7 +196,7 @@ Wasp calls the `onAfterSignup` hook after the user is created. The `onAfterSignup` hook can be useful if you want to send the user a welcome email or perform some other action after the user signs up like syncing the user with a third-party service. -Since the `onAfterSignup` hook receives the OAuth access token, it can also be used to store the OAuth access token for the user in your database. +Since the `onAfterSignup` hook receives the OAuth tokens, you can use this hook to store the OAuth access token and/or [refresh token](#refreshing-the-oauth-access-token) in your database. Works with @@ -202,9 +225,9 @@ export const onAfterSignup = async ({ console.log('number of users after', count) console.log('user object', user) - // If this is an OAuth signup, we have the access token and uniqueRequestId + // If this is an OAuth signup, you have access to the OAuth tokens and the uniqueRequestId if (oauth) { - console.log('accessToken', oauth.accessToken) + console.log('accessToken', oauth.tokens.accessToken) console.log('uniqueRequestId', oauth.uniqueRequestId) const id = oauth.uniqueRequestId @@ -244,9 +267,9 @@ export const onAfterSignup: OnAfterSignupHook = async ({ console.log('number of users after', count) console.log('user object', user) - // If this is an OAuth signup, we have the access token and uniqueRequestId + // If this is an OAuth signup, you have access to the OAuth tokens and the uniqueRequestId if (oauth) { - console.log('accessToken', oauth.accessToken) + console.log('accessToken', oauth.tokens.accessToken) console.log('uniqueRequestId', oauth.uniqueRequestId) const id = oauth.uniqueRequestId @@ -268,7 +291,7 @@ Read more about the data the `onAfterSignup` hook receives in the [API Reference Wasp calls the `onBeforeOAuthRedirect` hook after the OAuth redirect URL is generated but before redirecting the user. This hook can access the request object sent from the client at the start of the OAuth process. -The `onBeforeOAuthRedirect` hook can be useful if you want to save some data (e.g. request query parameters) that can be used later in the OAuth flow. You can use the `uniqueRequestId` parameter to reference this data later in the `onAfterSignup` hook. +The `onBeforeOAuthRedirect` hook can be useful if you want to save some data (e.g. request query parameters) that you can use later in the OAuth flow. You can use the `uniqueRequestId` parameter to reference this data later in the `onAfterSignup` or `onAfterLogin` hooks. Works with @@ -286,16 +309,11 @@ app myApp { ``` ```js title="src/auth/hooks.js" -export const onBeforeOAuthRedirect = async ({ - url, - uniqueRequestId, - prisma, - req, -}) => { +export const onBeforeOAuthRedirect = async ({ url, oauth, prisma, req }) => { console.log('query params before oAuth redirect', req.query) - // Saving query params for later use in the onAfterSignup hook - const id = uniqueRequestId + // Saving query params for later use in onAfterSignup or onAfterLogin hooks + const id = oauth.uniqueRequestId someKindOfStore.set(id, req.query) return { url } @@ -320,14 +338,14 @@ import type { OnBeforeOAuthRedirectHook } from 'wasp/server/auth' export const onBeforeOAuthRedirect: OnBeforeOAuthRedirectHook = async ({ url, - uniqueRequestId, + oauth, prisma, req, }) => { console.log('query params before oAuth redirect', req.query) - // Saving query params for later use in the onAfterSignup hook - const id = uniqueRequestId + // Saving query params for later use in onAfterSignup or onAfterLogin hooks + const id = oauth.uniqueRequestId someKindOfStore.set(id, req.query) return { url } @@ -341,6 +359,222 @@ This hook's return value must be an object that looks like this: `{ url: URL }`. Read more about the data the `onBeforeOAuthRedirect` hook receives in the [API Reference](#the-onbeforeoauthredirect-hook). +### Executing code before the user logs in + +Wasp calls the `onBeforeLogin` hook before the user is logged in. + +The `onBeforeLogin` hook can be useful if you want to reject a user based on some criteria before they log in. + +Works with + + + + +```wasp title="main.wasp" +app myApp { + ... + auth: { + ... + onBeforeLogin: import { onBeforeLogin } from "@src/auth/hooks", + }, +} +``` + +```js title="src/auth/hooks.js" +import { HttpError } from 'wasp/server' + +export const onBeforeLogin = async ({ providerId, user, prisma, req }) => { + if ( + providerId.providerName === 'email' && + providerId.providerUserId === 'some@email.com' + ) { + throw new HttpError(403, 'You cannot log in with this email') + } +} +``` + + + + +```wasp title="main.wasp" +app myApp { + ... + auth: { + ... + onBeforeLogin: import { onBeforeLogin } from "@src/auth/hooks", + }, +} +``` + +```ts title="src/auth/hooks.ts" +import { HttpError } from 'wasp/server' +import type { OnBeforeLoginHook } from 'wasp/server/auth' + +export const onBeforeLogin: OnBeforeLoginHook = async ({ + providerId, + user, + prisma, + req, +}) => { + if ( + providerId.providerName === 'email' && + providerId.providerUserId === 'some@email.com' + ) { + throw new HttpError(403, 'You cannot log in with this email') + } +} +``` + + + + +Read more about the data the `onBeforeLogin` hook receives in the [API Reference](#the-onbeforelogin-hook). + +### Executing code after the user logs in + +Wasp calls the `onAfterLogin` hook after the user logs in. + +The `onAfterLogin` hook can be useful if you want to perform some action after the user logs in, like syncing the user with a third-party service. + +Since the `onAfterLogin` hook receives the OAuth tokens, you can use it to update the OAuth access token for the user in your database. You can also use it to [refresh the OAuth access token](#refreshing-the-oauth-access-token) if the provider supports it. + +Works with + + + + +```wasp title="main.wasp" +app myApp { + ... + auth: { + ... + onAfterLogin: import { onAfterLogin } from "@src/auth/hooks", + }, +} +``` + +```js title="src/auth/hooks.js" +export const onAfterLogin = async ({ + providerId, + user, + oauth, + prisma, + req, +}) => { + console.log('user object', user) + + // If this is an OAuth signup, you have access to the OAuth tokens and the uniqueRequestId + if (oauth) { + console.log('accessToken', oauth.tokens.accessToken) + console.log('uniqueRequestId', oauth.uniqueRequestId) + + const id = oauth.uniqueRequestId + const data = someKindOfStore.get(id) + if (data) { + console.log('saved data for the ID', data) + } + someKindOfStore.delete(id) + } +} +``` + + + + +```wasp title="main.wasp" +app myApp { + ... + auth: { + ... + onAfterLogin: import { onAfterLogin } from "@src/auth/hooks", + }, +} +``` + +```ts title="src/auth/hooks.ts" +import type { OnAfterLoginHook } from 'wasp/server/auth' + +export const onAfterLogin: OnAfterLoginHook = async ({ + providerId, + user, + oauth, + prisma, + req, +}) => { + console.log('user object', user) + + // If this is an OAuth signup, you have access to the OAuth tokens and the uniqueRequestId + if (oauth) { + console.log('accessToken', oauth.tokens.accessToken) + console.log('uniqueRequestId', oauth.uniqueRequestId) + + const id = oauth.uniqueRequestId + const data = someKindOfStore.get(id) + if (data) { + console.log('saved data for the ID', data) + } + someKindOfStore.delete(id) + } +} +``` + + + + +Read more about the data the `onAfterLogin` hook receives in the [API Reference](#the-onafterlogin-hook). + +### Refreshing the OAuth access token + +Some OAuth providers support refreshing the access token when it expires. To refresh the access token, you need the OAuth **refresh token**. + +Wasp exposes the OAuth refresh token in the `onAfterSignup` and `onAfterLogin` hooks. You can store the refresh token in your database and use it to refresh the access token when it expires. + +Import the provider object with the OAuth client from the `wasp/server/oauth` module. For example, to refresh the Google OAuth access token, import the `google` object from the `wasp/server/oauth` module. You use the `refreshAccessToken` method of the OAuth client to refresh the access token. + +Here's an example of how you can refresh the access token for Google OAuth: + + + + + +```js title="src/auth/hooks.js" +import { google } from 'wasp/server/oauth' + +export const onAfterLogin = async ({ oauth }) => { + if (oauth.provider === 'google' && oauth.tokens.refreshToken !== null) { + const newTokens = await google.oAuthClient.refreshAccessToken( + oauth.tokens.refreshToken + ) + log('new tokens', newTokens) + } +} +``` + + + + + +```ts title="src/auth/hooks.ts" +import type { OnAfterLoginHook } from 'wasp/server/auth' +import { google } from 'wasp/server/oauth' + +export const onAfterLogin: OnAfterLoginHook = async ({ oauth }) => { + if (oauth.provider === 'google' && oauth.tokens.refreshToken !== null) { + const newTokens = await google.oAuthClient.refreshAccessToken( + oauth.tokens.refreshToken + ) + log('new tokens', newTokens) + } +} +``` + + + + +Google exposes the `accessTokenExpiresAt` field in the `oauth.tokens` object. You can use this field to determine when the access token expires. + +If you want to refresh the token periodically, use a [Wasp Job](../advanced/jobs.md). + ## API Reference @@ -359,9 +593,12 @@ app myApp { onBeforeSignup: import { onBeforeSignup } from "@src/auth/hooks", onAfterSignup: import { onAfterSignup } from "@src/auth/hooks", onBeforeOAuthRedirect: import { onBeforeOAuthRedirect } from "@src/auth/hooks", + onBeforeLogin: import { onBeforeLogin } from "@src/auth/hooks", + onAfterLogin: import { onAfterLogin } from "@src/auth/hooks", }, } ``` + @@ -378,26 +615,35 @@ app myApp { onBeforeSignup: import { onBeforeSignup } from "@src/auth/hooks", onAfterSignup: import { onAfterSignup } from "@src/auth/hooks", onBeforeOAuthRedirect: import { onBeforeOAuthRedirect } from "@src/auth/hooks", + onBeforeLogin: import { onBeforeLogin } from "@src/auth/hooks", + onAfterLogin: import { onAfterLogin } from "@src/auth/hooks", }, } ``` + +### Common hook input + +The following properties are available in all auth hooks: + +- `prisma: PrismaClient` + + The Prisma client instance which you can use to query your database. + +- `req: Request` + + The [Express request object](https://expressjs.com/en/api.html#req) from which you can access the request headers, cookies, etc. + ### The `onBeforeSignup` hook ```js title="src/auth/hooks.js" -import { HttpError } from 'wasp/server' - -export const onBeforeSignup = async ({ - providerId, - prisma, - req, -}) => { - // Hook code here +export const onBeforeSignup = async ({ providerId, prisma, req }) => { + // Hook code goes here } ``` @@ -405,7 +651,6 @@ export const onBeforeSignup = async ({ ```ts title="src/auth/hooks.ts" -import { HttpError } from 'wasp/server' import type { OnBeforeSignupHook } from 'wasp/server/auth' export const onBeforeSignup: OnBeforeSignupHook = async ({ @@ -413,7 +658,7 @@ export const onBeforeSignup: OnBeforeSignupHook = async ({ prisma, req, }) => { - // Hook code here + // Hook code goes here } ``` @@ -422,21 +667,9 @@ export const onBeforeSignup: OnBeforeSignupHook = async ({ The hook receives an object as **input** with the following properties: -- `providerId: ProviderId` - - The user's provider ID is an object with two properties: - - `providerName: string` - - The provider's name (e.g. `'email'`, `'google'`, `'github'`) - - `providerUserId: string` - - The user's unique ID in the provider's system (e.g. email, Google ID, GitHub ID) -- `prisma: PrismaClient` - - The Prisma client instance which you can use to query your database. -- `req: Request` +- [`providerId: ProviderId`](#providerid-fields) - The [Express request object](https://expressjs.com/en/api.html#req) from which you can access the request headers, cookies, etc. +- Plus the [common hook input](#common-hook-input) Wasp ignores this hook's **return value**. @@ -453,7 +686,7 @@ export const onAfterSignup = async ({ prisma, req, }) => { - // Hook code here + // Hook code goes here } ``` @@ -470,7 +703,7 @@ export const onAfterSignup: OnAfterSignupHook = async ({ prisma, req, }) => { - // Hook code here + // Hook code goes here } ``` @@ -478,36 +711,15 @@ export const onAfterSignup: OnAfterSignupHook = async ({ The hook receives an object as **input** with the following properties: -- `providerId: ProviderId` - - The user's provider ID is an object with two properties: - - `providerName: string` - - The provider's name (e.g. `'email'`, `'google'`, `'github'`) - - `providerUserId: string` - - The user's unique ID in the provider's system (e.g. email, Google ID, GitHub ID) + +- [`providerId: ProviderId`](#providerid-fields) - `user: User` - - The user object that was created. -- `oauth?: OAuthFields` - This object is present only when the user is created using [Social Auth](./social-auth/overview.md). - It contains the following fields: - - `accessToken: string` + The user object that was created. - You can use the OAuth access token to use the provider's API on user's behalf. - - `uniqueRequestId: string` - - The unique request ID for the OAuth flow (you might know it as the `state` parameter in OAuth.) - - You can use the unique request ID to get the data saved in the `onBeforeOAuthRedirect` hook. -- `prisma: PrismaClient` +- [`oauth?: OAuthFields`](#oauth-fields) - The Prisma client instance which you can use to query your database. -- `req: Request` - - The [Express request object](https://expressjs.com/en/api.html#req) from which you can access the request headers, cookies, etc. +- Plus the [common hook input](#common-hook-input) Wasp ignores this hook's **return value**. @@ -517,13 +729,8 @@ Wasp ignores this hook's **return value**. ```js title="src/auth/hooks.js" -export const onBeforeOAuthRedirect = async ({ - url, - uniqueRequestId, - prisma, - req, -}) => { - // Hook code here +export const onBeforeOAuthRedirect = async ({ url, oauth, prisma, req }) => { + // Hook code goes here return { url } } @@ -537,11 +744,11 @@ import type { OnBeforeOAuthRedirectHook } from 'wasp/server/auth' export const onBeforeOAuthRedirect: OnBeforeOAuthRedirectHook = async ({ url, - uniqueRequestId, + oauth, prisma, req, }) => { - // Hook code here + // Hook code goes here return { url } } @@ -551,19 +758,166 @@ export const onBeforeOAuthRedirect: OnBeforeOAuthRedirectHook = async ({ The hook receives an object as **input** with the following properties: + - `url: URL` - Wasp uses the URL for the OAuth redirect. -- `uniqueRequestId: string` + Wasp uses the URL for the OAuth redirect. + +- `oauth: { uniqueRequestId: string }` + + The `oauth` object has the following fields: + + - `uniqueRequestId: string` The unique request ID for the OAuth flow (you might know it as the `state` parameter in OAuth.) - You can use the unique request ID to save data (e.g. request query params) that you can later use in the `onAfterSignup` hook. -- `prisma: PrismaClient` - - The Prisma client instance which you can use to query your database. -- `req: Request` + You can use the unique request ID to save data (e.g. request query params) that you can later use in the `onAfterSignup` or `onAfterLogin` hooks. - The [Express request object](https://expressjs.com/en/api.html#req) from which you can access the request headers, cookies, etc. +- Plus the [common hook input](#common-hook-input) This hook's return value must be an object that looks like this: `{ url: URL }`. Wasp uses the URL to redirect the user to the OAuth provider. + +### The `onBeforeLogin` hook + + + + +```js title="src/auth/hooks.js" +export const onBeforeLogin = async ({ providerId, prisma, req }) => { + // Hook code goes here +} +``` + + + + +```ts title="src/auth/hooks.ts" +import type { OnBeforeLoginHook } from 'wasp/server/auth' + +export const onBeforeLogin: OnBeforeLoginHook = async ({ + providerId, + prisma, + req, +}) => { + // Hook code goes here +} +``` + + + + +The hook receives an object as **input** with the following properties: + +- [`providerId: ProviderId`](#providerid-fields) + +- `user: User` + + The user that is trying to log in. + +- Plus the [common hook input](#common-hook-input) + +Wasp ignores this hook's **return value**. + +### The `onAfterLogin` hook + + + + + +```js title="src/auth/hooks.js" +export const onAfterLogin = async ({ + providerId, + user, + oauth, + prisma, + req, +}) => { + // Hook code goes here +} +``` + + + + +```ts title="src/auth/hooks.ts" +import type { OnAfterLoginHook } from 'wasp/server/auth' + +export const onAfterLogin: OnAfterLoginHook = async ({ + providerId, + user, + oauth, + prisma, + req, +}) => { + // Hook code goes here +} +``` + + + + +The hook receives an object as **input** with the following properties: + +- [`providerId: ProviderId`](#providerid-fields) + +- `user: User` + + The logged-in user's object. + +- [`oauth?: OAuthFields`](#oauth-fields) + +- Plus the [common hook input](#common-hook-input) + +Wasp ignores this hook's **return value**. + +### ProviderId fields + +The `providerId` object represents the user for the current authentication method. Wasp passes it to the `onBeforeSignup`, `onAfterSignup`, `onBeforeLogin`, and `onAfterLogin` hooks. + +It has the following fields: + +- `providerName: string` + + The provider's name (e.g. `'email'`, `'google'`, `'github`) + +- `providerUserId: string` + + The user's unique ID in the provider's system (e.g. email, Google ID, GitHub ID) + +### OAuth fields + +Wasp passes the `oauth` object to the `onAfterSignup` and `onAfterLogin` hooks only when the user is authenticated with [Social Auth](./social-auth/overview.md). + +It has the following fields: + +- `providerName: string` + + The name of the OAuth provider the user authenticated with (e.g. `'google'`, `'github'`). + +- `tokens: Tokens` + + You can use the OAuth tokens to make requests to the provider's API on the user's behalf. + + Depending on the OAuth provider, the `tokens` object might have different fields. For example, Google has the fields `accessToken`, `refreshToken`, `idToken`, and `accessTokenExpiresAt`. + + + + To access the provider-specific fields, you must first narrow down the `oauth.tokens` object type to the specific OAuth provider type. + + ```ts + if (oauth && oauth.providerName === 'google') { + console.log(oauth.tokens.accessToken) + // ^ Google specific tokens are available here + console.log(oauth.tokens.refreshToken) + console.log(oauth.tokens.idToken) + console.log(oauth.tokens.accessTokenExpiresAt) + } + ``` + + + +- `uniqueRequestId: string` + + The unique request ID for the OAuth flow (you might know it as the `state` parameter in OAuth.) + + You can use the unique request ID to get the data that was saved in the `onBeforeOAuthRedirect` hook. diff --git a/web/versioned_docs/version-0.14.0/auth/username-and-pass.md b/web/versioned_docs/version-0.14.0/auth/username-and-pass.md index 9a731b9e40..5418f66e1a 100644 --- a/web/versioned_docs/version-0.14.0/auth/username-and-pass.md +++ b/web/versioned_docs/version-0.14.0/auth/username-and-pass.md @@ -522,7 +522,7 @@ export const signup = async (args, _context) => { // ... action customSignup { - fn: import { signup } from "@src/auth/signup.js", + fn: import { signup } from "@src/auth/signup", } ```

    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