@powerhousedao/reactor-api 1.26.0 → 1.26.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/subgraphs/drive/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAO5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/subgraphs/drive/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAO5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAqBxF,qBAAa,aAAc,SAAQ,QAAQ;IACzC,OAAO,CAAC,MAAM,CAGX;gBAES,IAAI,EAAE,YAAY;IAM9B,IAAI,SAAc;IAClB,QAAQ,iCAqJN;IAEF,SAAS,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAiPpC;CACH"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Subgraph } from "#subgraphs/base/index.js";
|
|
2
2
|
import { processAcknowledge, processGetStrands, processPushUpdate, } from "#sync/utils.js";
|
|
3
3
|
import { pascalCase } from "change-case";
|
|
4
|
-
import {
|
|
4
|
+
import { childLogger, generateUUID, PullResponderTransmitter } from "document-drive";
|
|
5
5
|
import { gql } from "graphql-tag";
|
|
6
6
|
const driveKindTypeNames = {
|
|
7
7
|
file: "DocumentDrive_FileNode",
|
|
@@ -239,31 +239,46 @@ export class DriveSubgraph extends Subgraph {
|
|
|
239
239
|
Mutation: {
|
|
240
240
|
registerPullResponderListener: async (_, { filter }, ctx) => {
|
|
241
241
|
this.logger.verbose(`registerPullResponderListener(drive: ${ctx.driveId})`, filter);
|
|
242
|
-
if (!ctx.driveId)
|
|
242
|
+
if (!ctx.driveId) {
|
|
243
243
|
throw new Error("Drive ID is required");
|
|
244
|
+
}
|
|
245
|
+
// Create the transmitter for the PullResponder
|
|
244
246
|
const uuid = generateUUID();
|
|
245
247
|
const listener = {
|
|
248
|
+
driveId: ctx.driveId,
|
|
249
|
+
listenerId: uuid,
|
|
246
250
|
block: false,
|
|
251
|
+
filter,
|
|
252
|
+
system: false,
|
|
253
|
+
label: `Pullresponder #${uuid}`,
|
|
247
254
|
callInfo: {
|
|
248
255
|
data: "",
|
|
249
256
|
name: "PullResponder",
|
|
250
257
|
transmitterType: "PullResponder",
|
|
251
258
|
},
|
|
252
|
-
filter: {
|
|
253
|
-
branch: filter.branch ?? [],
|
|
254
|
-
documentId: filter.documentId ?? [],
|
|
255
|
-
documentType: filter.documentType ?? [],
|
|
256
|
-
scope: filter.scope ?? [],
|
|
257
|
-
},
|
|
258
|
-
label: `Pullresponder #${uuid}`,
|
|
259
|
-
listenerId: uuid,
|
|
260
|
-
system: false,
|
|
261
259
|
};
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
260
|
+
// TODO: circular reference
|
|
261
|
+
// TODO: once we have DI, remove this and pass around
|
|
262
|
+
const listenerManager = this.reactor.getListenerManager();
|
|
263
|
+
listener.transmitter = new PullResponderTransmitter(listener, listenerManager);
|
|
264
|
+
// Use the new ephemeral listener method instead of queueDriveAction
|
|
265
|
+
try {
|
|
266
|
+
await listenerManager.setListener(ctx.driveId, listener);
|
|
265
267
|
}
|
|
266
|
-
|
|
268
|
+
catch (error) {
|
|
269
|
+
this.logger.error(`Failed to register ephemeral listener: ${error}`);
|
|
270
|
+
throw new Error(`Listener couldn't be registered: ${error}`);
|
|
271
|
+
}
|
|
272
|
+
// for backwards compatibility: return everything but the transmitter
|
|
273
|
+
return {
|
|
274
|
+
driveId: listener.driveId,
|
|
275
|
+
listenerId: listener.listenerId,
|
|
276
|
+
label: listener.label,
|
|
277
|
+
block: listener.block,
|
|
278
|
+
system: listener.system,
|
|
279
|
+
filter: listener.filter,
|
|
280
|
+
callInfo: listener.callInfo,
|
|
281
|
+
};
|
|
267
282
|
},
|
|
268
283
|
pushUpdates: async (_, { strands: strandsGql }, ctx) => {
|
|
269
284
|
if (!ctx.driveId)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { Db } from "#types.js";
|
|
2
|
+
import { IAnalyticsStore } from "@powerhousedao/analytics-engine-core";
|
|
1
3
|
import { IDocumentDriveServer } from "document-drive";
|
|
2
4
|
import { DocumentNode } from "graphql";
|
|
3
5
|
import type { IncomingHttpHeaders } from "http";
|
|
4
|
-
import { Db } from "#types.js";
|
|
5
|
-
import { IAnalyticsStore } from "@powerhousedao/analytics-engine-core";
|
|
6
6
|
import { SubgraphManager } from "./manager.js";
|
|
7
7
|
export type Context = {
|
|
8
8
|
driveServer: IDocumentDriveServer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/subgraphs/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/subgraphs/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,OAAO,GAAG;IACpB,WAAW,EAAE,oBAAoB,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,EAAE,EAAE,OAAO,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,gBAAgB,EAAE,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,gBAAgB,EAAE,EAAE,CAAC;IACrB,cAAc,EAAE,eAAe,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;CAClC,CAAC"}
|