document-drive 4.0.1 → 4.1.0-dev.2

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 (264) hide show
  1. package/dist/index.d.ts +2 -2
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +2 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/prisma/schema.prisma +1 -2
  6. package/dist/src/drive-document-model/gen/document-model.js +3 -3
  7. package/dist/src/drive-document-model/gen/document-model.js.map +1 -1
  8. package/dist/src/drive-document-model/gen/drive/actions.d.ts +9 -9
  9. package/dist/src/drive-document-model/gen/drive/actions.d.ts.map +1 -1
  10. package/dist/src/drive-document-model/gen/node/actions.d.ts +8 -8
  11. package/dist/src/drive-document-model/gen/node/actions.d.ts.map +1 -1
  12. package/dist/src/drive-document-model/gen/node/creators.d.ts +6 -2
  13. package/dist/src/drive-document-model/gen/node/creators.d.ts.map +1 -1
  14. package/dist/src/drive-document-model/gen/node/creators.js +8 -1
  15. package/dist/src/drive-document-model/gen/node/creators.js.map +1 -1
  16. package/dist/src/drive-document-model/gen/reducer.d.ts.map +1 -1
  17. package/dist/src/drive-document-model/gen/reducer.js.map +1 -1
  18. package/dist/src/drive-document-model/gen/schema/types.d.ts +1 -14
  19. package/dist/src/drive-document-model/gen/schema/types.d.ts.map +1 -1
  20. package/dist/src/drive-document-model/gen/schema/zod.d.ts +1 -5
  21. package/dist/src/drive-document-model/gen/schema/zod.d.ts.map +1 -1
  22. package/dist/src/drive-document-model/gen/schema/zod.js +0 -12
  23. package/dist/src/drive-document-model/gen/schema/zod.js.map +1 -1
  24. package/dist/src/drive-document-model/gen/types.d.ts +13 -4
  25. package/dist/src/drive-document-model/gen/types.d.ts.map +1 -1
  26. package/dist/src/drive-document-model/gen/types.js.map +1 -1
  27. package/dist/src/drive-document-model/module.d.ts +2 -1
  28. package/dist/src/drive-document-model/module.d.ts.map +1 -1
  29. package/dist/src/drive-document-model/src/reducers/node.d.ts.map +1 -1
  30. package/dist/src/drive-document-model/src/reducers/node.js +1 -25
  31. package/dist/src/drive-document-model/src/reducers/node.js.map +1 -1
  32. package/dist/src/drive-document-model/src/tests/actions.test.js +1 -23
  33. package/dist/src/drive-document-model/src/tests/actions.test.js.map +1 -1
  34. package/dist/src/drive-document-model/src/tests/base.test.js +0 -32
  35. package/dist/src/drive-document-model/src/tests/base.test.js.map +1 -1
  36. package/dist/src/drive-document-model/src/tests/utils.test.js +7 -37
  37. package/dist/src/drive-document-model/src/tests/utils.test.js.map +1 -1
  38. package/dist/src/drive-document-model/src/utils.d.ts +2 -8
  39. package/dist/src/drive-document-model/src/utils.d.ts.map +1 -1
  40. package/dist/src/drive-document-model/src/utils.js +6 -55
  41. package/dist/src/drive-document-model/src/utils.js.map +1 -1
  42. package/dist/src/processors/types.d.ts +2 -1
  43. package/dist/src/processors/types.d.ts.map +1 -1
  44. package/dist/src/queue/base.d.ts +6 -27
  45. package/dist/src/queue/base.d.ts.map +1 -1
  46. package/dist/src/queue/base.js +15 -203
  47. package/dist/src/queue/base.js.map +1 -1
  48. package/dist/src/queue/event.d.ts +41 -0
  49. package/dist/src/queue/event.d.ts.map +1 -0
  50. package/dist/src/queue/event.js +222 -0
  51. package/dist/src/queue/event.js.map +1 -0
  52. package/dist/src/queue/redis.d.ts +1 -27
  53. package/dist/src/queue/redis.d.ts.map +1 -1
  54. package/dist/src/queue/redis.js +122 -110
  55. package/dist/src/queue/redis.js.map +1 -1
  56. package/dist/src/queue/types.d.ts +18 -12
  57. package/dist/src/queue/types.d.ts.map +1 -1
  58. package/dist/src/queue/types.js +3 -0
  59. package/dist/src/queue/types.js.map +1 -1
  60. package/dist/src/server/base-server.d.ts +87 -11
  61. package/dist/src/server/base-server.d.ts.map +1 -1
  62. package/dist/src/server/base-server.js +549 -250
  63. package/dist/src/server/base-server.js.map +1 -1
  64. package/dist/src/server/builder.js +2 -2
  65. package/dist/src/server/builder.js.map +1 -1
  66. package/dist/src/server/error.d.ts +3 -3
  67. package/dist/src/server/error.d.ts.map +1 -1
  68. package/dist/src/server/error.js +2 -2
  69. package/dist/src/server/error.js.map +1 -1
  70. package/dist/src/server/listener/listener-manager.d.ts +5 -6
  71. package/dist/src/server/listener/listener-manager.d.ts.map +1 -1
  72. package/dist/src/server/listener/listener-manager.js +62 -79
  73. package/dist/src/server/listener/listener-manager.js.map +1 -1
  74. package/dist/src/server/listener/transmitter/internal.d.ts +3 -3
  75. package/dist/src/server/listener/transmitter/internal.d.ts.map +1 -1
  76. package/dist/src/server/listener/transmitter/internal.js +18 -13
  77. package/dist/src/server/listener/transmitter/internal.js.map +1 -1
  78. package/dist/src/server/listener/transmitter/pull-responder.d.ts.map +1 -1
  79. package/dist/src/server/listener/transmitter/pull-responder.js +14 -8
  80. package/dist/src/server/listener/transmitter/pull-responder.js.map +1 -1
  81. package/dist/src/server/listener/transmitter/switchboard-push.d.ts.map +1 -1
  82. package/dist/src/server/listener/transmitter/switchboard-push.js +13 -8
  83. package/dist/src/server/listener/transmitter/switchboard-push.js.map +1 -1
  84. package/dist/src/server/sync-manager.d.ts +8 -10
  85. package/dist/src/server/sync-manager.d.ts.map +1 -1
  86. package/dist/src/server/sync-manager.js +62 -147
  87. package/dist/src/server/sync-manager.js.map +1 -1
  88. package/dist/src/server/sync-unit-map.d.ts +137 -0
  89. package/dist/src/server/sync-unit-map.d.ts.map +1 -0
  90. package/dist/src/server/sync-unit-map.js +234 -0
  91. package/dist/src/server/sync-unit-map.js.map +1 -0
  92. package/dist/src/server/types.d.ts +116 -33
  93. package/dist/src/server/types.d.ts.map +1 -1
  94. package/dist/src/server/types.js.map +1 -1
  95. package/dist/src/server/utils.d.ts +10 -1
  96. package/dist/src/server/utils.d.ts.map +1 -1
  97. package/dist/src/server/utils.js +44 -1
  98. package/dist/src/server/utils.js.map +1 -1
  99. package/dist/src/storage/browser.d.ts +7 -2
  100. package/dist/src/storage/browser.d.ts.map +1 -1
  101. package/dist/src/storage/browser.js +80 -22
  102. package/dist/src/storage/browser.js.map +1 -1
  103. package/dist/src/storage/filesystem.d.ts +7 -2
  104. package/dist/src/storage/filesystem.d.ts.map +1 -1
  105. package/dist/src/storage/filesystem.js +79 -22
  106. package/dist/src/storage/filesystem.js.map +1 -1
  107. package/dist/src/storage/memory.d.ts +7 -2
  108. package/dist/src/storage/memory.d.ts.map +1 -1
  109. package/dist/src/storage/memory.js +76 -22
  110. package/dist/src/storage/memory.js.map +1 -1
  111. package/dist/src/storage/prisma/client/edge.js +5 -4
  112. package/dist/src/storage/prisma/client/index-browser.js +2 -1
  113. package/dist/src/storage/prisma/client/index.d.ts +58 -249
  114. package/dist/src/storage/prisma/client/index.js +5 -4
  115. package/dist/src/storage/prisma/client/package.json +1 -1
  116. package/dist/src/storage/prisma/client/schema.prisma +2 -3
  117. package/dist/src/storage/prisma/client/wasm.js +2 -1
  118. package/dist/src/storage/prisma/prisma.d.ts +9 -4
  119. package/dist/src/storage/prisma/prisma.d.ts.map +1 -1
  120. package/dist/src/storage/prisma/prisma.js +119 -51
  121. package/dist/src/storage/prisma/prisma.js.map +1 -1
  122. package/dist/src/storage/types.d.ts +43 -4
  123. package/dist/src/storage/types.d.ts.map +1 -1
  124. package/dist/src/storage/utils.d.ts +3 -0
  125. package/dist/src/storage/utils.d.ts.map +1 -1
  126. package/dist/src/storage/utils.js +14 -0
  127. package/dist/src/storage/utils.js.map +1 -1
  128. package/dist/src/utils/gql-transformations.d.ts +14 -5
  129. package/dist/src/utils/gql-transformations.d.ts.map +1 -1
  130. package/dist/src/utils/gql-transformations.js +1 -0
  131. package/dist/src/utils/gql-transformations.js.map +1 -1
  132. package/dist/src/utils/migrations.d.ts.map +1 -1
  133. package/dist/src/utils/migrations.js.map +1 -1
  134. package/dist/src/utils/misc.d.ts +2 -0
  135. package/dist/src/utils/misc.d.ts.map +1 -1
  136. package/dist/src/utils/misc.js +4 -0
  137. package/dist/src/utils/misc.js.map +1 -1
  138. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  139. package/package.json +4 -4
  140. package/dist/test/cache.test.d.ts +0 -2
  141. package/dist/test/cache.test.d.ts.map +0 -1
  142. package/dist/test/cache.test.js +0 -281
  143. package/dist/test/cache.test.js.map +0 -1
  144. package/dist/test/default-remote-drives.test.d.ts +0 -2
  145. package/dist/test/default-remote-drives.test.d.ts.map +0 -1
  146. package/dist/test/default-remote-drives.test.js +0 -446
  147. package/dist/test/default-remote-drives.test.js.map +0 -1
  148. package/dist/test/document-helpers/addUndo.test.d.ts +0 -2
  149. package/dist/test/document-helpers/addUndo.test.d.ts.map +0 -1
  150. package/dist/test/document-helpers/addUndo.test.js +0 -120
  151. package/dist/test/document-helpers/addUndo.test.js.map +0 -1
  152. package/dist/test/document-helpers/attachBranch.test.d.ts +0 -2
  153. package/dist/test/document-helpers/attachBranch.test.d.ts.map +0 -1
  154. package/dist/test/document-helpers/attachBranch.test.js +0 -333
  155. package/dist/test/document-helpers/attachBranch.test.js.map +0 -1
  156. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.d.ts +0 -2
  157. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.d.ts.map +0 -1
  158. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.js +0 -252
  159. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.js.map +0 -1
  160. package/dist/test/document-helpers/garbageCollect.test.d.ts +0 -2
  161. package/dist/test/document-helpers/garbageCollect.test.d.ts.map +0 -1
  162. package/dist/test/document-helpers/garbageCollect.test.js +0 -136
  163. package/dist/test/document-helpers/garbageCollect.test.js.map +0 -1
  164. package/dist/test/document-helpers/groupOperationsByScope.test.d.ts +0 -2
  165. package/dist/test/document-helpers/groupOperationsByScope.test.d.ts.map +0 -1
  166. package/dist/test/document-helpers/groupOperationsByScope.test.js +0 -98
  167. package/dist/test/document-helpers/groupOperationsByScope.test.js.map +0 -1
  168. package/dist/test/document-helpers/merge.test.d.ts +0 -2
  169. package/dist/test/document-helpers/merge.test.d.ts.map +0 -1
  170. package/dist/test/document-helpers/merge.test.js +0 -757
  171. package/dist/test/document-helpers/merge.test.js.map +0 -1
  172. package/dist/test/document-helpers/nextSkipNumber.test.d.ts +0 -2
  173. package/dist/test/document-helpers/nextSkipNumber.test.d.ts.map +0 -1
  174. package/dist/test/document-helpers/nextSkipNumber.test.js +0 -123
  175. package/dist/test/document-helpers/nextSkipNumber.test.js.map +0 -1
  176. package/dist/test/document-helpers/prepareOperations.test.d.ts +0 -2
  177. package/dist/test/document-helpers/prepareOperations.test.d.ts.map +0 -1
  178. package/dist/test/document-helpers/prepareOperations.test.js +0 -304
  179. package/dist/test/document-helpers/prepareOperations.test.js.map +0 -1
  180. package/dist/test/document-helpers/removeExistingOperations.test.d.ts +0 -2
  181. package/dist/test/document-helpers/removeExistingOperations.test.d.ts.map +0 -1
  182. package/dist/test/document-helpers/removeExistingOperations.test.js +0 -150
  183. package/dist/test/document-helpers/removeExistingOperations.test.js.map +0 -1
  184. package/dist/test/document-helpers/reshuffleByTimestamp.test.d.ts +0 -2
  185. package/dist/test/document-helpers/reshuffleByTimestamp.test.d.ts.map +0 -1
  186. package/dist/test/document-helpers/reshuffleByTimestamp.test.js +0 -148
  187. package/dist/test/document-helpers/reshuffleByTimestamp.test.js.map +0 -1
  188. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.d.ts +0 -2
  189. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.d.ts.map +0 -1
  190. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js +0 -200
  191. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js.map +0 -1
  192. package/dist/test/document-helpers/sortOperations.test.d.ts +0 -2
  193. package/dist/test/document-helpers/sortOperations.test.d.ts.map +0 -1
  194. package/dist/test/document-helpers/sortOperations.test.js +0 -101
  195. package/dist/test/document-helpers/sortOperations.test.js.map +0 -1
  196. package/dist/test/document-helpers/split.test.d.ts +0 -2
  197. package/dist/test/document-helpers/split.test.d.ts.map +0 -1
  198. package/dist/test/document-helpers/split.test.js +0 -121
  199. package/dist/test/document-helpers/split.test.js.map +0 -1
  200. package/dist/test/document-helpers/utils.d.ts +0 -8
  201. package/dist/test/document-helpers/utils.d.ts.map +0 -1
  202. package/dist/test/document-helpers/utils.js +0 -22
  203. package/dist/test/document-helpers/utils.js.map +0 -1
  204. package/dist/test/drive-operations.test.d.ts +0 -2
  205. package/dist/test/drive-operations.test.d.ts.map +0 -1
  206. package/dist/test/drive-operations.test.js +0 -145
  207. package/dist/test/drive-operations.test.js.map +0 -1
  208. package/dist/test/graphql.test.d.ts +0 -2
  209. package/dist/test/graphql.test.d.ts.map +0 -1
  210. package/dist/test/graphql.test.js +0 -10
  211. package/dist/test/graphql.test.js.map +0 -1
  212. package/dist/test/internal-listener.test.d.ts +0 -2
  213. package/dist/test/internal-listener.test.d.ts.map +0 -1
  214. package/dist/test/internal-listener.test.js +0 -277
  215. package/dist/test/internal-listener.test.js.map +0 -1
  216. package/dist/test/queue.test.d.ts +0 -2
  217. package/dist/test/queue.test.d.ts.map +0 -1
  218. package/dist/test/queue.test.js +0 -338
  219. package/dist/test/queue.test.js.map +0 -1
  220. package/dist/test/read-mode.test.d.ts +0 -2
  221. package/dist/test/read-mode.test.d.ts.map +0 -1
  222. package/dist/test/read-mode.test.js +0 -578
  223. package/dist/test/read-mode.test.js.map +0 -1
  224. package/dist/test/server/driveOperationsConflictResolution.test.d.ts +0 -2
  225. package/dist/test/server/driveOperationsConflictResolution.test.d.ts.map +0 -1
  226. package/dist/test/server/driveOperationsConflictResolution.test.js +0 -460
  227. package/dist/test/server/driveOperationsConflictResolution.test.js.map +0 -1
  228. package/dist/test/server/mergeOperations.test.d.ts +0 -2
  229. package/dist/test/server/mergeOperations.test.d.ts.map +0 -1
  230. package/dist/test/server/mergeOperations.test.js +0 -107
  231. package/dist/test/server/mergeOperations.test.js.map +0 -1
  232. package/dist/test/server/processOperations.test.d.ts +0 -2
  233. package/dist/test/server/processOperations.test.d.ts.map +0 -1
  234. package/dist/test/server/processOperations.test.js +0 -380
  235. package/dist/test/server/processOperations.test.js.map +0 -1
  236. package/dist/test/server.test.d.ts +0 -2
  237. package/dist/test/server.test.d.ts.map +0 -1
  238. package/dist/test/server.test.js +0 -899
  239. package/dist/test/server.test.js.map +0 -1
  240. package/dist/test/signature-migration.test.d.ts +0 -2
  241. package/dist/test/signature-migration.test.d.ts.map +0 -1
  242. package/dist/test/signature-migration.test.js +0 -239
  243. package/dist/test/signature-migration.test.js.map +0 -1
  244. package/dist/test/storage.test.d.ts +0 -2
  245. package/dist/test/storage.test.d.ts.map +0 -1
  246. package/dist/test/storage.test.js +0 -523
  247. package/dist/test/storage.test.js.map +0 -1
  248. package/dist/test/utils.d.ts +0 -48
  249. package/dist/test/utils.d.ts.map +0 -1
  250. package/dist/test/utils.js +0 -133
  251. package/dist/test/utils.js.map +0 -1
  252. package/dist/test/utils.test.d.ts +0 -2
  253. package/dist/test/utils.test.d.ts.map +0 -1
  254. package/dist/test/utils.test.js +0 -89
  255. package/dist/test/utils.test.js.map +0 -1
  256. package/dist/test/vitest-setup.d.ts +0 -2
  257. package/dist/test/vitest-setup.d.ts.map +0 -1
  258. package/dist/test/vitest-setup.js +0 -5
  259. package/dist/test/vitest-setup.js.map +0 -1
  260. package/dist/tsconfig.tsbuildinfo +0 -1
  261. package/dist/vitest.config.d.ts +0 -3
  262. package/dist/vitest.config.d.ts.map +0 -1
  263. package/dist/vitest.config.js +0 -27
  264. package/dist/vitest.config.js.map +0 -1
