document-drive 1.22.3 → 1.22.4
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/src/server/constants.d.ts +1 -1
- package/dist/src/server/constants.js +1 -1
- package/dist/src/server/listener/listener-manager.d.ts.map +1 -1
- package/dist/src/server/listener/listener-manager.js +2 -2
- package/dist/src/server/listener/transmitter/pull-responder.d.ts +2 -2
- package/dist/src/server/listener/transmitter/pull-responder.d.ts.map +1 -1
- package/dist/src/server/listener/transmitter/pull-responder.js +54 -19
- package/dist/src/server/sync-manager.d.ts +1 -0
- package/dist/src/server/sync-manager.d.ts.map +1 -1
- package/dist/src/server/sync-manager.js +4 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const PULL_DRIVE_INTERVAL =
|
|
1
|
+
export declare const PULL_DRIVE_INTERVAL = 1500;
|
|
2
2
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const PULL_DRIVE_INTERVAL =
|
|
1
|
+
export const PULL_DRIVE_INTERVAL = 1500;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener-manager.d.ts","sourceRoot":"","sources":["../../../../src/server/listener/listener-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"listener-manager.d.ts","sourceRoot":"","sources":["../../../../src/server/listener/listener-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAEL,uBAAuB,EAEvB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,QAAQ,EACR,sBAAsB,EACtB,aAAa,EACb,cAAc,EAEd,YAAY,EACZ,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,eAAe,CAAC;AAOvB,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,MAAM,CAAC,qBAAqB,SAAO;IAEnC,SAAS,CAAC,MAAM,gDAGb;IAEH,SAAS,CAAC,WAAW,EAAE,uBAAuB,CAAC;IAC/C,SAAS,CAAC,OAAO,EAAE,sBAAsB,CAAC;IAG1C,SAAS,CAAC,sBAAsB,0CAG5B;gBAGF,WAAW,EAAE,uBAAuB,EACpC,OAAO,GAAE,sBAAsD;IAQ3D,UAAU,CAAC,OAAO,EAAE,uBAAuB;IAcjD,iBAAiB,CAAC,OAAO,EAAE,MAAM;IAI3B,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IA+B/C,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAWlD,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,EAAE,GAC/C,OAAO,CAAC,IAAI,CAAC;IAaV,8BAA8B,CAClC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,mBAAmB,EAAE,EAChC,MAAM,EAAE,kBAAkB,EAC1B,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,EAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,KAAK,IAAI,EAC1E,SAAS,UAAQ;IA2Cb,sBAAsB,CAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAuBhB,aAAa,sEAOO,KAAK,WAAW,MAAM,YAAY,aAAa,KAAK,IAAI,+EAJ1E;YAEY,cAAc;IA8N5B,OAAO,CAAC,YAAY;IAsBpB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAexD,sBAAsB,CACpB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAehC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3C,UAAU,CACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,YAAY,EAAE,CAAC;IAoE1B,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAepD,gBAAgB,CACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,aAAa;CAU/B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { OperationError } from "#server/error";
|
|
1
2
|
import { DefaultListenerManagerOptions, } from "#server/types";
|
|
2
3
|
import { childLogger } from "document-drive";
|
|
3
|
-
import { OperationError } from "#server/error";
|
|
4
4
|
import { debounce } from "./util.js";
|
|
5
5
|
const ENABLE_SYNC_DEBUG = false;
|
|
6
6
|
export class ListenerManager {
|
|
@@ -154,7 +154,7 @@ export class ListenerManager {
|
|
|
154
154
|
return;
|
|
155
155
|
}
|
|
156
156
|
else {
|
|
157
|
-
this.logger.verbose(`Listener out-of-date for sync unit ${syncUnit.
|
|
157
|
+
this.logger.verbose(`Listener out-of-date for sync unit (${syncUnit.driveId}, ${syncUnit.scope}, ${syncUnit.documentId}): ${unitState?.listenerRev} < ${syncUnit.revision}`);
|
|
158
158
|
}
|
|
159
159
|
const opData = [];
|
|
160
160
|
try {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { GetStrandsOptions, IListenerManager, IOperationResult, Listener, ListenerRevision, ListenerRevisionWithError, OperationUpdate, RemoteDriveOptions, StrandUpdate } from "#server/types";
|
|
2
|
-
import { ITransmitter, PullResponderTrigger, StrandUpdateSource } from "./types.js";
|
|
3
2
|
import { ListenerFilter, Trigger } from "#drive-document-model/gen/types";
|
|
3
|
+
import { ITransmitter, PullResponderTrigger, StrandUpdateSource } from "./types.js";
|
|
4
4
|
export type OperationUpdateGraphQL = Omit<OperationUpdate, "input"> & {
|
|
5
5
|
input: string;
|
|
6
6
|
};
|
|
@@ -29,7 +29,7 @@ export declare class PullResponderTransmitter implements IPullResponderTransmitt
|
|
|
29
29
|
processAcknowledge(driveId: string, listenerId: string, revisions: ListenerRevision[]): Promise<boolean>;
|
|
30
30
|
static registerPullResponder(driveId: string, url: string, filter: ListenerFilter): Promise<Listener["listenerId"]>;
|
|
31
31
|
static pullStrands(driveId: string, url: string, listenerId: string, options?: GetStrandsOptions): Promise<StrandUpdate[]>;
|
|
32
|
-
static acknowledgeStrands(
|
|
32
|
+
static acknowledgeStrands(url: string, listenerId: string, revisions: ListenerRevision[]): Promise<void>;
|
|
33
33
|
private static executePull;
|
|
34
34
|
static setupPull(driveId: string, trigger: PullResponderTrigger, onStrandUpdate: (strand: StrandUpdate, source: StrandUpdateSource) => Promise<IOperationResult>, onError: (error: Error) => void, onRevisions?: (revisions: ListenerRevisionWithError[]) => void, onAcknowledge?: (success: boolean) => void): CancelPullLoop;
|
|
35
35
|
static createPullResponderTrigger(driveId: string, url: string, options: Pick<RemoteDriveOptions, "pullInterval" | "pullFilter">): Promise<PullResponderTrigger>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-responder.d.ts","sourceRoot":"","sources":["../../../../../src/server/listener/transmitter/pull-responder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,kBAAkB,EAClB,YAAY,EACb,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"pull-responder.d.ts","sourceRoot":"","sources":["../../../../../src/server/listener/transmitter/pull-responder.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { PULL_DRIVE_INTERVAL } from "#server/constants";
|
|
|
4
4
|
import { OperationError } from "#server/error";
|
|
5
5
|
import { requestGraphql } from "#utils/graphql";
|
|
6
6
|
import { gql } from "graphql-request";
|
|
7
|
+
const MAX_REVISIONS_PER_ACK = 100;
|
|
7
8
|
export class PullResponderTransmitter {
|
|
8
9
|
static staticLogger = childLogger([
|
|
9
10
|
"PullResponderTransmitter",
|
|
@@ -119,33 +120,50 @@ export class PullResponderTransmitter {
|
|
|
119
120
|
})),
|
|
120
121
|
}));
|
|
121
122
|
}
|
|
122
|
-
static async acknowledgeStrands(
|
|
123
|
+
static async acknowledgeStrands(url, listenerId, revisions) {
|
|
123
124
|
this.staticLogger.verbose(`acknowledgeStrands(url: ${url}, listener: ${listenerId})`, revisions);
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
) {
|
|
129
|
-
acknowledge(listenerId: $listenerId, revisions: $revisions)
|
|
125
|
+
// split revisions into chunks
|
|
126
|
+
const chunks = [];
|
|
127
|
+
for (let i = 0; i < revisions.length; i += MAX_REVISIONS_PER_ACK) {
|
|
128
|
+
chunks.push(revisions.slice(i, i + MAX_REVISIONS_PER_ACK));
|
|
130
129
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
if (error) {
|
|
134
|
-
throw error;
|
|
130
|
+
if (chunks.length > 1) {
|
|
131
|
+
this.staticLogger.verbose(`Breaking strand acknowledgement into ${chunks.length} chunks...`);
|
|
135
132
|
}
|
|
136
|
-
|
|
133
|
+
// order does not matter, we can send out requests in parallel
|
|
134
|
+
const results = await Promise.allSettled(chunks.map(async (chunk) => {
|
|
135
|
+
const result = await requestGraphql(url, gql `
|
|
136
|
+
mutation acknowledge(
|
|
137
|
+
$listenerId: String!
|
|
138
|
+
$revisions: [ListenerRevisionInput]
|
|
139
|
+
) {
|
|
140
|
+
acknowledge(listenerId: $listenerId, revisions: $revisions)
|
|
141
|
+
}
|
|
142
|
+
`, { listenerId, revisions: chunk });
|
|
143
|
+
const error = result.errors?.at(0);
|
|
144
|
+
if (error) {
|
|
145
|
+
throw error;
|
|
146
|
+
}
|
|
147
|
+
if (result.acknowledge === null || !result.acknowledge) {
|
|
148
|
+
throw new Error("Error acknowledging strands");
|
|
149
|
+
}
|
|
150
|
+
}));
|
|
151
|
+
// throw after we try all chunks
|
|
152
|
+
const errors = results.filter((result) => result.status === "rejected");
|
|
153
|
+
if (errors.length > 0) {
|
|
137
154
|
throw new Error("Error acknowledging strands");
|
|
138
155
|
}
|
|
139
|
-
return result.acknowledge;
|
|
140
156
|
}
|
|
141
157
|
static async executePull(driveId, trigger, onStrandUpdate, onError, onRevisions, onAcknowledge) {
|
|
142
158
|
this.staticLogger.verbose(`executePull(driveId: ${driveId}), trigger:`, trigger);
|
|
143
159
|
try {
|
|
144
160
|
const { url, listenerId } = trigger.data;
|
|
145
161
|
const strands = await PullResponderTransmitter.pullStrands(driveId, url, listenerId);
|
|
162
|
+
this.staticLogger.verbose("Pulled strands...");
|
|
146
163
|
// if there are no new strands then do nothing
|
|
147
164
|
if (!strands.length) {
|
|
148
165
|
onRevisions?.([]);
|
|
166
|
+
this.staticLogger.verbose("No new strands, skipping...");
|
|
149
167
|
return;
|
|
150
168
|
}
|
|
151
169
|
const listenerRevisions = [];
|
|
@@ -155,6 +173,7 @@ export class PullResponderTransmitter {
|
|
|
155
173
|
scope: strand.scope,
|
|
156
174
|
branch: strand.branch,
|
|
157
175
|
}));
|
|
176
|
+
this.staticLogger.verbose("Processing strand...");
|
|
158
177
|
let error = undefined;
|
|
159
178
|
try {
|
|
160
179
|
const result = await onStrandUpdate(strand, {
|
|
@@ -183,15 +202,31 @@ export class PullResponderTransmitter {
|
|
|
183
202
|
error,
|
|
184
203
|
});
|
|
185
204
|
}
|
|
205
|
+
this.staticLogger.verbose("Processed strands...");
|
|
186
206
|
onRevisions?.(listenerRevisions);
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
207
|
+
this.staticLogger.verbose("Acknowledging strands...");
|
|
208
|
+
let success = false;
|
|
209
|
+
try {
|
|
210
|
+
await PullResponderTransmitter.acknowledgeStrands(url, listenerId, listenerRevisions.map((revision) => {
|
|
211
|
+
const { error, ...rest } = revision;
|
|
212
|
+
return rest;
|
|
213
|
+
}));
|
|
214
|
+
success = true;
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
this.staticLogger.error("ACK error", error);
|
|
218
|
+
}
|
|
219
|
+
if (success) {
|
|
220
|
+
this.staticLogger.verbose("Acknowledged strands successfully.");
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
this.staticLogger.error("Failed to acknowledge strands");
|
|
224
|
+
}
|
|
225
|
+
// let this throw separately
|
|
226
|
+
onAcknowledge?.(success);
|
|
193
227
|
}
|
|
194
228
|
catch (error) {
|
|
229
|
+
this.staticLogger.error("Pull error", error);
|
|
195
230
|
onError(error);
|
|
196
231
|
}
|
|
197
232
|
}
|
|
@@ -10,6 +10,7 @@ export default class SynchronizationManager implements ISynchronizationManager {
|
|
|
10
10
|
private documentModelModules;
|
|
11
11
|
private readonly eventEmitter?;
|
|
12
12
|
private syncStatus;
|
|
13
|
+
private logger;
|
|
13
14
|
constructor(storage: IDriveStorage, cache: ICache, documentModelModules: DocumentModelModule[], eventEmitter?: IEventEmitter | undefined);
|
|
14
15
|
getSynchronizationUnits(driveId: string, documentId?: string[], scope?: string[], branch?: string[], documentType?: string[]): Promise<SynchronizationUnit[]>;
|
|
15
16
|
getSynchronizationUnitsRevision(driveId: string, syncUnitsQuery: SynchronizationUnitQuery[]): Promise<SynchronizationUnit[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-manager.d.ts","sourceRoot":"","sources":["../../../src/server/sync-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,qBAAqB,EAEtB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,EACL,mBAAmB,EAKpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gCAAgC,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,OAAO,OAAO,sBAAuB,YAAW,uBAAuB;
|
|
1
|
+
{"version":3,"file":"sync-manager.d.ts","sourceRoot":"","sources":["../../../src/server/sync-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,qBAAqB,EAEtB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,EACL,mBAAmB,EAKpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gCAAgC,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,OAAO,OAAO,sBAAuB,YAAW,uBAAuB;IAM1E,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IARhC,OAAO,CAAC,UAAU,CAA2C;IAE7D,OAAO,CAAC,MAAM,CAA2C;gBAGtC,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,MAAM,EACtB,oBAAoB,EAAE,mBAAmB,EAAE,EAClC,YAAY,CAAC,EAAE,aAAa,YAAA;IAGzC,uBAAuB,CAC3B,OAAO,EAAE,MAAM,EACf,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;IAe3B,+BAA+B,CACnC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,wBAAwB,EAAE,GACzC,OAAO,CAAC,mBAAmB,EAAE,CAAC;IA6B3B,0BAA0B,CAC9B,OAAO,EAAE,MAAM,EACf,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;IAmEhC,4BAA4B,CAChC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC;IA6B1C,sBAAsB,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IA0BrC,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,eAAe,EAAE,CAAC;YA2Cf,QAAQ;YAiBR,WAAW;IAgBzB,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,UAAU,EAAE,MAAM,GACjB,UAAU,GAAG,gCAAgC;IAWhD,gBAAgB,CACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,EAC5C,KAAK,CAAC,EAAE,KAAK,GACZ,IAAI;IAiDP,OAAO,CAAC,cAAc;IAyBhB,yBAAyB,CAC7B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,IAAI,CAAC;CAejB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isFileNode } from "#drive-document-model/src/utils";
|
|
2
|
-
import {
|
|
2
|
+
import { childLogger } from "#utils/logger";
|
|
3
3
|
import { isBefore, isDocumentDrive } from "#utils/misc";
|
|
4
4
|
import { garbageCollectDocumentOperations, replayDocument, } from "document-model";
|
|
5
5
|
import { SynchronizationUnitNotFoundError } from "./error.js";
|
|
@@ -9,6 +9,7 @@ export default class SynchronizationManager {
|
|
|
9
9
|
documentModelModules;
|
|
10
10
|
eventEmitter;
|
|
11
11
|
syncStatus = new Map();
|
|
12
|
+
logger = childLogger(["SynchronizationManager"]);
|
|
12
13
|
constructor(storage, cache, documentModelModules, eventEmitter) {
|
|
13
14
|
this.storage = storage;
|
|
14
15
|
this.cache = cache;
|
|
@@ -168,7 +169,7 @@ export default class SynchronizationManager {
|
|
|
168
169
|
}
|
|
169
170
|
}
|
|
170
171
|
catch (e) {
|
|
171
|
-
logger.error("Error getting drive from cache", e);
|
|
172
|
+
this.logger.error("Error getting drive from cache", e);
|
|
172
173
|
}
|
|
173
174
|
const driveStorage = await this.storage.getDrive(driveId);
|
|
174
175
|
const result = this._buildDocument(driveStorage);
|
|
@@ -185,7 +186,7 @@ export default class SynchronizationManager {
|
|
|
185
186
|
}
|
|
186
187
|
}
|
|
187
188
|
catch (e) {
|
|
188
|
-
logger.error("Error getting document from cache", e);
|
|
189
|
+
this.logger.error("Error getting document from cache", e);
|
|
189
190
|
}
|
|
190
191
|
const documentStorage = await this.storage.getDocument(driveId, documentId);
|
|
191
192
|
return this._buildDocument(documentStorage);
|