@excali-boards/boards-api-client 1.1.72 → 1.1.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/classes/admin.d.ts +1 -1
  2. package/dist/classes/auth.d.ts +20 -17
  3. package/dist/classes/boards.d.ts +2 -3
  4. package/dist/classes/personal.d.ts +1 -1
  5. package/dist/classes/sessions.d.ts +3 -0
  6. package/dist/classes/users.d.ts +1 -0
  7. package/dist/external/vars.d.ts +8 -1
  8. package/dist/external/vars.js +3 -1
  9. package/package.json +18 -7
  10. package/prisma/generated/edge.js +11 -6
  11. package/prisma/generated/index-browser.js +5 -1
  12. package/prisma/generated/index.d.ts +153 -4
  13. package/prisma/generated/index.js +11 -6
  14. package/prisma/generated/package.json +1 -1
  15. package/prisma/generated/schema.prisma +7 -0
  16. package/prisma/generated/wasm.js +11 -6
  17. package/prisma/schema/schema.prisma +1 -0
  18. package/prisma/schema/user.prisma +6 -0
  19. package/dist/src/classes/admin.d.ts +0 -23
  20. package/dist/src/classes/admin.js +0 -20
  21. package/dist/src/classes/analytics.d.ts +0 -62
  22. package/dist/src/classes/analytics.js +0 -38
  23. package/dist/src/classes/auth.d.ts +0 -48
  24. package/dist/src/classes/auth.js +0 -12
  25. package/dist/src/classes/boards.d.ts +0 -99
  26. package/dist/src/classes/boards.js +0 -62
  27. package/dist/src/classes/calendar.d.ts +0 -84
  28. package/dist/src/classes/calendar.js +0 -45
  29. package/dist/src/classes/categories.d.ts +0 -75
  30. package/dist/src/classes/categories.js +0 -50
  31. package/dist/src/classes/files.d.ts +0 -45
  32. package/dist/src/classes/files.js +0 -31
  33. package/dist/src/classes/flashcards.d.ts +0 -120
  34. package/dist/src/classes/flashcards.js +0 -68
  35. package/dist/src/classes/groups.d.ts +0 -80
  36. package/dist/src/classes/groups.js +0 -62
  37. package/dist/src/classes/invites.d.ts +0 -116
  38. package/dist/src/classes/invites.js +0 -50
  39. package/dist/src/classes/metrics.d.ts +0 -31
  40. package/dist/src/classes/metrics.js +0 -20
  41. package/dist/src/classes/permissions.d.ts +0 -48
  42. package/dist/src/classes/permissions.js +0 -32
  43. package/dist/src/classes/sessions.d.ts +0 -61
  44. package/dist/src/classes/sessions.js +0 -38
  45. package/dist/src/classes/users.d.ts +0 -37
  46. package/dist/src/classes/users.js +0 -26
  47. package/dist/src/classes/utils.d.ts +0 -19
  48. package/dist/src/classes/utils.js +0 -16
  49. package/dist/src/core/manager.d.ts +0 -44
  50. package/dist/src/core/manager.js +0 -92
  51. package/dist/src/core/utils.d.ts +0 -9
  52. package/dist/src/core/utils.js +0 -52
  53. package/dist/src/external/types.d.ts +0 -87
  54. package/dist/src/external/types.js +0 -4
  55. package/dist/src/external/vars.d.ts +0 -99
  56. package/dist/src/external/vars.js +0 -65
  57. package/dist/src/index.d.ts +0 -20
  58. package/dist/src/index.js +0 -20
  59. package/dist/src/types.d.ts +0 -61
  60. package/dist/src/types.js +0 -1