@@ -102,7 +102,8 @@ exports.Prisma.DocumentScalarFieldEnum = {
102
102
  name: 'name',
103
103
  initialState: 'initialState',
104
104
  documentType: 'documentType',
105
- meta: 'meta'
105
+ meta: 'meta',
106
+ scopes: 'scopes'
106
107
  };
107
108
 
108
109
  exports.Prisma.DriveDocumentScalarFieldEnum = {
@@ -228,8 +229,8 @@ const config = {
228
229
  }
229
230
  }
230
231
  },
231
- "inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../src/storage/prisma/client\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel Drive {\n id String @id\n driveDocuments DriveDocument[]\n}\n\nmodel Document {\n id String @id\n // ordinal used only for paging\n ordinal Int @unique @default(autoincrement())\n created DateTime @default(now())\n lastModified DateTime @default(now())\n slug String? @unique\n revision String\n name String?\n operations Operation[]\n initialState String // json object with the scope as keys of the root object\n documentType String\n meta String?\n synchronizationUnits SynchronizationUnit[]\n driveDocuments DriveDocument[]\n}\n\n// Model to map the many-to-many relationship between drives and documents\nmodel DriveDocument {\n driveId String\n documentId String\n drive Drive @relation(fields: [driveId], references: [id], onDelete: Cascade)\n document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)\n\n @@id([driveId, documentId])\n @@index([driveId])\n @@index([documentId])\n}\n\nmodel Operation {\n id String @id @default(uuid())\n opId String?\n Document Document? @relation(fields: [documentId], references: [id], onDelete: Cascade)\n documentId String\n scope String\n branch String\n index Int\n skip Int\n hash String\n timestamp DateTime\n input String\n type String\n attachments Attachment[]\n syncId String?\n clipboard Boolean? @default(false)\n context Json?\n resultingState Bytes?\n\n SynchronizationUnit SynchronizationUnit? @relation(fields: [syncId], references: [id], onDelete: Cascade)\n\n @@unique([documentId, scope, branch, index(sort: Asc)], name: \"unique_operation\")\n}\n\nmodel SynchronizationUnit {\n id String @id\n documentId String\n\n Document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)\n scope String\n branch String\n operations Operation[]\n}\n\nmodel Attachment {\n id String @id @default(uuid())\n operationId String\n Operation Operation @relation(fields: [operationId], references: [id], onDelete: Cascade)\n\n mimeType String\n data String\n filename String?\n extension String?\n hash String\n}\n",
232
- "inlineSchemaHash": "dcfcdfc1aca316c77e12fddf60d2a92c1aa127837506685b4abeab471c634765",
232
+ "inlineSchema": "// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../src/storage/prisma/client\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel Drive {\n id String @id\n driveDocuments DriveDocument[]\n}\n\nmodel Document {\n id String @id\n // ordinal used only for paging\n ordinal Int @unique @default(autoincrement())\n created DateTime @default(now())\n lastModified DateTime @default(now())\n slug String? @unique\n revision String\n name String?\n operations Operation[]\n initialState String // json object with the scope as keys of the root object\n documentType String\n meta String?\n synchronizationUnits SynchronizationUnit[]\n scopes String[]\n}\n\n// Model to map the many-to-many relationship between drives and documents\nmodel DriveDocument {\n driveId String\n documentId String\n drive Drive @relation(fields: [driveId], references: [id], onDelete: Cascade)\n\n @@id([driveId, documentId])\n @@index([driveId])\n @@index([documentId])\n}\n\nmodel Operation {\n id String @id @default(uuid())\n opId String?\n Document Document? @relation(fields: [documentId], references: [id], onDelete: Cascade)\n documentId String\n scope String\n branch String\n index Int\n skip Int\n hash String\n timestamp DateTime\n input String\n type String\n attachments Attachment[]\n syncId String?\n clipboard Boolean? @default(false)\n context Json?\n resultingState Bytes?\n\n SynchronizationUnit SynchronizationUnit? @relation(fields: [syncId], references: [id], onDelete: Cascade)\n\n @@unique([documentId, scope, branch, index(sort: Asc)], name: \"unique_operation\")\n}\n\nmodel SynchronizationUnit {\n id String @id\n documentId String\n\n Document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)\n scope String\n branch String\n operations Operation[]\n}\n\nmodel Attachment {\n id String @id @default(uuid())\n operationId String\n Operation Operation @relation(fields: [operationId], references: [id], onDelete: Cascade)\n\n mimeType String\n data String\n filename String?\n extension String?\n hash String\n}\n",
233
+ "inlineSchemaHash": "fd0d0aa489a0f966afbac658b2215efab23955b529c1ff4328a009245e92d0bf",
233
234
  "copyEngine": true
