diff --git a/LICENSE b/LICENSE
index 155a0737f..91d4584d3 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2022 ZenStack Full-stack Development Toolkit
+Copyright (c) 2022 ZenStack
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index f4ae3a8fa..a92b598dd 100644
--- a/README.md
+++ b/README.md
@@ -4,8 +4,18 @@
ZenStack
-
-
+
+
+
+
+
+
+
+
+
+
+
+
## What is ZenStack?
@@ -267,4 +277,5 @@ export const getServerSideProps: GetServerSideProps = async () => {
## Reach out to us for issues, feedback and ideas!
-[Discussions](../discussions) [Issues](../issues) [Discord]() [Twitter]()
+[Discord](https://discord.gg/dbuC9ZWc) [Twitter](https://twitter.com/zenstackhq)
+[Discussions](../discussions) [Issues](../issues)
diff --git a/package.json b/package.json
index 7881b1c16..273059010 100644
--- a/package.json
+++ b/package.json
@@ -1,11 +1,12 @@
{
"name": "zenstack-monorepo",
- "version": "1.0.0",
+ "version": "0.2.1",
"description": "",
"scripts": {
"build": "pnpm -r build",
"test": "pnpm -r test",
- "lint": "pnpm -r lint"
+ "lint": "pnpm -r lint",
+ "publish-all": "pnpm --filter \"./packages/**\" -r publish"
},
"keywords": [],
"author": "",
diff --git a/packages/internal/LICENSE.md b/packages/internal/LICENSE.md
new file mode 100644
index 000000000..91d4584d3
--- /dev/null
+++ b/packages/internal/LICENSE.md
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 ZenStack
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/packages/internal/README.md b/packages/internal/README.md
new file mode 100644
index 000000000..0ae3952f3
--- /dev/null
+++ b/packages/internal/README.md
@@ -0,0 +1,5 @@
+# ZenStack Internal Library
+
+This package is an internal library supporting web apps built using ZenStack.
+
+Visit [Homepage](https://github.com/zenstackhq/zenstack#readme) for more details.
diff --git a/packages/internal/package.json b/packages/internal/package.json
index b0f4b5ddf..b49b50cc8 100644
--- a/packages/internal/package.json
+++ b/packages/internal/package.json
@@ -1,6 +1,6 @@
{
"name": "@zenstackhq/internal",
- "version": "0.1.57",
+ "version": "0.2.1",
"displayName": "ZenStack Internal Library",
"description": "ZenStack internal runtime library. This package is for supporting runtime functionality of ZenStack and not supposed to be used directly.",
"repository": {
diff --git a/packages/runtime/LICENSE.md b/packages/runtime/LICENSE.md
new file mode 100644
index 000000000..91d4584d3
--- /dev/null
+++ b/packages/runtime/LICENSE.md
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 ZenStack
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/packages/runtime/README.md b/packages/runtime/README.md
new file mode 100644
index 000000000..453a79769
--- /dev/null
+++ b/packages/runtime/README.md
@@ -0,0 +1,5 @@
+# ZenStack Runtime Library
+
+This package is the runtime library supporting web apps built using ZenStack.
+
+Visit [Homepage](https://github.com/zenstackhq/zenstack#readme) for more details.
diff --git a/packages/runtime/package.json b/packages/runtime/package.json
index f21788dd2..d4af1d94e 100644
--- a/packages/runtime/package.json
+++ b/packages/runtime/package.json
@@ -1,7 +1,7 @@
{
"name": "@zenstackhq/runtime",
"displayName": "ZenStack Runtime Library",
- "version": "0.1.57",
+ "version": "0.2.1",
"description": "This package contains runtime library for consuming client and server side code generated by ZenStack.",
"repository": {
"type": "git",
diff --git a/packages/schema/.gitignore b/packages/schema/.gitignore
index fd13f0571..54e9b11ea 100644
--- a/packages/schema/.gitignore
+++ b/packages/schema/.gitignore
@@ -2,3 +2,4 @@
/tests/coverage/
/bundle
*.vsix
+/README.md
diff --git a/packages/schema/LICENSE.md b/packages/schema/LICENSE.md
index fc7c225b9..91d4584d3 100644
--- a/packages/schema/LICENSE.md
+++ b/packages/schema/LICENSE.md
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2022 ZenStack Language Tools
+Copyright (c) 2022 ZenStack
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/packages/schema/package.json b/packages/schema/package.json
index 11b4db2b9..ec43dc37a 100644
--- a/packages/schema/package.json
+++ b/packages/schema/package.json
@@ -3,7 +3,7 @@
"publisher": "zenstack",
"displayName": "ZenStack Language Tools",
"description": "ZenStack is a toolkit that simplifies full-stack development",
- "version": "0.1.57",
+ "version": "0.2.1",
"author": {
"name": "ZenStack Team"
},
@@ -77,7 +77,7 @@
"langium:watch": "langium generate --watch",
"watch": "concurrently --kill-others \"npm:langium:watch\" \"npm:bundle-watch\"",
"test": "jest",
- "prepublishOnly": "pnpm build && pnpm bundle"
+ "prepublishOnly": "cp ../../README.md ./ && pnpm build && pnpm bundle"
},
"dependencies": {
"@zenstackhq/internal": "workspace:*",
diff --git a/packages/schema/src/generator/prisma/prisma-builder.ts b/packages/schema/src/generator/prisma/prisma-builder.ts
index 8ac425da8..cec02bb06 100644
--- a/packages/schema/src/generator/prisma/prisma-builder.ts
+++ b/packages/schema/src/generator/prisma/prisma-builder.ts
@@ -101,7 +101,7 @@ export class Generator {
return (
`generator ${this.name} {\n` +
indentString(`provider = "${this.provider}"\n`) +
- indentString(`output = "${this.output}"\n`) +
+ indentString(`output = ${JSON.stringify(this.output)}\n`) +
(this.previewFeatures
? indentString(
`previewFeatures = [${this.previewFeatures
diff --git a/packages/schema/src/generator/prisma/schema-generator.ts b/packages/schema/src/generator/prisma/schema-generator.ts
index 907cebb33..6d85d38a9 100644
--- a/packages/schema/src/generator/prisma/schema-generator.ts
+++ b/packages/schema/src/generator/prisma/schema-generator.ts
@@ -144,7 +144,7 @@ export default class PrismaSchemaGenerator {
prisma.addGenerator(
'client',
'prisma-client-js',
- path.join('../', this.context.generatedCodeDir, '.prisma'),
+ path.join('..', this.context.generatedCodeDir, '.prisma'),
[
'fieldReference',
'interactiveTransactions',
diff --git a/samples/todo/README.md b/samples/todo/README.md
index c87e0421d..082df7272 100644
--- a/samples/todo/README.md
+++ b/samples/todo/README.md
@@ -1,34 +1,11 @@
-This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
+# A Collaborative Todo Sample
-## Getting Started
+This project is a collaborative todo app built with [Next.js](https://nextjs.org), [Next-Auth](nextauth.org), and [ZenStack](https://github.com/zenstackhq/zenstack).
-First, run the development server:
+See a live deployment at: https://zenstack-todo.vercel.app/.
-```bash
-npm run dev
-# or
-yarn dev
-```
+Features:
-Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
-
-You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file.
-
-[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`.
-
-The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
-
-## Learn More
-
-To learn more about Next.js, take a look at the following resources:
-
-- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
-- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
-
-You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
-
-## Deploy on Vercel
-
-The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
-
-Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
+- User signup/signin
+- Creating workspaces and inviting members
+- Data isolation and permission control
diff --git a/samples/todo/package-lock.json b/samples/todo/package-lock.json
index b62a8f5d0..b88f0afd4 100644
--- a/samples/todo/package-lock.json
+++ b/samples/todo/package-lock.json
@@ -1,17 +1,17 @@
{
"name": "todo",
- "version": "0.1.0",
+ "version": "0.2.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "todo",
- "version": "0.1.0",
+ "version": "0.2.1",
"dependencies": {
"@heroicons/react": "^2.0.12",
"@prisma/client": "^4.4.0",
- "@zenstackhq/internal": "^0.1.57",
- "@zenstackhq/runtime": "^0.1.57",
+ "@zenstackhq/internal": "^0.2.1",
+ "@zenstackhq/runtime": "^0.2.1",
"daisyui": "^2.31.0",
"moment": "^2.29.4",
"nanoid": "^4.0.0",
@@ -33,7 +33,7 @@
"postcss": "^8.4.16",
"tailwindcss": "^3.1.8",
"typescript": "^4.6.2",
- "zenstack": "^0.1.57"
+ "zenstack": "^0.2.1"
}
},
"node_modules/@babel/code-frame": {
@@ -721,9 +721,9 @@
}
},
"node_modules/@zenstackhq/internal": {
- "version": "0.1.57",
- "resolved": "https://registry.npmjs.org/@zenstackhq/internal/-/internal-0.1.57.tgz",
- "integrity": "sha512-ypXXporbkbYtbAQGLy+6OB6VfK6j3XOds6giKWkz+6rVOLYpogznr+kz0QmGgekscV2WjbsNEudvzvDAAlwykQ==",
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@zenstackhq/internal/-/internal-0.2.1.tgz",
+ "integrity": "sha512-YKLU7l/onhKRyT9fIA5al5+xw/aL511BH/6W6JZeMcDZxnxBuLsk0k31IxVmwM8ylnxWXR97i8YiljTwGXQdIg==",
"dependencies": {
"bcryptjs": "^2.4.3",
"deepcopy": "^2.1.0",
@@ -738,9 +738,9 @@
}
},
"node_modules/@zenstackhq/runtime": {
- "version": "0.1.57",
- "resolved": "https://registry.npmjs.org/@zenstackhq/runtime/-/runtime-0.1.57.tgz",
- "integrity": "sha512-AgphSR29IU3h+EZsirFs72wIRMArhJ28A/CT8arW3MnbkDuhVRpbDSsarPHO5/IwcPFhpCaNShhdldCKJk25kw==",
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@zenstackhq/runtime/-/runtime-0.2.1.tgz",
+ "integrity": "sha512-YgccVDaEibRStAlgY2nMSRctz7m46jp5/rH0i8VBujpN+m01vP3nIzpeT2A842zIJs/dk51r9J5i2dV2JtTLKw==",
"dependencies": {
"@zenstackhq/internal": "latest"
},
@@ -4522,12 +4522,12 @@
}
},
"node_modules/zenstack": {
- "version": "0.1.57",
- "resolved": "https://registry.npmjs.org/zenstack/-/zenstack-0.1.57.tgz",
- "integrity": "sha512-hVLiCEMcKCT0pVujik9NrdcdB1+eE5Zrv8jRvV9u/4JNGDBkMgQ2OHrsyPxMmmqm8A2C2exmWpIJlnGlky7IzQ==",
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/zenstack/-/zenstack-0.2.1.tgz",
+ "integrity": "sha512-yCJ6TnE9ag8nE75oJ2+/WDkRmIyhSW7vF6sDuoDOOlOQwscX6haMhuugCn72lfGdbsAGQALp2b1PctangbQwQg==",
"dev": true,
"dependencies": {
- "@zenstackhq/internal": "0.1.57",
+ "@zenstackhq/internal": "0.2.1",
"change-case": "^4.1.2",
"chevrotain": "^9.1.0",
"colors": "^1.4.0",
@@ -5011,9 +5011,9 @@
}
},
"@zenstackhq/internal": {
- "version": "0.1.57",
- "resolved": "https://registry.npmjs.org/@zenstackhq/internal/-/internal-0.1.57.tgz",
- "integrity": "sha512-ypXXporbkbYtbAQGLy+6OB6VfK6j3XOds6giKWkz+6rVOLYpogznr+kz0QmGgekscV2WjbsNEudvzvDAAlwykQ==",
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@zenstackhq/internal/-/internal-0.2.1.tgz",
+ "integrity": "sha512-YKLU7l/onhKRyT9fIA5al5+xw/aL511BH/6W6JZeMcDZxnxBuLsk0k31IxVmwM8ylnxWXR97i8YiljTwGXQdIg==",
"requires": {
"bcryptjs": "^2.4.3",
"deepcopy": "^2.1.0",
@@ -5022,9 +5022,9 @@
}
},
"@zenstackhq/runtime": {
- "version": "0.1.57",
- "resolved": "https://registry.npmjs.org/@zenstackhq/runtime/-/runtime-0.1.57.tgz",
- "integrity": "sha512-AgphSR29IU3h+EZsirFs72wIRMArhJ28A/CT8arW3MnbkDuhVRpbDSsarPHO5/IwcPFhpCaNShhdldCKJk25kw==",
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@zenstackhq/runtime/-/runtime-0.2.1.tgz",
+ "integrity": "sha512-YgccVDaEibRStAlgY2nMSRctz7m46jp5/rH0i8VBujpN+m01vP3nIzpeT2A842zIJs/dk51r9J5i2dV2JtTLKw==",
"requires": {
"@zenstackhq/internal": "latest"
}
@@ -7762,12 +7762,12 @@
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
},
"zenstack": {
- "version": "0.1.57",
- "resolved": "https://registry.npmjs.org/zenstack/-/zenstack-0.1.57.tgz",
- "integrity": "sha512-hVLiCEMcKCT0pVujik9NrdcdB1+eE5Zrv8jRvV9u/4JNGDBkMgQ2OHrsyPxMmmqm8A2C2exmWpIJlnGlky7IzQ==",
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/zenstack/-/zenstack-0.2.1.tgz",
+ "integrity": "sha512-yCJ6TnE9ag8nE75oJ2+/WDkRmIyhSW7vF6sDuoDOOlOQwscX6haMhuugCn72lfGdbsAGQALp2b1PctangbQwQg==",
"dev": true,
"requires": {
- "@zenstackhq/internal": "0.1.57",
+ "@zenstackhq/internal": "0.2.1",
"change-case": "^4.1.2",
"chevrotain": "^9.1.0",
"colors": "^1.4.0",
diff --git a/samples/todo/package.json b/samples/todo/package.json
index 7b9ef63a2..e8e105547 100644
--- a/samples/todo/package.json
+++ b/samples/todo/package.json
@@ -1,6 +1,6 @@
{
"name": "todo",
- "version": "0.1.0",
+ "version": "0.2.1",
"private": true,
"scripts": {
"dev": "next dev",
@@ -17,7 +17,8 @@
"dependencies": {
"@heroicons/react": "^2.0.12",
"@prisma/client": "^4.4.0",
- "@zenstackhq/runtime": "latest",
+ "@zenstackhq/internal": "^0.2.1",
+ "@zenstackhq/runtime": "^0.2.1",
"daisyui": "^2.31.0",
"moment": "^2.29.4",
"nanoid": "^4.0.0",
@@ -39,6 +40,6 @@
"postcss": "^8.4.16",
"tailwindcss": "^3.1.8",
"typescript": "^4.6.2",
- "zenstack": "latest"
+ "zenstack": "^0.2.1"
}
}