@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;AAsBxF,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,CAqOpC;CACH"}
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 { addListener, childLogger, generateUUID, } from "document-drive";
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
- const result = await this.reactor.queueDriveAction(ctx.driveId, addListener({ listener }));
263
- if (result.status !== "SUCCESS" && result.error) {
264
- throw new Error(`Listener couldn't be registered: ${result.error.message}`);
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
- return listener;
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,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,WAAW,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,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"}
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"}