document-drive 4.0.1 → 4.1.0-dev.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.
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/prisma/schema.prisma +1 -2
- package/dist/src/drive-document-model/gen/document-model.js +3 -3
- package/dist/src/drive-document-model/gen/document-model.js.map +1 -1
- package/dist/src/drive-document-model/gen/node/creators.d.ts +6 -2
- package/dist/src/drive-document-model/gen/node/creators.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/node/creators.js +8 -1
- package/dist/src/drive-document-model/gen/node/creators.js.map +1 -1
- package/dist/src/drive-document-model/gen/schema/types.d.ts +1 -14
- package/dist/src/drive-document-model/gen/schema/types.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/schema/zod.d.ts +1 -5
- package/dist/src/drive-document-model/gen/schema/zod.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/schema/zod.js +0 -12
- package/dist/src/drive-document-model/gen/schema/zod.js.map +1 -1
- package/dist/src/drive-document-model/gen/types.d.ts +13 -4
- package/dist/src/drive-document-model/gen/types.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/types.js.map +1 -1
- package/dist/src/drive-document-model/module.d.ts +2 -1
- package/dist/src/drive-document-model/module.d.ts.map +1 -1
- package/dist/src/drive-document-model/src/reducers/node.d.ts.map +1 -1
- package/dist/src/drive-document-model/src/reducers/node.js +1 -25
- package/dist/src/drive-document-model/src/reducers/node.js.map +1 -1
- package/dist/src/drive-document-model/src/tests/actions.test.js +1 -23
- package/dist/src/drive-document-model/src/tests/actions.test.js.map +1 -1
- package/dist/src/drive-document-model/src/tests/base.test.js +0 -32
- package/dist/src/drive-document-model/src/tests/base.test.js.map +1 -1
- package/dist/src/drive-document-model/src/tests/utils.test.js +7 -37
- package/dist/src/drive-document-model/src/tests/utils.test.js.map +1 -1
- package/dist/src/drive-document-model/src/utils.d.ts +2 -8
- package/dist/src/drive-document-model/src/utils.d.ts.map +1 -1
- package/dist/src/drive-document-model/src/utils.js +6 -55
- package/dist/src/drive-document-model/src/utils.js.map +1 -1
- package/dist/src/queue/base.d.ts +6 -27
- package/dist/src/queue/base.d.ts.map +1 -1
- package/dist/src/queue/base.js +15 -203
- package/dist/src/queue/base.js.map +1 -1
- package/dist/src/queue/event.d.ts +42 -0
- package/dist/src/queue/event.d.ts.map +1 -0
- package/dist/src/queue/event.js +222 -0
- package/dist/src/queue/event.js.map +1 -0
- package/dist/src/queue/redis.d.ts +1 -27
- package/dist/src/queue/redis.d.ts.map +1 -1
- package/dist/src/queue/redis.js +122 -110
- package/dist/src/queue/redis.js.map +1 -1
- package/dist/src/queue/types.d.ts +18 -12
- package/dist/src/queue/types.d.ts.map +1 -1
- package/dist/src/queue/types.js +3 -0
- package/dist/src/queue/types.js.map +1 -1
- package/dist/src/server/base-server.d.ts +87 -11
- package/dist/src/server/base-server.d.ts.map +1 -1
- package/dist/src/server/base-server.js +549 -250
- package/dist/src/server/base-server.js.map +1 -1
- package/dist/src/server/builder.js +2 -2
- package/dist/src/server/builder.js.map +1 -1
- package/dist/src/server/error.d.ts +3 -3
- package/dist/src/server/error.d.ts.map +1 -1
- package/dist/src/server/error.js +2 -2
- package/dist/src/server/error.js.map +1 -1
- package/dist/src/server/listener/listener-manager.d.ts +5 -6
- package/dist/src/server/listener/listener-manager.d.ts.map +1 -1
- package/dist/src/server/listener/listener-manager.js +62 -79
- package/dist/src/server/listener/listener-manager.js.map +1 -1
- package/dist/src/server/listener/transmitter/internal.d.ts +1 -1
- package/dist/src/server/listener/transmitter/internal.d.ts.map +1 -1
- package/dist/src/server/listener/transmitter/internal.js +14 -12
- package/dist/src/server/listener/transmitter/internal.js.map +1 -1
- package/dist/src/server/listener/transmitter/pull-responder.d.ts.map +1 -1
- package/dist/src/server/listener/transmitter/pull-responder.js +14 -8
- package/dist/src/server/listener/transmitter/pull-responder.js.map +1 -1
- package/dist/src/server/listener/transmitter/switchboard-push.d.ts.map +1 -1
- package/dist/src/server/listener/transmitter/switchboard-push.js +13 -8
- package/dist/src/server/listener/transmitter/switchboard-push.js.map +1 -1
- package/dist/src/server/sync-manager.d.ts +8 -10
- package/dist/src/server/sync-manager.d.ts.map +1 -1
- package/dist/src/server/sync-manager.js +62 -147
- package/dist/src/server/sync-manager.js.map +1 -1
- package/dist/src/server/sync-unit-map.d.ts +137 -0
- package/dist/src/server/sync-unit-map.d.ts.map +1 -0
- package/dist/src/server/sync-unit-map.js +234 -0
- package/dist/src/server/sync-unit-map.js.map +1 -0
- package/dist/src/server/types.d.ts +114 -31
- package/dist/src/server/types.d.ts.map +1 -1
- package/dist/src/server/types.js.map +1 -1
- package/dist/src/server/utils.d.ts +10 -1
- package/dist/src/server/utils.d.ts.map +1 -1
- package/dist/src/server/utils.js +41 -0
- package/dist/src/server/utils.js.map +1 -1
- package/dist/src/storage/browser.d.ts +7 -2
- package/dist/src/storage/browser.d.ts.map +1 -1
- package/dist/src/storage/browser.js +80 -22
- package/dist/src/storage/browser.js.map +1 -1
- package/dist/src/storage/filesystem.d.ts +7 -2
- package/dist/src/storage/filesystem.d.ts.map +1 -1
- package/dist/src/storage/filesystem.js +79 -22
- package/dist/src/storage/filesystem.js.map +1 -1
- package/dist/src/storage/memory.d.ts +7 -2
- package/dist/src/storage/memory.d.ts.map +1 -1
- package/dist/src/storage/memory.js +76 -22
- package/dist/src/storage/memory.js.map +1 -1
- package/dist/src/storage/prisma/client/edge.js +5 -4
- package/dist/src/storage/prisma/client/index-browser.js +2 -1
- package/dist/src/storage/prisma/client/index.d.ts +58 -249
- package/dist/src/storage/prisma/client/index.js +5 -4
- package/dist/src/storage/prisma/client/package.json +1 -1
- package/dist/src/storage/prisma/client/schema.prisma +2 -3
- package/dist/src/storage/prisma/client/wasm.js +2 -1
- package/dist/src/storage/prisma/prisma.d.ts +9 -4
- package/dist/src/storage/prisma/prisma.d.ts.map +1 -1
- package/dist/src/storage/prisma/prisma.js +119 -51
- package/dist/src/storage/prisma/prisma.js.map +1 -1
- package/dist/src/storage/types.d.ts +43 -4
- package/dist/src/storage/types.d.ts.map +1 -1
- package/dist/src/storage/utils.d.ts +3 -0
- package/dist/src/storage/utils.d.ts.map +1 -1
- package/dist/src/storage/utils.js +14 -0
- package/dist/src/storage/utils.js.map +1 -1
- package/dist/src/utils/gql-transformations.d.ts +14 -5
- package/dist/src/utils/gql-transformations.d.ts.map +1 -1
- package/dist/src/utils/gql-transformations.js +1 -0
- package/dist/src/utils/gql-transformations.js.map +1 -1
- package/dist/src/utils/misc.d.ts +2 -0
- package/dist/src/utils/misc.d.ts.map +1 -1
- package/dist/src/utils/misc.js +4 -0
- package/dist/src/utils/misc.js.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/package.json +4 -4
- package/dist/test/cache.test.d.ts +0 -2
- package/dist/test/cache.test.d.ts.map +0 -1
- package/dist/test/cache.test.js +0 -281
- package/dist/test/cache.test.js.map +0 -1
- package/dist/test/default-remote-drives.test.d.ts +0 -2
- package/dist/test/default-remote-drives.test.d.ts.map +0 -1
- package/dist/test/default-remote-drives.test.js +0 -446
- package/dist/test/default-remote-drives.test.js.map +0 -1
- package/dist/test/document-helpers/addUndo.test.d.ts +0 -2
- package/dist/test/document-helpers/addUndo.test.d.ts.map +0 -1
- package/dist/test/document-helpers/addUndo.test.js +0 -120
- package/dist/test/document-helpers/addUndo.test.js.map +0 -1
- package/dist/test/document-helpers/attachBranch.test.d.ts +0 -2
- package/dist/test/document-helpers/attachBranch.test.d.ts.map +0 -1
- package/dist/test/document-helpers/attachBranch.test.js +0 -333
- package/dist/test/document-helpers/attachBranch.test.js.map +0 -1
- package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.d.ts +0 -2
- package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.d.ts.map +0 -1
- package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.js +0 -252
- package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.js.map +0 -1
- package/dist/test/document-helpers/garbageCollect.test.d.ts +0 -2
- package/dist/test/document-helpers/garbageCollect.test.d.ts.map +0 -1
- package/dist/test/document-helpers/garbageCollect.test.js +0 -136
- package/dist/test/document-helpers/garbageCollect.test.js.map +0 -1
- package/dist/test/document-helpers/groupOperationsByScope.test.d.ts +0 -2
- package/dist/test/document-helpers/groupOperationsByScope.test.d.ts.map +0 -1
- package/dist/test/document-helpers/groupOperationsByScope.test.js +0 -98
- package/dist/test/document-helpers/groupOperationsByScope.test.js.map +0 -1
- package/dist/test/document-helpers/merge.test.d.ts +0 -2
- package/dist/test/document-helpers/merge.test.d.ts.map +0 -1
- package/dist/test/document-helpers/merge.test.js +0 -757
- package/dist/test/document-helpers/merge.test.js.map +0 -1
- package/dist/test/document-helpers/nextSkipNumber.test.d.ts +0 -2
- package/dist/test/document-helpers/nextSkipNumber.test.d.ts.map +0 -1
- package/dist/test/document-helpers/nextSkipNumber.test.js +0 -123
- package/dist/test/document-helpers/nextSkipNumber.test.js.map +0 -1
- package/dist/test/document-helpers/prepareOperations.test.d.ts +0 -2
- package/dist/test/document-helpers/prepareOperations.test.d.ts.map +0 -1
- package/dist/test/document-helpers/prepareOperations.test.js +0 -304
- package/dist/test/document-helpers/prepareOperations.test.js.map +0 -1
- package/dist/test/document-helpers/removeExistingOperations.test.d.ts +0 -2
- package/dist/test/document-helpers/removeExistingOperations.test.d.ts.map +0 -1
- package/dist/test/document-helpers/removeExistingOperations.test.js +0 -150
- package/dist/test/document-helpers/removeExistingOperations.test.js.map +0 -1
- package/dist/test/document-helpers/reshuffleByTimestamp.test.d.ts +0 -2
- package/dist/test/document-helpers/reshuffleByTimestamp.test.d.ts.map +0 -1
- package/dist/test/document-helpers/reshuffleByTimestamp.test.js +0 -148
- package/dist/test/document-helpers/reshuffleByTimestamp.test.js.map +0 -1
- package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.d.ts +0 -2
- package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.d.ts.map +0 -1
- package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js +0 -200
- package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js.map +0 -1
- package/dist/test/document-helpers/sortOperations.test.d.ts +0 -2
- package/dist/test/document-helpers/sortOperations.test.d.ts.map +0 -1
- package/dist/test/document-helpers/sortOperations.test.js +0 -101
- package/dist/test/document-helpers/sortOperations.test.js.map +0 -1
- package/dist/test/document-helpers/split.test.d.ts +0 -2
- package/dist/test/document-helpers/split.test.d.ts.map +0 -1
- package/dist/test/document-helpers/split.test.js +0 -121
- package/dist/test/document-helpers/split.test.js.map +0 -1
- package/dist/test/document-helpers/utils.d.ts +0 -8
- package/dist/test/document-helpers/utils.d.ts.map +0 -1
- package/dist/test/document-helpers/utils.js +0 -22
- package/dist/test/document-helpers/utils.js.map +0 -1
- package/dist/test/drive-operations.test.d.ts +0 -2
- package/dist/test/drive-operations.test.d.ts.map +0 -1
- package/dist/test/drive-operations.test.js +0 -145
- package/dist/test/drive-operations.test.js.map +0 -1
- package/dist/test/graphql.test.d.ts +0 -2
- package/dist/test/graphql.test.d.ts.map +0 -1
- package/dist/test/graphql.test.js +0 -10
- package/dist/test/graphql.test.js.map +0 -1
- package/dist/test/internal-listener.test.d.ts +0 -2
- package/dist/test/internal-listener.test.d.ts.map +0 -1
- package/dist/test/internal-listener.test.js +0 -277
- package/dist/test/internal-listener.test.js.map +0 -1
- package/dist/test/queue.test.d.ts +0 -2
- package/dist/test/queue.test.d.ts.map +0 -1
- package/dist/test/queue.test.js +0 -338
- package/dist/test/queue.test.js.map +0 -1
- package/dist/test/read-mode.test.d.ts +0 -2
- package/dist/test/read-mode.test.d.ts.map +0 -1
- package/dist/test/read-mode.test.js +0 -578
- package/dist/test/read-mode.test.js.map +0 -1
- package/dist/test/server/driveOperationsConflictResolution.test.d.ts +0 -2
- package/dist/test/server/driveOperationsConflictResolution.test.d.ts.map +0 -1
- package/dist/test/server/driveOperationsConflictResolution.test.js +0 -460
- package/dist/test/server/driveOperationsConflictResolution.test.js.map +0 -1
- package/dist/test/server/mergeOperations.test.d.ts +0 -2
- package/dist/test/server/mergeOperations.test.d.ts.map +0 -1
- package/dist/test/server/mergeOperations.test.js +0 -107
- package/dist/test/server/mergeOperations.test.js.map +0 -1
- package/dist/test/server/processOperations.test.d.ts +0 -2
- package/dist/test/server/processOperations.test.d.ts.map +0 -1
- package/dist/test/server/processOperations.test.js +0 -380
- package/dist/test/server/processOperations.test.js.map +0 -1
- package/dist/test/server.test.d.ts +0 -2
- package/dist/test/server.test.d.ts.map +0 -1
- package/dist/test/server.test.js +0 -899
- package/dist/test/server.test.js.map +0 -1
- package/dist/test/signature-migration.test.d.ts +0 -2
- package/dist/test/signature-migration.test.d.ts.map +0 -1
- package/dist/test/signature-migration.test.js +0 -239
- package/dist/test/signature-migration.test.js.map +0 -1
- package/dist/test/storage.test.d.ts +0 -2
- package/dist/test/storage.test.d.ts.map +0 -1
- package/dist/test/storage.test.js +0 -523
- package/dist/test/storage.test.js.map +0 -1
- package/dist/test/utils.d.ts +0 -48
- package/dist/test/utils.d.ts.map +0 -1
- package/dist/test/utils.js +0 -133
- package/dist/test/utils.js.map +0 -1
- package/dist/test/utils.test.d.ts +0 -2
- package/dist/test/utils.test.d.ts.map +0 -1
- package/dist/test/utils.test.js +0 -89
- package/dist/test/utils.test.js.map +0 -1
- package/dist/test/vitest-setup.d.ts +0 -2
- package/dist/test/vitest-setup.d.ts.map +0 -1
- package/dist/test/vitest-setup.js +0 -5
- package/dist/test/vitest-setup.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -27
- package/dist/vitest.config.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switchboard-push.d.ts","sourceRoot":"","sources":["../../../../../src/server/listener/transmitter/switchboard-push.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"switchboard-push.d.ts","sourceRoot":"","sources":["../../../../../src/server/listener/transmitter/switchboard-push.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAKvB,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIxE,qBAAa,0BAA2B,YAAW,YAAY;IAC7D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAC,CAAmB;IACnC,OAAO,CAAC,MAAM,CAGX;gBAES,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB;YAK3C,cAAc;YAkBd,eAAe;IAuBvB,QAAQ,CACZ,OAAO,EAAE,YAAY,EAAE,EACvB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,gBAAgB,EAAE,CAAC;CA6F/B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { gql, requestGraphql } from "#utils/graphql";
|
|
2
2
|
import { childLogger } from "#utils/logger";
|
|
3
|
+
import { operationsToRevision } from "#utils/misc";
|
|
3
4
|
import stringify from "json-stringify-deterministic";
|
|
4
5
|
const SYNC_OPS_BATCH_LIMIT = 10;
|
|
5
6
|
export class SwitchboardPushTransmitter {
|
|
@@ -47,14 +48,17 @@ export class SwitchboardPushTransmitter {
|
|
|
47
48
|
if (source.type === "trigger" &&
|
|
48
49
|
source.trigger.data?.url === this.targetURL) {
|
|
49
50
|
this.logger.verbose(`Cutting trigger loop from ${this.targetURL}.`);
|
|
50
|
-
return strands.map((strand) =>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
51
|
+
return strands.map((strand) => {
|
|
52
|
+
return {
|
|
53
|
+
driveId: strand.driveId,
|
|
54
|
+
documentId: strand.documentId,
|
|
55
|
+
documentType: strand.documentType,
|
|
56
|
+
scope: strand.scope,
|
|
57
|
+
branch: strand.branch,
|
|
58
|
+
status: "SUCCESS",
|
|
59
|
+
revision: operationsToRevision(strand.operations),
|
|
60
|
+
};
|
|
61
|
+
});
|
|
58
62
|
}
|
|
59
63
|
const culledStrands = [];
|
|
60
64
|
let opsCounter = 0;
|
|
@@ -79,6 +83,7 @@ export class SwitchboardPushTransmitter {
|
|
|
79
83
|
pushUpdates(strands: $strands) {
|
|
80
84
|
driveId
|
|
81
85
|
documentId
|
|
86
|
+
documentType
|
|
82
87
|
scope
|
|
83
88
|
branch
|
|
84
89
|
status
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switchboard-push.js","sourceRoot":"","sources":["../../../../../src/server/listener/transmitter/switchboard-push.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,cAAc,EAAsB,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,SAAS,MAAM,8BAA8B,CAAC;AAGrD,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,MAAM,OAAO,0BAA0B;IAC7B,SAAS,CAAS;IAClB,OAAO,CAAoB;IAC3B,MAAM,GAAG,WAAW,CAAC;QAC3B,4BAA4B;QAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE;KAC3C,CAAC,CAAC;IAEH,YAAY,SAAiB,EAAE,OAA0B;QACvD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gCAAgC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACtE,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClE,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,wBAAwB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC9D,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,EAAE,aAAa,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;YACxE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,KAAa,EACb,SAAmC;QAEnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,IAAI,CAAC,SAAS,EACd,KAAK,EACL,SAAS,EACT,OAAO,CACR,CAAC;QAEF,+BAA+B;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5C,4BAA4B;YAC5B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YACjD,OAAO,cAAc,CAAI,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,OAAuB,EACvB,MAA0B;QAE1B,IACE,MAAM,CAAC,IAAI,KAAK,SAAS;YACzB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,SAAS,EAC3C,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,6BAA6B,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YAEpE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"switchboard-push.js","sourceRoot":"","sources":["../../../../../src/server/listener/transmitter/switchboard-push.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { type DocumentDriveDocument } from "#drive-document-model/gen/types";
|
|
|
3
3
|
import { type IDocumentStorage, type IDriveOperationStorage } from "#storage/types";
|
|
4
4
|
import { type DocumentModelModule } from "document-model";
|
|
5
5
|
import { SynchronizationUnitNotFoundError } from "./error.js";
|
|
6
|
-
import { type GetStrandsOptions, type IEventEmitter, type ISynchronizationManager, type OperationUpdate, type SyncStatus, type SyncUnitStatusObject, type SynchronizationUnit, type SynchronizationUnitQuery } from "./types.js";
|
|
6
|
+
import { type GetStrandsOptions, type IEventEmitter, type ISynchronizationManager, type OperationUpdate, type SyncStatus, type SyncUnitStatusObject, type SynchronizationUnit, type SynchronizationUnitId, type SynchronizationUnitQuery } from "./types.js";
|
|
7
7
|
export default class SynchronizationManager implements ISynchronizationManager {
|
|
8
8
|
private readonly storage;
|
|
9
9
|
private readonly documentStorage;
|
|
@@ -13,20 +13,18 @@ export default class SynchronizationManager implements ISynchronizationManager {
|
|
|
13
13
|
private syncStatus;
|
|
14
14
|
private logger;
|
|
15
15
|
constructor(storage: IDriveOperationStorage, documentStorage: IDocumentStorage, cache: ICache, documentModelModules: DocumentModelModule[], eventEmitter?: IEventEmitter | undefined);
|
|
16
|
-
getSynchronizationUnits(
|
|
17
|
-
getSynchronizationUnitsRevision
|
|
18
|
-
getSynchronizationUnitsIds(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
getOperationData(driveId: string, syncId: string, filter: GetStrandsOptions): Promise<OperationUpdate[]>;
|
|
22
|
-
private getDrive;
|
|
16
|
+
getSynchronizationUnits(parentId: string, documentId?: string[], scope?: string[], branch?: string[], documentType?: string[]): Promise<SynchronizationUnit[]>;
|
|
17
|
+
private getSynchronizationUnitsRevision;
|
|
18
|
+
getSynchronizationUnitsIds(parentId?: string, documentId?: string[], scope?: string[], branch?: string[], documentType?: string[]): Promise<SynchronizationUnitQuery[]>;
|
|
19
|
+
getSynchronizationUnit(syncId: SynchronizationUnitId): Promise<SynchronizationUnit | undefined>;
|
|
20
|
+
getOperationData(syncId: SynchronizationUnitId, filter: GetStrandsOptions): Promise<OperationUpdate[]>;
|
|
23
21
|
private getDocument;
|
|
24
22
|
private _buildDocument;
|
|
25
23
|
setDocumentModelModules(modules: DocumentModelModule[]): void;
|
|
26
24
|
private getDocumentModelModule;
|
|
27
25
|
getCombinedSyncUnitStatus(syncUnitStatus: SyncUnitStatusObject): SyncStatus;
|
|
28
|
-
getSyncStatus(
|
|
29
|
-
updateSyncStatus(
|
|
26
|
+
getSyncStatus(input: string | SynchronizationUnitId, scope?: string, branch?: string): SyncStatus | SynchronizationUnitNotFoundError;
|
|
27
|
+
updateSyncStatus(input: string | SynchronizationUnitId, status: Partial<SyncUnitStatusObject> | null, error?: Error, scope?: string, branch?: string): void;
|
|
30
28
|
private initSyncStatus;
|
|
31
29
|
initializeDriveSyncStatus(driveId: string, drive: DocumentDriveDocument): Promise<void>;
|
|
32
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-manager.d.ts","sourceRoot":"","sources":["../../../src/server/sync-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"sync-manager.d.ts","sourceRoot":"","sources":["../../../src/server/sync-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAE5B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,KAAK,mBAAmB,EAKzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gCAAgC,EAAE,MAAM,YAAY,CAAC;AAE9D,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC9B,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,OAAO,OAAO,sBAAuB,YAAW,uBAAuB;IAM1E,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAThC,OAAO,CAAC,UAAU,CAA2C;IAE7D,OAAO,CAAC,MAAM,CAA2C;gBAGtC,OAAO,EAAE,sBAAsB,EAC/B,eAAe,EAAE,gBAAgB,EACjC,KAAK,EAAE,MAAM,EACtB,oBAAoB,EAAE,mBAAmB,EAAE,EAClC,YAAY,CAAC,EAAE,aAAa,YAAA;IAGzC,uBAAuB,CAC3B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,EACrB,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,mBAAmB,EAAE,CAAC;YAmBnB,+BAA+B;IAoBvC,0BAA0B,CAC9B,QAAQ,CAAC,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,EAAE,EACrB,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,wBAAwB,EAAE,CAAC;IA2BhC,sBAAsB,CAC1B,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAuBrC,gBAAgB,CACpB,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,eAAe,EAAE,CAAC;YAiEf,WAAW;IAazB,OAAO,CAAC,cAAc;IAuBtB,uBAAuB,CAAC,OAAO,EAAE,mBAAmB,EAAE;IAItD,OAAO,CAAC,sBAAsB;IAU9B,yBAAyB,CAAC,cAAc,EAAE,oBAAoB,GAAG,UAAU;IAoB3E,aAAa,CACX,KAAK,EAAE,MAAM,GAAG,qBAAqB,EACrC,KAAK,SAAW,EAChB,MAAM,SAAS,GACd,UAAU,GAAG,gCAAgC;IAWhD,gBAAgB,CACd,KAAK,EAAE,MAAM,GAAG,qBAAqB,EACrC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,EAC5C,KAAK,CAAC,EAAE,KAAK,EACb,KAAK,SAAW,EAChB,MAAM,SAAS,GACd,IAAI;IAsDP,OAAO,CAAC,cAAc;IA2BhB,yBAAyB,CAC7B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,IAAI,CAAC;CAkBjB"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { isFileNode } from "#drive-document-model/src/utils";
|
|
2
1
|
import { childLogger } from "#utils/logger";
|
|
3
|
-
import { isBefore,
|
|
2
|
+
import { isBefore, operationsToRevision } from "#utils/misc";
|
|
4
3
|
import { garbageCollectDocumentOperations, replayDocument, } from "document-model";
|
|
5
4
|
import { SynchronizationUnitNotFoundError } from "./error.js";
|
|
5
|
+
import { SyncUnitMap } from "./sync-unit-map.js";
|
|
6
6
|
export default class SynchronizationManager {
|
|
7
7
|
storage;
|
|
8
8
|
documentStorage;
|
|
9
9
|
cache;
|
|
10
10
|
documentModelModules;
|
|
11
11
|
eventEmitter;
|
|
12
|
-
syncStatus = new
|
|
12
|
+
syncStatus = new SyncUnitMap();
|
|
13
13
|
logger = childLogger(["SynchronizationManager"]);
|
|
14
14
|
constructor(storage, documentStorage, cache, documentModelModules, eventEmitter) {
|
|
15
15
|
this.storage = storage;
|
|
@@ -18,141 +18,67 @@ export default class SynchronizationManager {
|
|
|
18
18
|
this.documentModelModules = documentModelModules;
|
|
19
19
|
this.eventEmitter = eventEmitter;
|
|
20
20
|
}
|
|
21
|
-
async getSynchronizationUnits(
|
|
22
|
-
const synchronizationUnitsQuery = await this.getSynchronizationUnitsIds(
|
|
21
|
+
async getSynchronizationUnits(parentId, documentId, scope, branch, documentType) {
|
|
22
|
+
const synchronizationUnitsQuery = await this.getSynchronizationUnitsIds(parentId, documentId, scope, branch, documentType);
|
|
23
23
|
this.logger.verbose(`getSynchronizationUnits query: ${JSON.stringify(synchronizationUnitsQuery)}`);
|
|
24
|
-
|
|
24
|
+
const result = await this.getSynchronizationUnitsRevision(synchronizationUnitsQuery);
|
|
25
|
+
return result.filter((s) => typeof s !== "undefined");
|
|
25
26
|
}
|
|
26
|
-
async getSynchronizationUnitsRevision(
|
|
27
|
-
const drive = await this.getDrive(driveId);
|
|
27
|
+
async getSynchronizationUnitsRevision(syncUnitsQuery) {
|
|
28
28
|
const revisions = await this.storage.getSynchronizationUnitsRevision(syncUnitsQuery);
|
|
29
29
|
this.logger.verbose(`getSynchronizationUnitsRevision: ${JSON.stringify(revisions)}`);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
syncUnit.lastUpdated = revision.lastUpdated;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return synchronizationUnits;
|
|
45
|
-
}
|
|
46
|
-
async getSynchronizationUnitsIds(driveId, documentId, scope, branch, documentType) {
|
|
47
|
-
const drive = await this.getDrive(driveId);
|
|
48
|
-
const nodes = drive.state.global.nodes.filter((node) => isFileNode(node) &&
|
|
49
|
-
(!documentId?.length ||
|
|
50
|
-
documentId.includes(node.id) ||
|
|
51
|
-
documentId.includes("*")) &&
|
|
52
|
-
(!documentType?.length ||
|
|
53
|
-
documentType.includes(node.documentType) ||
|
|
54
|
-
documentType.includes("*")));
|
|
55
|
-
// checks if document drive synchronization unit should be added
|
|
56
|
-
if ((!documentId || documentId.includes("*") || documentId.includes("")) &&
|
|
57
|
-
(!documentType?.length ||
|
|
58
|
-
documentType.includes("powerhouse/document-drive") ||
|
|
59
|
-
documentType.includes("*"))) {
|
|
60
|
-
nodes.unshift({
|
|
61
|
-
id: driveId,
|
|
62
|
-
documentType: "powerhouse/document-drive",
|
|
63
|
-
synchronizationUnits: [
|
|
64
|
-
{
|
|
65
|
-
syncId: "0",
|
|
66
|
-
scope: "global",
|
|
67
|
-
branch: "main",
|
|
68
|
-
},
|
|
69
|
-
],
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
const synchronizationUnitsQuery = [];
|
|
73
|
-
for (const node of nodes) {
|
|
74
|
-
const nodeUnits = scope?.length || branch?.length
|
|
75
|
-
? node.synchronizationUnits.filter((unit) => (!scope?.length ||
|
|
76
|
-
scope.includes(unit.scope) ||
|
|
77
|
-
scope.includes("*")) &&
|
|
78
|
-
(!branch?.length ||
|
|
79
|
-
branch.includes(unit.branch) ||
|
|
80
|
-
branch.includes("*")))
|
|
81
|
-
: node.synchronizationUnits;
|
|
82
|
-
if (!nodeUnits.length) {
|
|
83
|
-
continue;
|
|
84
|
-
}
|
|
85
|
-
synchronizationUnitsQuery.push(...nodeUnits.map((n) => ({
|
|
86
|
-
driveId,
|
|
87
|
-
documentId: node.id,
|
|
88
|
-
syncId: n.syncId,
|
|
89
|
-
documentType: node.documentType,
|
|
90
|
-
scope: n.scope,
|
|
91
|
-
branch: n.branch,
|
|
92
|
-
})));
|
|
93
|
-
}
|
|
94
|
-
return synchronizationUnitsQuery;
|
|
95
|
-
}
|
|
96
|
-
async getSynchronizationUnitIdInfo(driveId, syncId) {
|
|
97
|
-
const drive = await this.getDrive(driveId);
|
|
98
|
-
const node = drive.state.global.nodes.find((node) => isFileNode(node) &&
|
|
99
|
-
node.synchronizationUnits.find((unit) => unit.syncId === syncId));
|
|
100
|
-
if (!node || !isFileNode(node)) {
|
|
101
|
-
return undefined;
|
|
102
|
-
}
|
|
103
|
-
const syncUnit = node.synchronizationUnits.find((unit) => unit.syncId === syncId);
|
|
104
|
-
if (!syncUnit) {
|
|
105
|
-
return undefined;
|
|
106
|
-
}
|
|
107
|
-
return {
|
|
108
|
-
syncId,
|
|
109
|
-
scope: syncUnit.scope,
|
|
110
|
-
branch: syncUnit.branch,
|
|
111
|
-
documentId: node.id,
|
|
112
|
-
documentType: node.documentType,
|
|
30
|
+
return syncUnitsQuery.map((query) => revisions.find((revision) => revision.documentId === query.documentId &&
|
|
31
|
+
revision.scope === query.scope &&
|
|
32
|
+
revision.branch === query.branch));
|
|
33
|
+
}
|
|
34
|
+
async getSynchronizationUnitsIds(parentId, documentId, scope, branch, documentType) {
|
|
35
|
+
const filter = {
|
|
36
|
+
parentId: parentId ? [parentId] : undefined,
|
|
37
|
+
documentId: documentId,
|
|
38
|
+
documentModelType: documentType,
|
|
39
|
+
scope,
|
|
40
|
+
branch,
|
|
113
41
|
};
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
42
|
+
let cursor;
|
|
43
|
+
const units = [];
|
|
44
|
+
do {
|
|
45
|
+
const { units: newUnits, nextCursor } = await this.documentStorage.findStorageUnitsBy(filter, 100, cursor);
|
|
46
|
+
units.push(...newUnits);
|
|
47
|
+
cursor = nextCursor;
|
|
48
|
+
} while (cursor);
|
|
49
|
+
return units.reduce((acc, { documentModelType, ...u }) => u.scope === "local"
|
|
50
|
+
? acc
|
|
51
|
+
: acc.concat([{ ...u, documentType: documentModelType }]), new Array());
|
|
52
|
+
}
|
|
53
|
+
async getSynchronizationUnit(syncId) {
|
|
54
|
+
const { scope, branch, documentId } = syncId;
|
|
55
|
+
// TODO: REPLACE WITH GET DOCUMENT OPERATIONS
|
|
56
|
+
const document = await this.getDocument(documentId);
|
|
57
|
+
if (!Object.keys(document.state).includes(scope)) {
|
|
118
58
|
return undefined;
|
|
119
59
|
}
|
|
120
|
-
const { scope, branch, documentId, documentType } = syncUnit;
|
|
121
|
-
// TODO: REPLACE WITH GET DOCUMENT OPERATIONS
|
|
122
|
-
const document = await this.getDocument(driveId, documentId);
|
|
123
60
|
const operations = document.operations[scope] ?? [];
|
|
124
|
-
const lastOperation = operations
|
|
61
|
+
const lastOperation = operations.at(-1);
|
|
125
62
|
return {
|
|
126
|
-
syncId,
|
|
127
63
|
scope,
|
|
128
64
|
branch,
|
|
129
65
|
documentId,
|
|
130
|
-
documentType,
|
|
131
|
-
lastUpdated: lastOperation
|
|
132
|
-
revision:
|
|
66
|
+
documentType: document.header.documentType,
|
|
67
|
+
lastUpdated: lastOperation?.timestamp ?? document.header.lastModifiedAtUtcIso,
|
|
68
|
+
revision: operationsToRevision(operations),
|
|
133
69
|
};
|
|
134
70
|
}
|
|
135
|
-
async getOperationData(
|
|
136
|
-
this.logger.verbose(`[SYNC DEBUG] SynchronizationManager.getOperationData called for
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
this.logger.error(`SYNC DEBUG] Invalid Sync Id ${syncId} in drive ${driveId}`);
|
|
142
|
-
throw new Error(`Invalid Sync Id ${syncId} in drive ${driveId}`);
|
|
143
|
-
}
|
|
144
|
-
this.logger.verbose(`[SYNC DEBUG] Found sync unit: documentId: ${syncUnit.documentId}, scope: ${syncUnit.scope}`);
|
|
145
|
-
const document = syncId === "0"
|
|
146
|
-
? await this.getDrive(driveId)
|
|
147
|
-
: await this.getDocument(driveId, syncUnit.documentId); // TODO replace with getDocumentOperations
|
|
148
|
-
this.logger.verbose(`[SYNC DEBUG] Retrieved document ${syncUnit.documentId} with type: ${document.header.documentType}`);
|
|
149
|
-
const operations = document.operations[syncUnit.scope] ?? []; // TODO filter by branch also
|
|
150
|
-
this.logger.verbose(`[SYNC DEBUG] Found ${operations.length} total operations in scope ${syncUnit.scope}`);
|
|
71
|
+
async getOperationData(syncId, filter) {
|
|
72
|
+
this.logger.verbose(`[SYNC DEBUG] SynchronizationManager.getOperationData called for syncId: ${JSON.stringify(syncId)}, filter: ${JSON.stringify(filter)}`);
|
|
73
|
+
const document = await this.getDocument(syncId.documentId);
|
|
74
|
+
this.logger.verbose(`[SYNC DEBUG] Retrieved document ${document.header.id} with type: ${document.header.documentType}`);
|
|
75
|
+
const operations = document.operations[syncId.scope] ?? []; // TODO filter by branch also
|
|
76
|
+
this.logger.verbose(`[SYNC DEBUG] Found ${operations.length} total operations in scope ${syncId.scope}`);
|
|
151
77
|
const filteredOperations = operations.filter((operation) => Object.keys(filter).length === 0 ||
|
|
152
78
|
((filter.since === undefined ||
|
|
153
79
|
isBefore(filter.since, operation.timestamp)) &&
|
|
154
80
|
(filter.fromRevision === undefined ||
|
|
155
|
-
operation.index
|
|
81
|
+
operation.index >= filter.fromRevision)));
|
|
156
82
|
this.logger.verbose(`[SYNC DEBUG] Filtered to ${filteredOperations.length} operations based on filter criteria` +
|
|
157
83
|
(filter.fromRevision !== undefined
|
|
158
84
|
? ` (fromRevision: ${filter.fromRevision})`
|
|
@@ -178,24 +104,7 @@ export default class SynchronizationManager {
|
|
|
178
104
|
id: operation.id,
|
|
179
105
|
}));
|
|
180
106
|
}
|
|
181
|
-
async
|
|
182
|
-
try {
|
|
183
|
-
const cachedDocument = await this.cache.getDrive(driveId);
|
|
184
|
-
if (cachedDocument && isDocumentDrive(cachedDocument)) {
|
|
185
|
-
return cachedDocument;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
catch (e) {
|
|
189
|
-
this.logger.error("Error getting drive from cache", e);
|
|
190
|
-
}
|
|
191
|
-
const driveStorage = await this.documentStorage.get(driveId);
|
|
192
|
-
const result = this._buildDocument(driveStorage);
|
|
193
|
-
if (!isDocumentDrive(result)) {
|
|
194
|
-
throw new Error(`Document with id ${driveId} is not a Document Drive`);
|
|
195
|
-
}
|
|
196
|
-
return result;
|
|
197
|
-
}
|
|
198
|
-
async getDocument(driveId, documentId) {
|
|
107
|
+
async getDocument(documentId) {
|
|
199
108
|
try {
|
|
200
109
|
const cachedDocument = await this.cache.getDocument(documentId);
|
|
201
110
|
if (cachedDocument) {
|
|
@@ -243,14 +152,16 @@ export default class SynchronizationManager {
|
|
|
243
152
|
const sortedStatus = Object.values(syncUnitStatus).sort((a, b) => order.indexOf(a) - order.indexOf(b));
|
|
244
153
|
return sortedStatus[0];
|
|
245
154
|
}
|
|
246
|
-
getSyncStatus(
|
|
155
|
+
getSyncStatus(input, scope = "global", branch = "main") {
|
|
156
|
+
const syncUnitId = typeof input === "string" ? { documentId: input, scope, branch } : input;
|
|
247
157
|
const status = this.syncStatus.get(syncUnitId);
|
|
248
158
|
if (!status) {
|
|
249
|
-
return new SynchronizationUnitNotFoundError(
|
|
159
|
+
return new SynchronizationUnitNotFoundError(syncUnitId);
|
|
250
160
|
}
|
|
251
161
|
return this.getCombinedSyncUnitStatus(status);
|
|
252
162
|
}
|
|
253
|
-
updateSyncStatus(
|
|
163
|
+
updateSyncStatus(input, status, error, scope = "global", branch = "main") {
|
|
164
|
+
const syncUnitId = typeof input === "string" ? { documentId: input, scope, branch } : input;
|
|
254
165
|
if (status === null) {
|
|
255
166
|
this.syncStatus.delete(syncUnitId);
|
|
256
167
|
return;
|
|
@@ -262,7 +173,7 @@ export default class SynchronizationManager {
|
|
|
262
173
|
}
|
|
263
174
|
const shouldUpdateStatus = Object.entries(status).some(([key, _status]) => syncUnitStatus[key] !== _status);
|
|
264
175
|
if (shouldUpdateStatus) {
|
|
265
|
-
const
|
|
176
|
+
const newStatus = Object.entries(status).reduce((acc, [key, _status]) => {
|
|
266
177
|
return {
|
|
267
178
|
...acc,
|
|
268
179
|
// do not replace initial_syncing if it has not finished yet
|
|
@@ -273,10 +184,10 @@ export default class SynchronizationManager {
|
|
|
273
184
|
};
|
|
274
185
|
}, syncUnitStatus);
|
|
275
186
|
const previousCombinedStatus = this.getCombinedSyncUnitStatus(syncUnitStatus);
|
|
276
|
-
const newCombinedStatus = this.getCombinedSyncUnitStatus(
|
|
277
|
-
this.syncStatus.set(syncUnitId,
|
|
187
|
+
const newCombinedStatus = this.getCombinedSyncUnitStatus(newStatus);
|
|
188
|
+
this.syncStatus.set(syncUnitId, newStatus);
|
|
278
189
|
if (previousCombinedStatus !== newCombinedStatus && this.eventEmitter) {
|
|
279
|
-
this.eventEmitter.emit("syncStatus", syncUnitId, this.getCombinedSyncUnitStatus(
|
|
190
|
+
this.eventEmitter.emit("syncStatus", syncUnitId.documentId, this.getCombinedSyncUnitStatus(newStatus), error, newStatus, syncUnitId.scope, syncUnitId.branch);
|
|
280
191
|
}
|
|
281
192
|
}
|
|
282
193
|
}
|
|
@@ -289,7 +200,8 @@ export default class SynchronizationManager {
|
|
|
289
200
|
}, {});
|
|
290
201
|
this.syncStatus.set(syncUnitId, defaultSyncUnitStatus);
|
|
291
202
|
if (this.eventEmitter) {
|
|
292
|
-
this.eventEmitter.emit("syncStatus", syncUnitId
|
|
203
|
+
this.eventEmitter.emit("syncStatus", syncUnitId.documentId, // TODO also emit scope and branch
|
|
204
|
+
this.getCombinedSyncUnitStatus(defaultSyncUnitStatus), undefined, defaultSyncUnitStatus, syncUnitId.scope, syncUnitId.branch);
|
|
293
205
|
}
|
|
294
206
|
}
|
|
295
207
|
async initializeDriveSyncStatus(driveId, drive) {
|
|
@@ -300,7 +212,10 @@ export default class SynchronizationManager {
|
|
|
300
212
|
};
|
|
301
213
|
if (!syncStatus.pull && !syncStatus.push)
|
|
302
214
|
return;
|
|
303
|
-
const syncUnitsIds = [
|
|
215
|
+
const syncUnitsIds = [
|
|
216
|
+
{ documentId: driveId, scope: "global", branch: "main" },
|
|
217
|
+
...syncUnits,
|
|
218
|
+
];
|
|
304
219
|
for (const syncUnitId of syncUnitsIds) {
|
|
305
220
|
this.initSyncStatus(syncUnitId, syncStatus);
|
|
306
221
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-manager.js","sourceRoot":"","sources":["../../../src/server/sync-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-manager.js","sourceRoot":"","sources":["../../../src/server/sync-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { type SynchronizationUnitId } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Interface for a specialized Map implementation that manages synchronization units.
|
|
4
|
+
* Each unit is identified by a SynchronizationUnitId which consists of documentId, scope, and branch.
|
|
5
|
+
*/
|
|
6
|
+
export interface ISyncUnitMap<Value> {
|
|
7
|
+
set(id: SynchronizationUnitId, state: Value): this;
|
|
8
|
+
get(id: SynchronizationUnitId): Value | undefined;
|
|
9
|
+
has(id: SynchronizationUnitId): boolean;
|
|
10
|
+
delete(id: SynchronizationUnitId): boolean;
|
|
11
|
+
clear(): void;
|
|
12
|
+
get size(): number;
|
|
13
|
+
keys(): IterableIterator<SynchronizationUnitId>;
|
|
14
|
+
values(): IterableIterator<Value>;
|
|
15
|
+
entries(): IterableIterator<[SynchronizationUnitId, Value]>;
|
|
16
|
+
[Symbol.iterator](): IterableIterator<[SynchronizationUnitId, Value]>;
|
|
17
|
+
forEach(callbackfn: (value: Value, key: SynchronizationUnitId, map: ISyncUnitMap<Value>) => void, thisArg?: any): void;
|
|
18
|
+
deleteByDocumentId(documentId: string): void;
|
|
19
|
+
deleteByDocumentIdAndScope(documentId: string, scope: string): void;
|
|
20
|
+
getAllByDocumentId(documentId: string): [SynchronizationUnitId, Value][];
|
|
21
|
+
getAllByDocumentIdAndScope(documentId: string, scope: string): [SynchronizationUnitId, Value][];
|
|
22
|
+
}
|
|
23
|
+
/** Separator character used to join synchronization unit key parts */
|
|
24
|
+
type SyncUnitKeySeparator = "|";
|
|
25
|
+
/**
|
|
26
|
+
* Internal key format used to store synchronization units.
|
|
27
|
+
* Composed of documentId, scope, and branch joined by the separator.
|
|
28
|
+
*/
|
|
29
|
+
type SyncUnitKey = `${SynchronizationUnitId["documentId"]}${SyncUnitKeySeparator}${SynchronizationUnitId["scope"]}${SyncUnitKeySeparator}${SynchronizationUnitId["branch"]}`;
|
|
30
|
+
/**
|
|
31
|
+
* A specialized Map implementation for managing synchronization units that uses a "documentId - scope - branch" tuple as key.
|
|
32
|
+
* It provides methods to store, retrieve, and delete synchronization units of a certain documentId, optionally a scope and a branch.
|
|
33
|
+
* The implementation uses an internal Map with string keys created by combining documentId, scope, and branch with a separator character.
|
|
34
|
+
*/
|
|
35
|
+
export declare class SyncUnitMap<Value> implements ISyncUnitMap<Value> {
|
|
36
|
+
/** Internal storage using concatenated string keys */
|
|
37
|
+
private internalMap;
|
|
38
|
+
/** Character used to separate key components */
|
|
39
|
+
static keySeparator: SyncUnitKeySeparator;
|
|
40
|
+
/**
|
|
41
|
+
* Escapes the separator character in a string by prefixing it with a backslash
|
|
42
|
+
* @param str String to escape
|
|
43
|
+
*/
|
|
44
|
+
private static escape;
|
|
45
|
+
/**
|
|
46
|
+
* Unescapes the separator character in a string by removing the prefix backslash
|
|
47
|
+
* @param str String to unescape
|
|
48
|
+
*/
|
|
49
|
+
private static unescape;
|
|
50
|
+
/**
|
|
51
|
+
* Creates a composite key from a SynchronizationUnitId
|
|
52
|
+
* Escapes any separator characters in the components
|
|
53
|
+
* @param id The synchronization unit identifier
|
|
54
|
+
* @returns A string key combining documentId, scope, and branch
|
|
55
|
+
*/
|
|
56
|
+
static buildKey(id: SynchronizationUnitId): SyncUnitKey;
|
|
57
|
+
/**
|
|
58
|
+
* Parses a composite key back into a SynchronizationUnitId
|
|
59
|
+
* Unescapes any separator characters in the components
|
|
60
|
+
* @param key The composite key string
|
|
61
|
+
* @returns The parsed synchronization unit identifier
|
|
62
|
+
*/
|
|
63
|
+
static parseKey(key: SyncUnitKey): SynchronizationUnitId;
|
|
64
|
+
/**
|
|
65
|
+
* Stores a value with the given synchronization unit identifier
|
|
66
|
+
* @throws Error if any part of the id contains the separator character
|
|
67
|
+
*/
|
|
68
|
+
set(id: SynchronizationUnitId, state: Value): this;
|
|
69
|
+
/** Retrieves a value by its synchronization unit identifier */
|
|
70
|
+
get(id: SynchronizationUnitId): Value | undefined;
|
|
71
|
+
/** Checks if a value exists for the given synchronization unit identifier */
|
|
72
|
+
has(id: SynchronizationUnitId): boolean;
|
|
73
|
+
/** Removes a value by its synchronization unit identifier */
|
|
74
|
+
delete(id: SynchronizationUnitId): boolean;
|
|
75
|
+
/** Removes all entries from the map */
|
|
76
|
+
clear(): void;
|
|
77
|
+
/** Returns the number of entries in the map */
|
|
78
|
+
get size(): number;
|
|
79
|
+
/**
|
|
80
|
+
* Returns an iterator of synchronization unit identifiers
|
|
81
|
+
* @param filter Optional filter by documentId and scope
|
|
82
|
+
*/
|
|
83
|
+
keys(filter?: {
|
|
84
|
+
documentId: string;
|
|
85
|
+
scope?: string;
|
|
86
|
+
} | undefined): IterableIterator<SynchronizationUnitId>;
|
|
87
|
+
/**
|
|
88
|
+
* Returns an iterator of stored values
|
|
89
|
+
* @param filter Optional filter by documentId and scope
|
|
90
|
+
*/
|
|
91
|
+
values(filter?: {
|
|
92
|
+
documentId: string;
|
|
93
|
+
scope?: string;
|
|
94
|
+
} | undefined): IterableIterator<Value>;
|
|
95
|
+
/**
|
|
96
|
+
* Returns an iterator of [id, value] pairs
|
|
97
|
+
* @param filter Optional filter by documentId and scope
|
|
98
|
+
*/
|
|
99
|
+
entries(filter?: {
|
|
100
|
+
documentId: string;
|
|
101
|
+
scope?: string;
|
|
102
|
+
} | undefined): IterableIterator<[SynchronizationUnitId, Value]>;
|
|
103
|
+
/** Makes the map iterable */
|
|
104
|
+
[Symbol.iterator](): IterableIterator<[SynchronizationUnitId, Value]>;
|
|
105
|
+
/**
|
|
106
|
+
* Executes a callback for each entry in the map
|
|
107
|
+
* @param callbackfn Function to execute for each entry
|
|
108
|
+
* @param thisArg Value to use as 'this' in the callback
|
|
109
|
+
*/
|
|
110
|
+
forEach(callbackfn: (value: Value, key: SynchronizationUnitId, map: ISyncUnitMap<Value>) => void, thisArg?: any): void;
|
|
111
|
+
/**
|
|
112
|
+
* Removes all entries associated with a specific document
|
|
113
|
+
* @param documentId The document identifier
|
|
114
|
+
*/
|
|
115
|
+
deleteByDocumentId(documentId: string): void;
|
|
116
|
+
/**
|
|
117
|
+
* Removes all entries for a specific document and scope combination
|
|
118
|
+
* @param documentId The document identifier
|
|
119
|
+
* @param scope The scope identifier
|
|
120
|
+
*/
|
|
121
|
+
deleteByDocumentIdAndScope(documentId: string, scope: string): void;
|
|
122
|
+
/**
|
|
123
|
+
* Retrieves all entries associated with a specific document
|
|
124
|
+
* @param documentId The document identifier
|
|
125
|
+
* @returns Array of [id, value] pairs
|
|
126
|
+
*/
|
|
127
|
+
getAllByDocumentId(documentId: string): [SynchronizationUnitId, Value][];
|
|
128
|
+
/**
|
|
129
|
+
* Retrieves all entries for a specific document and scope combination
|
|
130
|
+
* @param documentId The document identifier
|
|
131
|
+
* @param scope The scope identifier
|
|
132
|
+
* @returns Array of [id, value] pairs
|
|
133
|
+
*/
|
|
134
|
+
getAllByDocumentIdAndScope(documentId: string, scope: string): [SynchronizationUnitId, Value][];
|
|
135
|
+
}
|
|
136
|
+
export {};
|
|
137
|
+
//# sourceMappingURL=sync-unit-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-unit-map.d.ts","sourceRoot":"","sources":["../../../src/server/sync-unit-map.ts"],"names":[],"mappings":"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"}
|