234
235
  }
235
236
 
@@ -250,7 +251,7 @@ if (!fs.existsSync(path.join(__dirname, 'schema.prisma'))) {
250
251
  config.isBundled = true
251
252
  }
252
253
 
253
- config.runtimeDataModel = JSON.parse("{\"models\":{\"Drive\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"driveDocuments\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DriveDocument\",\"relationName\":\"DriveToDriveDocument\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Document\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ordinal\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastModified\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"slug\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"revision\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"operations\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Operation\",\"relationName\":\"DocumentToOperation\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"initialState\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"documentType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"meta\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"synchronizationUnits\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"SynchronizationUnit\",\"relationName\":\"DocumentToSynchronizationUnit\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"driveDocuments\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DriveDocument\",\"relationName\":\"DocumentToDriveDocument\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"DriveDocument\":{\"dbName\":null,\"fields\":[{\"name\":\"driveId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"documentId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"drive\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Drive\",\"relationName\":\"DriveToDriveDocument\",\"relationFromFields\":[\"driveId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"document\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Document\",\"relationName\":\"DocumentToDriveDocument\",\"relationFromFields\":[\"documentId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"driveId\",\"documentId\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Operation\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"uuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"opId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"Document\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Document\",\"relationName\":\"DocumentToOperation\",\"relationFromFields\":[\"documentId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"documentId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"scope\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"branch\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"index\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"skip\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"hash\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"timestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"input\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"attachments\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Attachment\",\"relationName\":\"AttachmentToOperation\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"syncId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"clipboard\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"context\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"resultingState\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Bytes\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"SynchronizationUnit\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"SynchronizationUnit\",\"relationName\":\"OperationToSynchronizationUnit\",\"relationFromFields\":[\"syncId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"documentId\",\"scope\",\"branch\",\"index\"]],\"uniqueIndexes\":[{\"name\":\"unique_operation\",\"fields\":[\"documentId\",\"scope\",\"branch\",\"index\"]}],\"isGenerated\":false},\"SynchronizationUnit\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"documentId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"Document\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Document\",\"relationName\":\"DocumentToSynchronizationUnit\",\"relationFromFields\":[\"documentId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"scope\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"branch\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"operations\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Operation\",\"relationName\":\"OperationToSynchronizationUnit\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Attachment\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"uuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"operationId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"Operation\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Operation\",\"relationName\":\"AttachmentToOperation\",\"relationFromFields\":[\"operationId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mimeType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"data\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"filename\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"extension\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"hash\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}")
254
+ config.runtimeDataModel = JSON.parse("{\"models\":{\"Drive\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"driveDocuments\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DriveDocument\",\"relationName\":\"DriveToDriveDocument\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Document\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ordinal\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"default\":{\"name\":\"autoincrement\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastModified\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"slug\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"revision\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"operations\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Operation\",\"relationName\":\"DocumentToOperation\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"initialState\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"documentType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"meta\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"synchronizationUnits\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"SynchronizationUnit\",\"relationName\":\"DocumentToSynchronizationUnit\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"scopes\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"DriveDocument\":{\"dbName\":null,\"fields\":[{\"name\":\"driveId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"documentId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"drive\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Drive\",\"relationName\":\"DriveToDriveDocument\",\"relationFromFields\":[\"driveId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"driveId\",\"documentId\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Operation\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"uuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"opId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"Document\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Document\",\"relationName\":\"DocumentToOperation\",\"relationFromFields\":[\"documentId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"documentId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"scope\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"branch\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"index\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"skip\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"hash\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"timestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"input\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"attachments\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Attachment\",\"relationName\":\"AttachmentToOperation\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"syncId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"clipboard\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"context\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"resultingState\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Bytes\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"SynchronizationUnit\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"SynchronizationUnit\",\"relationName\":\"OperationToSynchronizationUnit\",\"relationFromFields\":[\"syncId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"documentId\",\"scope\",\"branch\",\"index\"]],\"uniqueIndexes\":[{\"name\":\"unique_operation\",\"fields\":[\"documentId\",\"scope\",\"branch\",\"index\"]}],\"isGenerated\":false},\"SynchronizationUnit\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"documentId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"Document\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Document\",\"relationName\":\"DocumentToSynchronizationUnit\",\"relationFromFields\":[\"documentId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"scope\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"branch\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"operations\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Operation\",\"relationName\":\"OperationToSynchronizationUnit\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Attachment\":{\"dbName\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"default\":{\"name\":\"uuid\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"operationId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"Operation\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Operation\",\"relationName\":\"AttachmentToOperation\",\"relationFromFields\":[\"operationId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mimeType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"data\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"filename\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"extension\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"hash\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}")
254
255
  defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
