diff --git a/opensaas-sh/app_diff/main.wasp.diff b/opensaas-sh/app_diff/main.wasp.diff
index f6fd37c2..a648f16c 100644
--- a/opensaas-sh/app_diff/main.wasp.diff
+++ b/opensaas-sh/app_diff/main.wasp.diff
@@ -1,7 +1,7 @@
--- template/app/main.wasp
+++ opensaas-sh/app/main.wasp
@@ -3,30 +3,29 @@
- version: "^0.15.0"
+ version: "^0.16.0"
},
- title: "My Open SaaS App",
diff --git a/opensaas-sh/app_diff/package-lock.json.diff b/opensaas-sh/app_diff/package-lock.json.diff
index 88565e56..1cdfa557 100644
--- a/opensaas-sh/app_diff/package-lock.json.diff
+++ b/opensaas-sh/app_diff/package-lock.json.diff
@@ -1,6 +1,6 @@
--- template/app/package-lock.json
+++ opensaas-sh/app/package-lock.json
-@@ -0,0 +1,11736 @@
+@@ -0,0 +1,11737 @@
+{
+ "name": "opensaas",
+ "lockfileVersion": 3,
@@ -31,6 +31,7 @@
+ "react-router-dom": "^6.26.2",
+ "stripe": "11.15.0",
+ "tailwind-merge": "^2.2.1",
++ "tailwindcss": "^3.2.7",
+ "vanilla-cookieconsent": "^3.0.1",
+ "wasp": "file:.wasp/out/sdk/wasp",
+ "zod": "^3.23.8"
@@ -61,7 +62,6 @@
+ "axios": "^1.4.0",
+ "express": "~4.21.0",
+ "jsdom": "^21.1.1",
-+ "lodash.merge": "^4.6.2",
+ "lucia": "^3.0.1",
+ "mitt": "3.0.0",
+ "msw": "^1.1.0",
@@ -74,7 +74,8 @@
+ "react-router-dom": "^6.26.2",
+ "superjson": "^2.2.1",
+ "tailwindcss": "^3.2.7",
-+ "vitest": "^1.2.1"
++ "vitest": "^1.2.1",
++ "zod": "^3.23.8"
+ },
+ "devDependencies": {
+ "@tsconfig/node18": "latest",
diff --git a/opensaas-sh/blog/src/content/docs/general/admin-dashboard.mdx b/opensaas-sh/blog/src/content/docs/general/admin-dashboard.mdx
index 7a86210e..7d92ac00 100644
--- a/opensaas-sh/blog/src/content/docs/general/admin-dashboard.mdx
+++ b/opensaas-sh/blog/src/content/docs/general/admin-dashboard.mdx
@@ -2,7 +2,7 @@
title: Admin Dashboard
banner:
content: |
- Open SaaS is now running on Wasp v0.15!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
+ Open SaaS is now running on Wasp v0.16!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
---
import { Image } from 'astro:assets';
import dbStudio from '@assets/stripe/db-studio.png';
diff --git a/opensaas-sh/blog/src/content/docs/general/user-overview.md b/opensaas-sh/blog/src/content/docs/general/user-overview.md
index b8d4b638..1edeb247 100644
--- a/opensaas-sh/blog/src/content/docs/general/user-overview.md
+++ b/opensaas-sh/blog/src/content/docs/general/user-overview.md
@@ -2,7 +2,7 @@
title: User Overview
banner:
content: |
- Open SaaS is now running on Wasp v0.15!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
+ Open SaaS is now running on Wasp v0.16!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
---
This reference will help you understand how the User entity works in this template.
diff --git a/opensaas-sh/blog/src/content/docs/guides/analytics.md b/opensaas-sh/blog/src/content/docs/guides/analytics.md
index db580d73..8dcf3cac 100644
--- a/opensaas-sh/blog/src/content/docs/guides/analytics.md
+++ b/opensaas-sh/blog/src/content/docs/guides/analytics.md
@@ -2,7 +2,7 @@
title: Analytics
banner:
content: |
- Open SaaS is now running on Wasp v0.15!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
+ Open SaaS is now running on Wasp v0.16!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
---
This guide will show you how to integrate analytics for your app. You can choose between [Google Analytics](#google-analytics) and [Plausible](#plausible).
diff --git a/opensaas-sh/blog/src/content/docs/guides/authentication.md b/opensaas-sh/blog/src/content/docs/guides/authentication.md
index 4a9c1a6a..779f5f2a 100644
--- a/opensaas-sh/blog/src/content/docs/guides/authentication.md
+++ b/opensaas-sh/blog/src/content/docs/guides/authentication.md
@@ -2,7 +2,7 @@
title: Authentication
banner:
content: |
- Open SaaS is now running on Wasp v0.15!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
+ Open SaaS is now running on Wasp v0.16!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
---
Setting up your app's authentication is easy with Wasp. In fact, it's already set up for you in the `main.wasp` file:
diff --git a/opensaas-sh/blog/src/content/docs/guides/authorization.md b/opensaas-sh/blog/src/content/docs/guides/authorization.md
index e5b67c88..781d39ef 100644
--- a/opensaas-sh/blog/src/content/docs/guides/authorization.md
+++ b/opensaas-sh/blog/src/content/docs/guides/authorization.md
@@ -2,7 +2,7 @@
title: Authorization
banner:
content: |
- Open SaaS is now running on Wasp v0.15!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
+ Open SaaS is now running on Wasp v0.16!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
---
This guide will help you get started with authorization in your SaaS app.
diff --git a/opensaas-sh/blog/src/content/docs/guides/cookie-consent.mdx b/opensaas-sh/blog/src/content/docs/guides/cookie-consent.mdx
index 769f3391..0fa63274 100644
--- a/opensaas-sh/blog/src/content/docs/guides/cookie-consent.mdx
+++ b/opensaas-sh/blog/src/content/docs/guides/cookie-consent.mdx
@@ -2,7 +2,7 @@
title: Cookie Consent Modal
banner:
content: |
- Open SaaS is now running on Wasp v0.15!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
+ Open SaaS is now running on Wasp v0.16!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
---
import { Image } from 'astro:assets';
import cookieBanner from '@assets/cookie-consent/cookiebanner.png';
diff --git a/opensaas-sh/blog/src/content/docs/guides/deploying.mdx b/opensaas-sh/blog/src/content/docs/guides/deploying.mdx
index 73195b8f..315260f8 100644
--- a/opensaas-sh/blog/src/content/docs/guides/deploying.mdx
+++ b/opensaas-sh/blog/src/content/docs/guides/deploying.mdx
@@ -2,7 +2,7 @@
title: Deploying
banner:
content: |
- Open SaaS is now running on Wasp v0.15!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
+ Open SaaS is now running on Wasp v0.16!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
---
import { Image } from 'astro:assets';
import npmVersion from '@assets/stripe/npm-version.png';
diff --git a/opensaas-sh/blog/src/content/docs/guides/email-sending.mdx b/opensaas-sh/blog/src/content/docs/guides/email-sending.mdx
index 07c1547d..980a7a59 100644
--- a/opensaas-sh/blog/src/content/docs/guides/email-sending.mdx
+++ b/opensaas-sh/blog/src/content/docs/guides/email-sending.mdx
@@ -2,7 +2,7 @@
title: Email Sending
banner:
content: |
- Open SaaS is now running on Wasp v0.15!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
+ Open SaaS is now running on Wasp v0.16!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
---
import { Tabs, TabItem } from '@astrojs/starlight/components';
diff --git a/opensaas-sh/blog/src/content/docs/guides/file-uploading.mdx b/opensaas-sh/blog/src/content/docs/guides/file-uploading.mdx
index 91987bf4..15448fae 100644
--- a/opensaas-sh/blog/src/content/docs/guides/file-uploading.mdx
+++ b/opensaas-sh/blog/src/content/docs/guides/file-uploading.mdx
@@ -2,7 +2,7 @@
title: File Uploading
banner:
content: |
- Open SaaS is now running on Wasp v0.15!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
+ Open SaaS is now running on Wasp v0.16!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
---
import { Image } from 'astro:assets';
import findS3 from '@assets/file-uploads/find-s3.png';
diff --git a/opensaas-sh/blog/src/content/docs/guides/payments-integration.mdx b/opensaas-sh/blog/src/content/docs/guides/payments-integration.mdx
index 915fda0a..e6e67a7c 100644
--- a/opensaas-sh/blog/src/content/docs/guides/payments-integration.mdx
+++ b/opensaas-sh/blog/src/content/docs/guides/payments-integration.mdx
@@ -2,7 +2,7 @@
title: Payments Integration
banner:
content: |
- Open SaaS is now running on Wasp v0.15!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
+ Open SaaS is now running on Wasp v0.16!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
---
import { Image } from 'astro:assets';
import testApiKeys from '@assets/stripe/api-keys.png';
diff --git a/opensaas-sh/blog/src/content/docs/guides/seo.mdx b/opensaas-sh/blog/src/content/docs/guides/seo.mdx
index 9278885c..c7137ff3 100644
--- a/opensaas-sh/blog/src/content/docs/guides/seo.mdx
+++ b/opensaas-sh/blog/src/content/docs/guides/seo.mdx
@@ -2,7 +2,7 @@
title: SEO
banner:
content: |
- Open SaaS is now running on Wasp v0.15!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
+ Open SaaS is now running on Wasp v0.16!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
---
import { Image } from 'astro:assets';
import openSaaSGoogle from '@assets/seo/open-saas-google.png';
diff --git a/opensaas-sh/blog/src/content/docs/guides/tests.md b/opensaas-sh/blog/src/content/docs/guides/tests.md
index 46e4b9fa..7b180a86 100644
--- a/opensaas-sh/blog/src/content/docs/guides/tests.md
+++ b/opensaas-sh/blog/src/content/docs/guides/tests.md
@@ -2,7 +2,7 @@
title: Tests
banner:
content: |
- Open SaaS is now running on Wasp v0.15!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
+ Open SaaS is now running on Wasp v0.16!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
---
This guide will show you how to use the included end-to-end (e2e) tests for your Open SaaS application.
diff --git a/opensaas-sh/blog/src/content/docs/index.mdx b/opensaas-sh/blog/src/content/docs/index.mdx
index 935cf909..d88f003f 100644
--- a/opensaas-sh/blog/src/content/docs/index.mdx
+++ b/opensaas-sh/blog/src/content/docs/index.mdx
@@ -2,7 +2,7 @@
title: Introduction
banner:
content: |
- Open SaaS is now running on Wasp v0.15!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
+ Open SaaS is now running on Wasp v0.16!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
---
import HiddenLLMHelper from '../../components/HiddenLLMHelper.astro';
diff --git a/opensaas-sh/blog/src/content/docs/start/getting-started.mdx b/opensaas-sh/blog/src/content/docs/start/getting-started.mdx
index 5cf55feb..cb1a13a2 100644
--- a/opensaas-sh/blog/src/content/docs/start/getting-started.mdx
+++ b/opensaas-sh/blog/src/content/docs/start/getting-started.mdx
@@ -2,7 +2,7 @@
title: Getting Started
banner:
content: |
- Open SaaS is now running on Wasp v0.15!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
+ Open SaaS is now running on Wasp v0.16!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
---
import VideoPlayer from '../../../components/VideoPlayer.astro';
diff --git a/opensaas-sh/blog/src/content/docs/start/guided-tour.md b/opensaas-sh/blog/src/content/docs/start/guided-tour.md
index 85113421..cf1c6298 100644
--- a/opensaas-sh/blog/src/content/docs/start/guided-tour.md
+++ b/opensaas-sh/blog/src/content/docs/start/guided-tour.md
@@ -2,7 +2,7 @@
title: Guided Tour
banner:
content: |
- Open SaaS is now running on Wasp v0.15!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
+ Open SaaS is now running on Wasp v0.16!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions.
---
Awesome, you now have your very own SaaS app up and running! But, first, here are some important things you need to know about your app in its current state:
diff --git a/template/app/.cursorrules b/template/app/.cursorrules
new file mode 100644
index 00000000..eee00945
--- /dev/null
+++ b/template/app/.cursorrules
@@ -0,0 +1,52 @@
+// Wasp Import Rules
+- Path to Wasp functions within .ts files must come from 'wasp', not '@wasp'!
+ ✓ import { Task } from 'wasp/entities'
+ ✓ import type { GetTasks } from 'wasp/server/operations'
+ ✓ import { getTasks, useQuery } from 'wasp/client/operations'
+ ✗ import { getTasks, useQuery } from '@wasp/...'
+ ✗ import { getTasks, useQuery } from '@src/feature/operations.ts'
+
+- Path to external imports within 'main.wasp' must start with "@src/"!
+ ✓ component: import { LoginPage } from "@src/client/pages/auth/LoginPage.tsx"
+ ✗ component: import { LoginPage } from "@client/pages/auth/LoginPage.tsx"
+- In the client's root component, use the Outlet component rather than children
+ ✓ import { Outlet } from 'react-router-dom';
+
+// Wasp DB Schema Rules
+- Add databse models to the 'schema.prisma' file, NOT to 'main.wasp' as "entities"
+- Do NOT add a db.system nor a db.prisma property to 'main.wasp'. This is taken care of in 'schema.prisma'
+- Keep the 'schema.prisma' within the root of the project
+
+// Wasp Operations
+- Types are generated automatically from the function definition in 'main.wasp',
+ ✓ import type { GetTimeLogs, CreateTimeLog, UpdateTimeLog } from 'wasp/server/operations'
+- Wasp also generates entity types based on the models in 'schema.prisma'
+ ✓ import type { Project, TimeLog } from 'wasp/entities'
+- Make sure that all Entities that should be included in the operations context are defined in its definition in 'main.wasp'
+ ✓ action createTimeLog { fn: import { createTimeLog } from "@src/server/timeLogs/operations.js", entities: [TimeLog, Project] }
+
+// Wasp Auth
+- When creating Auth pages, use the LoginForm and SignupForm components provided by Wasp
+ ✓ import { LoginForm } from 'wasp/client/auth'
+- Wasp takes care of creating the user's auth model id, username, and password for a user, so a user model DOES NOT need these properties
+ ✓ model User { id Int @id @default(autoincrement()) }
+
+// Wasp Dependencies
+- Do NOT add dependencies to 'main.wasp'
+- Install dependencies via 'npm install' instead
+
+// Wasp
+- Use the latest Wasp version, ^0.16.0
+- Always use typescript for Wasp code.
+- When creating Wasp operations (queries and actions) combine them into an operations.ts file within the feature directory rather than into separate queries.ts and actions.ts files
+
+// React
+- Use relative imports for other react components
+- If importing a function from an operations file, defer to the wasp import rules
+
+// CSS
+- Use Tailwind CSS for styling.
+- Do not use inline styles unless necessary
+
+// General
+- Use single quotes
\ No newline at end of file
diff --git a/template/app/main.wasp b/template/app/main.wasp
index aeb40379..6dd25fa3 100644
--- a/template/app/main.wasp
+++ b/template/app/main.wasp
@@ -1,6 +1,6 @@
app OpenSaaS {
wasp: {
- version: "^0.15.0"
+ version: "^0.16.0"
},
title: "My Open SaaS App",
diff --git a/template/app/tsconfig.json b/template/app/tsconfig.json
index 4932b229..d28eb469 100644
--- a/template/app/tsconfig.json
+++ b/template/app/tsconfig.json
@@ -5,6 +5,8 @@
// compiler. Proper TS compiler configuration in Wasp is coming soon :)
{
"compilerOptions": {
+ "composite": true,
+ "outDir": ".wasp/out/user",
"module": "esnext",
"target": "esnext",
// We're bundling all code in the end so this is the most appropriate option,
@@ -32,10 +34,5 @@
// Source 2: https://github.com/testing-library/jest-dom/issues/546#issuecomment-1889884843
"node_modules/@types"
],
- // Since this TS config is used only for IDE support and not for
- // compilation, the following directory doesn't exist. We need to specify
- // it to prevent this error:
- // https://stackoverflow.com/questions/42609768/typescript-error-cannot-write-file-because-it-would-overwrite-input-file
- "outDir": ".wasp/phantom"
}
}