@powerhousedao/reactor-api 4.1.0-dev.8 → 4.1.0-dev.81

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.
Files changed (202) hide show
  1. package/README.md +16 -10
  2. package/dist/codegen.d.ts +4 -0
  3. package/dist/codegen.d.ts.map +1 -0
  4. package/dist/codegen.js +38 -0
  5. package/dist/codegen.js.map +1 -0
  6. package/dist/index.d.ts +5 -2
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +5 -2
  9. package/dist/index.js.map +1 -1
  10. package/dist/src/config.d.ts +3 -0
  11. package/dist/src/config.d.ts.map +1 -1
  12. package/dist/src/config.js +6 -0
  13. package/dist/src/config.js.map +1 -1
  14. package/dist/src/graphql/analytics-subgraph.d.ts +14 -0
  15. package/dist/src/graphql/analytics-subgraph.d.ts.map +1 -0
  16. package/dist/src/graphql/{analytics/index.js → analytics-subgraph.js} +4 -4
  17. package/dist/src/graphql/analytics-subgraph.js.map +1 -0
  18. package/dist/src/graphql/base-subgraph.d.ts +17 -0
  19. package/dist/src/graphql/base-subgraph.d.ts.map +1 -0
  20. package/dist/src/graphql/{base/index.js → base-subgraph.js} +4 -2
  21. package/dist/src/graphql/base-subgraph.js.map +1 -0
  22. package/dist/src/graphql/drive-subgraph.d.ts +13 -0
  23. package/dist/src/graphql/drive-subgraph.d.ts.map +1 -0
  24. package/dist/src/graphql/{drive/index.js → drive-subgraph.js} +41 -20
  25. package/dist/src/graphql/drive-subgraph.js.map +1 -0
  26. package/dist/src/graphql/graphql-manager.d.ts +10 -13
  27. package/dist/src/graphql/graphql-manager.d.ts.map +1 -1
  28. package/dist/src/graphql/graphql-manager.js +69 -35
  29. package/dist/src/graphql/graphql-manager.js.map +1 -1
  30. package/dist/src/graphql/index.d.ts +7 -8
  31. package/dist/src/graphql/index.d.ts.map +1 -1
  32. package/dist/src/graphql/index.js +7 -19
  33. package/dist/src/graphql/index.js.map +1 -1
  34. package/dist/src/graphql/reactor/adapters.d.ts +28 -0
  35. package/dist/src/graphql/reactor/adapters.d.ts.map +1 -0
  36. package/dist/src/graphql/reactor/adapters.js +92 -0
  37. package/dist/src/graphql/reactor/adapters.js.map +1 -0
  38. package/dist/src/graphql/reactor/factory.d.ts +84 -0
  39. package/dist/src/graphql/reactor/factory.d.ts.map +1 -0
  40. package/dist/src/graphql/reactor/factory.js +7 -0
  41. package/dist/src/graphql/reactor/factory.js.map +1 -0
  42. package/dist/src/graphql/reactor/gen/graphql.d.ts +979 -0
  43. package/dist/src/graphql/reactor/gen/graphql.d.ts.map +1 -0
  44. package/dist/src/graphql/reactor/gen/graphql.js +383 -0
  45. package/dist/src/graphql/reactor/gen/graphql.js.map +1 -0
  46. package/dist/src/graphql/reactor/index.d.ts +4 -0
  47. package/dist/src/graphql/reactor/index.d.ts.map +1 -0
  48. package/dist/src/graphql/reactor/index.js +4 -0
  49. package/dist/src/graphql/reactor/index.js.map +1 -0
  50. package/dist/src/graphql/reactor/requester.d.ts +4 -0
  51. package/dist/src/graphql/reactor/requester.d.ts.map +1 -0
  52. package/dist/src/graphql/reactor/requester.js +22 -0
  53. package/dist/src/graphql/reactor/requester.js.map +1 -0
  54. package/dist/src/graphql/reactor/requester.with-zod.d.ts +4 -0
  55. package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +1 -0
  56. package/dist/src/graphql/reactor/requester.with-zod.js +53 -0
  57. package/dist/src/graphql/reactor/requester.with-zod.js.map +1 -0
  58. package/dist/src/graphql/reactor/resolvers.d.ts +60 -0
  59. package/dist/src/graphql/reactor/resolvers.d.ts.map +1 -0
  60. package/dist/src/graphql/reactor/resolvers.js +173 -0
  61. package/dist/src/graphql/reactor/resolvers.js.map +1 -0
  62. package/dist/src/graphql/reactor/subgraph.d.ts +12 -0
  63. package/dist/src/graphql/reactor/subgraph.d.ts.map +1 -0
  64. package/dist/src/graphql/reactor/subgraph.js +159 -0
  65. package/dist/src/graphql/reactor/subgraph.js.map +1 -0
  66. package/dist/src/graphql/reactor/validation.d.ts +374 -0
  67. package/dist/src/graphql/reactor/validation.d.ts.map +1 -0
  68. package/dist/src/graphql/reactor/validation.js +73 -0
  69. package/dist/src/graphql/reactor/validation.js.map +1 -0
  70. package/dist/src/graphql/system/index.d.ts +2 -30
  71. package/dist/src/graphql/system/index.d.ts.map +1 -1
  72. package/dist/src/graphql/system/index.js +2 -95
  73. package/dist/src/graphql/system/index.js.map +1 -1
  74. package/dist/src/graphql/system/system-subgraph.d.ts +33 -0
  75. package/dist/src/graphql/system/system-subgraph.d.ts.map +1 -0
  76. package/dist/src/graphql/system/system-subgraph.js +96 -0
  77. package/dist/src/graphql/system/system-subgraph.js.map +1 -0
  78. package/dist/src/graphql/system/types.d.ts +1 -2
  79. package/dist/src/graphql/system/types.d.ts.map +1 -1
  80. package/dist/src/graphql/{drive/temp-hack-rwa-type-defs.d.ts → temp-hack-rwa-type-defs.d.ts} +2 -2
  81. package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts.map +1 -0
  82. package/dist/src/graphql/temp-hack-rwa-type-defs.js.map +1 -0
  83. package/dist/src/graphql/types.d.ts +8 -5
  84. package/dist/src/graphql/types.d.ts.map +1 -1
  85. package/dist/src/graphql/utils.d.ts +3 -0
  86. package/dist/src/graphql/utils.d.ts.map +1 -0
  87. package/dist/src/graphql/utils.js +13 -0
  88. package/dist/src/graphql/utils.js.map +1 -0
  89. package/dist/src/packages/import-loader.d.ts +4 -4
  90. package/dist/src/packages/import-loader.d.ts.map +1 -1
  91. package/dist/src/packages/import-loader.js +7 -6
  92. package/dist/src/packages/import-loader.js.map +1 -1
  93. package/dist/src/packages/import-resolver.d.ts +5 -0
  94. package/dist/src/packages/import-resolver.d.ts.map +1 -0
  95. package/dist/src/packages/import-resolver.js +127 -0
  96. package/dist/src/packages/import-resolver.js.map +1 -0
  97. package/dist/src/packages/package-manager.d.ts +3 -3
  98. package/dist/src/packages/package-manager.d.ts.map +1 -1
  99. package/dist/src/packages/package-manager.js +26 -10
  100. package/dist/src/packages/package-manager.js.map +1 -1
  101. package/dist/src/packages/types.d.ts +3 -3
  102. package/dist/src/packages/types.d.ts.map +1 -1
  103. package/dist/src/packages/util.d.ts +21 -2
  104. package/dist/src/packages/util.d.ts.map +1 -1
  105. package/dist/src/packages/util.js +54 -5
  106. package/dist/src/packages/util.js.map +1 -1
  107. package/dist/src/packages/vite-loader.d.ts +22 -0
  108. package/dist/src/packages/vite-loader.d.ts.map +1 -0
  109. package/dist/src/packages/vite-loader.js +147 -0
  110. package/dist/src/packages/vite-loader.js.map +1 -0
  111. package/dist/src/server.d.ts +13 -7
  112. package/dist/src/server.d.ts.map +1 -1
  113. package/dist/src/server.js +52 -84
  114. package/dist/src/server.js.map +1 -1
  115. package/dist/src/services/auth.service.d.ts +64 -0
  116. package/dist/src/services/auth.service.d.ts.map +1 -0
  117. package/dist/src/services/auth.service.js +154 -0
  118. package/dist/src/services/auth.service.js.map +1 -0
  119. package/dist/src/sync/types.d.ts +10 -0
  120. package/dist/src/sync/types.d.ts.map +1 -0
  121. package/dist/src/sync/types.js +2 -0
  122. package/dist/src/sync/types.js.map +1 -0
  123. package/dist/src/sync/utils.d.ts +2 -10
  124. package/dist/src/sync/utils.d.ts.map +1 -1
  125. package/dist/src/sync/utils.js +1 -1
  126. package/dist/src/sync/utils.js.map +1 -1
  127. package/dist/src/types.d.ts +5 -6
  128. package/dist/src/types.d.ts.map +1 -1
  129. package/dist/src/utils/create-schema.d.ts +3 -3
  130. package/dist/src/utils/create-schema.d.ts.map +1 -1
  131. package/dist/src/utils/create-schema.js +27 -8
  132. package/dist/src/utils/create-schema.js.map +1 -1
  133. package/dist/src/utils/db.d.ts +1 -1
  134. package/dist/src/utils/db.d.ts.map +1 -1
  135. package/dist/src/utils/db.js.map +1 -1
  136. package/dist/test/benchmarks/load.bench.d.ts +2 -0
  137. package/dist/test/benchmarks/load.bench.d.ts.map +1 -0
  138. package/dist/test/benchmarks/load.bench.js +73 -0
  139. package/dist/test/benchmarks/load.bench.js.map +1 -0
  140. package/dist/test/benchmarks/sync.bench.d.ts +2 -0
  141. package/dist/test/benchmarks/sync.bench.d.ts.map +1 -0
  142. package/dist/test/benchmarks/sync.bench.js +119 -0
  143. package/dist/test/benchmarks/sync.bench.js.map +1 -0
  144. package/dist/test/drive-handlers.d.ts +4 -0
  145. package/dist/test/drive-handlers.d.ts.map +1 -0
  146. package/dist/test/drive-handlers.js +39 -0
  147. package/dist/test/drive-handlers.js.map +1 -0
  148. package/dist/test/drive.test.d.ts +2 -0
  149. package/dist/test/drive.test.d.ts.map +1 -0
  150. package/dist/test/drive.test.js +142 -0
  151. package/dist/test/drive.test.js.map +1 -0
  152. package/dist/test/index.d.ts +3 -0
  153. package/dist/test/index.d.ts.map +1 -0
  154. package/dist/test/index.js +3 -0
  155. package/dist/test/index.js.map +1 -0
  156. package/dist/test/pull-responder-transmitter.test.d.ts +2 -0
  157. package/dist/test/pull-responder-transmitter.test.d.ts.map +1 -0
  158. package/dist/test/pull-responder-transmitter.test.js +220 -0
  159. package/dist/test/pull-responder-transmitter.test.js.map +1 -0
  160. package/dist/test/push-transmitter.test.d.ts +2 -0
  161. package/dist/test/push-transmitter.test.d.ts.map +1 -0
  162. package/dist/test/push-transmitter.test.js +179 -0
  163. package/dist/test/push-transmitter.test.js.map +1 -0
  164. package/dist/test/reactor-client.test.d.ts +2 -0
  165. package/dist/test/reactor-client.test.d.ts.map +1 -0
  166. package/dist/test/reactor-client.test.js +212 -0
  167. package/dist/test/reactor-client.test.js.map +1 -0
  168. package/dist/test/reactor-resolvers.test.d.ts +2 -0
  169. package/dist/test/reactor-resolvers.test.d.ts.map +1 -0
  170. package/dist/test/reactor-resolvers.test.js +523 -0
  171. package/dist/test/reactor-resolvers.test.js.map +1 -0
  172. package/dist/test/router.test.d.ts +2 -0
  173. package/dist/test/router.test.d.ts.map +1 -0
  174. package/dist/test/router.test.js +38 -0
  175. package/dist/test/router.test.js.map +1 -0
  176. package/dist/test/system.test.d.ts +2 -0
  177. package/dist/test/system.test.d.ts.map +1 -0
  178. package/dist/test/system.test.js +211 -0
  179. package/dist/test/system.test.js.map +1 -0
  180. package/dist/test/utils.d.ts +10 -0
  181. package/dist/test/utils.d.ts.map +1 -0
  182. package/dist/test/utils.js +23 -0
  183. package/dist/test/utils.js.map +1 -0
  184. package/dist/tsconfig.tsbuildinfo +1 -0
  185. package/dist/vitest.config.d.ts +3 -0
  186. package/dist/vitest.config.d.ts.map +1 -0
  187. package/dist/vitest.config.js +24 -0
  188. package/dist/vitest.config.js.map +1 -0
  189. package/package.json +38 -22
  190. package/dist/src/graphql/analytics/index.d.ts +0 -14
  191. package/dist/src/graphql/analytics/index.d.ts.map +0 -1
  192. package/dist/src/graphql/analytics/index.js.map +0 -1
  193. package/dist/src/graphql/base/index.d.ts +0 -17
  194. package/dist/src/graphql/base/index.d.ts.map +0 -1
  195. package/dist/src/graphql/base/index.js.map +0 -1
  196. package/dist/src/graphql/drive/index.d.ts +0 -13
  197. package/dist/src/graphql/drive/index.d.ts.map +0 -1
  198. package/dist/src/graphql/drive/index.js.map +0 -1
  199. package/dist/src/graphql/drive/temp-hack-rwa-type-defs.d.ts.map +0 -1
  200. package/dist/src/graphql/drive/temp-hack-rwa-type-defs.js.map +0 -1
  201. package/dist/tsconfig.lib.tsbuildinfo +0 -1
  202. /package/dist/src/graphql/{drive/temp-hack-rwa-type-defs.js → temp-hack-rwa-type-defs.js} +0 -0
