@powerhousedao/reactor-api 4.1.0-dev.3 → 4.1.0-dev.30
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/graphql/drive/index.d.ts.map +1 -1
- package/dist/src/graphql/drive/index.js +13 -3
- package/dist/src/graphql/drive/index.js.map +1 -1
- package/dist/src/graphql/graphql-manager.d.ts +3 -1
- package/dist/src/graphql/graphql-manager.d.ts.map +1 -1
- package/dist/src/graphql/graphql-manager.js +25 -9
- package/dist/src/graphql/graphql-manager.js.map +1 -1
- package/dist/src/graphql/system/index.d.ts +3 -0
- package/dist/src/graphql/system/index.d.ts.map +1 -1
- package/dist/src/graphql/system/index.js +15 -0
- package/dist/src/graphql/system/index.js.map +1 -1
- package/dist/src/packages/import-loader.d.ts.map +1 -1
- package/dist/src/packages/import-loader.js +7 -6
- package/dist/src/packages/import-loader.js.map +1 -1
- package/dist/src/packages/import-resolver.d.ts +5 -0
- package/dist/src/packages/import-resolver.d.ts.map +1 -0
- package/dist/src/packages/import-resolver.js +127 -0
- package/dist/src/packages/import-resolver.js.map +1 -0
- package/dist/src/packages/package-manager.d.ts +4 -0
- package/dist/src/packages/package-manager.d.ts.map +1 -1
- package/dist/src/packages/package-manager.js +69 -17
- package/dist/src/packages/package-manager.js.map +1 -1
- package/dist/src/packages/types.d.ts +8 -0
- package/dist/src/packages/types.d.ts.map +1 -1
- package/dist/src/packages/util.d.ts +20 -2
- package/dist/src/packages/util.d.ts.map +1 -1
- package/dist/src/packages/util.js +44 -5
- package/dist/src/packages/util.js.map +1 -1
- package/dist/src/packages/vite-loader.d.ts +22 -0
- package/dist/src/packages/vite-loader.d.ts.map +1 -0
- package/dist/src/packages/vite-loader.js +151 -0
- package/dist/src/packages/vite-loader.js.map +1 -0
- package/dist/src/server.d.ts +1 -0
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +15 -6
- package/dist/src/server.js.map +1 -1
- package/dist/src/utils/create-schema.js +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +11 -7
|
@@ -34,9 +34,27 @@ export class PackageManager {
|
|
|
34
34
|
}
|
|
35
35
|
async loadPackages(packages) {
|
|
36
36
|
this.logger.info(`Loading packages: ${packages.join(", ")}`);
|
|
37
|
+
const documentModelsMap = await this.loadDocumentModels(packages);
|
|
38
|
+
const subgraphsMap = await this.loadSubgraphs(packages);
|
|
39
|
+
const processorsMap = await this.loadProcessors(packages);
|
|
40
|
+
this.updatePackagesMap(documentModelsMap);
|
|
41
|
+
this.updateSubgraphsMap(subgraphsMap);
|
|
42
|
+
this.updateProcessorsMap(processorsMap);
|
|
43
|
+
try {
|
|
44
|
+
this.subscribePackages(packages);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
this.logger.error("Failed to subscribe to packages", error);
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
documentModels: getUniqueDocumentModels(...Array.from(documentModelsMap.values())),
|
|
51
|
+
subgraphs: subgraphsMap,
|
|
52
|
+
processors: processorsMap,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
async loadDocumentModels(packages) {
|
|
56
|
+
this.logger.debug(`Loading document models from packages: ${packages.join(", ")}`);
|
|
37
57
|
const documentModelModuleMap = new Map();
|
|
38
|
-
const subgraphsMap = new Map();
|
|
39
|
-
const processorsMap = new Map();
|
|
40
58
|
// static prereqs
|
|
41
59
|
documentModelModuleMap.set("document-drive", [
|
|
42
60
|
driveDocumentModelModule,
|
|
@@ -46,29 +64,63 @@ export class PackageManager {
|
|
|
46
64
|
]);
|
|
47
65
|
for (const pkg of packages) {
|
|
48
66
|
const allDocumentModels = [];
|
|
49
|
-
const allSubgraphs = [];
|
|
50
|
-
const allProcessors = [];
|
|
51
67
|
for (const loader of this.loaders) {
|
|
52
68
|
const documentModels = await loader.loadDocumentModels(pkg);
|
|
53
|
-
const subgraphs = await loader.loadSubgraphs(pkg);
|
|
54
|
-
const processors = await loader.loadProcessors(pkg);
|
|
55
69
|
allDocumentModels.push(...documentModels);
|
|
70
|
+
}
|
|
71
|
+
documentModelModuleMap.set(pkg, allDocumentModels);
|
|
72
|
+
}
|
|
73
|
+
return documentModelModuleMap;
|
|
74
|
+
}
|
|
75
|
+
async loadSubgraphs(packages) {
|
|
76
|
+
this.logger.debug(`Loading subgraphs from packages: ${packages.join(", ")}`);
|
|
77
|
+
const subgraphsMap = new Map();
|
|
78
|
+
for (const pkg of packages) {
|
|
79
|
+
const allSubgraphs = [];
|
|
80
|
+
for (const loader of this.loaders) {
|
|
81
|
+
const subgraphs = await loader.loadSubgraphs(pkg);
|
|
56
82
|
allSubgraphs.push(...subgraphs);
|
|
83
|
+
}
|
|
84
|
+
subgraphsMap.set(pkg, allSubgraphs);
|
|
85
|
+
}
|
|
86
|
+
return subgraphsMap;
|
|
87
|
+
}
|
|
88
|
+
async loadProcessors(packages) {
|
|
89
|
+
this.logger.debug(`Loading processors from packages: ${packages.join(", ")}`);
|
|
90
|
+
const processorsMap = new Map();
|
|
91
|
+
for (const pkg of packages) {
|
|
92
|
+
const allProcessors = [];
|
|
93
|
+
for (const loader of this.loaders) {
|
|
94
|
+
const processors = await loader.loadProcessors(pkg);
|
|
57
95
|
if (processors) {
|
|
58
96
|
allProcessors.push(processors);
|
|
59
97
|
}
|
|
60
98
|
}
|
|
61
|
-
documentModelModuleMap.set(pkg, allDocumentModels);
|
|
62
|
-
subgraphsMap.set(pkg, allSubgraphs);
|
|
63
99
|
processorsMap.set(pkg, allProcessors);
|
|
64
100
|
}
|
|
65
|
-
this.updatePackagesMap(documentModelModuleMap);
|
|
66
|
-
this.updateSubgraphsMap(subgraphsMap);
|
|
67
101
|
this.updateProcessorsMap(processorsMap);
|
|
68
|
-
return
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
102
|
+
return processorsMap;
|
|
103
|
+
}
|
|
104
|
+
subscribePackages(packages) {
|
|
105
|
+
const unsubs = [];
|
|
106
|
+
for (const pkg of packages) {
|
|
107
|
+
for (const loader of this.loaders) {
|
|
108
|
+
if (loader.onDocumentModelsChange) {
|
|
109
|
+
const unsub = loader.onDocumentModelsChange(pkg, async () => {
|
|
110
|
+
this.logger.info(`Updating document models for package: ${pkg}`);
|
|
111
|
+
const documentModels = await this.loadDocumentModels([pkg]);
|
|
112
|
+
const documentModelsMap = new Map(this.docModelsMap);
|
|
113
|
+
documentModelsMap.set(pkg, documentModels.get(pkg) ?? []);
|
|
114
|
+
this.updatePackagesMap(documentModelsMap);
|
|
115
|
+
});
|
|
116
|
+
unsubs.push(unsub);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return () => {
|
|
121
|
+
for (const unsub of unsubs) {
|
|
122
|
+
unsub();
|
|
123
|
+
}
|
|
72
124
|
};
|
|
73
125
|
}
|
|
74
126
|
getAllPackageNames() {
|
|
@@ -98,7 +150,7 @@ export class PackageManager {
|
|
|
98
150
|
oldPackages
|
|
99
151
|
.filter((pkg) => !newPackages.includes(pkg))
|
|
100
152
|
.forEach((pkg) => {
|
|
101
|
-
this.logger.info(
|
|
153
|
+
this.logger.info(`Removed package: ${pkg}`);
|
|
102
154
|
});
|
|
103
155
|
this.docModelsMap = packagesMap;
|
|
104
156
|
this.eventEmitter.emit("documentModelsChange", Object.fromEntries(packagesMap));
|
|
@@ -109,7 +161,7 @@ export class PackageManager {
|
|
|
109
161
|
oldPackages
|
|
110
162
|
.filter((pkg) => !newPackages.includes(pkg))
|
|
111
163
|
.forEach((pkg) => {
|
|
112
|
-
this.logger.info(
|
|
164
|
+
this.logger.info(`Removed Subgraphs from: ${pkg}`);
|
|
113
165
|
});
|
|
114
166
|
this.subgraphsMap = subgraphsMap;
|
|
115
167
|
this.eventEmitter.emit("subgraphsChange", subgraphsMap);
|
|
@@ -120,7 +172,7 @@ export class PackageManager {
|
|
|
120
172
|
oldPackages
|
|
121
173
|
.filter((pkg) => !newPackages.includes(pkg))
|
|
122
174
|
.forEach((pkg) => {
|
|
123
|
-
this.logger.info(
|
|
175
|
+
this.logger.info(`Removed Processor Factories from: ${pkg}`);
|
|
124
176
|
});
|
|
125
177
|
this.processorMap = processorsMap;
|
|
126
178
|
this.eventEmitter.emit("processorsChange", processorsMap);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../../src/packages/package-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAKvE,OAAO,EACL,gCAAgC,GAEjC,MAAM,gBAAgB,CAAC;AACxB,OAAO,YAAY,MAAM,aAAa,CAAC;AACvC,OAAO,EAAoB,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../../src/packages/package-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,14 @@ export interface IPackageLoader {
|
|
|
6
6
|
loadSubgraphs(identifier: string): Promise<SubgraphClass[]>;
|
|
7
7
|
loadProcessors(identifier: string): Promise<((module: IProcessorHostModule) => ProcessorFactory) | null>;
|
|
8
8
|
}
|
|
9
|
+
export interface ISubscriptionOptions {
|
|
10
|
+
debounce?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface ISubscribablePackageLoader extends IPackageLoader {
|
|
13
|
+
onDocumentModelsChange?(identifier: string, handler: (documentModels: DocumentModelModule[]) => void, options?: ISubscriptionOptions): () => void;
|
|
14
|
+
onSubgraphsChange?(identifier: string, handler: (subgraphs: SubgraphClass[]) => void, options?: ISubscriptionOptions): () => void;
|
|
15
|
+
onProcessorsChange?(identifier: string, handler: (processors: ((module: IProcessorHostModule) => ProcessorFactory) | null) => void, options?: ISubscriptionOptions): () => void;
|
|
16
|
+
}
|
|
9
17
|
export interface IPackageManager {
|
|
10
18
|
onDocumentModelsChange(handler: (documentModels: Record<string, DocumentModelModule[]>) => void): void;
|
|
11
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/packages/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACvE,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5D,cAAc,CACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,eAAe;IAC9B,sBAAsB,CACpB,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,KAAK,IAAI,GACvE,IAAI,CAAC;CACT;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IACxC,UAAU,EAAE,GAAG,CACb,MAAM,EACN,CAAC,CAAC,MAAM,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,EAAE,CACvD,CAAC;CACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/packages/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACvE,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5D,cAAc,CACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA2B,SAAQ,cAAc;IAChE,sBAAsB,CAAC,CACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,cAAc,EAAE,mBAAmB,EAAE,KAAK,IAAI,EACxD,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,IAAI,CAAC;IACd,iBAAiB,CAAC,CAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,IAAI,EAC7C,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,IAAI,CAAC;IACd,kBAAkB,CAAC,CACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CACP,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,GAAG,IAAI,KACpE,IAAI,EACT,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,IAAI,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,sBAAsB,CACpB,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,KAAK,IAAI,GACvE,IAAI,CAAC;CACT;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IACxC,UAAU,EAAE,GAAG,CACb,MAAM,EACN,CAAC,CAAC,MAAM,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,EAAE,CACvD,CAAC;CACH,CAAC"}
|
|
@@ -1,7 +1,25 @@
|
|
|
1
|
+
import { type SubgraphClass } from "#graphql/index.js";
|
|
2
|
+
import { type IProcessorHostModule, type ProcessorFactory } from "document-drive/processors/types";
|
|
3
|
+
import { type DocumentModelModule } from "document-model";
|
|
4
|
+
type DocumentModelsExport = Record<string, DocumentModelModule>;
|
|
5
|
+
type SubgraphsExport = Record<string, Record<string, SubgraphClass>>;
|
|
6
|
+
type ProcessorsExport = {
|
|
7
|
+
processorFactory: (module: IProcessorHostModule) => ProcessorFactory;
|
|
8
|
+
};
|
|
1
9
|
export declare const installPackages: (packages: string[]) => Promise<void>;
|
|
2
10
|
export declare const readManifest: () => string;
|
|
3
11
|
/**
|
|
4
|
-
* Tries to import
|
|
12
|
+
* Tries to import document models from a package. This function cannot throw.
|
|
5
13
|
*/
|
|
6
|
-
export declare function
|
|
14
|
+
export declare function loadDocumentModels(packageName: string): Promise<DocumentModelsExport | null>;
|
|
15
|
+
/**
|
|
16
|
+
* Tries to import subgraphs from a package. This function cannot throw.
|
|
17
|
+
*/
|
|
18
|
+
export declare function loadSubgraphs(packageName: string): Promise<SubgraphsExport | null>;
|
|
19
|
+
/**
|
|
20
|
+
* Tries to import processors from a package. This function cannot throw.
|
|
21
|
+
*/
|
|
22
|
+
export declare function loadProcessors(packageName: string): Promise<ProcessorsExport | null>;
|
|
23
|
+
export declare function debounce<T extends (...args: any[]) => void>(func: T, delay?: number): (...args: Parameters<T>) => void;
|
|
24
|
+
export {};
|
|
7
25
|
//# sourceMappingURL=util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/packages/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/packages/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAK1D,KAAK,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAChE,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;AACrE,KAAK,gBAAgB,GAAG;IACtB,gBAAgB,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,gBAAgB,CAAC;CACtE,CAAC;AAIF,eAAO,MAAM,eAAe,GAAU,UAAU,MAAM,EAAE,kBAIvD,CAAC;AAEF,eAAO,MAAM,YAAY,cAGxB,CAAC;AAEF;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAEtC;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAEjC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAElC;AA8CD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EACzD,IAAI,EAAE,CAAC,EACP,KAAK,SAAM,GACV,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAMlC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { childLogger } from "document-drive";
|
|
2
2
|
import { execSync } from "node:child_process";
|
|
3
|
+
import { resolveLinkedPackage } from "./import-resolver.js";
|
|
3
4
|
const logger = childLogger(["reactor-api", "packages/util"]);
|
|
4
5
|
export const installPackages = async (packages) => {
|
|
5
6
|
for (const packageName of packages) {
|
|
@@ -11,22 +12,60 @@ export const readManifest = () => {
|
|
|
11
12
|
return manifest;
|
|
12
13
|
};
|
|
13
14
|
/**
|
|
14
|
-
* Tries to import
|
|
15
|
+
* Tries to import document models from a package. This function cannot throw.
|
|
15
16
|
*/
|
|
16
|
-
export async function
|
|
17
|
+
export async function loadDocumentModels(packageName) {
|
|
18
|
+
return loadDependency(packageName, "document-models");
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Tries to import subgraphs from a package. This function cannot throw.
|
|
22
|
+
*/
|
|
23
|
+
export async function loadSubgraphs(packageName) {
|
|
24
|
+
return loadDependency(packageName, "subgraphs");
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Tries to import processors from a package. This function cannot throw.
|
|
28
|
+
*/
|
|
29
|
+
export async function loadProcessors(packageName) {
|
|
30
|
+
return loadDependency(packageName, "processors");
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Generic dependency loader - tries to import a dependency from a package. This function cannot throw.
|
|
34
|
+
* Returns null if the dependency cannot be loaded.
|
|
35
|
+
*/
|
|
36
|
+
async function loadDependency(packageName, subPath) {
|
|
37
|
+
const fullPath = `${packageName}/${subPath}`;
|
|
38
|
+
// Try the standard import first
|
|
17
39
|
try {
|
|
18
|
-
const fullPath = `${packageName}/${subPath}`;
|
|
19
40
|
// vite does not support this, but that's okay as we have provided the
|
|
20
41
|
// vite-loader for this purpose
|
|
21
|
-
|
|
42
|
+
const module = await import(/* @vite-ignore */ fullPath);
|
|
43
|
+
return module;
|
|
22
44
|
}
|
|
23
45
|
catch (e) {
|
|
46
|
+
// Handle module not found errors with fallback resolution
|
|
24
47
|
if (e instanceof Error &&
|
|
48
|
+
"code" in e &&
|
|
49
|
+
e.code === "ERR_MODULE_NOT_FOUND") {
|
|
50
|
+
const result = await resolveLinkedPackage(packageName, subPath);
|
|
51
|
+
if (result)
|
|
52
|
+
return result;
|
|
53
|
+
// Only log when ALL attempts have failed
|
|
54
|
+
logger.warn(`Unable to load dependency ${fullPath} - tried standard import, suggested paths, resolved paths, and workspace patterns`);
|
|
55
|
+
}
|
|
56
|
+
else if (e instanceof Error &&
|
|
25
57
|
"code" in e &&
|
|
26
58
|
!["ERR_PACKAGE_PATH_NOT_EXPORTED", "ERR_MODULE_NOT_FOUND"].includes(e.code)) {
|
|
27
|
-
logger.
|
|
59
|
+
logger.error(`Unexpected error loading ${fullPath}:`, e);
|
|
28
60
|
}
|
|
29
61
|
return null;
|
|
30
62
|
}
|
|
31
63
|
}
|
|
64
|
+
export function debounce(func, delay = 100) {
|
|
65
|
+
let timeoutId;
|
|
66
|
+
return (...args) => {
|
|
67
|
+
clearTimeout(timeoutId);
|
|
68
|
+
timeoutId = setTimeout(() => func(...args), delay);
|
|
69
|
+
};
|
|
70
|
+
}
|
|
32
71
|
//# sourceMappingURL=util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/packages/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/packages/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAM7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAS5D,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,QAAkB,EAAE,EAAE;IAC1D,KAAK,MAAM,WAAW,IAAI,QAAQ,EAAE,CAAC;QACnC,QAAQ,CAAC,cAAc,WAAW,EAAE,CAAC,CAAC;IACxC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAmB;IAEnB,OAAO,cAAc,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAmB;IAEnB,OAAO,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,WAAmB;IAEnB,OAAO,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,cAAc,CAC3B,WAAmB,EACnB,OAAe;IAEf,MAAM,QAAQ,GAAG,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC;IAE7C,gCAAgC;IAChC,IAAI,CAAC;QACH,sEAAsE;QACtE,+BAA+B;QAC/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,0DAA0D;QAC1D,IACE,CAAC,YAAY,KAAK;YAClB,MAAM,IAAI,CAAC;YACX,CAAC,CAAC,IAAI,KAAK,sBAAsB,EACjC,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAI,WAAW,EAAE,OAAO,CAAC,CAAC;YACnE,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;YAE1B,yCAAyC;YACzC,MAAM,CAAC,IAAI,CACT,6BAA6B,QAAQ,mFAAmF,CACzH,CAAC;QACJ,CAAC;aAAM,IACL,CAAC,YAAY,KAAK;YAClB,MAAM,IAAI,CAAC;YACX,CAAC,CAAC,+BAA+B,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CACjE,CAAC,CAAC,IAAc,CACjB,EACD,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,4BAA4B,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,IAAO,EACP,KAAK,GAAG,GAAG;IAEX,IAAI,SAAwC,CAAC;IAC7C,OAAO,CAAC,GAAG,IAAmB,EAAQ,EAAE;QACtC,YAAY,CAAC,SAAS,CAAC,CAAC;QACxB,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type SubgraphClass } from "@powerhousedao/reactor-api";
|
|
2
|
+
import { type IProcessorHostModule, type ProcessorFactory } from "document-drive/processors/types";
|
|
3
|
+
import { type DocumentModelModule } from "document-model";
|
|
4
|
+
import { type ViteDevServer } from "vite";
|
|
5
|
+
import { type ISubscribablePackageLoader, type ISubscriptionOptions } from "./types.js";
|
|
6
|
+
export declare class VitePackageLoader implements ISubscribablePackageLoader {
|
|
7
|
+
private readonly logger;
|
|
8
|
+
private readonly vite;
|
|
9
|
+
static build(vite?: ViteDevServer): Promise<VitePackageLoader>;
|
|
10
|
+
constructor(vite: ViteDevServer);
|
|
11
|
+
private getDocumentModelsPath;
|
|
12
|
+
private getSubgraphsPath;
|
|
13
|
+
private getProcessorsPath;
|
|
14
|
+
loadDocumentModels(identifier: string): Promise<DocumentModelModule[]>;
|
|
15
|
+
loadSubgraphs(identifier: string): Promise<SubgraphClass[]>;
|
|
16
|
+
loadProcessors(identifier: string): Promise<((module: IProcessorHostModule) => ProcessorFactory) | null>;
|
|
17
|
+
onDocumentModelsChange(identifier: string, handler: (documentModels: DocumentModelModule[]) => void, options?: ISubscriptionOptions): () => void;
|
|
18
|
+
onSubgraphsChange(identifier: string, handler: (subgraphs: SubgraphClass[]) => void, options?: ISubscriptionOptions): () => void;
|
|
19
|
+
onProcessorsChange(identifier: string, handler: (processors: ((module: IProcessorHostModule) => ProcessorFactory) | null) => void, options?: ISubscriptionOptions): () => void;
|
|
20
|
+
}
|
|
21
|
+
export declare function startViteServer(): Promise<ViteDevServer>;
|
|
22
|
+
//# sourceMappingURL=vite-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-loader.d.ts","sourceRoot":"","sources":["../../../src/packages/vite-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG1D,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AACxD,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EAC1B,MAAM,YAAY,CAAC;AAGpB,qBAAa,iBAAkB,YAAW,0BAA0B;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;IAEtE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;WAExB,KAAK,CAAC,IAAI,CAAC,EAAE,aAAa;gBAK3B,IAAI,EAAE,aAAa;IAI/B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,iBAAiB;IAInB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAkCtE,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IA+B3D,cAAc,CAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAgCvE,sBAAsB,CACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,cAAc,EAAE,mBAAmB,EAAE,KAAK,IAAI,EACxD,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,IAAI;IAiBb,iBAAiB,CACf,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,IAAI,EAC7C,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,IAAI;IAeb,kBAAkB,CAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CACP,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,GAAG,IAAI,KACpE,IAAI,EACT,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,IAAI;CAcd;AAED,wBAAsB,eAAe,2BAqBpC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { viteCommonjs } from "@originjs/vite-plugin-commonjs";
|
|
2
|
+
import { isSubgraphClass, } from "@powerhousedao/reactor-api";
|
|
3
|
+
import { childLogger } from "document-drive";
|
|
4
|
+
import { access } from "node:fs/promises";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { createServer } from "vite";
|
|
7
|
+
import { debounce } from "./util.js";
|
|
8
|
+
export class VitePackageLoader {
|
|
9
|
+
logger = childLogger(["reactor-api", "vite-loader"]);
|
|
10
|
+
vite;
|
|
11
|
+
static async build(vite) {
|
|
12
|
+
const server = vite ?? (await startViteServer());
|
|
13
|
+
return new VitePackageLoader(server);
|
|
14
|
+
}
|
|
15
|
+
constructor(vite) {
|
|
16
|
+
this.vite = vite;
|
|
17
|
+
}
|
|
18
|
+
getDocumentModelsPath(identifier) {
|
|
19
|
+
return path.join(identifier, "./document-models");
|
|
20
|
+
}
|
|
21
|
+
getSubgraphsPath(identifier) {
|
|
22
|
+
return path.join(identifier, "./subgraphs");
|
|
23
|
+
}
|
|
24
|
+
getProcessorsPath(identifier) {
|
|
25
|
+
return path.join(identifier, "./processors");
|
|
26
|
+
}
|
|
27
|
+
async loadDocumentModels(identifier) {
|
|
28
|
+
const fullPath = this.getDocumentModelsPath(identifier);
|
|
29
|
+
this.logger.verbose("Loading document models from", fullPath);
|
|
30
|
+
try {
|
|
31
|
+
await access(fullPath);
|
|
32
|
+
const localDMs = (await this.vite.ssrLoadModule(fullPath));
|
|
33
|
+
const exports = Object.values(localDMs);
|
|
34
|
+
// duck type
|
|
35
|
+
const documentModels = [];
|
|
36
|
+
for (const dm of exports) {
|
|
37
|
+
if (dm.documentModel) {
|
|
38
|
+
documentModels.push(dm);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
this.logger.verbose(` ➜ Loaded ${documentModels.length} Document Models from: ${identifier}`);
|
|
42
|
+
return documentModels;
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
this.logger.verbose(` ➜ No Document Models found for: ${identifier}`);
|
|
46
|
+
}
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
async loadSubgraphs(identifier) {
|
|
50
|
+
const fullPath = this.getSubgraphsPath(identifier);
|
|
51
|
+
this.logger.verbose("Loading subgraphs from", fullPath);
|
|
52
|
+
let localSubgraphs = {};
|
|
53
|
+
try {
|
|
54
|
+
await access(fullPath);
|
|
55
|
+
localSubgraphs = await this.vite.ssrLoadModule(fullPath);
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
this.logger.verbose(` ➜ No Subgraphs found for: ${identifier}`);
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
const subgraphs = [];
|
|
62
|
+
for (const [name, subgraph] of Object.entries(localSubgraphs)) {
|
|
63
|
+
const SubgraphClass = subgraph[name];
|
|
64
|
+
if (isSubgraphClass(SubgraphClass)) {
|
|
65
|
+
subgraphs.push(SubgraphClass);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
this.logger.verbose(` ➜ Loaded ${subgraphs.length} Subgraphs from: ${identifier}`);
|
|
69
|
+
return subgraphs;
|
|
70
|
+
}
|
|
71
|
+
async loadProcessors(identifier) {
|
|
72
|
+
const fullPath = this.getProcessorsPath(identifier);
|
|
73
|
+
this.logger.verbose("Loading processors from", fullPath);
|
|
74
|
+
try {
|
|
75
|
+
await access(fullPath);
|
|
76
|
+
const module = await this.vite.ssrLoadModule(fullPath);
|
|
77
|
+
if (module.processorFactory &&
|
|
78
|
+
typeof module.processorFactory === "function") {
|
|
79
|
+
this.logger.verbose(` ➜ Loaded Processor factory from: ${identifier}`);
|
|
80
|
+
return module.processorFactory;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (e) {
|
|
84
|
+
//
|
|
85
|
+
}
|
|
86
|
+
this.logger.verbose(` ➜ No Processor Factory found for: ${identifier}`);
|
|
87
|
+
// return empty processor factory
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
onDocumentModelsChange(identifier, handler, options) {
|
|
91
|
+
const documentModelsPath = this.getDocumentModelsPath(identifier);
|
|
92
|
+
const listener = debounce(async (changedPath) => {
|
|
93
|
+
if (path.matchesGlob(changedPath, path.join(documentModelsPath, "**"))) {
|
|
94
|
+
const documentModels = await this.loadDocumentModels(identifier);
|
|
95
|
+
handler(documentModels);
|
|
96
|
+
}
|
|
97
|
+
}, options?.debounce ?? 100);
|
|
98
|
+
this.vite.watcher.on("change", listener);
|
|
99
|
+
return () => {
|
|
100
|
+
this.vite.watcher.off("change", listener);
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
onSubgraphsChange(identifier, handler, options) {
|
|
104
|
+
const subgraphsPath = this.getSubgraphsPath(identifier);
|
|
105
|
+
const listener = debounce(async (changedPath) => {
|
|
106
|
+
if (path.matchesGlob(changedPath, path.join(subgraphsPath, "**"))) {
|
|
107
|
+
const subgraphs = await this.loadSubgraphs(identifier);
|
|
108
|
+
handler(subgraphs);
|
|
109
|
+
}
|
|
110
|
+
}, options?.debounce ?? 100);
|
|
111
|
+
this.vite.watcher.on("change", listener);
|
|
112
|
+
return () => {
|
|
113
|
+
this.vite.watcher.off("change", listener);
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
onProcessorsChange(identifier, handler, options) {
|
|
117
|
+
const processorsPath = this.getProcessorsPath(identifier);
|
|
118
|
+
const listener = debounce(async (changedPath) => {
|
|
119
|
+
if (path.matchesGlob(changedPath, path.join(processorsPath, "**"))) {
|
|
120
|
+
const processors = await this.loadProcessors(identifier);
|
|
121
|
+
handler(processors);
|
|
122
|
+
}
|
|
123
|
+
}, options?.debounce ?? 100);
|
|
124
|
+
this.vite.watcher.on("change", listener);
|
|
125
|
+
return () => {
|
|
126
|
+
this.vite.watcher.off("change", listener);
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
export async function startViteServer() {
|
|
131
|
+
const vite = await createServer({
|
|
132
|
+
server: { middlewareMode: true },
|
|
133
|
+
appType: "custom",
|
|
134
|
+
build: {
|
|
135
|
+
rollupOptions: {
|
|
136
|
+
input: [],
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
plugins: [
|
|
140
|
+
viteCommonjs(),
|
|
141
|
+
{
|
|
142
|
+
name: "suppress-hmr",
|
|
143
|
+
handleHotUpdate() {
|
|
144
|
+
return []; // return empty array to suppress server refresh
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
});
|
|
149
|
+
return vite;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=vite-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-loader.js","sourceRoot":"","sources":["../../../src/packages/vite-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EACL,eAAe,GAEhB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAM7C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAsB,MAAM,MAAM,CAAC;AAKxD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,OAAO,iBAAiB;IACX,MAAM,GAAG,WAAW,CAAC,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;IAErD,IAAI,CAAgB;IAErC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAoB;QACrC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,YAAY,IAAmB;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEO,qBAAqB,CAAC,UAAkB;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IACpD,CAAC;IAEO,gBAAgB,CAAC,UAAkB;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC9C,CAAC;IAEO,iBAAiB,CAAC,UAAkB;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,UAAkB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8BAA8B,EAAE,QAAQ,CAAC,CAAC;QAE9D,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YAEvB,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAGxD,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAExC,YAAY;YACZ,MAAM,cAAc,GAA0B,EAAE,CAAC;YACjD,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;gBACzB,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;oBACrB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,OAAO,CACjB,eAAe,cAAc,CAAC,MAAM,0BAA0B,UAAU,EAAE,CAC3E,CAAC;YAEF,OAAO,cAAc,CAAC;QACxB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,sCAAsC,UAAU,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAAkB;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEnD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;QAExD,IAAI,cAAc,GAAkD,EAAE,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YAEvB,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gCAAgC,UAAU,EAAE,CAAC,CAAC;YAElE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,SAAS,GAAoB,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAC9D,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC;gBACnC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,CACjB,eAAe,SAAS,CAAC,MAAM,oBAAoB,UAAU,EAAE,CAChE,CAAC;QAEF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,UAAkB;QAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAEpD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YAEvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAEvD,IACE,MAAM,CAAC,gBAAgB;gBACvB,OAAO,MAAM,CAAC,gBAAgB,KAAK,UAAU,EAC7C,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,OAAO,CACjB,uCAAuC,UAAU,EAAE,CACpD,CAAC;gBAEF,OAAO,MAAM,CAAC,gBAEO,CAAC;YACxB,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,EAAE;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,wCAAwC,UAAU,EAAE,CAAC,CAAC;QAE1E,iCAAiC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB,CACpB,UAAkB,EAClB,OAAwD,EACxD,OAA8B;QAE9B,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAElE,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,WAAmB,EAAE,EAAE;YACtD,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;gBACvE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBACjE,OAAO,CAAC,cAAc,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,EAAE,OAAO,EAAE,QAAQ,IAAI,GAAG,CAAC,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEzC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC;IACJ,CAAC;IAED,iBAAiB,CACf,UAAkB,EAClB,OAA6C,EAC7C,OAA8B;QAE9B,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,WAAmB,EAAE,EAAE;YACtD,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;gBAClE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBACvD,OAAO,CAAC,SAAS,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,EAAE,OAAO,EAAE,QAAQ,IAAI,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEzC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC;IACJ,CAAC;IAED,kBAAkB,CAChB,UAAkB,EAClB,OAES,EACT,OAA8B;QAE9B,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,WAAmB,EAAE,EAAE;YACtD,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;gBACnE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBACzD,OAAO,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,EAAE,OAAO,EAAE,QAAQ,IAAI,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEzC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC;QAC9B,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;QAChC,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE;YACL,aAAa,EAAE;gBACb,KAAK,EAAE,EAAE;aACV;SACF;QACD,OAAO,EAAE;YACP,YAAY,EAAE;YACd;gBACE,IAAI,EAAE,cAAc;gBACpB,eAAe;oBACb,OAAO,EAAE,CAAC,CAAC,gDAAgD;gBAC7D,CAAC;aACF;SACF;KACF,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/src/server.d.ts
CHANGED
package/dist/src/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAOnD,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AASxB,OAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAKhD,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,SAAS,EAAsB,MAAM,YAAY,CAAC;AAK1E,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,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,KAAK,CAAC,EACF;QACE,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,GACD,OAAO,GACP,SAAS,CAAC;IACd,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvC,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AA2LF;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,GAAG,CAAC,CA8Nd"}
|
package/dist/src/server.js
CHANGED
|
@@ -5,6 +5,7 @@ import { ImportPackageLoader } from "#packages/import-loader.js";
|
|
|
5
5
|
import { getUniqueDocumentModels, PackageManager, } from "#packages/package-manager.js";
|
|
6
6
|
import { PostgresAnalyticsStore } from "@powerhousedao/analytics-engine-pg";
|
|
7
7
|
import { getConfig } from "@powerhousedao/config/utils";
|
|
8
|
+
import { setupMcpServer } from "@powerhousedao/reactor-mcp/express";
|
|
8
9
|
import { verifyAuthBearerToken } from "@renown/sdk";
|
|
9
10
|
import devcert from "devcert";
|
|
10
11
|
import { childLogger, } from "document-drive";
|
|
@@ -80,7 +81,10 @@ async function setupGraphQLManager(app, reactor, relationalDb, analyticsStore, s
|
|
|
80
81
|
*/
|
|
81
82
|
function setupEventListeners(pkgManager, reactor, graphqlManager, processorManager, module) {
|
|
82
83
|
pkgManager.onDocumentModelsChange(async (documentModels) => {
|
|
83
|
-
const uniqueModels = getUniqueDocumentModels(
|
|
84
|
+
const uniqueModels = getUniqueDocumentModels([
|
|
85
|
+
...reactor.getDocumentModelModules(),
|
|
86
|
+
...Object.values(documentModels).flat(),
|
|
87
|
+
]);
|
|
84
88
|
reactor.setDocumentModelModules(uniqueModels);
|
|
85
89
|
await graphqlManager.updateRouter();
|
|
86
90
|
});
|
|
@@ -99,7 +103,7 @@ function setupEventListeners(pkgManager, reactor, graphqlManager, processorManag
|
|
|
99
103
|
analyticsStore: module.analyticsStore,
|
|
100
104
|
relationalDb: module.relationalDb,
|
|
101
105
|
}));
|
|
102
|
-
await processorManager.registerFactory(packageName, async (
|
|
106
|
+
await processorManager.registerFactory(packageName, async (driveHeader) => (await Promise.all(factories.map((factory) => factory(driveHeader)))).flat());
|
|
103
107
|
}
|
|
104
108
|
});
|
|
105
109
|
}
|
|
@@ -147,6 +151,7 @@ async function startServer(app, port, httpsOptions) {
|
|
|
147
151
|
export async function startAPI(reactor, options) {
|
|
148
152
|
const port = options.port ?? DEFAULT_PORT;
|
|
149
153
|
const app = options.express ?? express();
|
|
154
|
+
const mcpServerEnabled = options.mcp ?? true;
|
|
150
155
|
let admins = [];
|
|
151
156
|
let users = [];
|
|
152
157
|
let guests = [];
|
|
@@ -181,7 +186,7 @@ export async function startAPI(reactor, options) {
|
|
|
181
186
|
// add auth middleware if auth is enabled
|
|
182
187
|
if (authEnabled) {
|
|
183
188
|
// set admin, users and guest list
|
|
184
|
-
logger.info("
|
|
189
|
+
logger.info("Setting up Auth middleware");
|
|
185
190
|
app.use(async (req, res, next) => {
|
|
186
191
|
if (!authEnabled || req.method === "OPTIONS" || req.method === "GET") {
|
|
187
192
|
next();
|
|
@@ -269,12 +274,12 @@ export async function startAPI(reactor, options) {
|
|
|
269
274
|
if (!validFactories.length) {
|
|
270
275
|
continue;
|
|
271
276
|
}
|
|
272
|
-
await processorManager.registerFactory(packageName, async (
|
|
277
|
+
await processorManager.registerFactory(packageName, async (driveHeader) => (await Promise.all(validFactories.map(async (factory) => {
|
|
273
278
|
try {
|
|
274
|
-
return await factory(
|
|
279
|
+
return await factory(driveHeader);
|
|
275
280
|
}
|
|
276
281
|
catch (e) {
|
|
277
|
-
logger.error(`Error creating processor for drive ${
|
|
282
|
+
logger.error(`Error creating processor for drive ${driveHeader.id}:`, e);
|
|
278
283
|
return [];
|
|
279
284
|
}
|
|
280
285
|
}))).flat());
|
|
@@ -292,6 +297,10 @@ export async function startAPI(reactor, options) {
|
|
|
292
297
|
});
|
|
293
298
|
// Set up event listeners
|
|
294
299
|
setupEventListeners(packages, reactor, graphqlManager, processorManager, module);
|
|
300
|
+
if (mcpServerEnabled) {
|
|
301
|
+
await setupMcpServer(reactor, app);
|
|
302
|
+
logger.info(`MCP server available at http://localhost:${port}/mcp`);
|
|
303
|
+
}
|
|
295
304
|
// Start the server
|
|
296
305
|
await startServer(app, port, options.https);
|
|
297
306
|
return { app, graphqlManager, processorManager, packages };
|