document-drive 1.30.2 → 2.5.0-dev.0

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 (328) hide show
  1. package/README.md +6 -6
  2. package/dist/index.d.ts +6 -4
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +5 -4
  5. package/dist/index.js.map +1 -1
  6. package/dist/prisma/schema.prisma +2 -0
  7. package/dist/src/cache/lru.d.ts +34 -0
  8. package/dist/src/cache/lru.d.ts.map +1 -0
  9. package/dist/src/cache/lru.js +41 -0
  10. package/dist/src/cache/lru.js.map +1 -0
  11. package/dist/src/cache/memory.d.ts +19 -1
  12. package/dist/src/cache/memory.d.ts.map +1 -1
  13. package/dist/src/cache/memory.js +49 -9
  14. package/dist/src/cache/memory.js.map +1 -1
  15. package/dist/src/cache/redis.d.ts.map +1 -1
  16. package/dist/src/cache/redis.js +3 -4
  17. package/dist/src/cache/redis.js.map +1 -1
  18. package/dist/src/drive-document-model/constants.d.ts +1 -1
  19. package/dist/src/drive-document-model/constants.d.ts.map +1 -1
  20. package/dist/src/drive-document-model/constants.js +2 -1
  21. package/dist/src/drive-document-model/constants.js.map +1 -1
  22. package/dist/src/drive-document-model/gen/actions.d.ts +4 -5
  23. package/dist/src/drive-document-model/gen/actions.d.ts.map +1 -1
  24. package/dist/src/drive-document-model/gen/actions.js +1 -1
  25. package/dist/src/drive-document-model/gen/actions.js.map +1 -1
  26. package/dist/src/drive-document-model/gen/creators.d.ts +1 -1
  27. package/dist/src/drive-document-model/gen/creators.d.ts.map +1 -1
  28. package/dist/src/drive-document-model/gen/creators.js +1 -1
  29. package/dist/src/drive-document-model/gen/creators.js.map +1 -1
  30. package/dist/src/drive-document-model/gen/document-model.d.ts +1 -1
  31. package/dist/src/drive-document-model/gen/document-model.d.ts.map +1 -1
  32. package/dist/src/drive-document-model/gen/document-model.js +7 -8
  33. package/dist/src/drive-document-model/gen/document-model.js.map +1 -1
  34. package/dist/src/drive-document-model/gen/drive/actions.d.ts +2 -2
  35. package/dist/src/drive-document-model/gen/drive/actions.d.ts.map +1 -1
  36. package/dist/src/drive-document-model/gen/drive/creators.d.ts +2 -2
  37. package/dist/src/drive-document-model/gen/drive/creators.d.ts.map +1 -1
  38. package/dist/src/drive-document-model/gen/drive/creators.js +9 -9
  39. package/dist/src/drive-document-model/gen/drive/creators.js.map +1 -1
  40. package/dist/src/drive-document-model/gen/drive/object.d.ts +2 -2
  41. package/dist/src/drive-document-model/gen/drive/object.d.ts.map +1 -1
  42. package/dist/src/drive-document-model/gen/drive/object.js +1 -1
  43. package/dist/src/drive-document-model/gen/drive/object.js.map +1 -1
  44. package/dist/src/drive-document-model/gen/drive/operations.d.ts +3 -3
  45. package/dist/src/drive-document-model/gen/drive/operations.d.ts.map +1 -1
  46. package/dist/src/drive-document-model/gen/index.d.ts +6 -0
  47. package/dist/src/drive-document-model/gen/index.d.ts.map +1 -0
  48. package/dist/src/drive-document-model/gen/index.js +6 -0
  49. package/dist/src/drive-document-model/gen/index.js.map +1 -0
  50. package/dist/src/drive-document-model/gen/node/actions.d.ts +2 -2
  51. package/dist/src/drive-document-model/gen/node/actions.d.ts.map +1 -1
  52. package/dist/src/drive-document-model/gen/node/creators.d.ts +2 -2
  53. package/dist/src/drive-document-model/gen/node/creators.d.ts.map +1 -1
  54. package/dist/src/drive-document-model/gen/node/creators.js +8 -8
  55. package/dist/src/drive-document-model/gen/node/creators.js.map +1 -1
  56. package/dist/src/drive-document-model/gen/node/object.d.ts +2 -2
  57. package/dist/src/drive-document-model/gen/node/object.d.ts.map +1 -1
  58. package/dist/src/drive-document-model/gen/node/object.js +1 -1
  59. package/dist/src/drive-document-model/gen/node/object.js.map +1 -1
  60. package/dist/src/drive-document-model/gen/node/operations.d.ts +3 -3
  61. package/dist/src/drive-document-model/gen/node/operations.d.ts.map +1 -1
  62. package/dist/src/drive-document-model/gen/object.d.ts +11 -14
  63. package/dist/src/drive-document-model/gen/object.d.ts.map +1 -1
  64. package/dist/src/drive-document-model/gen/object.js +11 -12
  65. package/dist/src/drive-document-model/gen/object.js.map +1 -1
  66. package/dist/src/drive-document-model/gen/reducer.d.ts +1 -1
  67. package/dist/src/drive-document-model/gen/reducer.d.ts.map +1 -1
  68. package/dist/src/drive-document-model/gen/reducer.js +16 -16
  69. package/dist/src/drive-document-model/gen/reducer.js.map +1 -1
  70. package/dist/src/drive-document-model/gen/schema/index.d.ts +3 -0
  71. package/dist/src/drive-document-model/gen/schema/index.d.ts.map +1 -0
  72. package/dist/src/drive-document-model/gen/schema/index.js +3 -0
  73. package/dist/src/drive-document-model/gen/schema/index.js.map +1 -0
  74. package/dist/src/drive-document-model/gen/schema/types.d.ts +88 -2
  75. package/dist/src/drive-document-model/gen/schema/types.d.ts.map +1 -1
  76. package/dist/src/drive-document-model/gen/schema/zod.d.ts +1 -1
  77. package/dist/src/drive-document-model/gen/schema/zod.d.ts.map +1 -1
  78. package/dist/src/drive-document-model/gen/schema/zod.js +0 -2
  79. package/dist/src/drive-document-model/gen/schema/zod.js.map +1 -1
  80. package/dist/src/drive-document-model/gen/types.d.ts +5 -4
  81. package/dist/src/drive-document-model/gen/types.d.ts.map +1 -1
  82. package/dist/src/drive-document-model/gen/types.js +1 -1
  83. package/dist/src/drive-document-model/gen/types.js.map +1 -1
  84. package/dist/src/drive-document-model/gen/utils.d.ts +9 -9
  85. package/dist/src/drive-document-model/gen/utils.d.ts.map +1 -1
  86. package/dist/src/drive-document-model/gen/utils.js +39 -23
  87. package/dist/src/drive-document-model/gen/utils.js.map +1 -1
  88. package/dist/src/drive-document-model/module.d.ts +26 -2
  89. package/dist/src/drive-document-model/module.d.ts.map +1 -1
  90. package/dist/src/drive-document-model/module.js +14 -8
  91. package/dist/src/drive-document-model/module.js.map +1 -1
  92. package/dist/src/drive-document-model/src/reducers/node.d.ts.map +1 -1
  93. package/dist/src/drive-document-model/src/reducers/node.js +10 -1
  94. package/dist/src/drive-document-model/src/reducers/node.js.map +1 -1
  95. package/dist/src/drive-document-model/src/tests/actions.test.d.ts +2 -0
  96. package/dist/src/drive-document-model/src/tests/actions.test.d.ts.map +1 -0
  97. package/dist/src/drive-document-model/src/tests/actions.test.js +221 -0
  98. package/dist/src/drive-document-model/src/tests/actions.test.js.map +1 -0
  99. package/dist/src/drive-document-model/src/tests/base.test.d.ts +2 -0
  100. package/dist/src/drive-document-model/src/tests/base.test.d.ts.map +1 -0
  101. package/dist/src/drive-document-model/src/tests/base.test.js +116 -0
  102. package/dist/src/drive-document-model/src/tests/base.test.js.map +1 -0
  103. package/dist/src/drive-document-model/src/tests/document-model.test.d.ts +6 -0
  104. package/dist/src/drive-document-model/src/tests/document-model.test.d.ts.map +1 -0
  105. package/dist/src/drive-document-model/src/tests/document-model.test.js +19 -0
  106. package/dist/src/drive-document-model/src/tests/document-model.test.js.map +1 -0
  107. package/dist/src/drive-document-model/src/tests/drive.test.d.ts +6 -0
  108. package/dist/src/drive-document-model/src/tests/drive.test.d.ts.map +1 -0
  109. package/dist/src/drive-document-model/src/tests/drive.test.js +41 -0
  110. package/dist/src/drive-document-model/src/tests/drive.test.js.map +1 -0
  111. package/dist/src/drive-document-model/src/tests/node.test.d.ts +6 -0
  112. package/dist/src/drive-document-model/src/tests/node.test.d.ts.map +1 -0
  113. package/dist/src/drive-document-model/src/tests/node.test.js +376 -0
  114. package/dist/src/drive-document-model/src/tests/node.test.js.map +1 -0
  115. package/dist/src/drive-document-model/src/tests/utils.test.d.ts +2 -0
  116. package/dist/src/drive-document-model/src/tests/utils.test.d.ts.map +1 -0
  117. package/dist/src/drive-document-model/src/tests/utils.test.js +262 -0
  118. package/dist/src/drive-document-model/src/tests/utils.test.js.map +1 -0
  119. package/dist/src/drive-document-model/src/utils.d.ts.map +1 -1
  120. package/dist/src/drive-document-model/src/utils.js +2 -2
  121. package/dist/src/drive-document-model/src/utils.js.map +1 -1
  122. package/dist/src/processors/processor-manager.d.ts.map +1 -1
  123. package/dist/src/processors/processor-manager.js +14 -4
  124. package/dist/src/processors/processor-manager.js.map +1 -1
  125. package/dist/src/queue/base.js +3 -2
  126. package/dist/src/queue/base.js.map +1 -1
  127. package/dist/src/read-mode/service.d.ts.map +1 -1
  128. package/dist/src/read-mode/service.js +9 -2
  129. package/dist/src/read-mode/service.js.map +1 -1
  130. package/dist/src/server/base-server.d.ts +9 -6
  131. package/dist/src/server/base-server.d.ts.map +1 -1
  132. package/dist/src/server/base-server.js +84 -41
  133. package/dist/src/server/base-server.js.map +1 -1
  134. package/dist/src/server/builder.d.ts +3 -3
  135. package/dist/src/server/builder.d.ts.map +1 -1
  136. package/dist/src/server/builder.js.map +1 -1
  137. package/dist/src/server/error.d.ts +6 -0
  138. package/dist/src/server/error.d.ts.map +1 -1
  139. package/dist/src/server/error.js +11 -1
  140. package/dist/src/server/error.js.map +1 -1
  141. package/dist/src/server/listener/listener-manager.d.ts +3 -0
  142. package/dist/src/server/listener/listener-manager.d.ts.map +1 -1
  143. package/dist/src/server/listener/listener-manager.js +7 -0
  144. package/dist/src/server/listener/listener-manager.js.map +1 -1
  145. package/dist/src/server/listener/transmitter/factory.d.ts.map +1 -1
  146. package/dist/src/server/listener/transmitter/factory.js +1 -1
  147. package/dist/src/server/listener/transmitter/factory.js.map +1 -1
  148. package/dist/src/server/listener/transmitter/internal.js +1 -1
  149. package/dist/src/server/listener/transmitter/internal.js.map +1 -1
  150. package/dist/src/server/listener/transmitter/pull-responder.d.ts +7 -5
  151. package/dist/src/server/listener/transmitter/pull-responder.d.ts.map +1 -1
  152. package/dist/src/server/listener/transmitter/pull-responder.js +148 -20
  153. package/dist/src/server/listener/transmitter/pull-responder.js.map +1 -1
  154. package/dist/src/server/listener/transmitter/switchboard-push.d.ts +5 -2
  155. package/dist/src/server/listener/transmitter/switchboard-push.d.ts.map +1 -1
  156. package/dist/src/server/listener/transmitter/switchboard-push.js +37 -6
  157. package/dist/src/server/listener/transmitter/switchboard-push.js.map +1 -1
  158. package/dist/src/server/sync-manager.d.ts +2 -2
  159. package/dist/src/server/sync-manager.d.ts.map +1 -1
  160. package/dist/src/server/sync-manager.js.map +1 -1
  161. package/dist/src/server/types.d.ts +21 -7
  162. package/dist/src/server/types.d.ts.map +1 -1
  163. package/dist/src/server/types.js.map +1 -1
  164. package/dist/src/storage/browser.d.ts +9 -8
  165. package/dist/src/storage/browser.d.ts.map +1 -1
  166. package/dist/src/storage/browser.js +116 -40
  167. package/dist/src/storage/browser.js.map +1 -1
  168. package/dist/src/storage/filesystem.d.ts +10 -8
  169. package/dist/src/storage/filesystem.d.ts.map +1 -1
  170. package/dist/src/storage/filesystem.js +112 -41
  171. package/dist/src/storage/filesystem.js.map +1 -1
  172. package/dist/src/storage/ipfs.d.ts +8 -5
  173. package/dist/src/storage/ipfs.d.ts.map +1 -1
  174. package/dist/src/storage/ipfs.js +133 -79
  175. package/dist/src/storage/ipfs.js.map +1 -1
  176. package/dist/src/storage/memory.d.ts +9 -7
  177. package/dist/src/storage/memory.d.ts.map +1 -1
  178. package/dist/src/storage/memory.js +97 -51
  179. package/dist/src/storage/memory.js.map +1 -1
  180. package/dist/src/storage/prisma/client/edge.js +4 -3
  181. package/dist/src/storage/prisma/client/index-browser.js +1 -0
  182. package/dist/src/storage/prisma/client/index.d.ts +150 -71
  183. package/dist/src/storage/prisma/client/index.js +4 -3
  184. package/dist/src/storage/prisma/client/package.json +1 -1
  185. package/dist/src/storage/prisma/client/schema.prisma +2 -0
  186. package/dist/src/storage/prisma/client/wasm.js +1 -0
  187. package/dist/src/storage/prisma/prisma.d.ts +8 -6
  188. package/dist/src/storage/prisma/prisma.d.ts.map +1 -1
  189. package/dist/src/storage/prisma/prisma.js +96 -49
  190. package/dist/src/storage/prisma/prisma.js.map +1 -1
  191. package/dist/src/storage/types.d.ts +40 -19
  192. package/dist/src/storage/types.d.ts.map +1 -1
  193. package/dist/src/storage/utils.d.ts +3 -0
  194. package/dist/src/storage/utils.d.ts.map +1 -0
  195. package/dist/src/storage/utils.js +3 -0
  196. package/dist/src/storage/utils.js.map +1 -0
  197. package/dist/src/utils/default-drives-manager.d.ts.map +1 -1
  198. package/dist/src/utils/default-drives-manager.js +13 -11
  199. package/dist/src/utils/default-drives-manager.js.map +1 -1
  200. package/dist/src/utils/graphql.d.ts +8 -4
  201. package/dist/src/utils/graphql.d.ts.map +1 -1
  202. package/dist/src/utils/graphql.js +27 -14
  203. package/dist/src/utils/graphql.js.map +1 -1
  204. package/dist/src/utils/logger.d.ts +2 -2
  205. package/dist/src/utils/logger.d.ts.map +1 -1
  206. package/dist/src/utils/logger.js +21 -19
  207. package/dist/src/utils/logger.js.map +1 -1
  208. package/dist/src/utils/misc.d.ts +0 -1
  209. package/dist/src/utils/misc.d.ts.map +1 -1
  210. package/dist/src/utils/misc.js +0 -4
  211. package/dist/src/utils/misc.js.map +1 -1
  212. package/dist/test/cache.test.d.ts +2 -0
  213. package/dist/test/cache.test.d.ts.map +1 -0
  214. package/dist/test/cache.test.js +281 -0
  215. package/dist/test/cache.test.js.map +1 -0
  216. package/dist/test/default-remote-drives.test.d.ts +2 -0
  217. package/dist/test/default-remote-drives.test.d.ts.map +1 -0
  218. package/dist/test/default-remote-drives.test.js +446 -0
  219. package/dist/test/default-remote-drives.test.js.map +1 -0
  220. package/dist/test/document-helpers/addUndo.test.d.ts +2 -0
  221. package/dist/test/document-helpers/addUndo.test.d.ts.map +1 -0
  222. package/dist/test/document-helpers/addUndo.test.js +120 -0
  223. package/dist/test/document-helpers/addUndo.test.js.map +1 -0
  224. package/dist/test/document-helpers/attachBranch.test.d.ts +2 -0
  225. package/dist/test/document-helpers/attachBranch.test.d.ts.map +1 -0
  226. package/dist/test/document-helpers/attachBranch.test.js +333 -0
  227. package/dist/test/document-helpers/attachBranch.test.js.map +1 -0
  228. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.d.ts +2 -0
  229. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.d.ts.map +1 -0
  230. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.js +252 -0
  231. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.js.map +1 -0
  232. package/dist/test/document-helpers/garbageCollect.test.d.ts +2 -0
  233. package/dist/test/document-helpers/garbageCollect.test.d.ts.map +1 -0
  234. package/dist/test/document-helpers/garbageCollect.test.js +136 -0
  235. package/dist/test/document-helpers/garbageCollect.test.js.map +1 -0
  236. package/dist/test/document-helpers/groupOperationsByScope.test.d.ts +2 -0
  237. package/dist/test/document-helpers/groupOperationsByScope.test.d.ts.map +1 -0
  238. package/dist/test/document-helpers/groupOperationsByScope.test.js +98 -0
  239. package/dist/test/document-helpers/groupOperationsByScope.test.js.map +1 -0
  240. package/dist/test/document-helpers/merge.test.d.ts +2 -0
  241. package/dist/test/document-helpers/merge.test.d.ts.map +1 -0
  242. package/dist/test/document-helpers/merge.test.js +757 -0
  243. package/dist/test/document-helpers/merge.test.js.map +1 -0
  244. package/dist/test/document-helpers/nextSkipNumber.test.d.ts +2 -0
  245. package/dist/test/document-helpers/nextSkipNumber.test.d.ts.map +1 -0
  246. package/dist/test/document-helpers/nextSkipNumber.test.js +123 -0
  247. package/dist/test/document-helpers/nextSkipNumber.test.js.map +1 -0
  248. package/dist/test/document-helpers/prepareOperations.test.d.ts +2 -0
  249. package/dist/test/document-helpers/prepareOperations.test.d.ts.map +1 -0
  250. package/dist/test/document-helpers/prepareOperations.test.js +304 -0
  251. package/dist/test/document-helpers/prepareOperations.test.js.map +1 -0
  252. package/dist/test/document-helpers/removeExistingOperations.test.d.ts +2 -0
  253. package/dist/test/document-helpers/removeExistingOperations.test.d.ts.map +1 -0
  254. package/dist/test/document-helpers/removeExistingOperations.test.js +150 -0
  255. package/dist/test/document-helpers/removeExistingOperations.test.js.map +1 -0
  256. package/dist/test/document-helpers/reshuffleByTimestamp.test.d.ts +2 -0
  257. package/dist/test/document-helpers/reshuffleByTimestamp.test.d.ts.map +1 -0
  258. package/dist/test/document-helpers/reshuffleByTimestamp.test.js +148 -0
  259. package/dist/test/document-helpers/reshuffleByTimestamp.test.js.map +1 -0
  260. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.d.ts +2 -0
  261. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.d.ts.map +1 -0
  262. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js +200 -0
  263. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js.map +1 -0
  264. package/dist/test/document-helpers/sortOperations.test.d.ts +2 -0
  265. package/dist/test/document-helpers/sortOperations.test.d.ts.map +1 -0
  266. package/dist/test/document-helpers/sortOperations.test.js +101 -0
  267. package/dist/test/document-helpers/sortOperations.test.js.map +1 -0
  268. package/dist/test/document-helpers/split.test.d.ts +2 -0
  269. package/dist/test/document-helpers/split.test.d.ts.map +1 -0
  270. package/dist/test/document-helpers/split.test.js +121 -0
  271. package/dist/test/document-helpers/split.test.js.map +1 -0
  272. package/dist/test/drive-operations.test.d.ts +2 -0
  273. package/dist/test/drive-operations.test.d.ts.map +1 -0
  274. package/dist/test/drive-operations.test.js +145 -0
  275. package/dist/test/drive-operations.test.js.map +1 -0
  276. package/dist/test/graphql.test.d.ts +2 -0
  277. package/dist/test/graphql.test.d.ts.map +1 -0
  278. package/dist/test/graphql.test.js +10 -0
  279. package/dist/test/graphql.test.js.map +1 -0
  280. package/dist/test/internal-listener.test.d.ts +2 -0
  281. package/dist/test/internal-listener.test.d.ts.map +1 -0
  282. package/dist/test/internal-listener.test.js +274 -0
  283. package/dist/test/internal-listener.test.js.map +1 -0
  284. package/dist/test/queue.test.d.ts +2 -0
  285. package/dist/test/queue.test.d.ts.map +1 -0
  286. package/dist/test/queue.test.js +338 -0
  287. package/dist/test/queue.test.js.map +1 -0
  288. package/dist/test/read-mode.test.d.ts +2 -0
  289. package/dist/test/read-mode.test.d.ts.map +1 -0
  290. package/dist/test/read-mode.test.js +566 -0
  291. package/dist/test/read-mode.test.js.map +1 -0
  292. package/dist/test/server/driveOperationsConflictResolution.test.d.ts +2 -0
  293. package/dist/test/server/driveOperationsConflictResolution.test.d.ts.map +1 -0
  294. package/dist/test/server/driveOperationsConflictResolution.test.js +389 -0
  295. package/dist/test/server/driveOperationsConflictResolution.test.js.map +1 -0
  296. package/dist/test/server/mergeOperations.test.d.ts +2 -0
  297. package/dist/test/server/mergeOperations.test.d.ts.map +1 -0
  298. package/dist/test/server/mergeOperations.test.js +107 -0
  299. package/dist/test/server/mergeOperations.test.js.map +1 -0
  300. package/dist/test/server/processOperations.test.d.ts +2 -0
  301. package/dist/test/server/processOperations.test.d.ts.map +1 -0
  302. package/dist/test/server/processOperations.test.js +380 -0
  303. package/dist/test/server/processOperations.test.js.map +1 -0
  304. package/dist/test/server.test.d.ts +2 -0
  305. package/dist/test/server.test.d.ts.map +1 -0
  306. package/dist/test/server.test.js +826 -0
  307. package/dist/test/server.test.js.map +1 -0
  308. package/dist/test/signature-migration.test.d.ts +2 -0
  309. package/dist/test/signature-migration.test.d.ts.map +1 -0
  310. package/dist/test/signature-migration.test.js +235 -0
  311. package/dist/test/signature-migration.test.js.map +1 -0
  312. package/dist/test/storage.test.d.ts +2 -0
  313. package/dist/test/storage.test.d.ts.map +1 -0
  314. package/dist/test/storage.test.js +476 -0
  315. package/dist/test/storage.test.js.map +1 -0
  316. package/dist/test/utils.test.d.ts +2 -0
  317. package/dist/test/utils.test.d.ts.map +1 -0
  318. package/dist/test/utils.test.js +89 -0
  319. package/dist/test/utils.test.js.map +1 -0
  320. package/dist/tsconfig.tsbuildinfo +1 -1
  321. package/dist/vitest.config.d.ts.map +1 -1
  322. package/dist/vitest.config.js +7 -1
  323. package/dist/vitest.config.js.map +1 -1
  324. package/package.json +17 -11
  325. package/dist/src/drive-document-model/gen/constants.d.ts +0 -7
  326. package/dist/src/drive-document-model/gen/constants.d.ts.map +0 -1
  327. package/dist/src/drive-document-model/gen/constants.js +0 -17
  328. package/dist/src/drive-document-model/gen/constants.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { type IQueueManager } from "#queue/types";
