Skip to content

Commit 50a447c

Browse files
committed
update to v2
1 parent 09d7f80 commit 50a447c

File tree

13 files changed

+1518
-5354
lines changed

13 files changed

+1518
-5354
lines changed

package-lock.json

+444-3,206
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+6-6
Original file line numberDiff line numberDiff line change
@@ -34,25 +34,25 @@
3434
"postcss": "^8.4.23",
3535
"prettier": "^2.8.0",
3636
"prettier-plugin-svelte": "^2.8.1",
37-
"prisma": "^5.1.1",
37+
"prisma": "^5.12.0",
3838
"svelte": "^4.1.2",
3939
"svelte-check": "^3.4.6",
4040
"tailwindcss": "^3.3.2",
4141
"ts-node": "10.9.1",
4242
"tslib": "^2.4.1",
4343
"typescript": "^4.9.3",
4444
"vite": "^4.4.4",
45-
"zenstack": "^1.12.4"
45+
"zenstack": "^2.0.0"
4646
},
4747
"type": "module",
4848
"dependencies": {
49-
"@prisma/client": "^5.1.1",
49+
"@prisma/client": "^5.12.0",
5050
"@steeze-ui/heroicons": "^2.2.3",
5151
"@steeze-ui/svelte-icon": "^1.5.0",
5252
"@tanstack/svelte-query": "^4.32.6",
53-
"@zenstackhq/runtime": "^1.12.4",
54-
"@zenstackhq/server": "^1.12.4",
55-
"@zenstackhq/tanstack-query": "^1.12.4",
53+
"@zenstackhq/runtime": "^2.0.0",
54+
"@zenstackhq/server": "^2.0.0",
55+
"@zenstackhq/tanstack-query": "^2.0.0",
5656
"bcryptjs": "^2.4.3",
5757
"daisyui": "^2.51.5",
5858
"jsonwebtoken": "^9.0.0",

prisma/schema.prisma

+57-57
Original file line numberDiff line numberDiff line change
@@ -4,66 +4,66 @@
44
//////////////////////////////////////////////////////////////////////////////////////////////
55

66
datasource db {
7-
provider = "postgresql"
8-
url = env("DATABASE_URL")
9-
directUrl = env("DATABASE_DIRECT_URL")
7+
provider = "postgresql"
8+
url = env("DATABASE_URL")
9+
directUrl = env("DATABASE_DIRECT_URL")
1010
}
1111

1212
generator client {
13-
provider = "prisma-client-js"
13+
provider = "prisma-client-js"
1414
}
1515

1616
enum SpaceUserRole {
17-
USER
18-
ADMIN
17+
USER
18+
ADMIN
1919
}
2020

2121
/// @@deny('all', auth() == null)
2222
/// @@allow('create', true)
2323
/// @@allow('read', members?[user == auth()])
2424
/// @@allow('update,delete', members?[user == auth() && role == ADMIN])
2525
model Space {
26-
id String @id() @default(uuid())
27-
createdAt DateTime @default(now())
28-
updatedAt DateTime @updatedAt()
29-
/// @length(4, 50)
30-
name String
31-
/// @regex('^[0-9a-zA-Z-_]{4,16}$')
32-
slug String @unique()
33-
members SpaceUser[]
34-
lists List[]
26+
id String @id() @default(uuid())
27+
createdAt DateTime @default(now())
28+
updatedAt DateTime @updatedAt()
29+
/// @length(4, 50)
30+
name String
31+
/// @regex('^[0-9a-zA-Z-_]{4,16}$')
32+
slug String @unique()
33+
members SpaceUser[]
34+
lists List[]
3535
}
3636

3737
/// @@deny('all', auth() == null)
3838
/// @@allow('create,update,delete', space.members?[user == auth() && role == ADMIN])
3939
/// @@allow('read', space.members?[user == auth()])
4040
model SpaceUser {
41-
id String @id() @default(uuid())
42-
createdAt DateTime @default(now())
43-
updatedAt DateTime @updatedAt()
44-
space Space @relation(fields: [spaceId], references: [id], onDelete: Cascade)
45-
spaceId String
46-
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
47-
userId String
48-
role SpaceUserRole
41+
id String @id() @default(uuid())
42+
createdAt DateTime @default(now())
43+
updatedAt DateTime @updatedAt()
44+
space Space @relation(fields: [spaceId], references: [id], onDelete: Cascade)
45+
spaceId String
46+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
47+
userId String
48+
role SpaceUserRole
4949
50-
@@unique([userId, spaceId])
50+
@@unique([userId, spaceId])
5151
}
5252

5353
/// @@allow('create,read', true)
5454
/// @@allow('all', auth() == this)
5555
model User {
56-
id String @id() @default(cuid())
57-
/// @email
58-
email String @unique()
59-
/// @password
60-
/// @omit
61-
/// @length(6, 32)
62-
password String
63-
name String?
64-
spaces SpaceUser[]
65-
todos Todo[]
66-
lists List[]
56+
id String @id() @default(cuid())
57+
/// @email
58+
email String @unique()
59+
/// @password
60+
/// @omit
61+
/// @length(6, 32)
62+
password String
63+
name String?
64+
spaces SpaceUser[]
65+
todos Todo[]
66+
lists List[]
6767
}
6868

6969
/// @@deny('all', auth() == null)
@@ -72,32 +72,32 @@ model User {
7272
/// @@allow('update', owner == auth() && space.members?[user == auth()] && future().owner == owner)
7373
/// @@allow('delete', owner == auth())
7474
model List {
75-
id String @id() @default(uuid())
76-
createdAt DateTime @default(now())
77-
updatedAt DateTime @updatedAt()
78-
space Space @relation(fields: [spaceId], references: [id], onDelete: Cascade)
79-
spaceId String
80-
owner User @relation(fields: [ownerId], references: [id], onDelete: Cascade)
81-
ownerId String
82-
/// @length(1, 100)
83-
title String
84-
private Boolean @default(false)
85-
todos Todo[]
75+
id String @id() @default(uuid())
76+
createdAt DateTime @default(now())
77+
updatedAt DateTime @updatedAt()
78+
space Space @relation(fields: [spaceId], references: [id], onDelete: Cascade)
79+
spaceId String
80+
owner User @relation(fields: [ownerId], references: [id], onDelete: Cascade)
81+
ownerId String
82+
/// @length(1, 100)
83+
title String
84+
private Boolean @default(false)
85+
todos Todo[]
8686
}
8787

8888
/// @@deny('all', auth() == null)
8989
/// @@allow('all', list.owner == auth())
9090
/// @@allow('all', list.space.members?[user == auth()] && !list.private)
9191
/// @@deny('update', future().owner != owner)
9292
model Todo {
93-
id String @id() @default(uuid())
94-
createdAt DateTime @default(now())
95-
updatedAt DateTime @updatedAt()
96-
owner User @relation(fields: [ownerId], references: [id], onDelete: Cascade)
97-
ownerId String
98-
list List @relation(fields: [listId], references: [id], onDelete: Cascade)
99-
listId String
100-
/// @length(1, 100)
101-
title String
102-
completedAt DateTime?
103-
}
93+
id String @id() @default(uuid())
94+
createdAt DateTime @default(now())
95+
updatedAt DateTime @updatedAt()
96+
owner User @relation(fields: [ownerId], references: [id], onDelete: Cascade)
97+
ownerId String
98+
list List @relation(fields: [listId], references: [id], onDelete: Cascade)
99+
listId String
100+
/// @length(1, 100)
101+
title String
102+
completedAt DateTime?
103+
}

schema.zmodel

+38-38
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ plugin hooks {
2626
* Model for a space in which users can collaborate on Lists and Todos
2727
*/
2828
model Space {
29-
id String @id @default(uuid())
30-
createdAt DateTime @default(now())
31-
updatedAt DateTime @updatedAt
32-
name String @length(4, 50)
33-
slug String @unique @regex('^[0-9a-zA-Z\-_]{4,16}$')
34-
members SpaceUser[]
35-
lists List[]
29+
id String @id @default(uuid())
30+
createdAt DateTime @default(now())
31+
updatedAt DateTime @updatedAt
32+
name String @length(4, 50)
33+
slug String @unique @regex('^[0-9a-zA-Z\-_]{4,16}$')
34+
members SpaceUser[]
35+
lists List[]
3636

3737
// require login
3838
@@deny('all', auth() == null)
@@ -51,14 +51,14 @@ model Space {
5151
* Model representing membership of a user in a space
5252
*/
5353
model SpaceUser {
54-
id String @id @default(uuid())
55-
createdAt DateTime @default(now())
56-
updatedAt DateTime @updatedAt
57-
space Space @relation(fields: [spaceId], references: [id], onDelete: Cascade)
58-
spaceId String
59-
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
60-
userId String
61-
role SpaceUserRole
54+
id String @id @default(uuid())
55+
createdAt DateTime @default(now())
56+
updatedAt DateTime @updatedAt
57+
space Space @relation(fields: [spaceId], references: [id], onDelete: Cascade)
58+
spaceId String
59+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
60+
userId String
61+
role SpaceUserRole
6262
@@unique([userId, spaceId])
6363

6464
// require login
@@ -75,13 +75,13 @@ model SpaceUser {
7575
* User model
7676
*/
7777
model User {
78-
id String @id @default(cuid())
79-
email String @unique @email
80-
password String @password @omit @length(6, 32)
81-
name String?
82-
spaces SpaceUser[]
83-
todos Todo[]
84-
lists List[]
78+
id String @id @default(cuid())
79+
email String @unique @email
80+
password String @password @omit @length(6, 32)
81+
name String?
82+
spaces SpaceUser[]
83+
todos Todo[]
84+
lists List[]
8585
@@allow('create,read', true)
8686
@@allow('all', auth() == this)
8787
}
@@ -90,16 +90,16 @@ model User {
9090
* Model for a Todo list
9191
*/
9292
model List {
93-
id String @id @default(uuid())
93+
id String @id @default(uuid())
9494
createdAt DateTime @default(now())
9595
updatedAt DateTime @updatedAt
96-
space Space @relation(fields: [spaceId], references: [id], onDelete: Cascade)
97-
spaceId String
98-
owner User @relation(fields: [ownerId], references: [id], onDelete: Cascade)
99-
ownerId String
100-
title String @length(1, 100)
101-
private Boolean @default(false)
102-
todos Todo[]
96+
space Space @relation(fields: [spaceId], references: [id], onDelete: Cascade)
97+
spaceId String
98+
owner User @relation(fields: [ownerId], references: [id], onDelete: Cascade)
99+
ownerId String @default(auth().id)
100+
title String @length(1, 100)
101+
private Boolean @default(false)
102+
todos Todo[]
103103

104104
// require login
105105
@@deny('all', auth() == null)
@@ -122,14 +122,14 @@ model List {
122122
* Model for a single Todo
123123
*/
124124
model Todo {
125-
id String @id @default(uuid())
126-
createdAt DateTime @default(now())
127-
updatedAt DateTime @updatedAt
128-
owner User @relation(fields: [ownerId], references: [id], onDelete: Cascade)
129-
ownerId String
130-
list List @relation(fields: [listId], references: [id], onDelete: Cascade)
131-
listId String
132-
title String @length(1, 100)
125+
id String @id @default(uuid())
126+
createdAt DateTime @default(now())
127+
updatedAt DateTime @updatedAt
128+
owner User @relation(fields: [ownerId], references: [id], onDelete: Cascade)
129+
ownerId String @default(auth().id)
130+
list List @relation(fields: [listId], references: [id], onDelete: Cascade)
131+
listId String
132+
title String @length(1, 100)
133133
completedAt DateTime?
134134

135135
// require login

src/lib/components/CreateListDialog.svelte

-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
let title = '';
1010
let _private = false;
1111
12-
const user = getContext<{ id: string }>('currentUser');
1312
const createList = useCreateList();
1413
1514
export let space: Space;
@@ -35,7 +34,6 @@
3534
spaceId: space.id,
3635
title,
3736
private: _private,
38-
ownerId: user.id,
3937
},
4038
});
4139
}

0 commit comments

Comments
 (0)