@@ -1,5 +1,7 @@
1
1
  import { childLogger } from "document-drive";
2
2
  import { execSync } from "node:child_process";
3
+ import path from "node:path";
4
+ import { resolveLinkedPackage } from "./import-resolver.js";
3
5
  const logger = childLogger(["reactor-api", "packages/util"]);
4
6
  export const installPackages = async (packages) => {
5
7
  for (const packageName of packages) {
@@ -11,22 +13,69 @@ export const readManifest = () => {
11
13
  return manifest;
12
14
  };
13
15
  /**
14
- * Tries to import a dependency from a package. This function cannot throw.
16
+ * Tries to import document models from a package. This function cannot throw.
15
17
  */
16
- export async function loadDependency(packageName, subPath) {
18
+ export async function loadDocumentModels(packageName) {
19
+ return loadDependency(packageName, "document-models");
20
+ }
21
+ /**
22
+ * Tries to import subgraphs from a package. This function cannot throw.
23
+ */
24
+ export async function loadSubgraphs(packageName) {
25
+ return loadDependency(packageName, "subgraphs");
26
+ }
27
+ /**
28
+ * Tries to import processors from a package. This function cannot throw.
29
+ */
30
+ export async function loadProcessors(packageName) {
31
+ return loadDependency(packageName, "processors");
32
+ }
33
+ /**
34
+ * Generic dependency loader - tries to import a dependency from a package. This function cannot throw.
35
+ * Returns null if the dependency cannot be loaded.
36
+ */
37
+ async function loadDependency(packageName, subPath) {
38
+ const fullPath = `${packageName}/${subPath}`;
39
+ // Try the standard import first
17
40
  try {
18
- const fullPath = `${packageName}/${subPath}`;
19
41
  // vite does not support this, but that's okay as we have provided the
20
42
  // vite-loader for this purpose
21
- return await import(/* @vite-ignore */ fullPath);
43
+ const module = await import(/* @vite-ignore */ fullPath);
44
+ return module;
22
45
  }
23
46
  catch (e) {
47
+ // Handle module not found errors with fallback resolution
24
48
  if (e instanceof Error &&
25
49
  "code" in e &&
26
- !["ERR_PACKAGE_PATH_NOT_EXPORTED", "ERR_MODULE_NOT_FOUND"].includes(e.code)) {
50
+ (e.code === "ERR_MODULE_NOT_FOUND" ||
51
+ e.code === "ERR_UNSUPPORTED_DIR_IMPORT")) {
52
+ const result = await resolveLinkedPackage(packageName, subPath);
53
+ if (result)
54
+ return result;
55
+ // Only log when ALL attempts have failed
56
+ logger.warn(`Unable to load dependency ${fullPath} - tried standard import, suggested paths, resolved paths, and workspace patterns`);
27
57
  logger.debug(e);
28
58
  }
59
+ else if (e instanceof Error &&
60
+ "code" in e &&
61
+ ["ERR_PACKAGE_PATH_NOT_EXPORTED", "ERR_MODULE_NOT_FOUND"].includes(e.code)) {
62
+ return null;
63
+ }
64
+ else {
65
+ logger.error(`Unexpected error loading ${fullPath}:`, e);
66
+ }
29
67
  return null;
30
68
  }
31
69
  }
70
+ export function debounce(func, delay = 100) {
71
+ let timeoutId;
72
+ return (...args) => {
73
+ clearTimeout(timeoutId);
74
+ timeoutId = setTimeout(() => func(...args), delay);
75
+ };
76
+ }
77
+ export function isSubpath(parent, dir) {
78
+ const relative = path.relative(parent, dir);
79
+ return relative && !relative.startsWith("..") && !path.isAbsolute(relative);
80
+ }
32
81
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/packages/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,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,cAAc,CAClC,WAAmB,EACnB,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC;QAE7C,sEAAsE;QACtE,+BAA+B;QAC/B,OAAO,MAAM,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IACE,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,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/packages/util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { SubgraphClass } from "@powerhousedao/reactor-api";
2
+ import type { IProcessorHostModule, ProcessorFactory } from "document-drive";
3
+ import type { DocumentModelModule } from "document-model";
4
+ import type { ViteDevServer } from "vite";
5
+ import type { ISubscribablePackageLoader, 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,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,KAAK,EACV,0BAA0B,EAC1B,oBAAoB,EACrB,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;IAgCtE,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IA4B3D,cAAc,CAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAiCvE,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,147 @@
1
+ import { viteCommonjs } from "@originjs/vite-plugin-commonjs";
2
+ import { isSubgraphClass } from "@powerhousedao/reactor-api";
3
+ import { childLogger } from "document-drive";
4
+ import path from "node:path";
5
+ import { createServer } from "vite";
6
+ import { debounce, isSubpath } from "./util.js";
7
+ export class VitePackageLoader {
8
+ logger = childLogger(["reactor-api", "vite-loader"]);
9
+ vite;
10
+ static async build(vite) {
11
+ const server = vite ?? (await startViteServer());
12
+ return new VitePackageLoader(server);
13
+ }
14
+ constructor(vite) {
15
+ this.vite = vite;
16
+ }
17
+ getDocumentModelsPath(identifier) {
18
+ return path.join(identifier, "./document-models");
19
+ }
20
+ getSubgraphsPath(identifier) {
21
+ return path.join(identifier, "./subgraphs");
22
+ }
23
+ getProcessorsPath(identifier) {
24
+ return path.join(identifier, "./processors");
25
+ }
26
+ async loadDocumentModels(identifier) {
27
+ const fullPath = this.getDocumentModelsPath(identifier);
28
+ this.logger.verbose("Loading document models from", fullPath);
29
+ try {
30
+ const localDMs = (await this.vite.ssrLoadModule(fullPath));
31
+ const exports = Object.values(localDMs);
32
+ // duck type
33
+ const documentModels = [];
34
+ for (const dm of exports) {
35
+ if (dm.documentModel) {
36
+ documentModels.push(dm);
37
+ }
38
+ }
39
+ this.logger.verbose(` ➜ Loaded ${documentModels.length} Document Models from: ${identifier}`);
40
+ return documentModels;
41
+ }
42
+ catch (e) {
43
+ this.logger.debug(` ➜ No Document Models found for: ${identifier}`, e);
44
+ }
45
+ return [];
46
+ }
47
+ async loadSubgraphs(identifier) {
48
+ const fullPath = this.getSubgraphsPath(identifier);
49
+ this.logger.verbose("Loading subgraphs from", fullPath);
50
+ let localSubgraphs = {};
51
+ try {
52
+ localSubgraphs = await this.vite.ssrLoadModule(fullPath);
53
+ }
54
+ catch (e) {
55
+ this.logger.debug(` ➜ No Subgraphs found for: ${identifier}`, e);
56
+ return [];
57
+ }
58
+ const subgraphs = [];
59
+ for (const [name, subgraph] of Object.entries(localSubgraphs)) {
60
+ const SubgraphClass = subgraph[name];
61
+ if (isSubgraphClass(SubgraphClass)) {
62
+ subgraphs.push(SubgraphClass);
63
+ }
64
+ }
65
+ this.logger.debug(` ➜ Loaded ${subgraphs.length} Subgraphs from: ${identifier}`);
66
+ return subgraphs;
67
+ }
68
+ async loadProcessors(identifier) {
69
+ const fullPath = this.getProcessorsPath(identifier);
70
+ this.logger.verbose("Loading processors from", fullPath);
71
+ try {
72
+ const module = await this.vite.ssrLoadModule(fullPath);
73
+ if (module.processorFactory &&
74
+ typeof module.processorFactory === "function") {
75
+ this.logger.verbose(` ➜ Loaded Processor factory from: ${identifier}`);
76
+ return module.processorFactory;
77
+ }
78
+ }
79
+ catch (e) {
80
+ this.logger.debug(` ➜ No Processor Factory found for: ${identifier}`, e);
81
+ }
82
+ this.logger.verbose(` ➜ No Processor Factory found for: ${identifier}`);
83
+ // return empty processor factory
84
+ return null;
85
+ }
86
+ onDocumentModelsChange(identifier, handler, options) {
87
+ const documentModelsPath = this.getDocumentModelsPath(identifier);
88
+ const listener = debounce(async (changedPath) => {
89
+ if (isSubpath(documentModelsPath, changedPath)) {
90
+ const documentModels = await this.loadDocumentModels(identifier);
91
+ handler(documentModels);
92
+ }
93
+ }, options?.debounce ?? 100);
94
+ this.vite.watcher.on("change", listener);
95
+ return () => {
96
+ this.vite.watcher.off("change", listener);
97
+ };
98
+ }
99
+ onSubgraphsChange(identifier, handler, options) {
100
+ const subgraphsPath = this.getSubgraphsPath(identifier);
101
+ const listener = debounce(async (changedPath) => {
102
+ if (isSubpath(subgraphsPath, changedPath)) {
103
+ const subgraphs = await this.loadSubgraphs(identifier);
104
+ handler(subgraphs);
105
+ }
106
+ }, options?.debounce ?? 100);
107
+ this.vite.watcher.on("change", listener);
108
+ return () => {
109
+ this.vite.watcher.off("change", listener);
110
+ };
111
+ }
112
+ onProcessorsChange(identifier, handler, options) {
113
+ const processorsPath = this.getProcessorsPath(identifier);
114
+ const listener = debounce(async (changedPath) => {
115
+ if (isSubpath(processorsPath, changedPath)) {
116
+ const processors = await this.loadProcessors(identifier);
117
+ handler(processors);
118
+ }
119
+ }, options?.debounce ?? 100);
120
+ this.vite.watcher.on("change", listener);
121
+ return () => {
122
+ this.vite.watcher.off("change", listener);
123
+ };
124
+ }
125
+ }
126
+ export async function startViteServer() {
127
+ const vite = await createServer({
128
+ server: { middlewareMode: true },
129
+ appType: "custom",
130
+ build: {
131
+ rollupOptions: {
132
+ input: [],
133
+ },
134
+ },
135
+ plugins: [
136
+ viteCommonjs(),
137
+ {
138
+ name: "suppress-hmr",
139
+ handleHotUpdate() {
140
+ return []; // return empty array to suppress server refresh
141
+ },
142
+ },
143
+ ],
144
+ });
145
+ return vite;
146
+ }
147
+ //# sourceMappingURL=vite-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-loader.js","sourceRoot":"","sources":["../../../src/packages/vite-loader.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { type IPackageLoader } from "#packages/types.js";
2
- import { type PGlite } from "@electric-sql/pglite";
3
- import { type IDocumentDriveServer } from "document-drive";
4
- import { type Express } from "express";
5
- import { type Pool } from "pg";
6
- import { type API, type Processor } from "./types.js";
1
+ import type { PGlite } from "@electric-sql/pglite";
2
+ import type { IReactorClient } from "@powerhousedao/reactor";
3
+ import type { IDocumentDriveServer } from "document-drive";
4
+ import type { Express } from "express";
5
+ import type { Pool } from "pg";
6
+ import type { API, IPackageLoader, Processor } from "./types.js";
7
7
  type Options = {
8
8
  express?: Express;
9
9
  port?: number;
@@ -23,16 +23,22 @@ type Options = {
23
23
  } | boolean | undefined;
24
24
  packageLoader?: IPackageLoader;
25
25
  processors?: Record<string, Processor>;
26
+ mcp?: boolean;
27
+ processorConfig?: Map<string, unknown>;
28
+ subgraphs?: {
29
+ isReactorv2Enabled?: boolean;
30
+ };
26
31
  };
27
32
  /**
28
33
  * Starts the API server.
29
34
  *
30
35
  * @param reactor - The document drive server.
36
+ * @param client - The reactor client. For now, this sits side-by-side with the reactor. In the future, we will want to replace one with the other.
31
37
  * @param options - Additional options for server configuration. These options intended to be serializable.
32
38
  * @param overrides - System overrides. These overrides are intended to be object references.
33
39
  *
34
40
  * @returns The API server.
35
41
  */
36
- export declare function startAPI(reactor: IDocumentDriveServer, options: Options): Promise<API>;
42
+ export declare function startAPI(reactor: IDocumentDriveServer, client: IReactorClient, options: Options): Promise<API>;
37
43
  export {};
38
44
  //# sourceMappingURL=server.d.ts.map
@@ -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;AAMnD,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;CACxC,CAAC;AA2LF;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,GAAG,CAAC,CAwNd"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAInD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAU7D,OAAO,KAAK,EAEV,oBAAoB,EAKrB,MAAM,gBAAgB,CAAC;AAMxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMvC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAM/B,OAAO,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAKjE,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;IACd,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE;QACV,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,CAAC;CACH,CAAC;AAsLF;;;;;;;;;GASG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,GAAG,CAAC,CAwLd"}
@@ -1,19 +1,17 @@
1
- import { config } from "#config.js";
2
- import { GraphQLManager } from "#graphql/graphql-manager.js";
3
- import { renderGraphqlPlayground } from "#graphql/playground.js";
4
- import { ImportPackageLoader } from "#packages/import-loader.js";
5
- import { getUniqueDocumentModels, PackageManager, } from "#packages/package-manager.js";
6
1
  import { PostgresAnalyticsStore } from "@powerhousedao/analytics-engine-pg";
7
- import { getConfig } from "@powerhousedao/config/utils";
8
- import { verifyAuthBearerToken } from "@renown/sdk";
2
+ import { getConfig } from "@powerhousedao/config/node";
3
+ import { getUniqueDocumentModels, GraphQLManager, PackageManager, renderGraphqlPlayground, } from "@powerhousedao/reactor-api";
4
+ import { setupMcpServer } from "@powerhousedao/reactor-mcp";
9
5
  import devcert from "devcert";
10
- import { childLogger, } from "document-drive";
11
- import { ProcessorManager } from "document-drive/processors/processor-manager";
12
- import { createRelationalDb } from "document-drive/processors/utils";
6
+ import { childLogger, createRelationalDb, ProcessorManager, } from "document-drive";
13
7
  import express from "express";
14
8
  import fs from "node:fs";
15
9
  import https from "node:https";
16
10
  import path from "node:path";
11
+ import { config, DefaultCoreSubgraphs } from "./config.js";
12
+ import { ReactorSubgraph } from "./graphql/reactor/subgraph.js";
13
+ import { ImportPackageLoader } from "./packages/import-loader.js";
14
+ import { AuthService } from "./services/auth.service.js";
17
15
  import { getDbClient, initAnalyticsStoreSql } from "./utils/db.js";
18
16
  const logger = childLogger(["reactor-api", "server"]);
19
17
  const DEFAULT_PORT = 4000;
@@ -50,29 +48,23 @@ async function initializeDatabaseAndAnalytics(dbPath) {
50
48
  /**
51
49
  * Sets up the subgraph manager and registers subgraphs
52
50
  */
53
- async function setupGraphQLManager(app, reactor, relationalDb, analyticsStore, subgraphs, auth) {
54
- const graphqlManager = new GraphQLManager(config.basePath, app, reactor, relationalDb, analyticsStore);
55
- await graphqlManager.init();
56
- for (const [, collection] of subgraphs.entries()) {
51
+ async function setupGraphQLManager(app, reactor, client, relationalDb, analyticsStore, subgraphs, auth) {
52
+ const graphqlManager = new GraphQLManager(config.basePath, app, reactor, client, relationalDb, analyticsStore);
53
+ await graphqlManager.init(subgraphs.core);
54
+ for (const [, collection] of subgraphs.extended.entries()) {
57
55
  for (const subgraph of collection) {
58
56
  await graphqlManager.registerSubgraph(subgraph, "graphql");
59
57
  }
60
58
  }
61
59
  await graphqlManager.updateRouter();
62
- if (auth?.enabled) {
63
- graphqlManager.setAdditionalContextFields({
64
- isGuest: (address) => auth.enabled && auth.guests?.includes(address.toLowerCase()),
65
- isUser: (address) => auth.enabled && auth.users?.includes(address.toLowerCase()),
66
- isAdmin: (address) => auth.enabled && auth.admins?.includes(address.toLowerCase()),
67
- });
68
- }
69
- else {
70
- graphqlManager.setAdditionalContextFields({
71
- isGuest: (address) => true,
72
- isUser: (address) => true,
73
- isAdmin: (address) => true,
74
- });
75
- }
60
+ // Create auth service for context fields
61
+ const authService = new AuthService({
62
+ enabled: auth?.enabled ?? false,
63
+ guests: auth?.guests ?? [],
64
+ users: auth?.users ?? [],
65
+ admins: auth?.admins ?? [],
66
+ });
67
+ graphqlManager.setAdditionalContextFields(authService.getAdditionalContextFields());
76
68
  return graphqlManager;
77
69
  }
78
70
  /**
@@ -80,11 +72,7 @@ async function setupGraphQLManager(app, reactor, relationalDb, analyticsStore, s
80
72
  */
81
73
  function setupEventListeners(pkgManager, reactor, graphqlManager, processorManager, module) {
82
74
  pkgManager.onDocumentModelsChange(async (documentModels) => {
83
- const uniqueModels = getUniqueDocumentModels([
84
- ...reactor.getDocumentModelModules(),
85
- ...Object.values(documentModels).flat(),
86
- ]);
87
- reactor.setDocumentModelModules(uniqueModels);
75
+ reactor.setDocumentModelModules(Object.values(documentModels).flat());
88
76
  await graphqlManager.updateRouter();
89
77
  });
90
78
  pkgManager.onSubgraphsChange(async (packagedSubgraphs) => {
@@ -102,7 +90,7 @@ function setupEventListeners(pkgManager, reactor, graphqlManager, processorManag
102
90
  analyticsStore: module.analyticsStore,
103
91
  relationalDb: module.relationalDb,
104
92
  }));
105
- await processorManager.registerFactory(packageName, async (driveId) => (await Promise.all(factories.map((factory) => factory(driveId)))).flat());
93
+ await processorManager.registerFactory(packageName, async (driveHeader) => (await Promise.all(factories.map((factory) => factory(driveHeader)))).flat());
106
94
  }
107
95
  });
108
96
  }
@@ -142,14 +130,16 @@ async function startServer(app, port, httpsOptions) {
142
130
  * Starts the API server.
143
131
  *
144
132
  * @param reactor - The document drive server.
133
+ * @param client - The reactor client. For now, this sits side-by-side with the reactor. In the future, we will want to replace one with the other.
145
134
  * @param options - Additional options for server configuration. These options intended to be serializable.
146
135
  * @param overrides - System overrides. These overrides are intended to be object references.
147
136
  *
148
137
  * @returns The API server.
149
138
  */
150
- export async function startAPI(reactor, options) {
139
+ export async function startAPI(reactor, client, options) {
151
140
  const port = options.port ?? DEFAULT_PORT;
152
141
  const app = options.express ?? express();
142
+ const mcpServerEnabled = options.mcp ?? true;
153
143
  let admins = [];
154
144
  let users = [];
155
145
  let guests = [];
@@ -180,53 +170,18 @@ export async function startAPI(reactor, options) {
180
170
  if (ADMINS !== undefined) {
181
171
  admins = ADMINS.split(",").map((a) => a.toLowerCase());
182
172
  }
183
- const all = [...admins, ...users, ...guests];
173
+ const authService = new AuthService({
174
+ enabled: authEnabled,
175
+ guests,
176
+ users,
177
+ admins,
178
+ });
184
179
  // add auth middleware if auth is enabled
185
180
  if (authEnabled) {
186
- // set admin, users and guest list
187
- logger.info("> Setting up Auth middleware");
188
- app.use(async (req, res, next) => {
189
- if (!authEnabled || req.method === "OPTIONS" || req.method === "GET") {
190
- next();
191
- return;
192
- }
193
- req.admins = admins;
194
- req.users = users;
195
- req.guests = guests;
196
- const token = req.headers.authorization?.split(" ")[1];
197
- if (!token) {
198
- res.status(400).json({ error: "Missing authorization token" });
199
- return;
200
- }
201
- const verified = await verifyAuthBearerToken(token);
202
- if (!verified) {
203
- res.status(401).json({ error: "Verification failed" });
204
- return;
205
- }
206
- const { address, chainId, networkId } = verified.verifiableCredential
207
- .credentialSubject;
208
- // @todo: check renown eth credential
209
- if (!address || !chainId || !networkId) {
210
- res.status(401).json({ error: "Missing credentials" });
211
- return;
212
- }
213
- req.user = {
214
- address: address.toLowerCase(),
215
- chainId,
216
- networkId,
217
- };
218
- graphqlManager.setAdditionalContextFields({
219
- user: {
220
- address: address.toLowerCase(),
221
- chainId,
222
- networkId,
223
- },
224
- });
225
- if (!all.includes(req.user.address)) {
226
- res.status(403).json({ error: "Forbidden" });
227
- return;
228
- }
229
- next();
181
+ logger.info("Setting up Auth middleware");
182
+ // Apply auth middleware to all routes including GraphQL
183
+ app.use((req, res, next) => {
184
+ authService.authenticate(req, res, next);
230
185
  });
231
186
  }
232
187
  const defaultRouter = express.Router();
@@ -259,8 +214,10 @@ export async function startAPI(reactor, options) {
259
214
  const factories = fns.map((fn) => {
260
215
  try {
261
216
  return fn({
217
+ // TODO: figure out why this type comes out as any
262
218
  analyticsStore: module.analyticsStore,
263
219
  relationalDb: module.relationalDb,
220
+ config: options.processorConfig,
264
221
  });
265
222
  }
266
223
  catch (e) {
@@ -272,12 +229,12 @@ export async function startAPI(reactor, options) {
272
229
  if (!validFactories.length) {
273
230
  continue;
274
231
  }
275
- await processorManager.registerFactory(packageName, async (driveId) => (await Promise.all(validFactories.map(async (factory) => {
232
+ await processorManager.registerFactory(packageName, async (driveHeader) => (await Promise.all(validFactories.map(async (factory) => {
276
233
  try {
277
- return await factory(driveId);
234
+ return await factory(driveHeader);
278
235
  }
279
236
  catch (e) {
280
- logger.error(`Error creating processor for drive ${driveId}:`, e);
237
+ logger.error(`Error creating processor for drive ${driveHeader.id}:`, e);
281
238
  return [];
282
239
  }
283
240
  }))).flat());
@@ -287,7 +244,14 @@ export async function startAPI(reactor, options) {
287
244
  await processorManager.registerDrive(drive.header.id);
288
245
  });
289
246
  // set up subgraph manager
290
- const graphqlManager = await setupGraphQLManager(app, reactor, relationalDb, analyticsStore, subgraphs, {
247
+ const coreSubgraphs = DefaultCoreSubgraphs.slice();
248
+ if (options.subgraphs?.isReactorv2Enabled) {
249
+ coreSubgraphs.push(ReactorSubgraph);
250
+ }
251
+ const graphqlManager = await setupGraphQLManager(app, reactor, client, relationalDb, analyticsStore, {
252
+ extended: subgraphs,
253
+ core: coreSubgraphs,
254
+ }, {
291
255
  enabled: authEnabled,
292
256
  guests,
293
257
  users,
@@ -295,6 +259,10 @@ export async function startAPI(reactor, options) {
295
259
  });
296
260
  // Set up event listeners
297
261
  setupEventListeners(packages, reactor, graphqlManager, processorManager, module);
262
+ if (mcpServerEnabled) {
263
+ await setupMcpServer(reactor, app);
264
+ logger.info(`MCP server available at http://localhost:${port}/mcp`);
265
+ }
298
266
  // Start the server
299
267
  await startServer(app, port, options.https);
300
268
  return { app, graphqlManager, processorManager, packages };
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}