document-drive 4.0.0-staging.6 → 4.0.1

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 (254) 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 +2 -1
  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/node/creators.d.ts +2 -6
  9. package/dist/src/drive-document-model/gen/node/creators.d.ts.map +1 -1
  10. package/dist/src/drive-document-model/gen/node/creators.js +1 -8
  11. package/dist/src/drive-document-model/gen/node/creators.js.map +1 -1
  12. package/dist/src/drive-document-model/gen/schema/types.d.ts +14 -1
  13. package/dist/src/drive-document-model/gen/schema/types.d.ts.map +1 -1
  14. package/dist/src/drive-document-model/gen/schema/zod.d.ts +5 -1
  15. package/dist/src/drive-document-model/gen/schema/zod.d.ts.map +1 -1
  16. package/dist/src/drive-document-model/gen/schema/zod.js +12 -0
  17. package/dist/src/drive-document-model/gen/schema/zod.js.map +1 -1
  18. package/dist/src/drive-document-model/gen/types.d.ts +4 -13
  19. package/dist/src/drive-document-model/gen/types.d.ts.map +1 -1
  20. package/dist/src/drive-document-model/gen/types.js.map +1 -1
  21. package/dist/src/drive-document-model/module.d.ts +1 -2
  22. package/dist/src/drive-document-model/module.d.ts.map +1 -1
  23. package/dist/src/drive-document-model/src/reducers/node.d.ts.map +1 -1
  24. package/dist/src/drive-document-model/src/reducers/node.js +25 -1
  25. package/dist/src/drive-document-model/src/reducers/node.js.map +1 -1
  26. package/dist/src/drive-document-model/src/tests/actions.test.js +23 -1
  27. package/dist/src/drive-document-model/src/tests/actions.test.js.map +1 -1
  28. package/dist/src/drive-document-model/src/tests/base.test.js +32 -0
  29. package/dist/src/drive-document-model/src/tests/base.test.js.map +1 -1
  30. package/dist/src/drive-document-model/src/tests/utils.test.js +37 -7
  31. package/dist/src/drive-document-model/src/tests/utils.test.js.map +1 -1
  32. package/dist/src/drive-document-model/src/utils.d.ts +8 -2
  33. package/dist/src/drive-document-model/src/utils.d.ts.map +1 -1
  34. package/dist/src/drive-document-model/src/utils.js +55 -6
  35. package/dist/src/drive-document-model/src/utils.js.map +1 -1
  36. package/dist/src/queue/base.d.ts +27 -6
  37. package/dist/src/queue/base.d.ts.map +1 -1
  38. package/dist/src/queue/base.js +203 -15
  39. package/dist/src/queue/base.js.map +1 -1
  40. package/dist/src/queue/redis.d.ts +27 -1
  41. package/dist/src/queue/redis.d.ts.map +1 -1
  42. package/dist/src/queue/redis.js +110 -122
  43. package/dist/src/queue/redis.js.map +1 -1
  44. package/dist/src/queue/types.d.ts +12 -18
  45. package/dist/src/queue/types.d.ts.map +1 -1
  46. package/dist/src/queue/types.js +0 -3
  47. package/dist/src/queue/types.js.map +1 -1
  48. package/dist/src/server/base-server.d.ts +11 -87
  49. package/dist/src/server/base-server.d.ts.map +1 -1
  50. package/dist/src/server/base-server.js +250 -549
  51. package/dist/src/server/base-server.js.map +1 -1
  52. package/dist/src/server/builder.js +2 -2
  53. package/dist/src/server/builder.js.map +1 -1
  54. package/dist/src/server/error.d.ts +3 -3
  55. package/dist/src/server/error.d.ts.map +1 -1
  56. package/dist/src/server/error.js +2 -2
  57. package/dist/src/server/error.js.map +1 -1
  58. package/dist/src/server/listener/listener-manager.d.ts +6 -5
  59. package/dist/src/server/listener/listener-manager.d.ts.map +1 -1
  60. package/dist/src/server/listener/listener-manager.js +79 -62
  61. package/dist/src/server/listener/listener-manager.js.map +1 -1
  62. package/dist/src/server/listener/transmitter/internal.d.ts +1 -1
  63. package/dist/src/server/listener/transmitter/internal.d.ts.map +1 -1
  64. package/dist/src/server/listener/transmitter/internal.js +12 -14
  65. package/dist/src/server/listener/transmitter/internal.js.map +1 -1
  66. package/dist/src/server/listener/transmitter/pull-responder.d.ts.map +1 -1
  67. package/dist/src/server/listener/transmitter/pull-responder.js +8 -14
  68. package/dist/src/server/listener/transmitter/pull-responder.js.map +1 -1
  69. package/dist/src/server/listener/transmitter/switchboard-push.d.ts.map +1 -1
  70. package/dist/src/server/listener/transmitter/switchboard-push.js +8 -13
  71. package/dist/src/server/listener/transmitter/switchboard-push.js.map +1 -1
  72. package/dist/src/server/sync-manager.d.ts +10 -8
  73. package/dist/src/server/sync-manager.d.ts.map +1 -1
  74. package/dist/src/server/sync-manager.js +147 -62
  75. package/dist/src/server/sync-manager.js.map +1 -1
  76. package/dist/src/server/types.d.ts +31 -114
  77. package/dist/src/server/types.d.ts.map +1 -1
  78. package/dist/src/server/types.js.map +1 -1
  79. package/dist/src/server/utils.d.ts +1 -10
  80. package/dist/src/server/utils.d.ts.map +1 -1
  81. package/dist/src/server/utils.js +0 -41
  82. package/dist/src/server/utils.js.map +1 -1
  83. package/dist/src/storage/browser.d.ts +2 -7
  84. package/dist/src/storage/browser.d.ts.map +1 -1
  85. package/dist/src/storage/browser.js +22 -80
  86. package/dist/src/storage/browser.js.map +1 -1
  87. package/dist/src/storage/filesystem.d.ts +2 -7
  88. package/dist/src/storage/filesystem.d.ts.map +1 -1
  89. package/dist/src/storage/filesystem.js +22 -79
  90. package/dist/src/storage/filesystem.js.map +1 -1
  91. package/dist/src/storage/memory.d.ts +2 -7
  92. package/dist/src/storage/memory.d.ts.map +1 -1
  93. package/dist/src/storage/memory.js +22 -76
  94. package/dist/src/storage/memory.js.map +1 -1
  95. package/dist/src/storage/prisma/client/edge.js +4 -5
  96. package/dist/src/storage/prisma/client/index-browser.js +1 -2
  97. package/dist/src/storage/prisma/client/index.d.ts +249 -58
  98. package/dist/src/storage/prisma/client/index.js +4 -5
  99. package/dist/src/storage/prisma/client/package.json +1 -1
  100. package/dist/src/storage/prisma/client/schema.prisma +3 -2
  101. package/dist/src/storage/prisma/client/wasm.js +1 -2
  102. package/dist/src/storage/prisma/prisma.d.ts +4 -9
  103. package/dist/src/storage/prisma/prisma.d.ts.map +1 -1
  104. package/dist/src/storage/prisma/prisma.js +51 -119
  105. package/dist/src/storage/prisma/prisma.js.map +1 -1
  106. package/dist/src/storage/types.d.ts +4 -43
  107. package/dist/src/storage/types.d.ts.map +1 -1
  108. package/dist/src/storage/utils.d.ts +0 -3
  109. package/dist/src/storage/utils.d.ts.map +1 -1
  110. package/dist/src/storage/utils.js +0 -14
  111. package/dist/src/storage/utils.js.map +1 -1
  112. package/dist/src/utils/gql-transformations.d.ts +5 -14
  113. package/dist/src/utils/gql-transformations.d.ts.map +1 -1
  114. package/dist/src/utils/gql-transformations.js +0 -1
  115. package/dist/src/utils/gql-transformations.js.map +1 -1
  116. package/dist/src/utils/misc.d.ts +0 -2
  117. package/dist/src/utils/misc.d.ts.map +1 -1
  118. package/dist/src/utils/misc.js +0 -4
  119. package/dist/src/utils/misc.js.map +1 -1
  120. package/dist/test/cache.test.d.ts +2 -0
  121. package/dist/test/cache.test.d.ts.map +1 -0
  122. package/dist/test/cache.test.js +281 -0
  123. package/dist/test/cache.test.js.map +1 -0
  124. package/dist/test/default-remote-drives.test.d.ts +2 -0
  125. package/dist/test/default-remote-drives.test.d.ts.map +1 -0
  126. package/dist/test/default-remote-drives.test.js +446 -0
  127. package/dist/test/default-remote-drives.test.js.map +1 -0
  128. package/dist/test/document-helpers/addUndo.test.d.ts +2 -0
  129. package/dist/test/document-helpers/addUndo.test.d.ts.map +1 -0
  130. package/dist/test/document-helpers/addUndo.test.js +120 -0
  131. package/dist/test/document-helpers/addUndo.test.js.map +1 -0
  132. package/dist/test/document-helpers/attachBranch.test.d.ts +2 -0
  133. package/dist/test/document-helpers/attachBranch.test.d.ts.map +1 -0
  134. package/dist/test/document-helpers/attachBranch.test.js +333 -0
  135. package/dist/test/document-helpers/attachBranch.test.js.map +1 -0
  136. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.d.ts +2 -0
  137. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.d.ts.map +1 -0
  138. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.js +252 -0
  139. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.js.map +1 -0
  140. package/dist/test/document-helpers/garbageCollect.test.d.ts +2 -0
  141. package/dist/test/document-helpers/garbageCollect.test.d.ts.map +1 -0
  142. package/dist/test/document-helpers/garbageCollect.test.js +136 -0
  143. package/dist/test/document-helpers/garbageCollect.test.js.map +1 -0
  144. package/dist/test/document-helpers/groupOperationsByScope.test.d.ts +2 -0
  145. package/dist/test/document-helpers/groupOperationsByScope.test.d.ts.map +1 -0
  146. package/dist/test/document-helpers/groupOperationsByScope.test.js +98 -0
  147. package/dist/test/document-helpers/groupOperationsByScope.test.js.map +1 -0
  148. package/dist/test/document-helpers/merge.test.d.ts +2 -0
  149. package/dist/test/document-helpers/merge.test.d.ts.map +1 -0
  150. package/dist/test/document-helpers/merge.test.js +757 -0
  151. package/dist/test/document-helpers/merge.test.js.map +1 -0
  152. package/dist/test/document-helpers/nextSkipNumber.test.d.ts +2 -0
  153. package/dist/test/document-helpers/nextSkipNumber.test.d.ts.map +1 -0
  154. package/dist/test/document-helpers/nextSkipNumber.test.js +123 -0
  155. package/dist/test/document-helpers/nextSkipNumber.test.js.map +1 -0
  156. package/dist/test/document-helpers/prepareOperations.test.d.ts +2 -0
  157. package/dist/test/document-helpers/prepareOperations.test.d.ts.map +1 -0
  158. package/dist/test/document-helpers/prepareOperations.test.js +304 -0
  159. package/dist/test/document-helpers/prepareOperations.test.js.map +1 -0
  160. package/dist/test/document-helpers/removeExistingOperations.test.d.ts +2 -0
  161. package/dist/test/document-helpers/removeExistingOperations.test.d.ts.map +1 -0
  162. package/dist/test/document-helpers/removeExistingOperations.test.js +150 -0
  163. package/dist/test/document-helpers/removeExistingOperations.test.js.map +1 -0
  164. package/dist/test/document-helpers/reshuffleByTimestamp.test.d.ts +2 -0
  165. package/dist/test/document-helpers/reshuffleByTimestamp.test.d.ts.map +1 -0
  166. package/dist/test/document-helpers/reshuffleByTimestamp.test.js +148 -0
  167. package/dist/test/document-helpers/reshuffleByTimestamp.test.js.map +1 -0
  168. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.d.ts +2 -0
  169. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.d.ts.map +1 -0
  170. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js +200 -0
  171. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js.map +1 -0
  172. package/dist/test/document-helpers/sortOperations.test.d.ts +2 -0
  173. package/dist/test/document-helpers/sortOperations.test.d.ts.map +1 -0
  174. package/dist/test/document-helpers/sortOperations.test.js +101 -0
  175. package/dist/test/document-helpers/sortOperations.test.js.map +1 -0
  176. package/dist/test/document-helpers/split.test.d.ts +2 -0
  177. package/dist/test/document-helpers/split.test.d.ts.map +1 -0
  178. package/dist/test/document-helpers/split.test.js +121 -0
  179. package/dist/test/document-helpers/split.test.js.map +1 -0
  180. package/dist/test/document-helpers/utils.d.ts +8 -0
  181. package/dist/test/document-helpers/utils.d.ts.map +1 -0
  182. package/dist/test/document-helpers/utils.js +22 -0
  183. package/dist/test/document-helpers/utils.js.map +1 -0
  184. package/dist/test/drive-operations.test.d.ts +2 -0
  185. package/dist/test/drive-operations.test.d.ts.map +1 -0
  186. package/dist/test/drive-operations.test.js +145 -0
  187. package/dist/test/drive-operations.test.js.map +1 -0
  188. package/dist/test/graphql.test.d.ts +2 -0
  189. package/dist/test/graphql.test.d.ts.map +1 -0
  190. package/dist/test/graphql.test.js +10 -0
  191. package/dist/test/graphql.test.js.map +1 -0
  192. package/dist/test/internal-listener.test.d.ts +2 -0
  193. package/dist/test/internal-listener.test.d.ts.map +1 -0
  194. package/dist/test/internal-listener.test.js +277 -0
  195. package/dist/test/internal-listener.test.js.map +1 -0
  196. package/dist/test/queue.test.d.ts +2 -0
  197. package/dist/test/queue.test.d.ts.map +1 -0
  198. package/dist/test/queue.test.js +338 -0
  199. package/dist/test/queue.test.js.map +1 -0
  200. package/dist/test/read-mode.test.d.ts +2 -0
  201. package/dist/test/read-mode.test.d.ts.map +1 -0
  202. package/dist/test/read-mode.test.js +578 -0
  203. package/dist/test/read-mode.test.js.map +1 -0
  204. package/dist/test/server/driveOperationsConflictResolution.test.d.ts +2 -0
  205. package/dist/test/server/driveOperationsConflictResolution.test.d.ts.map +1 -0
  206. package/dist/test/server/driveOperationsConflictResolution.test.js +460 -0
  207. package/dist/test/server/driveOperationsConflictResolution.test.js.map +1 -0
  208. package/dist/test/server/mergeOperations.test.d.ts +2 -0
  209. package/dist/test/server/mergeOperations.test.d.ts.map +1 -0
  210. package/dist/test/server/mergeOperations.test.js +107 -0
  211. package/dist/test/server/mergeOperations.test.js.map +1 -0
  212. package/dist/test/server/processOperations.test.d.ts +2 -0
  213. package/dist/test/server/processOperations.test.d.ts.map +1 -0
  214. package/dist/test/server/processOperations.test.js +380 -0
  215. package/dist/test/server/processOperations.test.js.map +1 -0
  216. package/dist/test/server.test.d.ts +2 -0
  217. package/dist/test/server.test.d.ts.map +1 -0
  218. package/dist/test/server.test.js +899 -0
  219. package/dist/test/server.test.js.map +1 -0
  220. package/dist/test/signature-migration.test.d.ts +2 -0
  221. package/dist/test/signature-migration.test.d.ts.map +1 -0
  222. package/dist/test/signature-migration.test.js +239 -0
  223. package/dist/test/signature-migration.test.js.map +1 -0
  224. package/dist/test/storage.test.d.ts +2 -0
  225. package/dist/test/storage.test.d.ts.map +1 -0
  226. package/dist/test/storage.test.js +523 -0
  227. package/dist/test/storage.test.js.map +1 -0
  228. package/dist/test/utils.d.ts +48 -0
  229. package/dist/test/utils.d.ts.map +1 -0
  230. package/dist/test/utils.js +133 -0
  231. package/dist/test/utils.js.map +1 -0
  232. package/dist/test/utils.test.d.ts +2 -0
  233. package/dist/test/utils.test.d.ts.map +1 -0
  234. package/dist/test/utils.test.js +89 -0
  235. package/dist/test/utils.test.js.map +1 -0
  236. package/dist/test/vitest-setup.d.ts +2 -0
  237. package/dist/test/vitest-setup.d.ts.map +1 -0
  238. package/dist/test/vitest-setup.js +5 -0
  239. package/dist/test/vitest-setup.js.map +1 -0
  240. package/dist/tsconfig.tsbuildinfo +1 -0
  241. package/dist/vitest.config.d.ts +3 -0
  242. package/dist/vitest.config.d.ts.map +1 -0
  243. package/dist/vitest.config.js +27 -0
  244. package/dist/vitest.config.js.map +1 -0
  245. package/package.json +4 -4
  246. package/dist/src/queue/event.d.ts +0 -42
  247. package/dist/src/queue/event.d.ts.map +0 -1
  248. package/dist/src/queue/event.js +0 -222
  249. package/dist/src/queue/event.js.map +0 -1
  250. package/dist/src/server/sync-unit-map.d.ts +0 -137
  251. package/dist/src/server/sync-unit-map.d.ts.map +0 -1
  252. package/dist/src/server/sync-unit-map.js +0 -234
  253. package/dist/src/server/sync-unit-map.js.map +0 -1
  254. package/dist/tsconfig.lib.tsbuildinfo +0 -1