2
- import { type IDocumentStorage, type IDriveStorage } from "#storage/types";
2
+ import { type IDocumentStorage, type IDriveOperationStorage } from "#storage/types";
3
3
  import { type IDefaultDrivesManager } from "#utils/default-drives-manager";
4
4
  import { type DocumentDriveAction, type DocumentDriveDocument } from "document-drive";
5
5
  import { type Action, type DocumentModelModule, type Operation, type PHDocument } from "document-model";
@@ -8,7 +8,7 @@ import { type ICache } from "../cache/types.js";
8
8
  import { OperationError, type SynchronizationUnitNotFoundError } from "./error.js";
9
9
  import { type AddOperationOptions, type Constructor, type CreateDocumentInput, type DocumentDriveServerOptions, type DriveEvents, type DriveInput, type DriveOperationResult, type GetDocumentOptions, type GetStrandsOptions, type IBaseDocumentDriveServer, type IEventEmitter, type IListenerManager, type IOperationResult, type ISynchronizationManager, type Mixin, type OperationUpdate, type RemoteDriveAccessLevel, type RemoteDriveOptions, type SignalResult, type SyncStatus, type SyncUnitStatusObject, type SynchronizationUnit, type SynchronizationUnitQuery } from "./types.js";
10
10
  export declare class BaseDocumentDriveServer implements IBaseDocumentDriveServer, IDefaultDrivesManager {
11
- private logger;
11
+ protected logger: import("document-drive").ILogger;
12
12
  private documentModelModules;
13
13
  private legacyStorage;
14
14
  private documentStorage;
@@ -18,12 +18,13 @@ export declare class BaseDocumentDriveServer implements IBaseDocumentDriveServer
18
18
  protected options: Required<DocumentDriveServerOptions>;
19
19
  private listenerManager;
20
20
  private synchronizationManager;
21
+ generateJwtHandler?: (driveUrl: string) => Promise<string>;
21
22
  private defaultDrivesManager;
22
23
  private defaultDrivesManagerDelegate;
23
24
  private queueDelegate;
24
25
  private triggerMap;
25
26
  private initializePromise;
26
- constructor(documentModelModules: DocumentModelModule[], storage: IDriveStorage, documentStorage: IDocumentStorage, cache: ICache, queueManager: IQueueManager, eventEmitter: IEventEmitter, synchronizationManager: ISynchronizationManager, listenerManager: IListenerManager, options?: DocumentDriveServerOptions);
27
+ constructor(documentModelModules: DocumentModelModule[], storage: IDriveOperationStorage, documentStorage: IDocumentStorage, cache: ICache, queueManager: IQueueManager, eventEmitter: IEventEmitter, synchronizationManager: ISynchronizationManager, listenerManager: IListenerManager, options?: DocumentDriveServerOptions);
27
28
  get listeners(): IListenerManager;
28
29
  initialize(): Promise<Error[] | null>;
29
30
  private _initialize;
@@ -50,6 +51,7 @@ export declare class BaseDocumentDriveServer implements IBaseDocumentDriveServer
50
51
  getDrives(): Promise<string[]>;
51
52
  getDrive(driveId: string, options?: GetDocumentOptions): Promise<DocumentDriveDocument>;
52
53
  getDriveBySlug(slug: string, options?: GetDocumentOptions): Promise<DocumentDriveDocument>;
54
+ getDriveIdBySlug(slug: string): Promise<DocumentDriveDocument["id"]>;
53
55
  getDocument<TDocument extends PHDocument>(driveId: string, documentId: string, options?: GetDocumentOptions): Promise<TDocument>;
54
56
  getDocuments(driveId: string): Promise<string[]>;
55
57
  protected createDocument<TDocument extends PHDocument>(driveId: string, input: CreateDocumentInput<TDocument>): Promise<TDocument>;
@@ -70,12 +72,11 @@ export declare class BaseDocumentDriveServer implements IBaseDocumentDriveServer
70
72
  queueOperations(driveId: string, documentId: string, operations: Operation[], options?: AddOperationOptions): Promise<IOperationResult>;
71
73
  queueAction(driveId: string, documentId: string, action: Action, options?: AddOperationOptions): Promise<IOperationResult>;
72
74
  queueActions(driveId: string, documentId: string, actions: Action[], options?: AddOperationOptions): Promise<IOperationResult>;
73
- queueDriveAction(driveId: string, action: DocumentDriveAction, options?: AddOperationOptions): Promise<IOperationResult<DocumentDriveDocument>>;
74
- queueDriveActions(driveId: string, actions: DocumentDriveAction[], options?: AddOperationOptions): Promise<IOperationResult<DocumentDriveDocument>>;
75
+ queueDriveAction(driveId: string, action: DocumentDriveAction | Action, options?: AddOperationOptions): Promise<IOperationResult<DocumentDriveDocument>>;
76
+ queueDriveActions(driveId: string, actions: (DocumentDriveAction | Action)[], options?: AddOperationOptions): Promise<IOperationResult<DocumentDriveDocument>>;
75
77
  addOperations(driveId: string, documentId: string, operations: Operation[], options?: AddOperationOptions): Promise<IOperationResult>;
76
78
  private processOperations;
77
79
  addDriveOperation(driveId: string, operation: Operation<DocumentDriveAction>, options?: AddOperationOptions): Promise<DriveOperationResult>;
78
- clearStorage(): Promise<void>;
79
80
  private _addDriveOperations;
80
81
  queueDriveOperation(driveId: string, operation: Operation<DocumentDriveAction>, options?: AddOperationOptions): Promise<DriveOperationResult>;
81
82
  private resultIfExistingDriveOperations;
@@ -98,6 +99,8 @@ export declare class BaseDocumentDriveServer implements IBaseDocumentDriveServer
98
99
  initializeDriveSyncStatus(driveId: string, drive: DocumentDriveDocument): Promise<void>;
99
100
  getCombinedSyncUnitStatus(syncUnitStatus: SyncUnitStatusObject): SyncStatus;
100
101
  private saveStrand;
102
+ setGenerateJwtHandler(handler: (driveUrl: string) => Promise<string>): void;
103
+ removeJwtHandler(): void;
101
104
  }