255
256
  config.engineWasm = undefined
256
257
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "prisma-client-d81bae73526bc9cac1098824006fe1a1a7f01b42c69f4f7330664fb1a2c7c974",
2
+ "name": "prisma-client-6f5108e58d852eee49cec3c6f962e48821b00debefe616bcd30ad1464b780093",
3
3
  "main": "index.js",
4
4
  "types": "index.d.ts",
5
5
  "browser": "index-browser.js",
@@ -30,15 +30,14 @@ model Document {
30
30
  documentType String
31
31
  meta String?
32
32
  synchronizationUnits SynchronizationUnit[]
33
- driveDocuments DriveDocument[]
33
+ scopes String[]
34
34
  }
35
35
 
36
36
  // Model to map the many-to-many relationship between drives and documents
37
37
  model DriveDocument {
38
38
  driveId String
39
39
  documentId String
40
- drive Drive @relation(fields: [driveId], references: [id], onDelete: Cascade)
41
- document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)
40
+ drive Drive @relation(fields: [driveId], references: [id], onDelete: Cascade)
42
41
 
43
42
  @@id([driveId, documentId])
44
43
  @@index([driveId])
@@ -133,7 +133,8 @@ exports.Prisma.DocumentScalarFieldEnum = {
133
133
  name: 'name',
134
134
  initialState: 'initialState',
135
135
  documentType: 'documentType',
136
- meta: 'meta'
136
+ meta: 'meta',
137
+ scopes: 'scopes'
137
138
  };