@@ -269,6 +269,7 @@ exports.Prisma.UserScalarFieldEnum = {
269
269
  avatarUrl: 'avatarUrl',
270
270
  displayName: 'displayName',
271
271
  mainGroupId: 'mainGroupId',
272
+ qrLoginRedirectDelay: 'qrLoginRedirectDelay',
272
273
  mainLoginType: 'mainLoginType',
273
274
  invitedBy: 'invitedBy',
274
275
  registrationMethod: 'registrationMethod'
@@ -290,6 +291,8 @@ exports.Prisma.LoginMethodScalarFieldEnum = {
290
291
  dbId: 'dbId',
291
292
  platform: 'platform',
292
293
  platformEmail: 'platformEmail',
294
+ providerIssuer: 'providerIssuer',
295
+ providerSubject: 'providerSubject',
293
296
  userId: 'userId'
294
297
  };
295
298
 
@@ -311,7 +314,8 @@ exports.Platforms = exports.$Enums.Platforms = {
311
314
  Microsoft: 'Microsoft',
312
315
  Discord: 'Discord',
313
316
  Google: 'Google',
314
- GitHub: 'GitHub'
317
+ GitHub: 'GitHub',
318
+ OIDC: 'OIDC'
315
319
  };
316
320
 
317
321
  exports.Device = exports.$Enums.Device = {
@@ -384,7 +388,7 @@ const config = {
384
388
  "value": "prisma-client-js"
385
389
  },
386
390
  "output": {
387
- "value": "/root/projects/boards/boards-api-client/prisma/generated",
391
+ "value": "/home/runner/work/boards-api-client/boards-api-client/prisma/generated",
388
392
  "fromEnvVar": null
389
393
  },
390
394
  "config": {
@@ -398,7 +402,7 @@ const config = {
398
402
  }
399
403
  ],
400
404
  "previewFeatures": [],
401
- "sourceFilePath": "/root/projects/boards/boards-api-client/prisma/schema/schema.prisma",
405
+ "sourceFilePath": "/home/runner/work/boards-api-client/boards-api-client/prisma/schema/schema.prisma",
402
406
  "isCustomOutput": true
403
407
  },
404
408
  "relativeEnvPaths": {
@@ -412,6 +416,7 @@ const config = {
412
416
  ],
413
417
  "activeProvider": "postgresql",
414
418
  "postinstall": false,
419
+ "ciName": "GitHub Actions",
415
420
  "inlineDatasources": {
416
421
  "db": {
417
422
  "url": {
@@ -420,13 +425,13 @@ const config = {
420
425
  }
421
426
  }
422
427
  },
423
- "inlineSchema": "model Group {\n dbId String @id @default(uuid())\n groupId String @unique\n\n name String\n index Int\n\n calCode String?\n events Event[]\n\n categories Category[]\n permissions GroupPermission[]\n personalWorkspace PersonalWorkspace?\n}\n\nmodel Category {\n dbId String @id @default(uuid())\n categoryId String @unique\n\n name String\n index Int\n\n groupId String\n group Group @relation(fields: [groupId], references: [groupId], onDelete: Cascade)\n\n boards Board[]\n permissions CategoryPermission[]\n personalCategory PersonalCategory?\n}\n\nmodel Board {\n dbId String @id @default(uuid())\n boardId String @unique\n\n name String\n index Int\n\n version Int @default(0)\n updatedAt DateTime @default(now())\n type BoardType @default(Excalidraw)\n\n scheduledForDeletion DateTime?\n totalSizeBytes Int @default(0)\n\n categoryId String\n category Category @relation(fields: [categoryId], references: [categoryId], onDelete: Cascade)\n\n flashcardDeck FlashcardDeck?\n personalBoard PersonalBoard?\n\n files File[]\n boardPermission BoardPermission[]\n userActivities UserBoardActivity[]\n\n @@index([categoryId])\n @@index([index])\n}\n\nmodel UserBoardActivity {\n dbId String @id @default(uuid())\n\n userId String\n user User @relation(fields: [userId], references: [userId], onDelete: Cascade)\n\n boardId String\n board Board @relation(fields: [boardId], references: [boardId], onDelete: Cascade)\n\n totalSessions Int @default(0)\n totalActiveSeconds Int @default(0)\n lastActivityAt DateTime @default(now())\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([userId, boardId])\n @@index([boardId])\n @@index([lastActivityAt])\n}\n\nmodel File {\n dbId String @id @default(uuid())\n fileId String @unique\n\n mimeType String\n createdAt DateTime\n sizeBytes Int\n\n boardId String\n board Board @relation(fields: [boardId], references: [boardId], onDelete: Cascade)\n\n @@index([boardId])\n}\n\nmodel Event {\n dbId String @id @default(uuid())\n eventId String @unique\n\n title String\n start DateTime\n end DateTime\n color String @default(\"#9676ca\")\n\n where String?\n description String?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n groupId String\n group Group @relation(fields: [groupId], references: [groupId], onDelete: Cascade)\n\n createdBy String\n creator User @relation(fields: [createdBy], references: [userId], onDelete: Cascade)\n\n @@index([createdBy])\n @@index([groupId])\n @@index([start])\n @@index([end])\n}\n\nmodel FlashcardDeck {\n dbId String @id @default(uuid())\n deckId String @unique\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n boardId String @unique\n board Board @relation(fields: [boardId], references: [boardId], onDelete: Cascade)\n\n cards FlashcardCard[]\n progress DeckProgress[]\n\n @@index([boardId])\n}\n\nmodel FlashcardCard {\n dbId String @id @default(uuid())\n cardId String @unique\n\n front String\n back String\n index Int\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n deckId String\n deck FlashcardDeck @relation(fields: [deckId], references: [deckId], onDelete: Cascade)\n\n @@index([deckId])\n}\n\nmodel DeckProgress {\n dbId String @id @default(uuid())\n\n deckId String\n userId String\n\n currentIndex Int @default(0)\n completed Boolean @default(false)\n lastStudied DateTime @default(now())\n\n deck FlashcardDeck @relation(fields: [deckId], references: [deckId], onDelete: Cascade)\n user User @relation(fields: [userId], references: [userId], onDelete: Cascade)\n\n @@unique([deckId, userId])\n @@index([userId])\n}\n\nmodel GroupPermission {\n dbId String @id @default(uuid())\n\n groupId String\n userId String\n role GroupRole\n\n grantedAt DateTime @default(now())\n grantedBy String\n\n group Group @relation(fields: [groupId], references: [groupId], onDelete: Cascade)\n user User @relation(fields: [userId], references: [userId], onDelete: Cascade)\n\n @@unique([groupId, userId])\n}\n\nmodel CategoryPermission {\n dbId String @id @default(uuid())\n\n categoryId String\n userId String\n role CategoryRole\n\n grantedAt DateTime @default(now())\n grantedBy String\n\n category Category @relation(fields: [categoryId], references: [categoryId], onDelete: Cascade)\n user User @relation(fields: [userId], references: [userId], onDelete: Cascade)\n\n @@unique([categoryId, userId])\n}\n\nmodel BoardPermission {\n dbId String @id @default(uuid())\n\n boardId String\n userId String\n role BoardRole\n\n grantedAt DateTime @default(now())\n grantedBy String\n\n board Board @relation(fields: [boardId], references: [boardId], onDelete: Cascade)\n user User @relation(fields: [userId], references: [userId], onDelete: Cascade)\n\n @@unique([boardId, userId])\n}\n\nmodel Invite {\n dbId String @id @default(uuid())\n\n code String @unique\n\n // Allow invites to multiple groups, categories, or boards.\n // If multiple are specified, the invite grants access to all of them.\n groupIds String[]\n groupRole GroupRole?\n\n categoryIds String[]\n categoryRole CategoryRole?\n\n boardIds String[]\n boardRole BoardRole?\n\n createdBy String\n createdAt DateTime @default(now())\n expiresAt DateTime\n\n maxUses Int @default(1)\n currentUses Int @default(0)\n\n creator User @relation(fields: [createdBy], references: [userId])\n}\n\nmodel PersonalWorkspace {\n dbId String @id @default(uuid())\n userId String @unique\n groupId String @unique\n\n user User @relation(fields: [userId], references: [userId], onDelete: Cascade)\n group Group @relation(fields: [groupId], references: [groupId], onDelete: Cascade)\n categories PersonalCategory[]\n boards PersonalBoard[]\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel PersonalCategory {\n dbId String @id @default(uuid())\n categoryId String @unique\n workspaceId String\n backingCategoryId String @unique\n name String\n index Int\n\n workspace PersonalWorkspace @relation(fields: [workspaceId], references: [dbId], onDelete: Cascade)\n backingCategory Category @relation(fields: [backingCategoryId], references: [categoryId], onDelete: Cascade)\n boards PersonalBoard[]\n\n @@index([workspaceId, index])\n}\n\nmodel PersonalBoard {\n dbId String @id @default(uuid())\n boardId String @unique\n workspaceId String\n categoryId String\n\n board Board @relation(fields: [boardId], references: [boardId], onDelete: Cascade)\n workspace PersonalWorkspace @relation(fields: [workspaceId], references: [dbId], onDelete: Cascade)\n category PersonalCategory @relation(fields: [categoryId], references: [dbId], onDelete: Cascade)\n\n @@index([workspaceId])\n @@index([categoryId])\n}\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../generated\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nenum Platforms {\n Microsoft\n Discord\n Google\n GitHub\n}\n\nenum Device {\n Desktop\n Mobile\n Tablet\n Other\n}\n\nenum BoardType {\n Excalidraw\n Tldraw\n}\n\n// Separate role enums for each resource type\nenum BoardRole {\n BoardViewer // read-only to specific board\n BoardCollaborator // BoardViewer + write to specific board\n}\n\nenum CategoryRole {\n CategoryViewer // read-only to all boards in category\n CategoryCollaborator // CategoryViewer + write to all boards in category\n CategoryManager // CategoryCollaborator + create/delete boards in category\n CategoryAdmin // CategoryManager + user/invite management\n}\n\nenum GroupRole {\n GroupViewer // read-only to all categories and boards in group\n GroupCollaborator // GroupViewer + write to all categories and boards in group\n GroupManager // GroupCollaborator + create/delete categories and boards in group\n GroupAdmin // GroupManager + user/invite management\n}\n\nenum RegistrationMethod {\n direct\n invite\n oauth\n}\n\nmodel AllEnumsModel {\n dbId String @id @default(uuid())\n\n platformEnum Platforms\n deviceEnum Device\n boardTypeEnum BoardType\n\n boardRoleEnum BoardRole\n categoryRoleEnum CategoryRole\n groupRoleEnum GroupRole\n\n registrationMethodEnum RegistrationMethod\n}\n\nmodel User {\n dbId String @id @default(uuid())\n userId String @unique\n email String @unique\n\n avatarUrl String?\n displayName String\n\n mainGroupId String?\n\n mainLoginType Platforms\n loginMethods LoginMethod[]\n\n invitedBy String?\n registrationMethod RegistrationMethod @default(direct)\n\n groupPermissions GroupPermission[]\n categoryPermissions CategoryPermission[]\n boardPermissions BoardPermission[]\n\n flashcardProgress DeckProgress[]\n\n sessions Session[]\n createdEvents Event[]\n createdInvites Invite[]\n boardActivities UserBoardActivity[]\n personalWorkspace PersonalWorkspace?\n}\n\nmodel Session {\n dbId String @id @default(uuid())\n\n token String @unique\n\n device Device?\n locationEncrypted String?\n isQrLogin Boolean @default(false)\n\n userId String\n user User @relation(fields: [userId], references: [userId], onDelete: Cascade)\n\n createdAt DateTime @default(now())\n expiresAt DateTime\n lastUsed DateTime @default(now())\n\n @@index([userId])\n @@index([expiresAt])\n}\n\nmodel LoginMethod {\n dbId String @id @default(uuid())\n\n platform Platforms\n platformEmail String\n\n userId String\n user User @relation(fields: [userId], references: [userId], onDelete: Cascade)\n\n @@unique([platform, platformEmail])\n}\n",
424
- "inlineSchemaHash": "b87ba3319490b632d981b3b765100a1ea996e08bbde8723baacd14d2c671ca73",
428
+ "inlineSchema": "model Group {\n dbId String @id @default(uuid())\n groupId String @unique\n\n name String\n index Int\n\n calCode String?\n events Event[]\n\n categories Category[]\n permissions GroupPermission[]\n personalWorkspace PersonalWorkspace?\n}\n\nmodel Category {\n dbId String @id @default(uuid())\n categoryId String @unique\n\n name String\n index Int\n\n groupId String\n group Group @relation(fields: [groupId], references: [groupId], onDelete: Cascade)\n\n boards Board[]\n permissions CategoryPermission[]\n personalCategory PersonalCategory?\n}\n\nmodel Board {\n dbId String @id @default(uuid())\n boardId String @unique\n\n name String\n index Int\n\n version Int @default(0)\n updatedAt DateTime @default(now())\n type BoardType @default(Excalidraw)\n\n scheduledForDeletion DateTime?\n totalSizeBytes Int @default(0)\n\n categoryId String\n category Category @relation(fields: [categoryId], references: [categoryId], onDelete: Cascade)\n\n flashcardDeck FlashcardDeck?\n personalBoard PersonalBoard?\n\n files File[]\n boardPermission BoardPermission[]\n userActivities UserBoardActivity[]\n\n @@index([categoryId])\n @@index([index])\n}\n\nmodel UserBoardActivity {\n dbId String @id @default(uuid())\n\n userId String\n user User @relation(fields: [userId], references: [userId], onDelete: Cascade)\n\n boardId String\n board Board @relation(fields: [boardId], references: [boardId], onDelete: Cascade)\n\n totalSessions Int @default(0)\n totalActiveSeconds Int @default(0)\n lastActivityAt DateTime @default(now())\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([userId, boardId])\n @@index([boardId])\n @@index([lastActivityAt])\n}\n\nmodel File {\n dbId String @id @default(uuid())\n fileId String @unique\n\n mimeType String\n createdAt DateTime\n sizeBytes Int\n\n boardId String\n board Board @relation(fields: [boardId], references: [boardId], onDelete: Cascade)\n\n @@index([boardId])\n}\n\nmodel Event {\n dbId String @id @default(uuid())\n eventId String @unique\n\n title String\n start DateTime\n end DateTime\n color String @default(\"#9676ca\")\n\n where String?\n description String?\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n groupId String\n group Group @relation(fields: [groupId], references: [groupId], onDelete: Cascade)\n\n createdBy String\n creator User @relation(fields: [createdBy], references: [userId], onDelete: Cascade)\n\n @@index([createdBy])\n @@index([groupId])\n @@index([start])\n @@index([end])\n}\n\nmodel FlashcardDeck {\n dbId String @id @default(uuid())\n deckId String @unique\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n boardId String @unique\n board Board @relation(fields: [boardId], references: [boardId], onDelete: Cascade)\n\n cards FlashcardCard[]\n progress DeckProgress[]\n\n @@index([boardId])\n}\n\nmodel FlashcardCard {\n dbId String @id @default(uuid())\n cardId String @unique\n\n front String\n back String\n index Int\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n deckId String\n deck FlashcardDeck @relation(fields: [deckId], references: [deckId], onDelete: Cascade)\n\n @@index([deckId])\n}\n\nmodel DeckProgress {\n dbId String @id @default(uuid())\n\n deckId String\n userId String\n\n currentIndex Int @default(0)\n completed Boolean @default(false)\n lastStudied DateTime @default(now())\n\n deck FlashcardDeck @relation(fields: [deckId], references: [deckId], onDelete: Cascade)\n user User @relation(fields: [userId], references: [userId], onDelete: Cascade)\n\n @@unique([deckId, userId])\n @@index([userId])\n}\n\nmodel GroupPermission {\n dbId String @id @default(uuid())\n\n groupId String\n userId String\n role GroupRole\n\n grantedAt DateTime @default(now())\n grantedBy String\n\n group Group @relation(fields: [groupId], references: [groupId], onDelete: Cascade)\n user User @relation(fields: [userId], references: [userId], onDelete: Cascade)\n\n @@unique([groupId, userId])\n}\n\nmodel CategoryPermission {\n dbId String @id @default(uuid())\n\n categoryId String\n userId String\n role CategoryRole\n\n grantedAt DateTime @default(now())\n grantedBy String\n\n category Category @relation(fields: [categoryId], references: [categoryId], onDelete: Cascade)\n user User @relation(fields: [userId], references: [userId], onDelete: Cascade)\n\n @@unique([categoryId, userId])\n}\n\nmodel BoardPermission {\n dbId String @id @default(uuid())\n\n boardId String\n userId String\n role BoardRole\n\n grantedAt DateTime @default(now())\n grantedBy String\n\n board Board @relation(fields: [boardId], references: [boardId], onDelete: Cascade)\n user User @relation(fields: [userId], references: [userId], onDelete: Cascade)\n\n @@unique([boardId, userId])\n}\n\nmodel Invite {\n dbId String @id @default(uuid())\n\n code String @unique\n\n // Allow invites to multiple groups, categories, or boards.\n // If multiple are specified, the invite grants access to all of them.\n groupIds String[]\n groupRole GroupRole?\n\n categoryIds String[]\n categoryRole CategoryRole?\n\n boardIds String[]\n boardRole BoardRole?\n\n createdBy String\n createdAt DateTime @default(now())\n expiresAt DateTime\n\n maxUses Int @default(1)\n currentUses Int @default(0)\n\n creator User @relation(fields: [createdBy], references: [userId])\n}\n\nmodel PersonalWorkspace {\n dbId String @id @default(uuid())\n userId String @unique\n groupId String @unique\n\n user User @relation(fields: [userId], references: [userId], onDelete: Cascade)\n group Group @relation(fields: [groupId], references: [groupId], onDelete: Cascade)\n categories PersonalCategory[]\n boards PersonalBoard[]\n\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\nmodel PersonalCategory {\n dbId String @id @default(uuid())\n categoryId String @unique\n workspaceId String\n backingCategoryId String @unique\n name String\n index Int\n\n workspace PersonalWorkspace @relation(fields: [workspaceId], references: [dbId], onDelete: Cascade)\n backingCategory Category @relation(fields: [backingCategoryId], references: [categoryId], onDelete: Cascade)\n boards PersonalBoard[]\n\n @@index([workspaceId, index])\n}\n\nmodel PersonalBoard {\n dbId String @id @default(uuid())\n boardId String @unique\n workspaceId String\n categoryId String\n\n board Board @relation(fields: [boardId], references: [boardId], onDelete: Cascade)\n workspace PersonalWorkspace @relation(fields: [workspaceId], references: [dbId], onDelete: Cascade)\n category PersonalCategory @relation(fields: [categoryId], references: [dbId], onDelete: Cascade)\n\n @@index([workspaceId])\n @@index([categoryId])\n}\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../generated\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nenum Platforms {\n Microsoft\n Discord\n Google\n GitHub\n OIDC\n}\n\nenum Device {\n Desktop\n Mobile\n Tablet\n Other\n}\n\nenum BoardType {\n Excalidraw\n Tldraw\n}\n\n// Separate role enums for each resource type\nenum BoardRole {\n BoardViewer // read-only to specific board\n BoardCollaborator // BoardViewer + write to specific board\n}\n\nenum CategoryRole {\n CategoryViewer // read-only to all boards in category\n CategoryCollaborator // CategoryViewer + write to all boards in category\n CategoryManager // CategoryCollaborator + create/delete boards in category\n CategoryAdmin // CategoryManager + user/invite management\n}\n\nenum GroupRole {\n GroupViewer // read-only to all categories and boards in group\n GroupCollaborator // GroupViewer + write to all categories and boards in group\n GroupManager // GroupCollaborator + create/delete categories and boards in group\n GroupAdmin // GroupManager + user/invite management\n}\n\nenum RegistrationMethod {\n direct\n invite\n oauth\n}\n\nmodel AllEnumsModel {\n dbId String @id @default(uuid())\n\n platformEnum Platforms\n deviceEnum Device\n boardTypeEnum BoardType\n\n boardRoleEnum BoardRole\n categoryRoleEnum CategoryRole\n groupRoleEnum GroupRole\n\n registrationMethodEnum RegistrationMethod\n}\n\nmodel User {\n dbId String @id @default(uuid())\n userId String @unique\n email String @unique\n\n avatarUrl String?\n displayName String\n\n mainGroupId String?\n\n qrLoginRedirectDelay Boolean @default(true)\n\n mainLoginType Platforms\n loginMethods LoginMethod[]\n\n invitedBy String?\n registrationMethod RegistrationMethod @default(direct)\n\n groupPermissions GroupPermission[]\n categoryPermissions CategoryPermission[]\n boardPermissions BoardPermission[]\n\n flashcardProgress DeckProgress[]\n\n sessions Session[]\n createdEvents Event[]\n createdInvites Invite[]\n boardActivities UserBoardActivity[]\n personalWorkspace PersonalWorkspace?\n}\n\nmodel Session {\n dbId String @id @default(uuid())\n\n token String @unique\n\n device Device?\n locationEncrypted String?\n isQrLogin Boolean @default(false)\n\n userId String\n user User @relation(fields: [userId], references: [userId], onDelete: Cascade)\n\n createdAt DateTime @default(now())\n expiresAt DateTime\n lastUsed DateTime @default(now())\n\n @@index([userId])\n @@index([expiresAt])\n}\n\nmodel LoginMethod {\n dbId String @id @default(uuid())\n\n platform Platforms\n platformEmail String\n\n providerIssuer String?\n providerSubject String?\n\n userId String\n user User @relation(fields: [userId], references: [userId], onDelete: Cascade)\n\n @@unique([platform, platformEmail])\n @@unique([platform, providerIssuer, providerSubject])\n}\n",
429
+ "inlineSchemaHash": "8547d5bc0183a0d97e3b67ceb5bc25506abdfeadeedca8ed4a8d69afa55446a7",
425
430
  "copyEngine": true
426
431
  }
427
432
  config.dirname = '/'
428
433
 
429
- config.runtimeDataModel = JSON.parse("{\"models\":{\"Group\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"groupId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"index\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"calCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"events\",\"kind\":\"object\",\"type\":\"Event\",\"relationName\":\"EventToGroup\"},{\"name\":\"categories\",\"kind\":\"object\",\"type\":\"Category\",\"relationName\":\"CategoryToGroup\"},{\"name\":\"permissions\",\"kind\":\"object\",\"type\":\"GroupPermission\",\"relationName\":\"GroupToGroupPermission\"},{\"name\":\"personalWorkspace\",\"kind\":\"object\",\"type\":\"PersonalWorkspace\",\"relationName\":\"GroupToPersonalWorkspace\"}],\"dbName\":null},\"Category\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"categoryId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"index\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"groupId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"group\",\"kind\":\"object\",\"type\":\"Group\",\"relationName\":\"CategoryToGroup\"},{\"name\":\"boards\",\"kind\":\"object\",\"type\":\"Board\",\"relationName\":\"BoardToCategory\"},{\"name\":\"permissions\",\"kind\":\"object\",\"type\":\"CategoryPermission\",\"relationName\":\"CategoryToCategoryPermission\"},{\"name\":\"personalCategory\",\"kind\":\"object\",\"type\":\"PersonalCategory\",\"relationName\":\"CategoryToPersonalCategory\"}],\"dbName\":null},\"Board\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"boardId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"index\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"version\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"BoardType\"},{\"name\":\"scheduledForDeletion\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"totalSizeBytes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"categoryId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"object\",\"type\":\"Category\",\"relationName\":\"BoardToCategory\"},{\"name\":\"flashcardDeck\",\"kind\":\"object\",\"type\":\"FlashcardDeck\",\"relationName\":\"BoardToFlashcardDeck\"},{\"name\":\"personalBoard\",\"kind\":\"object\",\"type\":\"PersonalBoard\",\"relationName\":\"BoardToPersonalBoard\"},{\"name\":\"files\",\"kind\":\"object\",\"type\":\"File\",\"relationName\":\"BoardToFile\"},{\"name\":\"boardPermission\",\"kind\":\"object\",\"type\":\"BoardPermission\",\"relationName\":\"BoardToBoardPermission\"},{\"name\":\"userActivities\",\"kind\":\"object\",\"type\":\"UserBoardActivity\",\"relationName\":\"BoardToUserBoardActivity\"}],\"dbName\":null},\"UserBoardActivity\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToUserBoardActivity\"},{\"name\":\"boardId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"board\",\"kind\":\"object\",\"type\":\"Board\",\"relationName\":\"BoardToUserBoardActivity\"},{\"name\":\"totalSessions\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"totalActiveSeconds\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"lastActivityAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"File\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fileId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mimeType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"sizeBytes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"boardId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"board\",\"kind\":\"object\",\"type\":\"Board\",\"relationName\":\"BoardToFile\"}],\"dbName\":null},\"Event\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"eventId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"start\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"end\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"color\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"where\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"groupId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"group\",\"kind\":\"object\",\"type\":\"Group\",\"relationName\":\"EventToGroup\"},{\"name\":\"createdBy\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"creator\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"EventToUser\"}],\"dbName\":null},\"FlashcardDeck\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"deckId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"boardId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"board\",\"kind\":\"object\",\"type\":\"Board\",\"relationName\":\"BoardToFlashcardDeck\"},{\"name\":\"cards\",\"kind\":\"object\",\"type\":\"FlashcardCard\",\"relationName\":\"FlashcardCardToFlashcardDeck\"},{\"name\":\"progress\",\"kind\":\"object\",\"type\":\"DeckProgress\",\"relationName\":\"DeckProgressToFlashcardDeck\"}],\"dbName\":null},\"FlashcardCard\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"cardId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"front\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"back\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"index\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deckId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"deck\",\"kind\":\"object\",\"type\":\"FlashcardDeck\",\"relationName\":\"FlashcardCardToFlashcardDeck\"}],\"dbName\":null},\"DeckProgress\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"deckId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"currentIndex\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"completed\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"lastStudied\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deck\",\"kind\":\"object\",\"type\":\"FlashcardDeck\",\"relationName\":\"DeckProgressToFlashcardDeck\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"DeckProgressToUser\"}],\"dbName\":null},\"GroupPermission\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"groupId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"GroupRole\"},{\"name\":\"grantedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"grantedBy\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"group\",\"kind\":\"object\",\"type\":\"Group\",\"relationName\":\"GroupToGroupPermission\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"GroupPermissionToUser\"}],\"dbName\":null},\"CategoryPermission\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"categoryId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"CategoryRole\"},{\"name\":\"grantedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"grantedBy\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"object\",\"type\":\"Category\",\"relationName\":\"CategoryToCategoryPermission\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CategoryPermissionToUser\"}],\"dbName\":null},\"BoardPermission\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"boardId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"BoardRole\"},{\"name\":\"grantedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"grantedBy\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"board\",\"kind\":\"object\",\"type\":\"Board\",\"relationName\":\"BoardToBoardPermission\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"BoardPermissionToUser\"}],\"dbName\":null},\"Invite\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"groupIds\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"groupRole\",\"kind\":\"enum\",\"type\":\"GroupRole\"},{\"name\":\"categoryIds\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"categoryRole\",\"kind\":\"enum\",\"type\":\"CategoryRole\"},{\"name\":\"boardIds\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"boardRole\",\"kind\":\"enum\",\"type\":\"BoardRole\"},{\"name\":\"createdBy\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"maxUses\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"currentUses\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"creator\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"InviteToUser\"}],\"dbName\":null},\"PersonalWorkspace\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"groupId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"PersonalWorkspaceToUser\"},{\"name\":\"group\",\"kind\":\"object\",\"type\":\"Group\",\"relationName\":\"GroupToPersonalWorkspace\"},{\"name\":\"categories\",\"kind\":\"object\",\"type\":\"PersonalCategory\",\"relationName\":\"PersonalCategoryToPersonalWorkspace\"},{\"name\":\"boards\",\"kind\":\"object\",\"type\":\"PersonalBoard\",\"relationName\":\"PersonalBoardToPersonalWorkspace\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"PersonalCategory\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"categoryId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"workspaceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"backingCategoryId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"index\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"workspace\",\"kind\":\"object\",\"type\":\"PersonalWorkspace\",\"relationName\":\"PersonalCategoryToPersonalWorkspace\"},{\"name\":\"backingCategory\",\"kind\":\"object\",\"type\":\"Category\",\"relationName\":\"CategoryToPersonalCategory\"},{\"name\":\"boards\",\"kind\":\"object\",\"type\":\"PersonalBoard\",\"relationName\":\"PersonalBoardToPersonalCategory\"}],\"dbName\":null},\"PersonalBoard\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"boardId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"workspaceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"categoryId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"board\",\"kind\":\"object\",\"type\":\"Board\",\"relationName\":\"BoardToPersonalBoard\"},{\"name\":\"workspace\",\"kind\":\"object\",\"type\":\"PersonalWorkspace\",\"relationName\":\"PersonalBoardToPersonalWorkspace\"},{\"name\":\"category\",\"kind\":\"object\",\"type\":\"PersonalCategory\",\"relationName\":\"PersonalBoardToPersonalCategory\"}],\"dbName\":null},\"AllEnumsModel\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"platformEnum\",\"kind\":\"enum\",\"type\":\"Platforms\"},{\"name\":\"deviceEnum\",\"kind\":\"enum\",\"type\":\"Device\"},{\"name\":\"boardTypeEnum\",\"kind\":\"enum\",\"type\":\"BoardType\"},{\"name\":\"boardRoleEnum\",\"kind\":\"enum\",\"type\":\"BoardRole\"},{\"name\":\"categoryRoleEnum\",\"kind\":\"enum\",\"type\":\"CategoryRole\"},{\"name\":\"groupRoleEnum\",\"kind\":\"enum\",\"type\":\"GroupRole\"},{\"name\":\"registrationMethodEnum\",\"kind\":\"enum\",\"type\":\"RegistrationMethod\"}],\"dbName\":null},\"User\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"avatarUrl\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"displayName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mainGroupId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mainLoginType\",\"kind\":\"enum\",\"type\":\"Platforms\"},{\"name\":\"loginMethods\",\"kind\":\"object\",\"type\":\"LoginMethod\",\"relationName\":\"LoginMethodToUser\"},{\"name\":\"invitedBy\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"registrationMethod\",\"kind\":\"enum\",\"type\":\"RegistrationMethod\"},{\"name\":\"groupPermissions\",\"kind\":\"object\",\"type\":\"GroupPermission\",\"relationName\":\"GroupPermissionToUser\"},{\"name\":\"categoryPermissions\",\"kind\":\"object\",\"type\":\"CategoryPermission\",\"relationName\":\"CategoryPermissionToUser\"},{\"name\":\"boardPermissions\",\"kind\":\"object\",\"type\":\"BoardPermission\",\"relationName\":\"BoardPermissionToUser\"},{\"name\":\"flashcardProgress\",\"kind\":\"object\",\"type\":\"DeckProgress\",\"relationName\":\"DeckProgressToUser\"},{\"name\":\"sessions\",\"kind\":\"object\",\"type\":\"Session\",\"relationName\":\"SessionToUser\"},{\"name\":\"createdEvents\",\"kind\":\"object\",\"type\":\"Event\",\"relationName\":\"EventToUser\"},{\"name\":\"createdInvites\",\"kind\":\"object\",\"type\":\"Invite\",\"relationName\":\"InviteToUser\"},{\"name\":\"boardActivities\",\"kind\":\"object\",\"type\":\"UserBoardActivity\",\"relationName\":\"UserToUserBoardActivity\"},{\"name\":\"personalWorkspace\",\"kind\":\"object\",\"type\":\"PersonalWorkspace\",\"relationName\":\"PersonalWorkspaceToUser\"}],\"dbName\":null},\"Session\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"device\",\"kind\":\"enum\",\"type\":\"Device\"},{\"name\":\"locationEncrypted\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isQrLogin\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"SessionToUser\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"lastUsed\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"LoginMethod\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"platform\",\"kind\":\"enum\",\"type\":\"Platforms\"},{\"name\":\"platformEmail\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"LoginMethodToUser\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}")
434
+ config.runtimeDataModel = JSON.parse("{\"models\":{\"Group\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"groupId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"index\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"calCode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"events\",\"kind\":\"object\",\"type\":\"Event\",\"relationName\":\"EventToGroup\"},{\"name\":\"categories\",\"kind\":\"object\",\"type\":\"Category\",\"relationName\":\"CategoryToGroup\"},{\"name\":\"permissions\",\"kind\":\"object\",\"type\":\"GroupPermission\",\"relationName\":\"GroupToGroupPermission\"},{\"name\":\"personalWorkspace\",\"kind\":\"object\",\"type\":\"PersonalWorkspace\",\"relationName\":\"GroupToPersonalWorkspace\"}],\"dbName\":null},\"Category\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"categoryId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"index\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"groupId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"group\",\"kind\":\"object\",\"type\":\"Group\",\"relationName\":\"CategoryToGroup\"},{\"name\":\"boards\",\"kind\":\"object\",\"type\":\"Board\",\"relationName\":\"BoardToCategory\"},{\"name\":\"permissions\",\"kind\":\"object\",\"type\":\"CategoryPermission\",\"relationName\":\"CategoryToCategoryPermission\"},{\"name\":\"personalCategory\",\"kind\":\"object\",\"type\":\"PersonalCategory\",\"relationName\":\"CategoryToPersonalCategory\"}],\"dbName\":null},\"Board\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"boardId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"index\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"version\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"type\",\"kind\":\"enum\",\"type\":\"BoardType\"},{\"name\":\"scheduledForDeletion\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"totalSizeBytes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"categoryId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"object\",\"type\":\"Category\",\"relationName\":\"BoardToCategory\"},{\"name\":\"flashcardDeck\",\"kind\":\"object\",\"type\":\"FlashcardDeck\",\"relationName\":\"BoardToFlashcardDeck\"},{\"name\":\"personalBoard\",\"kind\":\"object\",\"type\":\"PersonalBoard\",\"relationName\":\"BoardToPersonalBoard\"},{\"name\":\"files\",\"kind\":\"object\",\"type\":\"File\",\"relationName\":\"BoardToFile\"},{\"name\":\"boardPermission\",\"kind\":\"object\",\"type\":\"BoardPermission\",\"relationName\":\"BoardToBoardPermission\"},{\"name\":\"userActivities\",\"kind\":\"object\",\"type\":\"UserBoardActivity\",\"relationName\":\"BoardToUserBoardActivity\"}],\"dbName\":null},\"UserBoardActivity\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToUserBoardActivity\"},{\"name\":\"boardId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"board\",\"kind\":\"object\",\"type\":\"Board\",\"relationName\":\"BoardToUserBoardActivity\"},{\"name\":\"totalSessions\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"totalActiveSeconds\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"lastActivityAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"File\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fileId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mimeType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"sizeBytes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"boardId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"board\",\"kind\":\"object\",\"type\":\"Board\",\"relationName\":\"BoardToFile\"}],\"dbName\":null},\"Event\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"eventId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"start\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"end\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"color\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"where\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"groupId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"group\",\"kind\":\"object\",\"type\":\"Group\",\"relationName\":\"EventToGroup\"},{\"name\":\"createdBy\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"creator\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"EventToUser\"}],\"dbName\":null},\"FlashcardDeck\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"deckId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"boardId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"board\",\"kind\":\"object\",\"type\":\"Board\",\"relationName\":\"BoardToFlashcardDeck\"},{\"name\":\"cards\",\"kind\":\"object\",\"type\":\"FlashcardCard\",\"relationName\":\"FlashcardCardToFlashcardDeck\"},{\"name\":\"progress\",\"kind\":\"object\",\"type\":\"DeckProgress\",\"relationName\":\"DeckProgressToFlashcardDeck\"}],\"dbName\":null},\"FlashcardCard\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"cardId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"front\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"back\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"index\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deckId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"deck\",\"kind\":\"object\",\"type\":\"FlashcardDeck\",\"relationName\":\"FlashcardCardToFlashcardDeck\"}],\"dbName\":null},\"DeckProgress\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"deckId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"currentIndex\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"completed\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"lastStudied\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"deck\",\"kind\":\"object\",\"type\":\"FlashcardDeck\",\"relationName\":\"DeckProgressToFlashcardDeck\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"DeckProgressToUser\"}],\"dbName\":null},\"GroupPermission\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"groupId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"GroupRole\"},{\"name\":\"grantedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"grantedBy\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"group\",\"kind\":\"object\",\"type\":\"Group\",\"relationName\":\"GroupToGroupPermission\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"GroupPermissionToUser\"}],\"dbName\":null},\"CategoryPermission\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"categoryId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"CategoryRole\"},{\"name\":\"grantedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"grantedBy\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"object\",\"type\":\"Category\",\"relationName\":\"CategoryToCategoryPermission\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CategoryPermissionToUser\"}],\"dbName\":null},\"BoardPermission\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"boardId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"BoardRole\"},{\"name\":\"grantedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"grantedBy\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"board\",\"kind\":\"object\",\"type\":\"Board\",\"relationName\":\"BoardToBoardPermission\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"BoardPermissionToUser\"}],\"dbName\":null},\"Invite\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"groupIds\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"groupRole\",\"kind\":\"enum\",\"type\":\"GroupRole\"},{\"name\":\"categoryIds\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"categoryRole\",\"kind\":\"enum\",\"type\":\"CategoryRole\"},{\"name\":\"boardIds\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"boardRole\",\"kind\":\"enum\",\"type\":\"BoardRole\"},{\"name\":\"createdBy\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"maxUses\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"currentUses\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"creator\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"InviteToUser\"}],\"dbName\":null},\"PersonalWorkspace\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"groupId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"PersonalWorkspaceToUser\"},{\"name\":\"group\",\"kind\":\"object\",\"type\":\"Group\",\"relationName\":\"GroupToPersonalWorkspace\"},{\"name\":\"categories\",\"kind\":\"object\",\"type\":\"PersonalCategory\",\"relationName\":\"PersonalCategoryToPersonalWorkspace\"},{\"name\":\"boards\",\"kind\":\"object\",\"type\":\"PersonalBoard\",\"relationName\":\"PersonalBoardToPersonalWorkspace\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"PersonalCategory\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"categoryId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"workspaceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"backingCategoryId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"index\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"workspace\",\"kind\":\"object\",\"type\":\"PersonalWorkspace\",\"relationName\":\"PersonalCategoryToPersonalWorkspace\"},{\"name\":\"backingCategory\",\"kind\":\"object\",\"type\":\"Category\",\"relationName\":\"CategoryToPersonalCategory\"},{\"name\":\"boards\",\"kind\":\"object\",\"type\":\"PersonalBoard\",\"relationName\":\"PersonalBoardToPersonalCategory\"}],\"dbName\":null},\"PersonalBoard\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"boardId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"workspaceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"categoryId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"board\",\"kind\":\"object\",\"type\":\"Board\",\"relationName\":\"BoardToPersonalBoard\"},{\"name\":\"workspace\",\"kind\":\"object\",\"type\":\"PersonalWorkspace\",\"relationName\":\"PersonalBoardToPersonalWorkspace\"},{\"name\":\"category\",\"kind\":\"object\",\"type\":\"PersonalCategory\",\"relationName\":\"PersonalBoardToPersonalCategory\"}],\"dbName\":null},\"AllEnumsModel\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"platformEnum\",\"kind\":\"enum\",\"type\":\"Platforms\"},{\"name\":\"deviceEnum\",\"kind\":\"enum\",\"type\":\"Device\"},{\"name\":\"boardTypeEnum\",\"kind\":\"enum\",\"type\":\"BoardType\"},{\"name\":\"boardRoleEnum\",\"kind\":\"enum\",\"type\":\"BoardRole\"},{\"name\":\"categoryRoleEnum\",\"kind\":\"enum\",\"type\":\"CategoryRole\"},{\"name\":\"groupRoleEnum\",\"kind\":\"enum\",\"type\":\"GroupRole\"},{\"name\":\"registrationMethodEnum\",\"kind\":\"enum\",\"type\":\"RegistrationMethod\"}],\"dbName\":null},\"User\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"avatarUrl\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"displayName\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mainGroupId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"qrLoginRedirectDelay\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"mainLoginType\",\"kind\":\"enum\",\"type\":\"Platforms\"},{\"name\":\"loginMethods\",\"kind\":\"object\",\"type\":\"LoginMethod\",\"relationName\":\"LoginMethodToUser\"},{\"name\":\"invitedBy\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"registrationMethod\",\"kind\":\"enum\",\"type\":\"RegistrationMethod\"},{\"name\":\"groupPermissions\",\"kind\":\"object\",\"type\":\"GroupPermission\",\"relationName\":\"GroupPermissionToUser\"},{\"name\":\"categoryPermissions\",\"kind\":\"object\",\"type\":\"CategoryPermission\",\"relationName\":\"CategoryPermissionToUser\"},{\"name\":\"boardPermissions\",\"kind\":\"object\",\"type\":\"BoardPermission\",\"relationName\":\"BoardPermissionToUser\"},{\"name\":\"flashcardProgress\",\"kind\":\"object\",\"type\":\"DeckProgress\",\"relationName\":\"DeckProgressToUser\"},{\"name\":\"sessions\",\"kind\":\"object\",\"type\":\"Session\",\"relationName\":\"SessionToUser\"},{\"name\":\"createdEvents\",\"kind\":\"object\",\"type\":\"Event\",\"relationName\":\"EventToUser\"},{\"name\":\"createdInvites\",\"kind\":\"object\",\"type\":\"Invite\",\"relationName\":\"InviteToUser\"},{\"name\":\"boardActivities\",\"kind\":\"object\",\"type\":\"UserBoardActivity\",\"relationName\":\"UserToUserBoardActivity\"},{\"name\":\"personalWorkspace\",\"kind\":\"object\",\"type\":\"PersonalWorkspace\",\"relationName\":\"PersonalWorkspaceToUser\"}],\"dbName\":null},\"Session\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"device\",\"kind\":\"enum\",\"type\":\"Device\"},{\"name\":\"locationEncrypted\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isQrLogin\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"SessionToUser\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"lastUsed\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"LoginMethod\":{\"fields\":[{\"name\":\"dbId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"platform\",\"kind\":\"enum\",\"type\":\"Platforms\"},{\"name\":\"platformEmail\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerIssuer\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerSubject\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"LoginMethodToUser\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}")
430
435
  defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
431
436
  config.engineWasm = {
432
437
  getRuntime: async () => require('./query_engine_bg.js'),
@@ -13,6 +13,7 @@ enum Platforms {
13
13
  Discord
14
14
  Google
15
15
  GitHub
16
+ OIDC
16
17
  }
17
18
 
18
19
  enum Device {
@@ -8,6 +8,8 @@ model User {
8
8
 
9
9
  mainGroupId String?
10
10
 
11
+ qrLoginRedirectDelay Boolean @default(true)
12
+
11
13
  mainLoginType Platforms
12
14
  loginMethods LoginMethod[]
13
15
 
@@ -53,8 +55,12 @@ model LoginMethod {
53
55
  platform Platforms
54
56
  platformEmail String
55
57
 
58
+ providerIssuer String?
59
+ providerSubject String?
60
+
56
61
  userId String
57
62
  user User @relation(fields: [userId], references: [userId], onDelete: Cascade)
58
63
 
59
64
  @@unique([platform, platformEmail])
65
+ @@unique([platform, providerIssuer, providerSubject])
60
66
  }
@@ -1,23 +0,0 @@
1
- import { Paginated, WithHeaders } from '../types';
2
- import { BoardsManager } from '../core/manager';
3
- import { AllRooms, RecentlyActiveRoom } from '../external/types';
4
- import { GetUsersOutput } from './users';
5
- export declare class APIAdmin {
6
- private web;
7
- constructor(web: BoardsManager);
8
- getUsers({ auth, page, limit, ...rest }: AdminFunctionsInput['getUsers']): Promise<import("..").WebResponse<Paginated<GetUsersOutput>>>;
9
- getActiveRooms({ auth, ...rest }: AdminFunctionsInput['getActiveRooms']): Promise<import("..").WebResponse<{
10
- rooms: AllRooms;
11
- recentlyActiveRooms: RecentlyActiveRoom[];
12
- }>>;
13
- }
14
- export type AdminFunctionsInput = WithHeaders<{
15
- 'getUsers': {
16
- auth: string;
17
- page?: number;
18
- limit?: number;
19
- };
20
- 'getActiveRooms': {
21
- auth: string;
22
- };
23
- }>;
@@ -1,20 +0,0 @@
1
- // Data.
2
- export class APIAdmin {
3
- web;
4
- constructor(web) {
5
- this.web = web;
6
- }
7
- // Methods.
8
- async getUsers({ auth, page, limit, ...rest }) {
9
- return await this.web.request({
10
- method: 'GET', auth, ...rest,
11
- endpoint: this.web.qp('/admin/users', { page, limit }),
12
- });
13
- }
14
- async getActiveRooms({ auth, ...rest }) {
15
- return await this.web.request({
16
- method: 'GET', auth, ...rest,
17
- endpoint: this.web.qp('/admin/rooms'),
18
- });
19
- }
20
- }
@@ -1,62 +0,0 @@
1
- import { BoardsManager } from '../core/manager';
2
- import { WithHeaders } from '../types';
3
- export declare class APIAnalytics {
4
- private web;
5
- constructor(web: BoardsManager);
6
- getGlobalAnalytics({ auth, ...rest }: AnalyticsFunctionsInput['getGlobalAnalytics']): Promise<import("..").WebResponse<UserBoardActivityWithUser[]>>;
7
- getUserAnalytics({ auth, ...rest }: AnalyticsFunctionsInput['getUserAnalytics']): Promise<import("..").WebResponse<UserBoardActivityWithBoard[]>>;
8
- getBoardAnalytics({ auth, boardId, categoryId, groupId, ...rest }: AnalyticsFunctionsInput['getBoardAnalytics']): Promise<import("..").WebResponse<UserBoardActivityWithUser[]>>;
9
- getCategoryAnalytics({ auth, categoryId, groupId, ...rest }: AnalyticsFunctionsInput['getCategoryAnalytics']): Promise<import("..").WebResponse<UserBoardActivityWithUser[]>>;
10
- getGroupAnalytics({ auth, groupId, ...rest }: AnalyticsFunctionsInput['getGroupAnalytics']): Promise<import("..").WebResponse<UserBoardActivityWithUser[]>>;
11
- }
12
- export type AnalyticsFunctionsInput = WithHeaders<{
13
- 'getGlobalAnalytics': {
14
- auth: string;
15
- };
16
- 'getUserAnalytics': {
17
- auth: string;
18
- };
19
- 'getBoardAnalytics': {
20
- auth: string;
21
- boardId: string;
22
- categoryId: string;
23
- groupId: string;
24
- };
25
- 'getCategoryAnalytics': {
26
- auth: string;
27
- categoryId: string;
28
- groupId: string;
29
- };
30
- 'getGroupAnalytics': {
31
- auth: string;
32
- groupId: string;
33
- };
34
- }>;
35
- export type ActivityAnalytics = {
36
- totalSessions: number;
37
- totalActiveSeconds: number;
38
- lastActivityAt: Date;
39
- };
40
- export type BoardData = {
41
- name: string;
42
- boardId: string;
43
- category: {
44
- categoryId: string;
45
- name: string;
46
- group: {
47
- groupId: string;
48
- name: string;
49
- };
50
- };
51
- };
52
- export type UserBoardActivityWithBoard = ActivityAnalytics & {
53
- board: BoardData;
54
- };
55
- export type UserBoardActivityWithUser = ActivityAnalytics & {
56
- board: BoardData;
57
- user: {
58
- userId: string;
59
- displayName: string;
60
- avatarUrl: string | null;
61
- };
62
- };
@@ -1,38 +0,0 @@
1
- // Data.
2
- export class APIAnalytics {
3
- web;
4
- constructor(web) {
5
- this.web = web;
6
- }
7
- // Methods.
8
- async getGlobalAnalytics({ auth, ...rest }) {
9
- return await this.web.request({
10
- method: 'GET', auth, ...rest,
11
- endpoint: this.web.qp('/analytics'),
12
- });
13
- }
14
- async getUserAnalytics({ auth, ...rest }) {
15
- return await this.web.request({
16
- method: 'GET', auth, ...rest,
17
- endpoint: this.web.qp('/analytics/user'),
18
- });
19
- }
20
- async getBoardAnalytics({ auth, boardId, categoryId, groupId, ...rest }) {
21
- return await this.web.request({
22
- method: 'GET', auth, ...rest,
23
- endpoint: this.web.qp(`/groups/${groupId}/categories/${categoryId}/boards/${boardId}/analytics`),
24
- });
25
- }
26
- async getCategoryAnalytics({ auth, categoryId, groupId, ...rest }) {
27
- return await this.web.request({
28
- method: 'GET', auth, ...rest,
29
- endpoint: this.web.qp(`/groups/${groupId}/categories/${categoryId}/analytics`),
30
- });
31
- }
32
- async getGroupAnalytics({ auth, groupId, ...rest }) {
33
- return await this.web.request({
34
- method: 'GET', auth, ...rest,
35
- endpoint: this.web.qp(`/groups/${groupId}/analytics`),
36
- });
37
- }
38
- }
@@ -1,48 +0,0 @@
1
- import { BoardsManager } from '../core/manager';
2
- import { CreateSessionInput } from './sessions';
3
- import { DBUserPartialType } from '../external/vars';
4
- import { WithHeaders } from '../types';
5
- export declare class APIAuth {
6
- private web;
7
- constructor(web: BoardsManager);
8
- authenticate({ auth, body, ...rest }: AuthFunctionsInput['authenticate']): Promise<import("..").WebResponse<{
9
- avatarUrl: string | null;
10
- boardPermissions: {
11
- boardId: string;
12
- role: import("../../prisma/generated").$Enums.BoardRole;
13
- }[];
14
- categoryPermissions: {
15
- categoryId: string;
16
- role: import("../../prisma/generated").$Enums.CategoryRole;
17
- }[];
18
- displayName: string;
19
- email: string;
20
- groupPermissions: {
21
- groupId: string;
22
- role: import("../../prisma/generated").$Enums.GroupRole;
23
- }[];
24
- invitedBy: string | null;
25
- loginMethods: {
26
- platform: import("../../prisma/generated").$Enums.Platforms;
27
- platformEmail: string;
28
- }[];
29
- mainGroupId: string | null;
30
- mainLoginType: import("../../prisma/generated").$Enums.Platforms;
31
- registrationMethod: import("../../prisma/generated").$Enums.RegistrationMethod;
32
- userId: string;
33
- }>>;
34
- }
35
- export type AuthFunctionsInput = WithHeaders<{
36
- 'authenticate': {
37
- auth: string;
38
- body: CreateSessionInput & {
39
- refreshProfile?: boolean;
40
- };
41
- };
42
- }>;
43
- export type AuthOutput = DBUserPartialType & {
44
- sessions: {
45
- dbId: string;
46
- lastUsed: Date;
47
- }[];
48
- };
@@ -1,12 +0,0 @@
1
- export class APIAuth {
2
- web;
3
- constructor(web) {
4
- this.web = web;
5
- }
6
- async authenticate({ auth, body, ...rest }) {
7
- return await this.web.request({
8
- method: 'POST', auth, body, ...rest,
9
- endpoint: this.web.qp('/auth/authenticate'),
10
- });
11
- }
12
- }
@@ -1,99 +0,0 @@
1
- import { AccessLevel, AllRooms, NameInput, SingleOutput } from '../external/types';
2
- import { BoardType } from '../../prisma/generated/default';
3
- import { BoardsManager } from '../core/manager';
4
- import { WithHeaders } from '../types';
5
- export declare class APIBoards {
6
- private web;
7
- constructor(web: BoardsManager);
8
- getBoards({ auth, categoryId, groupId, ...rest }: BoardsFunctionsInput['getBoards']): Promise<import("..").WebResponse<GetBoardOutput[]>>;
9
- getBoard({ auth, categoryId, groupId, boardId, ...rest }: BoardsFunctionsInput['getBoard']): Promise<import("..").WebResponse<GetBoardOutput>>;
10
- updateBoard({ auth, categoryId, groupId, boardId, body, ...rest }: BoardsFunctionsInput['updateBoard']): Promise<import("..").WebResponse<string>>;
11
- moveBoard({ auth, categoryId, groupId, boardId, body, ...rest }: BoardsFunctionsInput['moveBoard']): Promise<import("..").WebResponse<MoveBoardOutput>>;
12
- scheduleBoardDeletion({ auth, categoryId, groupId, boardId, ...rest }: BoardsFunctionsInput['scheduleBoardDeletion']): Promise<import("..").WebResponse<string>>;
13
- forceDeleteBoard({ auth, categoryId, groupId, boardId, ...rest }: BoardsFunctionsInput['scheduleBoardDeletion']): Promise<import("..").WebResponse<string>>;
14
- cancelBoardDeletion({ auth, categoryId, groupId, boardId, ...rest }: BoardsFunctionsInput['cancelBoardDeletion']): Promise<import("..").WebResponse<string>>;
15
- getBoardRoomData({ auth, categoryId, groupId, boardId, ...rest }: BoardsFunctionsInput['getRoomData']): Promise<import("..").WebResponse<AllRooms>>;
16
- kickUserFromRoom({ auth, categoryId, groupId, boardId, userId, ...rest }: BoardsFunctionsInput['kickUserFromRoom']): Promise<import("..").WebResponse<string>>;
17
- }
18
- export type BoardsFunctionsInput = WithHeaders<{
19
- 'getBoards': {
20
- auth: string;
21
- categoryId: string;
22
- groupId: string;
23
- };
24
- 'getBoard': {
25
- auth: string;
26
- categoryId: string;
27
- groupId: string;
28
- boardId: string;
29
- };
30
- 'updateBoard': {
31
- auth: string;
32
- categoryId: string;
33
- groupId: string;
34
- boardId: string;
35
- body: NameInput;
36
- };
37
- 'moveBoard': {
38
- auth: string;
39
- categoryId: string;
40
- groupId: string;
41
- boardId: string;
42
- body: MoveBoardInput;
43
- };
44
- 'scheduleBoardDeletion': {
45
- auth: string;
46
- categoryId: string;
47
- groupId: string;
48
- boardId: string;
49
- };
50
- 'cancelBoardDeletion': {
51
- auth: string;
52
- categoryId: string;
53
- groupId: string;
54
- boardId: string;
55
- };
56
- 'getRoomData': {
57
- auth: string;
58
- categoryId: string;
59
- groupId: string;
60
- boardId: string;
61
- };
62
- 'kickUserFromRoom': {
63
- auth: string;
64
- categoryId: string;
65
- groupId: string;
66
- boardId: string;
67
- userId: string;
68
- };
69
- }>;
70
- export type GetBoardOutput = {
71
- group: SingleOutput;
72
- category: SingleOutput;
73
- board: SingleOutput & {
74
- type: BoardType;
75
- dataUrl: string;
76
- hasFlashcards: boolean;
77
- totalSizeBytes: number;
78
- accessLevel: AccessLevel;
79
- scheduledForDeletion: Date | null;
80
- files: {
81
- fileId: string;
82
- mimeType: string;
83
- createdAt: Date;
84
- sizeBytes: number;
85
- fileUrl: string;
86
- }[];
87
- };
88
- };
89
- export type GetFileOutput = ReadableStream | Blob;
90
- export type MoveBoardInput = {
91
- targetCategoryId: string;
92
- targetIndex?: number;
93
- };
94
- export type MoveBoardOutput = {
95
- boardId: string;
96
- categoryId: string;
97
- groupId: string;
98
- index: number;
99
- };
@@ -1,62 +0,0 @@
1
- export class APIBoards {
2
- web;
3
- constructor(web) {
4
- this.web = web;
5
- }
6
- async getBoards({ auth, categoryId, groupId, ...rest }) {
7
- return await this.web.request({
8
- method: 'GET', auth, ...rest,
9
- endpoint: this.web.qp(`/groups/${groupId}/categories/${categoryId}`),
10
- });
11
- }
12
- async getBoard({ auth, categoryId, groupId, boardId, ...rest }) {
13
- return await this.web.request({
14
- method: 'GET', auth, ...rest,
15
- endpoint: this.web.qp(`/groups/${groupId}/categories/${categoryId}/boards/${boardId}`),
16
- });
17
- }
18
- async updateBoard({ auth, categoryId, groupId, boardId, body, ...rest }) {
19
- return await this.web.request({
20
- method: 'PATCH', auth, body, ...rest,
21
- endpoint: this.web.qp(`/groups/${groupId}/categories/${categoryId}/boards/${boardId}`),
22
- });
23
- }
24
- async moveBoard({ auth, categoryId, groupId, boardId, body, ...rest }) {
25
- return await this.web.request({
26
- method: 'POST', auth, body, ...rest,
27
- endpoint: this.web.qp(`/groups/${groupId}/categories/${categoryId}/boards/${boardId}/move`),
28
- });
29
- }
30
- async scheduleBoardDeletion({ auth, categoryId, groupId, boardId, ...rest }) {
31
- return await this.web.request({
32
- method: 'DELETE', auth, ...rest,
33
- endpoint: this.web.qp(`/groups/${groupId}/categories/${categoryId}/boards/${boardId}`),
34
- });
35
- }
36
- async forceDeleteBoard({ auth, categoryId, groupId, boardId, ...rest }) {
37
- return await this.web.request({
38
- method: 'DELETE', auth, ...rest,
39
- endpoint: this.web.qp(`/groups/${groupId}/categories/${categoryId}/boards/${boardId}?force=true`),
40
- });
41
- }
42
- async cancelBoardDeletion({ auth, categoryId, groupId, boardId, ...rest }) {
43
- return await this.web.request({
44
- method: 'POST', auth, ...rest,
45
- endpoint: this.web.qp(`/groups/${groupId}/categories/${categoryId}/boards/${boardId}/cancel-deletion`),
46
- });
47
- }
48
- async getBoardRoomData({ auth, categoryId, groupId, boardId, ...rest }) {
49
- return await this.web.request({
50
- method: 'GET', auth, ...rest,
51
- endpoint: this.web.qp(`/groups/${groupId}/categories/${categoryId}/boards/${boardId}/room`),
52
- });
53
- }
54
- async kickUserFromRoom({ auth, categoryId, groupId, boardId, userId, ...rest }) {
55
- return await this.web.request({
56
- method: 'POST', auth, ...rest,
57
- endpoint: this.web.qp(`/groups/${groupId}/categories/${categoryId}/boards/${boardId}/room-kick`, {
58
- userId,
59
- }),
60
- });
61
- }
62
- }