102
105
  export type DocumentDriveServerConstructor = Constructor<BaseDocumentDriveServer>;
103
106
  export type DocumentDriveServerMixin<I> = Mixin<typeof BaseDocumentDriveServer, I>;
@@ -1 +1 @@
1
- {"version":3,"file":"base-server.d.ts","sourceRoot":"","sources":["../../../src/server/base-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-server.d.ts","sourceRoot":"","sources":["../../../src/server/base-server.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,13 @@ import { createDocument } from "#drive-document-model/gen/utils";
3
3
  import { isActionJob, isOperationJob, } from "#queue/types";
4
4
  import { ReadModeServer } from "#read-mode/server";
5
5
  import { DefaultDrivesManager, } from "#utils/default-drives-manager";
6
- import { requestPublicDrive } from "#utils/graphql";
7
- import { generateUUID, isDocumentDrive, runAsapAsync } from "#utils/misc";
6
+ import { requestPublicDriveWithTokenFromReactor } from "#utils/graphql";
7
+ import { isDocumentDrive, runAsapAsync } from "#utils/misc";
8
8
  import { RunAsap } from "#utils/run-asap";
9
9
  import { childLogger, } from "document-drive";
10
10
  import { attachBranch, garbageCollect, garbageCollectDocumentOperations, groupOperationsByScope, merge, precedes, removeExistingOperations, replayDocument, reshuffleByTimestamp, skipHeaderOperations, sortOperations, } from "document-model";
11
11
  import { ClientError } from "graphql-request";
12
- import { ConflictOperationError, DocumentAlreadyExistsError, OperationError, } from "./error.js";
12
+ import { ConflictOperationError, OperationError, } from "./error.js";
13
13
  import { PullResponderTransmitter, } from "./listener/transmitter/pull-responder.js";
14
14
  import { SwitchboardPushTransmitter } from "./listener/transmitter/switchboard-push.js";
15
15
  import { DefaultListenerManagerOptions, } from "./types.js";
@@ -26,6 +26,7 @@ export class BaseDocumentDriveServer {
26
26
  options;
27
27
  listenerManager;
28
28
  synchronizationManager;
29
+ generateJwtHandler;
29
30
  // internal dependencies
30
31
  defaultDrivesManager;
31
32
  defaultDrivesManagerDelegate = {
@@ -77,6 +78,9 @@ export class BaseDocumentDriveServer {
77
78
  ...DefaultListenerManagerOptions,
78
79
  ...options?.listenerManager,
79
80
  },
81
+ jwtHandler: options?.jwtHandler === undefined
82
+ ? () => Promise.resolve("")
83
+ : options.jwtHandler,
80
84
  taskQueueMethod: options?.taskQueueMethod === undefined
81
85
  ? RunAsap.runAsap
82
86
  : options.taskQueueMethod,
@@ -216,7 +220,7 @@ export class BaseDocumentDriveServer {
216
220
  .catch(this.logger.error);
217
221
  }
218
222
  }
219
- });
223
+ }, undefined, this.listeners);
220
224
  driveTriggers.set(trigger.id, cancelPullLoop);