138
139
 
139
140
  exports.Prisma.DriveDocumentScalarFieldEnum = {
@@ -3,7 +3,7 @@ import { type IBackOffOptions } from "exponential-backoff";
3
3
  import { type ICache } from "../../cache/types.js";
4
4
  import { type DocumentDriveAction, type DocumentDriveDocument } from "../../drive-document-model/gen/types.js";
5
5
  import { type SynchronizationUnitQuery } from "../../server/types.js";
6
- import type { IDocumentStorage, IDriveOperationStorage } from "../types.js";
6
+ import type { IDocumentStorage, IDriveOperationStorage, IStorageUnit, IStorageUnitFilter } from "../types.js";
7
7
  import { type Prisma, type PrismaClient } from "./client/index.js";
8
8
  export * from "./factory.js";
9
9
  type Transaction = Omit<PrismaClient<Prisma.PrismaClientOptions, never>, "$connect" | "$disconnect" | "$on" | "$transaction" | "$use" | "$extends"> | ExtendedPrismaClient;
@@ -31,6 +31,10 @@ export declare class PrismaStorage implements IDriveOperationStorage, IDocumentS
31
31
  private db;
32
32
  private cache;
33
33
  constructor(db: PrismaClient, cache: ICache, options?: PrismaStorageOptions);
34
+ findStorageUnitsBy(filter: IStorageUnitFilter, limit: number, cursor?: string): Promise<{
35
+ units: IStorageUnit[];
36
+ nextCursor?: string;
37
+ }>;
34
38
  resolveIds(slugs: string[], signal?: AbortSignal): Promise<string[]>;
35
39
  resolveSlugs(ids: string[], signal?: AbortSignal): Promise<string[]>;
36
40
  exists(documentId: string): Promise<boolean>;
@@ -52,15 +56,16 @@ export declare class PrismaStorage implements IDriveOperationStorage, IDocumentS
52
56
  document: PHDocument;
53
57
  }>): Promise<never>;
