@powerhousedao/reactor-api 1.29.13-dev.3 → 1.29.13-dev.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.
@@ -24,7 +24,7 @@ export declare class PackagesManager implements IPackagesManager {
24
24
  constructor(options: IPackagesManagerOptions, onError?: ((e: unknown) => void) | undefined);
25
25
  init(): Promise<{
26
26
  documentModels: DocumentModelModule[];
27
- subgraphs: Subgraph[];
27
+ subgraphs: Map<string, Subgraph[]>;
28
28
  listeners: Listener[];
29
29
  } | undefined>;
30
30
  private loadPackages;
@@ -35,7 +35,7 @@ export declare class PackagesManager implements IPackagesManager {
35
35
  private updateListenersMap;
36
36
  private getUniqueListeners;
37
37
  onDocumentModelsChange(handler: (documentModels: Record<string, DocumentModelModule[]>) => void): void;
38
- onSubgraphsChange(handler: (subgraphs: Record<string, Subgraph[]>) => void): void;
38
+ onSubgraphsChange(handler: (subgraphs: Map<string, Subgraph[]>) => void): void;
39
39
  onListenersChange(handler: (listeners: Record<string, Listener[]>) => void): void;
40
40
  }
41
41
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../src/package-manager.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,eAAe,GAAU,UAAU,MAAM,EAAE,kBAIvD,CAAC;AAEF,eAAO,MAAM,YAAY,cAGxB,CAAC;AAGF,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAI1D,UAAU,gBAAgB;IACxB,sBAAsB,CACpB,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,KAAK,IAAI,GACvE,IAAI,CAAC;CACT;AAED,KAAK,uBAAuB,GAAG;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAU/E,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAQlB;AAmDD,wBAAgB,uBAAuB,CACrC,GAAG,cAAc,EAAE,mBAAmB,EAAE,EAAE,GACzC,mBAAmB,EAAE,CAUvB;AAYD,qBAAa,eAAgB,YAAW,gBAAgB;IAYpD,SAAS,CAAC,OAAO,EAAE,uBAAuB;IAC1C,SAAS,CAAC,OAAO,CAAC,GAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI;IAZ1C,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,YAAY,CAIf;gBAGO,OAAO,EAAE,uBAAuB,EAChC,OAAO,CAAC,GAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,aAAA;IAW7B,IAAI;;;;;YAQH,YAAY;YAkBZ,kBAAkB;IAkBhC,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,kBAAkB;IAU1B,sBAAsB,CACpB,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,KAAK,IAAI,GACvE,IAAI;IAIP,iBAAiB,CACf,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,IAAI,GACvD,IAAI;IAIP,iBAAiB,CACf,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,IAAI,GACvD,IAAI;CAGR"}
1
+ {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../src/package-manager.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,eAAe,GAAU,UAAU,MAAM,EAAE,kBAIvD,CAAC;AAEF,eAAO,MAAM,YAAY,cAGxB,CAAC;AAGF,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAI1D,UAAU,gBAAgB;IACxB,sBAAsB,CACpB,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,KAAK,IAAI,GACvE,IAAI,CAAC;CACT;AAED,KAAK,uBAAuB,GAAG;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAU/E,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAQlB;AAmDD,wBAAgB,uBAAuB,CACrC,GAAG,cAAc,EAAE,mBAAmB,EAAE,EAAE,GACzC,mBAAmB,EAAE,CAUvB;AAED,qBAAa,eAAgB,YAAW,gBAAgB;IAYpD,SAAS,CAAC,OAAO,EAAE,uBAAuB;IAC1C,SAAS,CAAC,OAAO,CAAC,GAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI;IAZ1C,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,YAAY,CAIf;gBAGO,OAAO,EAAE,uBAAuB,EAChC,OAAO,CAAC,GAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,aAAA;IAW7B,IAAI;;;;;YAQH,YAAY;YAkBZ,kBAAkB;IAkBhC,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,kBAAkB;IAU1B,sBAAsB,CACpB,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,KAAK,IAAI,GACvE,IAAI;IAIP,iBAAiB,CACf,OAAO,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,IAAI,GACpD,IAAI;IAIP,iBAAiB,CACf,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,IAAI,GACvD,IAAI;CAGR"}
@@ -78,15 +78,6 @@ export function getUniqueDocumentModels(...documentModels) {
78
78
  }
79
79
  return Array.from(uniqueModels.values());
80
80
  }
81
- function getUniqueSubgraphs(subgraphs) {
82
- const uniqueSubgraphs = new Map();
83
- for (const subgraphss of subgraphs) {
84
- for (const subgraph of subgraphss) {
85
- uniqueSubgraphs.set(subgraph.name, subgraph);
86
- }
87
- }
88
- return Array.from(uniqueSubgraphs.values());
89
- }
90
81
  export class PackagesManager {
91
82
  options;
92
83
  onError;
@@ -124,7 +115,7 @@ export class PackagesManager {
124
115
  this.updateListenersMap(listenersMap);
125
116
  return {
126
117
  documentModels: getUniqueDocumentModels(...Array.from(packagesMap.values())),
127
- subgraphs: getUniqueSubgraphs(Array.from(subgraphsMap.values())),
118
+ subgraphs: subgraphsMap,
128
119
  listeners: this.getUniqueListeners(Array.from(listenersMap.values())),
129
120
  };
130
121
  }
@@ -177,7 +168,7 @@ export class PackagesManager {
177
168
  console.log("> Removed Subgraphs from:", pkg);
178
169
  });
179
170
  this.subgraphsMap = subgraphsMap;
180
- this.eventEmitter.emit("subgraphsChange", Object.fromEntries(subgraphsMap));
171
+ this.eventEmitter.emit("subgraphsChange", subgraphsMap);
181
172
  }