@@ -1,48 +1,10 @@
1
1
  import { type DocumentDriveDocument } from "#drive-document-model/gen/types";
2
2
  import { type SynchronizationUnitQuery } from "#server/types";
3
3
  import type { Operation, OperationFromDocument, PHDocument } from "document-model";
4
- export type IStorageUnit = {
5
- /** The id of the document. If '*' then select all. */
6
- documentId: string;
7
- /** The type of the document model. If '*' then select all. */
8
- documentModelType: string;
9
- /** The scope of the document. If '*' then select all. */
10
- scope: string;
11
- /** The branch of the document. If '*' then select all. */
12
- branch: string;
13
- };
14
- export type IStorageUnitFilter = {
15
- /** The ids of the parent documents. If '*' then select all. */
16
- parentId?: string[];
17
- /** The ids of the documents. If '*' then select all. */
18
- documentId?: string[];
19
- /** The types of the document models. If '*' then select all. */
20
- documentModelType?: string[];
21
- /** The scopes of the documents. If '*' then select all. */
22
- scope?: string[];
23
- /** The branches of the documents. If '*' then select all. */
24
- branch?: string[];
25
- };
26
- export type ResolvedStorageUnitFilter = Required<{
27
- [K in keyof IStorageUnitFilter]: Set<string> | null;
28
- }>;
29
- export interface IStorageUnitStorage {
30
- /**
31
- * Finds storage units based on the provided filter.
32
- *
33
- * @param filter - The filter to apply.
34
- * @param limit - The maximum number of documents to return.
35
- * @param cursor - The cursor to start the search from.
36
- */
37
- findStorageUnitsBy: (filter: IStorageUnitFilter, limit: number, cursor?: string) => Promise<{
38
- units: IStorageUnit[];
39
- nextCursor?: string;
40
- }>;
41
- }
42
4
  /**
43
5
  * Describes the storage interface for documents.
44
6
  */