54
58
  private _addDocumentOperations;
55
- addDocumentOperationsWithTransaction<TDocument extends PHDocument>(drive: string, id: string, callback: (document: TDocument) => Promise<{
59
+ addDocumentOperationsWithTransaction<TDocument extends PHDocument>(id: string, callback: (document: TDocument) => Promise<{
56
60
  operations: OperationFromDocument<TDocument>[];
57
61
  document: PHDocument;
58
62
  }>): Promise<never>;
59
- addDocumentOperations(drive: string, id: string, operations: Operation[], document: PHDocument): Promise<void>;
60
- getOperationResultingState(driveId: string, documentId: string, index: number, scope: string, branch: string): Promise<string | undefined>;
63
+ addDocumentOperations(id: string, operations: Operation[], document: PHDocument): Promise<void>;
64
+ getOperationResultingState(documentId: string, index: number, scope: string, branch: string): Promise<string | undefined>;
61
65
  getDriveOperationResultingState(drive: string, index: number, scope: string, branch: string): Promise<string | undefined>;
62
66
  getSynchronizationUnitsRevision(units: SynchronizationUnitQuery[]): Promise<{
63
67
  documentId: string;
68
+ documentType: string;
64
69
  scope: string;
65
70
  branch: string;
66
71
  lastUpdated: string;
@@ -1 +1 @@
1
- {"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../../../src/storage/prisma/prisma.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAKV,SAAS,EACT,qBAAqB,EAGrB,UAAU,EAEX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,eAAe,EAAW,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,yCAAyC,CAAC;AAQjD,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEnE,cAAc,cAAc,CAAC;AAE7B,KAAK,WAAW,GACZ,IAAI,CACF,YAAY,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAC/C,UAAU,GAAG,aAAa,GAAG,KAAK,GAAG,cAAc,GAAG,MAAM,GAAG,UAAU,CAC1E,GACD,oBAAoB,CAAC;AA2BzB,MAAM,MAAM,oBAAoB,GAAG;IACjC,uBAAuB,CAAC,EAAE,eAAe,CAAC;CAC3C,CAAC;AAEF,iBAAS,0BAA0B,CAAC,CAAC,SAAS,YAAY,EACxD,MAAM,EAAE,CAAC,EACT,cAAc,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;;sCAIb,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;;;;;;;sCAA7B,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;;OAiB1D;AAED,KAAK,oBAAoB,GAAG,UAAU,CACpC,OAAO,0BAA0B,CAAC,YAAY,CAAC,CAChD,CAAC;AAEF,qBAAa,aAAc,YAAW,sBAAsB,EAAE,gBAAgB;IAC5E,OAAO,CAAC,MAAM,CAAkC;IAEhD,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,KAAK,CAAS;gBAEV,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB;IAarE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAyBpE,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA6BpE,MAAM,CAAC,UAAU,EAAE,MAAM;IAUzB,MAAM,CAAC,QAAQ,EAAE,UAAU;IAiD3B,GAAG,CAAC,SAAS,SAAS,UAAU,EACpC,UAAU,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,WAAW,GACf,OAAO,CAAC,SAAS,CAAC;IA0If,SAAS,CAAC,SAAS,SAAS,UAAU,EAC1C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,SAAS,CAAC;IAcf,UAAU,CACd,iBAAiB,EAAE,MAAM,EACzB,KAAK,SAAM,EACX,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;KAChC,CAAC;IA4CI,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiF5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IA0B1C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAkB7C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBhD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmB9C,kBAAkB,CACtB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAC5C,QAAQ,EAAE,UAAU,GACnB,OAAO,CAAC,IAAI,CAAC;IAIV,iCAAiC,CACrC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,OAAO,CAAC;QACrD,UAAU,EAAE,SAAS,EAAE,CAAC;QACxB,QAAQ,EAAE,UAAU,CAAC;KACtB,CAAC;YASU,sBAAsB;IAkG9B,oCAAoC,CAAC,SAAS,SAAS,UAAU,EACrE,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,OAAO,CAAC;QACzC,UAAU,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,QAAQ,EAAE,UAAU,CAAC;KACtB,CAAC;IAkCE,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,EAAE,UAAU,GACnB,OAAO,CAAC,IAAI,CAAC;IAUV,0BAA0B,CAC9B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAc9B,+BAA+B,CAC7B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAUxB,+BAA+B,CACnC,KAAK,EAAE,wBAAwB,EAAE,GAChC,OAAO,CACR;QACE,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CACJ;IAgCK,0BAA0B;CAgBjC"}
1
+ {"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../../../src/storage/prisma/prisma.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { isValidDocumentId, isValidSlug } from "#storage/utils";
1
+ import { isValidDocumentId, isValidSlug, resolveStorageUnitsFilter, } from "#storage/utils";
2
2
  import { AbortError } from "#utils/errors";
3
3
  import { PrismaClientKnownRequestError } from "@prisma/client/runtime/library";
4
4
  import { backOff } from "exponential-backoff";
@@ -59,6 +59,84 @@ export class PrismaStorage {
59
59
  });
60
60
  }
61
61
  ////////////////////////////////
62
+ // IStorageUnitStorage
63
+ ////////////////////////////////
64
+ async findStorageUnitsBy(filter, limit, cursor) {
65
+ const { parentId: parentIds, documentId: documentIds, documentModelType: documentTypes, scope: scopes, branch: branches, } = resolveStorageUnitsFilter(filter);
66
+ let documents = new Array();
67
+ // if parent ids are passed, find all documents that are children
68
+ // of those parents, intersecting with document ids if provided
69
+ if (parentIds?.size) {
70
+ documents = await this.db.driveDocument
71
+ .findMany({
72
+ select: {
73
+ documentId: true,
74
+ },
75
+ where: {
76
+ driveId: {
77
+ in: [...parentIds],
78
+ },
79
+ ...(documentIds ? { documentId: { in: [...documentIds] } } : {}),
80
+ },
81
+ })
82
+ .then((docs) => docs.map((doc) => doc.documentId));
83
+ documents.unshift(...(documentIds ? parentIds.intersection(documentIds) : parentIds));
84
+ }
85
+ const queryOptions = {
86
+ where: {
87
+ ...(documents.length > 0 ? { id: { in: [...documents] } } : {}),
88
+ ...(documentTypes ? { documentType: { in: [...documentTypes] } } : {}),
89
+ ...(scopes && scopes.size > 0
90
+ ? {
91
+ scopes: {
92
+ hasSome: [...scopes],
93
+ },
94
+ }
95
+ : {}),
96
+ // branch: { in: branches ? [...branches] : undefined },
97
+ },
98
+ orderBy: {
99
+ ordinal: "asc",
100
+ },
101
+ select: {
102
+ id: true,
103
+ documentType: true,
104
+ scopes: true,
105
+ ordinal: true,
106
+ },
107
+ take: limit,
108
+ };
109
+ // if cursor is provided, add it to the query
110
+ if (cursor) {
111
+ const cursorOrdinal = parseInt(cursor, 10);
112
+ if (isNaN(cursorOrdinal)) {
113
+ throw new Error("Invalid cursor format: Expected an integer");
114
+ }
115
+ queryOptions.cursor = {
116
+ ordinal: cursorOrdinal,
117
+ };
118
+ // skip the cursor itself
119
+ queryOptions.skip = 1;
120
+ }
121
+ const results = await this.db.document.findMany(queryOptions);
122
+ let nextCursor;
123
+ if (results.length === limit) {
124
+ // the cursor is the last document in the results
125
+ nextCursor = results[limit - 1].ordinal.toString();
126
+ }
127
+ // Map the database results to IStorageUnit objects
128
+ const units = results.flatMap((doc) => doc.scopes.map((scope) => ({
129
+ documentId: doc.id,
130
+ documentModelType: doc.documentType,
131
+ scope,
132
+ branch: "main",
133
+ })));
134
+ return {
135
+ units,
136
+ nextCursor,
137
+ };
138
+ }
139
+ ////////////////////////////////
62
140
  // IDocumentView
63
141
  ////////////////////////////////
64
142
  async resolveIds(slugs, signal) {
@@ -136,6 +214,7 @@ export class PrismaStorage {
136
214
  meta: document.header.meta
137
215
  ? JSON.stringify(document.header.meta)
138
216
  : undefined,
217
+ scopes: Object.keys(document.state),
139
218
  },
140
219
  });
141
220
  }