182
173
  updateListenersMap(listenersMap) {
183
174
  const oldPackages = Array.from(this.listenerMap.keys());
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAOnD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAKhD,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAGtC,KAAK,OAAO,GAAG;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,IAAI,GAAG,SAAS,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EACF;QACE,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,GACD,OAAO,GACP,SAAS,CAAC;CACf,CAAC;AAIF,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,GAAG,CAAC,CAuGd"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAOnD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAKhD,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAGtC,KAAK,OAAO,GAAG;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,IAAI,GAAG,SAAS,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EACF;QACE,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,GACD,OAAO,GACP,SAAS,CAAC;CACf,CAAC;AAIF,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,GAAG,CAAC,CAwGd"}
@@ -29,7 +29,7 @@ export async function startAPI(reactor, options) {
29
29
  ...reactor.getDocumentModelModules(),
30
30
  ...documentModels,
31
31
  ]));
32
- const subgraphManager = new SubgraphManager("/", app, reactor, db, analyticsStore);
32
+ const subgraphManager = new SubgraphManager("/", app, reactor, db, analyticsStore, result?.subgraphs ? result.subgraphs : undefined);
33
33
  await subgraphManager.init();
34
34
  pkgManager.onDocumentModelsChange((documentModels) => {
35
35
  const uniqueModels = getUniqueDocumentModels(Object.values(documentModels).flat());
@@ -37,7 +37,7 @@ export async function startAPI(reactor, options) {
37
37
  subgraphManager.updateRouter();
38
38
  });
39
39
  pkgManager.onSubgraphsChange((packagedSubgraphs) => {
40
- for (const [supergraph, subgraphs] of Object.entries(packagedSubgraphs)) {
40
+ for (const [supergraph, subgraphs] of packagedSubgraphs) {
41
41
  subgraphManager.setSupergraph(supergraph, subgraphs);
42
42
  }
43
43
  });
@@ -10,10 +10,10 @@ export declare class SubgraphManager {
10
10
  private readonly reactor;
11
11
  private readonly operationalStore;
12
12
  private readonly analyticsStore;
13
+ private readonly subgraphs;
13
14
  private reactorRouter;
14
15
  private contextFields;
15
- private subgraphs;
16
- constructor(path: string, app: express.Express, reactor: IDocumentDriveServer, operationalStore: Db, analyticsStore: IAnalyticsStore);
16
+ constructor(path: string, app: express.Express, reactor: IDocumentDriveServer, operationalStore: Db, analyticsStore: IAnalyticsStore, subgraphs?: Map<string, Subgraph[]>);
17
17
  init(): Promise<void>;
18
18
  registerSubgraph(subgraph: SubgraphClass, supergraph?: string, path?: string): Promise<void>;
19
19
  updateRouter(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/subgraphs/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,WAAW,CAAC;AAOpC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAG5E,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAMnC,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAG/D,qBAAa,eAAe;;IAMxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc;IATjC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,SAAS,CAAkC;gBAGhC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,OAAO,CAAC,OAAO,EACpB,OAAO,EAAE,oBAAoB,EAC7B,gBAAgB,EAAE,EAAE,EACpB,cAAc,EAAE,eAAe;IAS5C,IAAI;IAmBJ,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,SAAK,EAAE,IAAI,SAAK;IAsBpE,YAAY;IAQlB,0BAA0B,4BAExB;IAEF,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAItD,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE;CA0HxD"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/subgraphs/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,WAAW,CAAC;AAOpC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAG5E,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAMnC,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAG/D,qBAAa,eAAe;;IAKxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAT5B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,aAAa,CAA2B;gBAG7B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,OAAO,CAAC,OAAO,EACpB,OAAO,EAAE,oBAAoB,EAC7B,gBAAgB,EAAE,EAAE,EACpB,cAAc,EAAE,eAAe,EAC/B,SAAS,GAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAa;IAS3D,IAAI;IAmBJ,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,SAAK,EAAE,IAAI,SAAK;IAsBpE,YAAY;IAQlB,0BAA0B,4BAExB;IAEF,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAItD,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE;CAyHxD"}
@@ -17,15 +17,16 @@ export class SubgraphManager {
17
17
  reactor;
18
18
  operationalStore;
19
19
  analyticsStore;
20
+ subgraphs;
20
21
  reactorRouter = Router();
21
22
  contextFields = {};
22
- subgraphs = {};
23
- constructor(path, app, reactor, operationalStore, analyticsStore) {
23
+ constructor(path, app, reactor, operationalStore, analyticsStore, subgraphs = new Map()) {
24
24
  this.path = path;
25
25
  this.app = app;
26
26
  this.reactor = reactor;
27
27
  this.operationalStore = operationalStore;
28
28
  this.analyticsStore = analyticsStore;
29
+ this.subgraphs = subgraphs;
29
30
  // Setup Default subgraphs
30
31
  this.registerSubgraph(AuthSubgraph);
31
32
  this.registerSubgraph(SystemSubgraph);
@@ -53,13 +54,13 @@ export class SubgraphManager {
53
54
  path,
54
55
  });
55
56
  await subgraphInstance.onSetup();
56
- if (!this.subgraphs[supergraph]) {
57
+ if (!this.subgraphs.get(supergraph)) {
57
58
  if (supergraph !== "") {
58
59
  console.log(`> Created /${supergraph} supergraph `);
59
60
  }
60
- this.subgraphs[supergraph] = [];
61
+ this.subgraphs.set(supergraph, []);
61
62
  }
62
- this.subgraphs[supergraph].push(subgraphInstance);
63
+ this.subgraphs.get(supergraph)?.push(subgraphInstance);
63
64
  console.log(`> Registered ${supergraph ? "/" + supergraph : ""}${this.path.endsWith("/") ? this.path : this.path + "/"}${subgraphInstance.name} subgraph.`);
64
65
  await this.updateRouter();
65
66
  }
@@ -77,7 +78,7 @@ export class SubgraphManager {
77
78
  this.contextFields = { ...this.contextFields, ...fields };
78
79
  }
79
80
  setSupergraph(supergraph, subgraphs) {
80
- this.subgraphs[supergraph] = subgraphs;
81
+ this.subgraphs.set(supergraph, subgraphs);
81
82
  this.updateRouter();
82
83
  }
83
84
  #createApolloServer(schema) {
@@ -104,7 +105,7 @@ export class SubgraphManager {
104
105
  async #setupSubgraphs(router) {
105
106
  for (const supergraph of Object.keys(this.subgraphs)) {
106
107
  const supergraphEndpoints = {};
107
- for (const subgraph of this.subgraphs[supergraph]) {
108
+ for (const subgraph of this.subgraphs.get(supergraph) ?? []) {
108
109
  const subgraphConfig = this.#getLocalSubgraphConfig(subgraph.name);
109
110
  if (!subgraphConfig)
110
111
  continue;
@@ -174,12 +175,11 @@ export class SubgraphManager {
174
175
  this.reactorRouter = router;
175
176
  }
176
177
  #getLocalSubgraphConfig(subgraphName) {
177
- let entry;
178
- for (const supergraph of Object.keys(this.subgraphs)) {
179
- entry = this.subgraphs[supergraph].find((it) => it.name === subgraphName);
178
+ for (const [_, subgraphs] of this.subgraphs) {
179
+ const entry = subgraphs.find((it) => it.name === subgraphName);
180
180
  if (entry)
181
- break;
181
+ return entry;
182
182
  }
183
- return entry;
183
+ return undefined;
184
184
  }
185
185
  }