45
- export interface IDocumentStorage extends IStorageUnitStorage {
7
+ export interface IDocumentStorage {
46
8
  /**
47
9
  * Resolves a list of ids from a list of slugs.
48
10
  *
@@ -159,15 +121,14 @@ export interface IDocumentAdminStorage extends IDocumentStorage {
159
121
  * Describes the storage interface for document operations.
160
122
  */
161
123
  export interface IDocumentOperationStorage {
162
- addDocumentOperations<TDocument extends PHDocument>(id: string, operations: OperationFromDocument<TDocument>[], document: PHDocument): Promise<void>;
163
- addDocumentOperationsWithTransaction?<TDocument extends PHDocument>(id: string, callback: (document: TDocument) => Promise<{
124
+ addDocumentOperations<TDocument extends PHDocument>(drive: string, id: string, operations: OperationFromDocument<TDocument>[], document: PHDocument): Promise<void>;
125
+ addDocumentOperationsWithTransaction?<TDocument extends PHDocument>(drive: string, id: string, callback: (document: TDocument) => Promise<{
164
126
  operations: OperationFromDocument<TDocument>[];
165
127
  document: PHDocument;
166
128
  }>): Promise<void>;
167
- getOperationResultingState?(id: string, index: number, scope: string, branch: string): Promise<string | undefined>;
129
+ getOperationResultingState?(drive: string, id: string, index: number, scope: string, branch: string): Promise<string | undefined>;
168
130
  getSynchronizationUnitsRevision(units: SynchronizationUnitQuery[]): Promise<{
169
131
  documentId: string;
170
- documentType: string;
171
132
  scope: string;
172
133
  branch: string;
173
134
  lastUpdated: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/storage/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/storage/types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,3 @@
1
- import { type IStorageUnitFilter, type ResolvedStorageUnitFilter } from "./types.js";
2
1
  export declare const isValidDocumentId: (id: string) => boolean | "";
3
2
  export declare const isValidSlug: (slug: string) => boolean | "";
4
- export declare const resolveStorageUnitsFilterComponent: (component: string[] | undefined) => Set<string> | null;
5
- export declare const resolveStorageUnitsFilter: (filter: IStorageUnitFilter) => ResolvedStorageUnitFilter;
6
3
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/storage/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC/B,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,iBAAiB,GAAI,IAAI,MAAM,iBACQ,CAAC;AAErD,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,iBACkB,CAAC;AAE3D,eAAO,MAAM,kCAAkC,GAC7C,WAAW,MAAM,EAAE,GAAG,SAAS,uBAKhC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,QAAQ,kBAAkB,KACzB,yBAUF,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/storage/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,GAAI,IAAI,MAAM,iBACQ,CAAC;AAErD,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,iBACkB,CAAC"}
@@ -1,17 +1,3 @@
1
1
  export const isValidDocumentId = (id) => id && id.length > 0 && /^[a-zA-Z0-9_-]+$/.test(id);
2
2
  export const isValidSlug = (slug) => slug && slug.length > 0 && /^[a-zA-Z0-9_-]+$/.test(slug);
3
- export const resolveStorageUnitsFilterComponent = (component) => {
4
- return component && component.length > 0 && !component.includes("*")
5
- ? new Set(component)
6
- : null;
7
- };
8
- export const resolveStorageUnitsFilter = (filter) => {
9
- return {
10
- parentId: resolveStorageUnitsFilterComponent(filter.parentId),
11
- documentId: resolveStorageUnitsFilterComponent(filter.documentId),
12
- documentModelType: resolveStorageUnitsFilterComponent(filter.documentModelType),
13
- scope: resolveStorageUnitsFilterComponent(filter.scope),
14
- branch: resolveStorageUnitsFilterComponent(filter.branch),
15
- };
16
- };
17
3
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/storage/utils.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAU,EAAE,EAAE,CAC9C,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CAC1C,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAChD,SAA+B,EAC/B,EAAE;IACF,OAAO,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;QAClE,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC;QACpB,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,MAA0B,EACC,EAAE;IAC7B,OAAO;QACL,QAAQ,EAAE,kCAAkC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC7D,UAAU,EAAE,kCAAkC,CAAC,MAAM,CAAC,UAAU,CAAC;QACjE,iBAAiB,EAAE,kCAAkC,CACnD,MAAM,CAAC,iBAAiB,CACzB;QACD,KAAK,EAAE,kCAAkC,CAAC,MAAM,CAAC,KAAK,CAAC;QACvD,MAAM,EAAE,kCAAkC,CAAC,MAAM,CAAC,MAAM,CAAC;KAC1D,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/storage/utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAU,EAAE,EAAE,CAC9C,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CAC1C,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
@@ -1,22 +1,13 @@
1
1
  import { type DocumentDriveDocument } from "document-drive";
2
- import { type Operation, type PHDocument, type PHDocumentHeader } from "document-model";
2
+ import { type PHDocument } from "document-model";
3
3
  export declare function responseForDrive(drive: DocumentDriveDocument): {
4
4
  id: string;
5
5
  slug: string;
6
- meta: import("document-model").PHDocumentMeta | undefined;
6
+ meta: {
7
+ preferredEditor?: string;
8
+ } | undefined;
7
9
  name: string;
8
10
  icon: string | undefined;
9
11
  };
10
- export type PHDocumentGQL = Omit<PHDocumentHeader, "revision"> & {
11
- id: string;
12
- revision: number;
13
- createdAt: string;
14
- lastModified: string;
15
- __typename: string;
16
- state: unknown;
17
- initialState: unknown;
18
- stateJSON: unknown;
19
- operations: Operation[];
20
- };
21
- export declare function responseForDocument(document: PHDocument, typeName: string): PHDocumentGQL;
12
+ export declare function responseForDocument(document: PHDocument, typeName: string): any;
22
13
  //# sourceMappingURL=gql-transformations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gql-transformations.d.ts","sourceRoot":"","sources":["../../../src/utils/gql-transformations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB;;;;;;EAQ5D;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG;IAC/D,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IAEjB,SAAS,EAAE,MAAM,CAAC;IAElB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,MAAM,GACf,aAAa,CAoBf"}
1
+ {"version":3,"file":"gql-transformations.d.ts","sourceRoot":"","sources":["../../../src/utils/gql-transformations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB;;;;;;;;EAQ5D;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,MAAM,GACf,GAAG,CAmBL"}
@@ -9,7 +9,6 @@ export function responseForDrive(drive) {
9
9
  }
10
10
  export function responseForDocument(document, typeName) {
11
11
  return {
12
- ...document.header,
13
12
  ...document,
14
13
  id: document.header.id,
15
14
  createdAt: document.header.createdAtUtcIso,
@@ -1 +1 @@
1
- {"version":3,"file":"gql-transformations.js","sourceRoot":"","sources":["../../../src/utils/gql-transformations.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;QACnB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;QACvB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;QACvB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;QAC7B,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS;KAC3C,CAAC;AACJ,CAAC;AAgBD,MAAM,UAAU,mBAAmB,CACjC,QAAoB,EACpB,QAAgB;IAEhB,OAAO;QACL,GAAG,QAAQ,CAAC,MAAM;QAClB,GAAG,QAAQ;QACX,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;QACtB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe;QAC1C,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,oBAAoB;QAClD,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY;QAC1C,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI;QAC1B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC;QAC9C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM;QAC5B,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM;QAChC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAa,EAAE,EAAE,CAAC,CAAC;YAC7D,GAAG,EAAE;YACL,SAAS,EACP,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC;SACrE,CAAC,CAAC;QACH,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM;QAChD,UAAU,EAAE,QAAQ;KACrB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"gql-transformations.js","sourceRoot":"","sources":["../../../src/utils/gql-transformations.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;QACnB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;QACvB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;QACvB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;QAC7B,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,QAAoB,EACpB,QAAgB;IAEhB,OAAO;QACL,GAAG,QAAQ;QACX,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;QACtB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe;QAC1C,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,oBAAoB;QAClD,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY;QAC1C,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI;QAC1B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC;QAC9C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM;QAC5B,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM;QAChC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAa,EAAE,EAAE,CAAC,CAAC;YAC7D,GAAG,EAAE;YACL,SAAS,EACP,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC;SACrE,CAAC,CAAC;QACH,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM;QAChD,UAAU,EAAE,QAAQ;KACrB,CAAC;AACJ,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { type Operation, type OperationFromDocument, type OperationsFromDocument, type PHDocument } from "document-model";
2
2
  import { type DocumentDriveDocument } from "#drive-document-model/gen/types";
3
- import { type ListenerRevision } from "#server/types";
4
3
  import { pascalCase } from "change-case";
5
4
  import { RunAsap } from "./run-asap.js";
6
5
  export declare const runAsap: typeof RunAsap.runAsap;
@@ -9,7 +8,6 @@ export declare function isDocumentDrive(document: PHDocument): document is Docum
9
8
  export declare function mergeOperations<TDocument extends PHDocument>(currentOperations: OperationsFromDocument<TDocument>, newOperations: OperationFromDocument<TDocument>[]): OperationsFromDocument<TDocument>;
10
9
  export declare function isNoopUpdate(operation: Operation, latestOperation?: Operation): boolean;
11
10
  export declare function isBefore(dateA: Date | string, dateB: Date | string): boolean;
12
- export declare function operationsToRevision(operations: Pick<Operation, "index">[] | undefined): ListenerRevision["revision"];
13
11
  /**
14
12
  * Converts a string to PascalCase
15
13
  * @param {string} str - The input string to convert
@@ -1 +1 @@
1
- {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/utils/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,qBAAqB,EAE1B,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,eAAO,MAAM,OAAO,wBAAkB,CAAC;AACvC,eAAO,MAAM,YAAY,6BAAuB,CAAC;AAEjD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,UAAU,GACnB,QAAQ,IAAI,qBAAqB,CAEnC;AAED,wBAAgB,eAAe,CAAC,SAAS,SAAS,UAAU,EAC1D,iBAAiB,EAAE,sBAAsB,CAAC,SAAS,CAAC,EACpD,aAAa,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAAE,GAChD,sBAAsB,CAAC,SAAS,CAAC,CA0BnC;AAED,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,EACpB,eAAe,CAAC,EAAE,SAAS,WAc5B;AAGD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM,WAElE;AAED,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,GAAG,SAAS,GACjD,gBAAgB,CAAC,UAAU,CAAC,CAG9B;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,mBAAa,CAAC"}
1
+ {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/utils/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,qBAAqB,EAE1B,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,eAAO,MAAM,OAAO,wBAAkB,CAAC;AACvC,eAAO,MAAM,YAAY,6BAAuB,CAAC;AAEjD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,UAAU,GACnB,QAAQ,IAAI,qBAAqB,CAEnC;AAED,wBAAgB,eAAe,CAAC,SAAS,SAAS,UAAU,EAC1D,iBAAiB,EAAE,sBAAsB,CAAC,SAAS,CAAC,EACpD,aAAa,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAAE,GAChD,sBAAsB,CAAC,SAAS,CAAC,CA0BnC;AAED,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,EACpB,eAAe,CAAC,EAAE,SAAS,WAc5B;AAGD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM,WAElE;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,mBAAa,CAAC"}
@@ -38,10 +38,6 @@ export function isNoopUpdate(operation, latestOperation) {
38
38
  export function isBefore(dateA, dateB) {
39
39
  return new Date(dateA) < new Date(dateB);
40
40
  }
41
- export function operationsToRevision(operations) {
42
- const lastOperation = operations?.at(-1);
43
- return lastOperation ? lastOperation.index + 1 : 0;
44
- }
45
41
  /**
46
42
  * Converts a string to PascalCase
47
43
  * @param {string} str - The input string to convert
@@ -1 +1 @@
1
- {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/utils/misc.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;AAEjD,MAAM,UAAU,eAAe,CAC7B,QAAoB;IAEpB,OAAO,QAAQ,CAAC,MAAM,CAAC,YAAY,KAAK,iBAAiB,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,iBAAoD,EACpD,aAAiD;IAEjD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAE3D,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACd,MAAM,KAAK,GAAG,IAAsB,CAAC;QACrC,GAAG,CAAC,KAAK,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QACzD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CACnC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CACpD,CAAC;IACF,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,IAAI,cAAc,CACtB,OAAO,EACP,UAAU,EACV,qCAAqC,UAAU,CAAC,KAAK,6BAA6B,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CACtH,CAAC;IACJ,CAAC;IAED,OAAO,aAAa;SACjB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SACjC,MAAM,CAAoC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACvD,MAAM,kBAAkB,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACjD,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAAC;IACjE,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,SAAoB,EACpB,eAA2B;IAE3B,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC;IAC3C,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,KAAK,MAAM,CAAC;IACvD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,CAAC;IAChE,MAAM,2BAA2B,GAAG,SAAS,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;IAE1E,OAAO,CACL,QAAQ,IAAI,cAAc,IAAI,aAAa,IAAI,2BAA2B,CAC3E,CAAC;AACJ,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,QAAQ,CAAC,KAAoB,EAAE,KAAoB;IACjE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,UAAkD;IAElD,MAAM,aAAa,GAAG,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC"}
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/utils/misc.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;AAEjD,MAAM,UAAU,eAAe,CAC7B,QAAoB;IAEpB,OAAO,QAAQ,CAAC,MAAM,CAAC,YAAY,KAAK,iBAAiB,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,iBAAoD,EACpD,aAAiD;IAEjD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAE3D,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACd,MAAM,KAAK,GAAG,IAAsB,CAAC;QACrC,GAAG,CAAC,KAAK,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QACzD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CACnC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CACpD,CAAC;IACF,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,IAAI,cAAc,CACtB,OAAO,EACP,UAAU,EACV,qCAAqC,UAAU,CAAC,KAAK,6BAA6B,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CACtH,CAAC;IACJ,CAAC;IAED,OAAO,aAAa;SACjB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SACjC,MAAM,CAAoC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACvD,MAAM,kBAAkB,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACjD,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAAC;IACjE,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,SAAoB,EACpB,eAA2B;IAE3B,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC;IAC3C,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,KAAK,MAAM,CAAC;IACvD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,CAAC;IAChE,MAAM,2BAA2B,GAAG,SAAS,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;IAE1E,OAAO,CACL,QAAQ,IAAI,cAAc,IAAI,aAAa,IAAI,2BAA2B,CAC3E,CAAC;AACJ,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,QAAQ,CAAC,KAAoB,EAAE,KAAoB;IACjE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cache.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.test.d.ts","sourceRoot":"","sources":["../../test/cache.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,281 @@
1
+ import sizeof from "object-sizeof";
2
+ import { createClient } from "redis";
3
+ import { beforeEach, describe, it } from "vitest";
4
+ import { createDocument as createDocumentModelDocument, generateId, } from "../../document-model/index.js";
5
+ import { LRUCacheStorage } from "../src/cache/lru.js";
6
+ import InMemoryCache from "../src/cache/memory.js";
7
+ import { createDocument as createDriveDocument } from "../src/drive-document-model/gen/utils.js";
8
+ const initRedis = async () => {
9
+ const redisClient = createClient({
10
+ url: process.env.REDIS_TLS_URL ?? "redis://localhost:6379",
11
+ });
12
+ redisClient.on("error", (err) => {
13
+ console.log("Redis Client Error", err);
14
+ throw new Error("Redis Client Error");
15
+ });
16
+ redisClient.connect();
17
+ return redisClient;
18
+ };
19
+ // Array of cache implementations to test
20
+ const cacheImplementations = [
21
+ ["InMemoryCache", () => Promise.resolve(new InMemoryCache())],
22
+ [
23
+ "InMemoryCache with LRU with 512KB maxSize",
24
+ () => Promise.resolve(new InMemoryCache(new LRUCacheStorage({ maxSize: 512000 }))),
25
+ ],
26
+ // [
27
+ // "RedisCache",
28
+ // async () => {
29
+ // const client = await initRedis();
30
+ // // Clear the test keys
31
+ // await client.flushDb();
32
+ // // Use type assertion to handle Redis client type compatibility
33
+ // return new RedisCache(client as any);
34
+ // },
35
+ // ],
36
+ ];
37
+ describe.each(cacheImplementations)("%s", (_, buildCache) => {
38
+ let cache;
39
+ beforeEach(async () => {
40
+ cache = await buildCache();
41
+ });
42
+ // Document tests
43
+ describe("document operations", () => {
44
+ it("should set and get a document", async ({ expect }) => {
45
+ const documentId = "test-document-id";
46
+ const document = createDocumentModelDocument();
47
+ await cache.setDocument(documentId, document);
48
+ const retrievedDocument = await cache.getDocument(documentId);
49
+ expect(retrievedDocument).toBeDefined();
50
+ expect(retrievedDocument?.header.documentType).toBe(document.header.documentType);
51
+ });
52
+ it("should return undefined when getting a non-existent document", async ({ expect, }) => {
53
+ const documentId = "non-existent-document";
54
+ const retrievedDocument = await cache.getDocument(documentId);
55
+ expect(retrievedDocument).toBeUndefined();
56
+ });
57
+ it("should delete a document", async ({ expect }) => {
58
+ const documentId = "document-to-delete";
59
+ const document = createDocumentModelDocument();
60
+ await cache.setDocument(documentId, document);
61
+ const deletionResult = await cache.deleteDocument(documentId);
62
+ const retrievedDocument = await cache.getDocument(documentId);
63
+ expect(deletionResult).toBe(true);
64
+ expect(retrievedDocument).toBeUndefined();
65
+ });
66
+ it("should return false when deleting a non-existent document", async ({ expect, }) => {
67
+ const documentId = "non-existent-document";
68
+ const deletionResult = await cache.deleteDocument(documentId);
69
+ expect(deletionResult).toBe(false);
70
+ });
71
+ });
72
+ // Drive tests
73
+ describe("drive operations", () => {
74
+ it("should set and get a drive", async ({ expect }) => {
75
+ const driveId = "test-drive-id";
76
+ const drive = createDriveDocument();
77
+ await cache.setDrive(driveId, drive);
78
+ const retrievedDrive = await cache.getDrive(driveId);
79
+ expect(retrievedDrive).toBeDefined();
80
+ expect(retrievedDrive?.header.documentType).toBe(drive.header.documentType);
81
+ });
82
+ it("should return undefined when getting a non-existent drive", async ({ expect, }) => {
83
+ const driveId = "non-existent-drive";
84
+ const retrievedDrive = await cache.getDrive(driveId);
85
+ expect(retrievedDrive).toBeUndefined();
86
+ });
87
+ it("should delete a drive", async ({ expect }) => {
88
+ const drive = createDriveDocument();
89
+ const driveId = drive.header.id;
90
+ // Set slug for slug deletion logic
91
+ drive.header.slug = "test-slug";
92
+ await cache.setDrive(driveId, drive);
93
+ const deletionResult = await cache.deleteDrive(driveId);
94
+ const retrievedDrive = await cache.getDrive(driveId);
95
+ expect(deletionResult).toBe(true);
96
+ expect(retrievedDrive).toBeUndefined();
97
+ });
98
+ it("should return false when deleting a non-existent drive", async ({ expect, }) => {
99
+ const driveId = generateId();
100
+ const deletionResult = await cache.deleteDrive(driveId);
101
+ expect(deletionResult).toBe(false);
102
+ });
103
+ });
104
+ // Drive by slug tests
105
+ describe("drive by slug operations", () => {
106
+ it("should set and get a drive by slug", async ({ expect }) => {
107
+ const slug = "test-slug";
108
+ const drive = createDriveDocument();
109
+ const driveId = drive.header.id;
110
+ drive.header.id = driveId;
111
+ drive.header.slug = slug;
112
+ await cache.setDriveBySlug(slug, drive);
113
+ const retrievedDrive = await cache.getDriveBySlug(slug);
114
+ expect(retrievedDrive).toBeDefined();
115
+ expect(retrievedDrive?.header.id).toBe(driveId);
116
+ expect(retrievedDrive?.header.slug).toBe(slug);
117
+ });
118
+ it("should return undefined when getting a non-existent drive by slug", async ({ expect, }) => {
119
+ const slug = "non-existent-slug";
120
+ const retrievedDrive = await cache.getDriveBySlug(slug);
121
+ expect(retrievedDrive).toBeUndefined();
122
+ });
123
+ it("should delete a drive by slug", async ({ expect }) => {
124
+ const slug = "slug-to-delete";
125
+ const drive = createDriveDocument();
126
+ drive.header.slug = slug;
127
+ await cache.setDriveBySlug(slug, drive);
128
+ const deletionResult = await cache.deleteDriveBySlug(slug);
129
+ const retrievedDrive = await cache.getDriveBySlug(slug);
130
+ expect(deletionResult).toBe(true);
131
+ expect(retrievedDrive).toBeUndefined();
132
+ });
133
+ it("should return false when deleting a non-existent drive by slug", async ({ expect, }) => {
134
+ const slug = "non-existent-slug";
135
+ const deletionResult = await cache.deleteDriveBySlug(slug);
136
+ expect(deletionResult).toBe(false);
137
+ });
138
+ });
139
+ // Cross-referencing tests
140
+ describe("cross-referencing", () => {
141
+ it("should retrieve the same drive via ID after setting by slug", async ({ expect, }) => {
142
+ const slug = "test-slug";
143
+ const drive = createDriveDocument();
144
+ const driveId = drive.header.id;
145
+ // Set slug for consistency
146
+ drive.header.slug = slug;
147
+ await cache.setDriveBySlug(slug, drive);
148
+ const retrievedDriveBySlug = await cache.getDriveBySlug(slug);
149
+ const retrievedDriveById = await cache.getDrive(driveId);
150
+ expect(retrievedDriveBySlug).toBeDefined();
151
+ expect(retrievedDriveById).toBeDefined();
152
+ expect(retrievedDriveById?.header.id).toBe(driveId);
153
+ expect(retrievedDriveById?.header.slug).toBe(slug);
154
+ expect(retrievedDriveBySlug?.header.id).toBe(retrievedDriveById?.header.id);
155
+ });
156
+ it("should make drive inaccessible by slug after deleting by ID", async ({ expect, }) => {
157
+ const slug = "test-slug";
158
+ const drive = createDriveDocument();
159
+ const driveId = drive.header.id;
160
+ // Set slug for slug deletion logic
161
+ drive.header.slug = slug;
162
+ await cache.setDriveBySlug(slug, drive);
163
+ await cache.deleteDrive(driveId);
164
+ const retrievedDriveBySlug = await cache.getDriveBySlug(slug);
165
+ expect(retrievedDriveBySlug).toBeUndefined();
166
+ });
167
+ });
168
+ describe("collisions", () => {
169
+ it("(OBSOLETE) should allow document and drives with the same id without colliding", async ({ expect, }) => {
170
+ const documentId = generateId();
171
+ const driveId = documentId;
172
+ const document = createDocumentModelDocument();
173
+ document.header.id = documentId;
174
+ const drive = createDriveDocument();
175
+ drive.header.id = driveId;
176
+ await cache.setDocument(documentId, document);
177
+ await cache.setDrive(driveId, drive);
178
+ const retrievedDocument = await cache.getDocument(documentId);
179
+ const retrievedDrive = await cache.getDrive(driveId);
180
+ expect(retrievedDocument).toBeDefined();
181
+ expect(retrievedDrive).toBeDefined();
182
+ expect(retrievedDocument?.header.documentType).toBe(document.header.documentType);
183
+ expect(retrievedDrive?.header.documentType).toBe(drive.header.documentType);
184
+ });
185
+ });
186
+ });
187
+ // Test specifically for LRU cache behavior
188
+ describe("LRU Cache Specific Tests", () => {
189
+ // Helper functions for test data
190
+ function createTestDocument() {
191
+ return createDocumentModelDocument({
192
+ state: {
193
+ global: {
194
+ id: `doc`,
195
+ name: `Document`,
196
+ author: { name: "author", website: "url" },
197
+ description: "x".repeat(100),
198
+ extension: "md",
199
+ specifications: [],
200
+ },
201
+ local: {},
202
+ },
203
+ });
204
+ }
205
+ function createTestDrive() {
206
+ const drive = createDriveDocument();
207
+ drive.state.global.nodes = new Array(10).fill(0).map((_, i) => ({
208
+ id: `node-${i}`,
209
+ name: `Node ${i}`,
210
+ kind: "FILE",
211
+ parentFolder: null,
212
+ }));
213
+ return drive;
214
+ }
215
+ const testDocSize = sizeof(createTestDocument());
216
+ it("should evict older documents when size limit is reached", async ({ expect, }) => {
217
+ // Create a small LRU cache with size for a single document
218
+ const cache = new InMemoryCache(new LRUCacheStorage({ maxSize: testDocSize }));
219
+ const doc = createTestDocument();
220
+ await cache.setDocument(`doc-1`, doc);
221
+ await cache.setDocument(`doc-2`, doc);
222
+ // The earliest documents should have been evicted
223
+ const firstDoc = await cache.getDocument("doc-1");
224
+ const lastDoc = await cache.getDocument("doc-2");
225
+ expect(firstDoc).toBeUndefined(); // Should be evicted
226
+ expect(lastDoc).toBeDefined(); // Should still be in cache
227
+ });
228
+ it("should keep most recently accessed documents in cache", async ({ expect, }) => {
229
+ // Create cache that can hold 2 documents
230
+ const cache = new InMemoryCache(new LRUCacheStorage({ maxSize: testDocSize * 2 }));
231
+ const doc = createTestDocument();
232
+ // Add 3 documents
233
+ await cache.setDocument(`doc-1`, doc);
234
+ await cache.setDocument(`doc-2`, doc);
235
+ // Access doc-1 to make it most recently used
236
+ await cache.getDocument(`doc-1`);
237
+ // Add doc-3 which should evict doc-2 since doc-1 was recently accessed
238
+ await cache.setDocument(`doc-3`, doc);
239
+ const doc1 = await cache.getDocument("doc-1");
240
+ const doc2 = await cache.getDocument("doc-2");
241
+ const doc3 = await cache.getDocument("doc-3");
242
+ expect(doc1).toBeDefined(); // Should remain as it was most recently accessed
243
+ expect(doc2).toBeUndefined(); // Should be evicted
244
+ expect(doc3).toBeDefined(); // Should be present as it was just added
245
+ });
246
+ it("should handle document updates without unnecessary eviction", async ({ expect, }) => {
247
+ // Create cache that can hold 2 documents
248
+ const cache = new InMemoryCache(new LRUCacheStorage({ maxSize: testDocSize * 2 }));
249
+ const doc = createTestDocument();
250
+ // Add 2 documents filling the cache
251
+ await cache.setDocument(`doc-1`, doc);
252
+ await cache.setDocument(`doc-2`, doc);
253
+ // Update doc-1 with similar sized content
254
+ const updatedDoc = JSON.parse(JSON.stringify(doc));
255
+ updatedDoc.state.global.description = "y".repeat(100);
256
+ await cache.setDocument(`doc-1`, updatedDoc);
257
+ const doc1 = await cache.getDocument("doc-1");
258
+ const doc2 = await cache.getDocument("doc-2");
259
+ expect(doc1).toBeDefined();
260
+ expect((doc1?.state.global).description).toBe("y".repeat(100));
261
+ expect(doc2).toBeDefined(); // Should not be evicted as cache size wasn't exceeded
262
+ });
263
+ it("should maintain size limit with multiple document types", async ({ expect, }) => {
264
+ const doc = createTestDocument();
265
+ const drive = createTestDrive();
266
+ const totalSize = sizeof(doc) + sizeof(drive);
267
+ // Create cache that can hold one document and one drive
268
+ const cache = new InMemoryCache(new LRUCacheStorage({ maxSize: totalSize }));
269
+ await cache.setDocument(`doc-1`, doc);
270
+ await cache.setDrive(`drive-1`, drive);
271
+ // Adding another document should evict the first document
272
+ await cache.setDocument(`doc-2`, doc);
273
+ const doc1 = await cache.getDocument("doc-1");
274
+ const doc2 = await cache.getDocument("doc-2");
275
+ const drive1 = await cache.getDrive("drive-1");
276
+ expect(doc1).toBeUndefined(); // Should be evicted
277
+ expect(doc2).toBeDefined(); // Should be present
278
+ expect(drive1).toBeDefined(); // Should be present as it's in a different storage
279
+ });
280
+ });
281
+ //# sourceMappingURL=cache.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.test.js","sourceRoot":"","sources":["../../test/cache.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=default-remote-drives.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-remote-drives.test.d.ts","sourceRoot":"","sources":["../../test/default-remote-drives.test.ts"],"names":[],"mappings":""}