@@ -312,34 +391,8 @@ export class PrismaStorage {
312
391
  };
313
392
  }
314
393
  async delete(documentId) {
315
- // find all children that are only children of this document
316
- try {
317
- // Find documents that are only associated with this drive (have no other parents)
318
- const documentsToDelete = await this.db.document.findMany({
319
- where: {
320
- driveDocuments: {
321
- some: {
322
- driveId: documentId,
323
- },
324
- every: {
325
- driveId: documentId,
326
- },
327
- },
328
- },
329
- select: {
330
- id: true,
331
- },
332
- });
333
- // Delete these documents that only belong to this drive
334
- for (const doc of documentsToDelete) {
335
- await this.delete(doc.id);
336
- }
337
- }
338
- catch (e) {
339
- this.logger.error("Error deleting child documents that only belong to this document", e);
340
- }
341
394
  try {
342
- // delete out of drives
395
+ // delete out of drives if document is a drive
343
396
  await this.db.drive.deleteMany({
344
397
  where: {
345
398
  driveDocuments: {
@@ -361,6 +414,12 @@ export class PrismaStorage {
361
414
  id: documentId,
362
415
  },
363
416
  });
417
+ // delete document from drives
418
+ await this.db.driveDocument.deleteMany({
419
+ where: {
420
+ documentId,
421
+ },
422
+ });
364
423
  return result.count > 0;
365
424
  }
366
425
  catch (e) {
@@ -384,12 +443,14 @@ export class PrismaStorage {
384
443
  return Promise.reject(new Error("Cannot associate a document with its child"));
385
444
  }
386
445
  // create the many-to-many relation
387
- await this.db.document.update({
446
+ await this.db.drive.update({
388
447
  where: {
389
- id: childId,
448
+ id: parentId,
390
449
  },
391
450
  data: {
392
- driveDocuments: { create: { driveId: parentId } },
451
+ driveDocuments: {
452
+ create: { documentId: childId },
453
+ },
393
454
  },
394
455
  });
395
456
  }
@@ -411,19 +472,15 @@ export class PrismaStorage {
411
472
  }
412
473
  }
413
474
  async getChildren(parentId) {
414
- const docs = await this.db.document.findMany({
475
+ const docs = await this.db.driveDocument.findMany({
415
476
  select: {
416
- id: true,
477
+ documentId: true,
417
478
  },
418
479
  where: {
419
- driveDocuments: {
420
- some: {
421
- driveId: parentId,
422
- },
423
- },
480
+ driveId: parentId,
424
481
  },
425
482
  });
426
- return docs.map((doc) => doc.id);
483
+ return docs.map((doc) => doc.documentId);
427
484
  }
428
485
  async getParents(childId) {
429
486
  // Query the DriveDocument table to find all drives that have the given document as a child
@@ -442,12 +499,12 @@ export class PrismaStorage {
442
499
  // IDriveStorage
443
500
  ////////////////////////////////
444
501
  async addDriveOperations(id, operations, document) {
445
- await this.addDocumentOperations("drives", id, operations, document);
502
+ await this.addDocumentOperations(id, operations, document);
446
503
  }
447
504
  async addDriveOperationsWithTransaction(drive, callback) {
448
- return this.addDocumentOperationsWithTransaction("drives", drive, (document) => callback(document));
505
+ return this.addDocumentOperationsWithTransaction(drive, (document) => callback(document));
449
506
  }
450
- async _addDocumentOperations(tx, drive, id, operations, document) {
507
+ async _addDocumentOperations(tx, id, operations, document) {
451
508
  try {
452
509
  await tx.operation.createMany({
453
510
  data: operations.map((op) => ({
@@ -474,6 +531,7 @@ export class PrismaStorage {
474
531
  data: {
475
532
  lastModified: document.header.lastModifiedAtUtcIso,
476
533
  revision: JSON.stringify(document.header.revision),
534
+ scopes: Object.keys(document.state),
477
535
  },
478
536
  });
479
537
  await Promise.all(operations
@@ -482,7 +540,6 @@ export class PrismaStorage {
482
540
  return tx.operation.update({
483
541
  where: {
484
542
  unique_operation: {
485
- driveId: drive,
486
543
  documentId: id,
487
544
  index: op.index,
488
545
  scope: op.scope,
@@ -506,7 +563,6 @@ export class PrismaStorage {
506
563
  const existingOperation = await this.db.operation.findFirst({
507
564
  where: {
508
565
  AND: operations.map((op) => ({
509
- driveId: drive,
510
566
  documentId: id,
511
567
  scope: op.scope,
512
568
  branch: "main",
@@ -529,7 +585,7 @@ export class PrismaStorage {
529
585
  }
530
586
  }
531
587
  }
532
- async addDocumentOperationsWithTransaction(drive, id, callback) {
588
+ async addDocumentOperationsWithTransaction(id, callback) {
533
589
  let result = null;
534
590
  await this.db.$transaction(async (tx) => {
535
591
  const document = await this.get(id, tx);
@@ -537,7 +593,8 @@ export class PrismaStorage {
537
593
  return Promise.reject(new DocumentNotFoundError(id));
538
594
  }
539
595
  result = await callback(document);
540
- return this._addDocumentOperations(tx, drive, id, result.operations, result.document);
596
+ const { operations, document: newDocument } = result;
597
+ return this._addDocumentOperations(tx, id, operations, newDocument);
541
598
  }, { isolationLevel: "Serializable", maxWait: 10000, timeout: 20000 });
542
599
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
543
600
  if (!result) {
@@ -545,10 +602,10 @@ export class PrismaStorage {
545
602
  }
546
603
  return result;
547
604
  }
548
- async addDocumentOperations(drive, id, operations, document) {
549
- return this._addDocumentOperations(this.db, drive, id, operations, document);
605
+ async addDocumentOperations(id, operations, document) {
606
+ return this._addDocumentOperations(this.db, id, operations, document);
550
607
  }
551
- async getOperationResultingState(driveId, documentId, index, scope, branch) {
608
+ async getOperationResultingState(documentId, index, scope, branch) {
552
609
  const operation = await this.db.operation.findUnique({
553
610
  where: {
554
611
  unique_operation: {
@@ -562,9 +619,18 @@ export class PrismaStorage {
562
619
  return operation?.resultingState?.toString();
563
620
  }
564
621
  getDriveOperationResultingState(drive, index, scope, branch) {
565
- return this.getOperationResultingState("drives", drive, index, scope, branch);
622
+ return this.getOperationResultingState(drive, index, scope, branch);
566
623
  }
567
624
  async getSynchronizationUnitsRevision(units) {
625
+ if (units.length === 0) {
626
+ return [];
627
+ }
628
+ const documentTypes = await this.db.document.findMany({
629
+ where: {
630
+ id: { in: [...new Set(units.map((unit) => unit.documentId)).keys()] },
631
+ },
632
+ select: { id: true, documentType: true },
633
+ });
568
634
  // TODO add branch condition
569
635
  const whereClauses = units
570
636
  .map((_, index) => {
@@ -572,7 +638,7 @@ export class PrismaStorage {
572
638
  })
573
639
  .join(" OR ");
574
640
  const query = `
575
- SELECT "documentId", "scope", "branch", MAX("timestamp") as "lastUpdated", MAX("index") as revision FROM "Operation"
641
+ SELECT "documentId", "scope", "branch", MAX("timestamp") as "lastUpdated", MAX("index") + 1 as revision FROM "Operation"
576
642
  WHERE ${whereClauses}
577
643
  GROUP BY "documentId", "scope", "branch"
578
644
  `;
@@ -581,6 +647,8 @@ export class PrismaStorage {
581
647
  return results.map((row) => ({
582
648
  ...row,
583
649
  documentId: row.documentId,
650
+ documentType: documentTypes.find((doc) => doc.id === row.documentId)
651
+ .documentType,
584
652
  lastUpdated: new Date(row.lastUpdated).toISOString(),
585
653
  }));
586
654
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../../../src/storage/prisma/prisma.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../../../src/storage/prisma/prisma.ts"],"names":[],"mappings":"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"}