221
225
  this.triggerMap.set(driveId, driveTriggers);
222
226
  }
@@ -237,7 +241,7 @@ export class BaseDocumentDriveServer {
237
241
  }
238
242
  async _initializeDrive(driveId) {
239
243
  const drive = await this.getDrive(driveId);
240
- this.logger.verbose(`[SYNC DEBUG] Initializing drive ${driveId} with slug "${drive.state.global.slug}"`);
244
+ this.logger.verbose(`[SYNC DEBUG] Initializing drive ${driveId} with slug "${drive.slug}"`);
241
245
  await this.synchronizationManager.initializeDriveSyncStatus(driveId, drive);
242
246
  if (this.shouldSyncRemoteDrive(drive)) {
243
247
  this.logger.verbose(`[SYNC DEBUG] Starting sync for remote drive ${driveId}`);
@@ -248,12 +252,12 @@ export class BaseDocumentDriveServer {
248
252
  for (const zodListener of drive.state.local.listeners) {
249
253
  if (zodListener.callInfo?.transmitterType === "SwitchboardPush") {
250
254
  this.logger.verbose(`[SYNC DEBUG] Setting up SwitchboardPush listener ${zodListener.listenerId} for drive ${driveId}`);
251
- const transmitter = new SwitchboardPushTransmitter(zodListener.callInfo.data ?? "");
255
+ const transmitter = new SwitchboardPushTransmitter(zodListener.callInfo.data ?? "", this.listeners);
252
256
  this.logger.verbose(`[SYNC DEBUG] Created SwitchboardPush transmitter with URL: ${zodListener.callInfo.data || "none"}`);
253
257
  await this.listenerManager
254
258
  .setListener(driveId, {
255
259
  block: zodListener.block,
256
- driveId: drive.state.global.id,
260
+ driveId: drive.id,
257
261
  filter: {
258
262
  branch: zodListener.filter.branch ?? [],
259
263
  documentId: zodListener.filter.documentId ?? [],
@@ -318,41 +322,46 @@ export class BaseDocumentDriveServer {
318
322
  return [...this.documentModelModules];
319
323
  }
320
324
  async addDrive(input, preferredEditor) {
321
- const id = input.global.id || generateUUID();
322
- if (!id) {
323
- throw new Error("Invalid Drive Id");
324
- }
325
- const drives = await this.legacyStorage.getDrives();
326
- if (drives.includes(id)) {
327
- throw new DocumentAlreadyExistsError(id);
328
- }
329
325
  const document = createDocument({
330
- state: input,
326
+ id: input.id,
327
+ slug: input.slug,
328
+ state: {
329
+ global: {
330
+ icon: input.global.icon ?? null,
331
+ name: input.global.name,
332
+ },
333
+ local: input.local ?? {},
334
+ },
331
335
  });
332
336
  document.meta = {
333
337
  preferredEditor: preferredEditor,
334
338
  };
335
- await this.legacyStorage.createDrive(id, document);
336
- if (input.global.slug) {
337
- await this.cache.deleteDriveBySlug(input.global.slug);
339
+ await this.documentStorage.create(document);
340
+ if (input.slug && input.slug.length > 0) {
341
+ await this.cache.deleteDriveBySlug(input.slug);
338
342
  }
339
- await this._initializeDrive(id);
343
+ await this._initializeDrive(document.id);
340
344
  this.eventEmitter.emit("driveAdded", document);
341
345
  return document;
342
346
  }
343
347
  async addRemoteDrive(url, options) {
344
- const { id, name, slug, icon, meta } = options.expectedDriveInfo || (await requestPublicDrive(url));
348
+ const token = await this.generateJwtHandler?.(url);
349
+ const headers = token
350
+ ? { Authorization: `Bearer ${token}` }
351
+ : {};
352
+ const { id, name, slug, icon, meta } = options.expectedDriveInfo ||
353
+ (await requestPublicDriveWithTokenFromReactor(url, this));
345
354
  const { pullFilter, pullInterval, availableOffline, sharingType, listeners, triggers, } = options;
346
355
  const pullTrigger = await PullResponderTransmitter.createPullResponderTrigger(id, url, {
347
356
  pullFilter,
348
357
  pullInterval,
349
- });
358
+ }, this.listeners);
350
359
  return await this.addDrive({
360
+ id,
361
+ slug,
351
362
  global: {
352
- id: id,
353
363
  name,
354
- slug,
355
- icon: icon ?? null,
364
+ icon,
356
365
  },
357
366
  local: {
358
367
  triggers: [...triggers, pullTrigger],
@@ -367,7 +376,7 @@ export class BaseDocumentDriveServer {
367
376
  this.stopSyncRemoteDrive(driveId),
368
377
  this.listenerManager.removeDrive(driveId),
369
378
  this.cache.deleteDrive(driveId),
370
- this.legacyStorage.deleteDrive(driveId),
379
+ this.documentStorage.delete(driveId),
371
380
  ]);
372
381
  this.eventEmitter.emit("driveDeleted", driveId);
373
382
  result.forEach((r) => {
@@ -376,8 +385,16 @@ export class BaseDocumentDriveServer {
376
385
  }
377
386
  });
378
387
  }
379
- getDrives() {
380
- return this.legacyStorage.getDrives();
388
+ // TODO: paginate
389
+ async getDrives() {
390
+ const drives = [];
391
+ let cursor;
392
+ do {
393
+ const { documents, nextCursor } = await this.documentStorage.findByType("powerhouse/document-drive", 100, cursor);
394
+ drives.push(...documents);
395
+ cursor = nextCursor;
396
+ } while (cursor);
397
+ return drives;
381
398
  }
382
399
  async getDrive(driveId, options) {
383
400
  let document;
@@ -425,6 +442,19 @@ export class BaseDocumentDriveServer {
425
442
  return document;
426
443
  }
427
444
  }
445
+ async getDriveIdBySlug(slug) {
446
+ try {
447
+ const drive = await this.cache.getDriveBySlug(slug);
448
+ if (drive) {
449
+ return drive.id;
450
+ }
451
+ }
452
+ catch (e) {
453
+ this.logger.error("Error getting drive from cache", e);
454
+ }
455
+ const driveStorage = await this.documentStorage.getBySlug(slug);
456
+ return driveStorage.id;
457
+ }
428
458
  async getDocument(driveId, documentId, options) {
429
459
  let cachedDocument;
430
460
  try {
@@ -459,9 +489,14 @@ export class BaseDocumentDriveServer {
459
489
  // if no document was provided then create a new one
460
490
  const document = input.document ??
461
491
  this.getDocumentModelModule(input.documentType).utils.createDocument();
492
+ if (input.id && input.id.length > 0) {
493
+ document.id = input.id;
494
+ }
462
495
  // stores document information
463
496
  const documentStorage = {
497
+ id: document.id,
464
498
  name: document.name,
499
+ slug: document.slug,
465
500
  revision: document.revision,
466
501
  documentType: document.documentType,
467
502
  created: document.created,
@@ -471,7 +506,7 @@ export class BaseDocumentDriveServer {
471
506
  clipboard: [],
472
507
  state: state ?? document.state,
473
508
  };
474
- await this.documentStorage.create(input.id, documentStorage);
509
+ await this.documentStorage.create(documentStorage);
475
510
  try {
476
511
  await this.documentStorage.addChild(driveId, input.id);
477
512
  }
@@ -652,12 +687,18 @@ export class BaseDocumentDriveServer {
652
687
  handler = () => this.deleteDocument(driveId, signal.input.id);
653
688
  break;
654
689
  case "COPY_CHILD_DOCUMENT":
655
- handler = () => this.getDocument(driveId, signal.input.id).then((documentToCopy) => this.createDocument(driveId, {
656
- id: signal.input.newId,
657
- documentType: documentToCopy.documentType,
658
- document: documentToCopy,
659
- synchronizationUnits: signal.input.synchronizationUnits,
660
- }));
690
+ handler = () => this.getDocument(driveId, signal.input.id).then((documentToCopy) => {
691
+ const doc = {
692
+ ...documentToCopy,
693
+ slug: signal.input.newId,
694
+ };
695
+ return this.createDocument(driveId, {
696
+ id: signal.input.newId,
697
+ documentType: documentToCopy.documentType,
698
+ document: doc,
699
+ synchronizationUnits: signal.input.synchronizationUnits,
700
+ });
701
+ });
661
702
  break;
662
703
  }
663
704
  if (handler) {
@@ -950,12 +991,6 @@ export class BaseDocumentDriveServer {
950
991
  addDriveOperation(driveId, operation, options) {
951
992
  return this.addDriveOperations(driveId, [operation], options);
952
993
  }
953
- async clearStorage() {
954
- for (const drive of await this.getDrives()) {
955
- await this.deleteDrive(drive);
956
- }
957
- await this.legacyStorage.clearStorage?.();
958
- }
959
994
  async _addDriveOperations(driveId, callback) {
960
995
  if (!this.legacyStorage.addDriveOperationsWithTransaction) {
961
996
  const documentStorage = await this.documentStorage.get(driveId);
@@ -1251,6 +1286,14 @@ export class BaseDocumentDriveServer {
1251
1286
  this.eventEmitter.emit("strandUpdate", strand);
1252
1287
  return result;
1253
1288
  }
1289
+ setGenerateJwtHandler(handler) {
1290
+ this.generateJwtHandler = handler;
1291
+ this.listenerManager.setGenerateJwtHandler(handler);
1292
+ }
1293
+ removeJwtHandler() {
1294
+ this.generateJwtHandler = undefined;
1295
+ this.listenerManager.removeJwtHandler();
1296
+ }
1254
1297
  }
1255
1298
  export const DocumentDriveServer = ReadModeServer(BaseDocumentDriveServer);
1256
1299
  //# sourceMappingURL=base-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-server.js","sourceRoot":"","sources":["../../../src/server/base-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-server.js","sourceRoot":"","sources":["../../../src/server/base-server.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { type DocumentModelModule } from "document-model";
2
2
  import { type ICache } from "../cache/types.js";
3
3
  import { type IQueueManager } from "../queue/types.js";
4
- import { type IDriveStorage } from "../storage/types.js";
4
+ import { type IDriveOperationStorage } from "../storage/types.js";
5
5
  import { type DocumentDriveServerOptions, type IDocumentDriveServer, type IEventEmitter, type IListenerManager, type ISynchronizationManager, type ITransmitterFactory } from "./types.js";
6
6
  /**
7
7
  * Builder class for constructing Reactor instances with proper configuration
8
8
  */
9
9
  export declare class ReactorBuilder {
10
10
  documentModelModules: DocumentModelModule[];
11
- storage?: IDriveStorage;
11
+ storage?: IDriveOperationStorage;
12
12
  cache?: ICache;
13
13
  queueManager?: IQueueManager;
14
14
  eventEmitter?: IEventEmitter;
@@ -17,7 +17,7 @@ export declare class ReactorBuilder {
17
17
  listenerManager?: IListenerManager;
18
18
  transmitterFactory?: ITransmitterFactory;
19
19
  constructor(documentModelModules: DocumentModelModule[]);
20
- withStorage(storage: IDriveStorage): this;
20
+ withStorage(storage: IDriveOperationStorage): this;
21
21
  withCache(cache: ICache): this;
22
22
  withQueueManager(queueManager: IQueueManager): this;
23
23
  withEventEmitter(eventEmitter: IEventEmitter): this;
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/server/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMhF,OAAO,EAEL,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACzB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,cAAc;IAClB,oBAAoB,EAAE,mBAAmB,EAAE,CAAM;IAEjD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,sBAAsB,CAAC,EAAE,uBAAuB,CAAC;IACjD,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;gBAEpC,oBAAoB,EAAE,mBAAmB,EAAE;IAIhD,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKzC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9B,gBAAgB,CAAC,YAAY,EAAE,aAAa,GAAG,IAAI;IAKnD,gBAAgB,CAAC,YAAY,EAAE,aAAa,GAAG,IAAI;IAKnD,0BAA0B,CAC/B,sBAAsB,EAAE,uBAAuB,GAC9C,IAAI;IAKA,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,GAAG,IAAI;IAK5D,sBAAsB,CAAC,kBAAkB,EAAE,mBAAmB,GAAG,IAAI;IAKrE,WAAW,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAKtD,KAAK,IAAI,oBAAoB;CAyDrC"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/server/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAEL,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACzB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,cAAc;IAClB,oBAAoB,EAAE,mBAAmB,EAAE,CAAM;IAEjD,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,sBAAsB,CAAC,EAAE,uBAAuB,CAAC;IACjD,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;gBAEpC,oBAAoB,EAAE,mBAAmB,EAAE;IAIhD,WAAW,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAKlD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9B,gBAAgB,CAAC,YAAY,EAAE,aAAa,GAAG,IAAI;IAKnD,gBAAgB,CAAC,YAAY,EAAE,aAAa,GAAG,IAAI;IAKnD,0BAA0B,CAC/B,sBAAsB,EAAE,uBAAuB,GAC9C,IAAI;IAKA,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,GAAG,IAAI;IAK5D,sBAAsB,CAAC,kBAAkB,EAAE,mBAAmB,GAAG,IAAI;IAKrE,WAAW,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAKtD,KAAK,IAAI,oBAAoB;CAyDrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/server/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/server/builder.ts"],"names":[],"mappings":"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"}