@powerhousedao/switchboard 6.0.0-staging.3 → 6.0.0
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/.env +7 -3
- package/Auth.md +45 -27
- package/CHANGELOG.md +1678 -11
- package/README.md +55 -12
- package/dist/index.d.mts +2 -0
- package/dist/index.mjs +224 -0
- package/dist/index.mjs.map +1 -0
- package/dist/install-packages.d.mts +1 -0
- package/dist/install-packages.mjs +34 -0
- package/dist/install-packages.mjs.map +1 -0
- package/dist/migrate.d.mts +1 -0
- package/dist/migrate.mjs +79 -0
- package/dist/migrate.mjs.map +1 -0
- package/dist/server-DwBiiN-E.mjs +801 -0
- package/dist/server-DwBiiN-E.mjs.map +1 -0
- package/dist/server.d.mts +116 -0
- package/dist/server.d.mts.map +1 -0
- package/dist/server.mjs +6 -0
- package/dist/utils-BVNg1DRI.mjs +81 -0
- package/dist/utils-BVNg1DRI.mjs.map +1 -0
- package/dist/utils.d.mts +10 -0
- package/dist/utils.d.mts.map +1 -0
- package/dist/utils.mjs +4 -0
- package/package.json +60 -29
- package/test/attachments/auth.test.ts +219 -0
- package/test/attachments/index.test.ts +119 -0
- package/test/attachments/routes-integration.test.ts +103 -0
- package/test/attachments/routes.test.ts +864 -0
- package/test/metrics.test.ts +202 -0
- package/test/pglite-dialect.test.ts +40 -0
- package/test/pglite-version.test.ts +37 -0
- package/tsconfig.json +18 -3
- package/tsdown.config.ts +16 -0
- package/vitest.config.ts +11 -0
- package/Dockerfile +0 -86
- package/dist/src/clients/redis.d.ts +0 -5
- package/dist/src/clients/redis.d.ts.map +0 -1
- package/dist/src/clients/redis.js +0 -48
- package/dist/src/clients/redis.js.map +0 -1
- package/dist/src/config.d.ts +0 -12
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/config.js +0 -33
- package/dist/src/config.js.map +0 -1
- package/dist/src/feature-flags.d.ts +0 -2
- package/dist/src/feature-flags.d.ts.map +0 -1
- package/dist/src/feature-flags.js +0 -9
- package/dist/src/feature-flags.js.map +0 -1
- package/dist/src/index.d.ts +0 -3
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -21
- package/dist/src/index.js.map +0 -1
- package/dist/src/install-packages.d.ts +0 -2
- package/dist/src/install-packages.d.ts.map +0 -1
- package/dist/src/install-packages.js +0 -36
- package/dist/src/install-packages.js.map +0 -1
- package/dist/src/migrate.d.ts +0 -3
- package/dist/src/migrate.d.ts.map +0 -1
- package/dist/src/migrate.js +0 -65
- package/dist/src/migrate.js.map +0 -1
- package/dist/src/profiler.d.ts +0 -9
- package/dist/src/profiler.d.ts.map +0 -1
- package/dist/src/profiler.js +0 -43
- package/dist/src/profiler.js.map +0 -1
- package/dist/src/renown.d.ts +0 -16
- package/dist/src/renown.d.ts.map +0 -1
- package/dist/src/renown.js +0 -33
- package/dist/src/renown.js.map +0 -1
- package/dist/src/server.d.ts +0 -5
- package/dist/src/server.d.ts.map +0 -1
- package/dist/src/server.js +0 -325
- package/dist/src/server.js.map +0 -1
- package/dist/src/types.d.ts +0 -74
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -2
- package/dist/src/types.js.map +0 -1
- package/dist/src/utils.d.ts +0 -6
- package/dist/src/utils.d.ts.map +0 -1
- package/dist/src/utils.js +0 -92
- package/dist/src/utils.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/entrypoint.sh +0 -17
package/dist/src/migrate.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/migrate.ts"],"names":[],"mappings":""}
|
package/dist/src/migrate.js
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { Kysely, PostgresDialect } from "kysely";
|
|
3
|
-
import { Pool } from "pg";
|
|
4
|
-
import { runMigrations, getMigrationStatus, REACTOR_SCHEMA, } from "@powerhousedao/reactor";
|
|
5
|
-
import { getConfig } from "@powerhousedao/config/node";
|
|
6
|
-
function isPostgresUrl(url) {
|
|
7
|
-
return url.startsWith("postgresql://") || url.startsWith("postgres://");
|
|
8
|
-
}
|
|
9
|
-
async function main() {
|
|
10
|
-
const command = process.argv[2];
|
|
11
|
-
const config = getConfig();
|
|
12
|
-
const dbPath = process.env.PH_REACTOR_DATABASE_URL ??
|
|
13
|
-
process.env.DATABASE_URL ??
|
|
14
|
-
config.switchboard?.database?.url;
|
|
15
|
-
if (!dbPath || !isPostgresUrl(dbPath)) {
|
|
16
|
-
console.log("No PostgreSQL URL configured. Skipping migrations.");
|
|
17
|
-
console.log("(PGlite migrations are handled automatically on startup)");
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
console.log(`Database: ${dbPath}`);
|
|
21
|
-
const pool = new Pool({ connectionString: dbPath });
|
|
22
|
-
const db = new Kysely({
|
|
23
|
-
dialect: new PostgresDialect({ pool }),
|
|
24
|
-
});
|
|
25
|
-
try {
|
|
26
|
-
if (command === "status") {
|
|
27
|
-
console.log("\nChecking migration status...");
|
|
28
|
-
const migrations = await getMigrationStatus(db, REACTOR_SCHEMA);
|
|
29
|
-
console.log("\nMigration Status:");
|
|
30
|
-
console.log("=================");
|
|
31
|
-
for (const migration of migrations) {
|
|
32
|
-
const status = migration.executedAt
|
|
33
|
-
? `[OK] Executed at ${migration.executedAt.toISOString()}`
|
|
34
|
-
: "[--] Pending";
|
|
35
|
-
console.log(`${status} - ${migration.name}`);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
console.log("\nRunning migrations...");
|
|
40
|
-
const result = await runMigrations(db, REACTOR_SCHEMA);
|
|
41
|
-
if (!result.success) {
|
|
42
|
-
console.error("Migration failed:", result.error?.message);
|
|
43
|
-
process.exit(1);
|
|
44
|
-
}
|
|
45
|
-
if (result.migrationsExecuted.length === 0) {
|
|
46
|
-
console.log("No migrations to run - database is up to date");
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
console.log(`Successfully executed ${result.migrationsExecuted.length} migration(s):`);
|
|
50
|
-
for (const name of result.migrationsExecuted) {
|
|
51
|
-
console.log(` - ${name}`);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
catch (error) {
|
|
57
|
-
console.error("Error:", error instanceof Error ? error.message : String(error));
|
|
58
|
-
process.exit(1);
|
|
59
|
-
}
|
|
60
|
-
finally {
|
|
61
|
-
await db.destroy();
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
void main();
|
|
65
|
-
//# sourceMappingURL=migrate.js.map
|
package/dist/src/migrate.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/migrate.ts"],"names":[],"mappings":"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"}
|
package/dist/src/profiler.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { PyroscopeConfig } from "@pyroscope/nodejs";
|
|
2
|
-
export declare function initProfilerFromEnv(env: typeof process.env): Promise<void>;
|
|
3
|
-
interface ProfilerFlags {
|
|
4
|
-
wallEnabled?: boolean;
|
|
5
|
-
heapEnabled?: boolean;
|
|
6
|
-
}
|
|
7
|
-
export declare function initProfiler(options?: PyroscopeConfig, flags?: ProfilerFlags): Promise<void>;
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=profiler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profiler.d.ts","sourceRoot":"","sources":["../../src/profiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,OAAO,OAAO,CAAC,GAAG,iBAgChE;AAED,UAAU,aAAa;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAsB,YAAY,CAChC,OAAO,CAAC,EAAE,eAAe,EACzB,KAAK,GAAE,aAAyD,iBAqBjE"}
|
package/dist/src/profiler.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
export async function initProfilerFromEnv(env) {
|
|
2
|
-
const { PYROSCOPE_SERVER_ADDRESS: serverAddress, PYROSCOPE_APPLICATION_NAME: appName, PYROSCOPE_USER: basicAuthUser, PYROSCOPE_PASSWORD: basicAuthPassword, PYROSCOPE_WALL_ENABLED: wallEnabled, PYROSCOPE_HEAP_ENABLED: heapEnabled, } = env;
|
|
3
|
-
const options = {
|
|
4
|
-
serverAddress,
|
|
5
|
-
appName,
|
|
6
|
-
basicAuthUser,
|
|
7
|
-
basicAuthPassword,
|
|
8
|
-
// Wall profiling captures wall-clock time (includes async I/O waits)
|
|
9
|
-
// This shows GraphQL resolvers even when waiting for database
|
|
10
|
-
wall: {
|
|
11
|
-
samplingDurationMs: 10000, // 10 second sampling windows
|
|
12
|
-
samplingIntervalMicros: 10000, // 10ms sampling interval (100 samples/sec)
|
|
13
|
-
collectCpuTime: true, // Also collect CPU time alongside wall time
|
|
14
|
-
},
|
|
15
|
-
// Heap profiling for memory allocation tracking
|
|
16
|
-
heap: {
|
|
17
|
-
samplingIntervalBytes: 512 * 1024, // Sample every 512KB allocated
|
|
18
|
-
stackDepth: 64, // Capture deeper stacks for better context
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
return initProfiler(options, {
|
|
22
|
-
wallEnabled: wallEnabled !== "false",
|
|
23
|
-
heapEnabled: heapEnabled === "true",
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
export async function initProfiler(options, flags = { wallEnabled: true, heapEnabled: false }) {
|
|
27
|
-
console.log("Initializing Pyroscope profiler at:", options?.serverAddress);
|
|
28
|
-
console.log(" Wall profiling:", flags.wallEnabled ? "enabled" : "disabled");
|
|
29
|
-
console.log(" Heap profiling:", flags.heapEnabled ? "enabled" : "disabled");
|
|
30
|
-
const { default: Pyroscope } = await import("@pyroscope/nodejs");
|
|
31
|
-
Pyroscope.init(options);
|
|
32
|
-
// Start wall profiling (captures async I/O time - shows resolvers)
|
|
33
|
-
if (flags.wallEnabled) {
|
|
34
|
-
Pyroscope.startWallProfiling();
|
|
35
|
-
}
|
|
36
|
-
// Start CPU profiling (captures CPU-bound work)
|
|
37
|
-
Pyroscope.startCpuProfiling();
|
|
38
|
-
// Optionally start heap profiling (memory allocations)
|
|
39
|
-
if (flags.heapEnabled) {
|
|
40
|
-
Pyroscope.startHeapProfiling();
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=profiler.js.map
|
package/dist/src/profiler.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profiler.js","sourceRoot":"","sources":["../../src/profiler.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAuB;IAC/D,MAAM,EACJ,wBAAwB,EAAE,aAAa,EACvC,0BAA0B,EAAE,OAAO,EACnC,cAAc,EAAE,aAAa,EAC7B,kBAAkB,EAAE,iBAAiB,EACrC,sBAAsB,EAAE,WAAW,EACnC,sBAAsB,EAAE,WAAW,GACpC,GAAG,GAAG,CAAC;IAER,MAAM,OAAO,GAAoB;QAC/B,aAAa;QACb,OAAO;QACP,aAAa;QACb,iBAAiB;QACjB,qEAAqE;QACrE,8DAA8D;QAC9D,IAAI,EAAE;YACJ,kBAAkB,EAAE,KAAK,EAAE,6BAA6B;YACxD,sBAAsB,EAAE,KAAK,EAAE,2CAA2C;YAC1E,cAAc,EAAE,IAAI,EAAE,4CAA4C;SACnE;QACD,gDAAgD;QAChD,IAAI,EAAE;YACJ,qBAAqB,EAAE,GAAG,GAAG,IAAI,EAAE,+BAA+B;YAClE,UAAU,EAAE,EAAE,EAAE,2CAA2C;SAC5D;KACF,CAAC;IACF,OAAO,YAAY,CAAC,OAAO,EAAE;QAC3B,WAAW,EAAE,WAAW,KAAK,OAAO;QACpC,WAAW,EAAE,WAAW,KAAK,MAAM;KACpC,CAAC,CAAC;AACL,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAyB,EACzB,QAAuB,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;IAEhE,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAE7E,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACjE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAExB,mEAAmE;IACnE,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,SAAS,CAAC,kBAAkB,EAAE,CAAC;IACjC,CAAC;IAED,gDAAgD;IAChD,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAE9B,uDAAuD;IACvD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,SAAS,CAAC,kBAAkB,EAAE,CAAC;IACjC,CAAC;AACH,CAAC"}
|
package/dist/src/renown.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { type IRenown } from "@renown/sdk/node";
|
|
2
|
-
export interface RenownOptions {
|
|
3
|
-
/** Path to the keypair file. Defaults to .ph/.keypair.json in cwd */
|
|
4
|
-
keypairPath?: string;
|
|
5
|
-
/** If true, won't generate a new keypair if none exists */
|
|
6
|
-
requireExisting?: boolean;
|
|
7
|
-
/** Base url of the Renown instance to use */
|
|
8
|
-
baseUrl?: string;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Initialize Renown for the Switchboard instance.
|
|
12
|
-
* This allows Switchboard to authenticate with remote services
|
|
13
|
-
* using the same identity established during `ph login`.
|
|
14
|
-
*/
|
|
15
|
-
export declare function initRenown(options?: RenownOptions): Promise<IRenown | null>;
|
|
16
|
-
//# sourceMappingURL=renown.d.ts.map
|
package/dist/src/renown.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"renown.d.ts","sourceRoot":"","sources":["../../src/renown.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,OAAO,EACb,MAAM,kBAAkB,CAAC;AAI1B,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAqCzB"}
|
package/dist/src/renown.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { childLogger } from "document-drive";
|
|
2
|
-
import { DEFAULT_RENOWN_URL, NodeKeyStorage, RenownBuilder, RenownCryptoBuilder, } from "@renown/sdk/node";
|
|
3
|
-
const logger = childLogger(["switchboard", "renown"]);
|
|
4
|
-
/**
|
|
5
|
-
* Initialize Renown for the Switchboard instance.
|
|
6
|
-
* This allows Switchboard to authenticate with remote services
|
|
7
|
-
* using the same identity established during `ph login`.
|
|
8
|
-
*/
|
|
9
|
-
export async function initRenown(options = {}) {
|
|
10
|
-
const { keypairPath, requireExisting = false, baseUrl = DEFAULT_RENOWN_URL, } = options;
|
|
11
|
-
const keyStorage = new NodeKeyStorage(keypairPath, {
|
|
12
|
-
logger,
|
|
13
|
-
});
|
|
14
|
-
// Check if we have an existing keypair
|
|
15
|
-
const existingKeyPair = await keyStorage.loadKeyPair();
|
|
16
|
-
if (!existingKeyPair && requireExisting) {
|
|
17
|
-
throw new Error("No existing keypair found and requireExisting is true. " +
|
|
18
|
-
'Run "ph login" to create one.');
|
|
19
|
-
}
|
|
20
|
-
if (!existingKeyPair) {
|
|
21
|
-
logger.info("No existing keypair found. A new one will be generated.");
|
|
22
|
-
}
|
|
23
|
-
const renownCrypto = await new RenownCryptoBuilder()
|
|
24
|
-
.withKeyPairStorage(keyStorage)
|
|
25
|
-
.build();
|
|
26
|
-
const renown = await new RenownBuilder("switchboard", {})
|
|
27
|
-
.withCrypto(renownCrypto)
|
|
28
|
-
.withBaseUrl(baseUrl)
|
|
29
|
-
.build();
|
|
30
|
-
logger.info("Switchboard identity initialized: @did", renownCrypto.did);
|
|
31
|
-
return renown;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=renown.js.map
|
package/dist/src/renown.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"renown.js","sourceRoot":"","sources":["../../src/renown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,mBAAmB,GAEpB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;AAWtD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAyB,EAAE;IAE3B,MAAM,EACJ,WAAW,EACX,eAAe,GAAG,KAAK,EACvB,OAAO,GAAG,kBAAkB,GAC7B,GAAG,OAAO,CAAC;IAEZ,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,WAAW,EAAE;QACjD,MAAM;KACP,CAAC,CAAC;IAEH,uCAAuC;IACvC,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;IAEvD,IAAI,CAAC,eAAe,IAAI,eAAe,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,yDAAyD;YACvD,+BAA+B,CAClC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,IAAI,mBAAmB,EAAE;SACjD,kBAAkB,CAAC,UAAU,CAAC;SAC9B,KAAK,EAAE,CAAC;IAEX,MAAM,MAAM,GAAG,MAAM,IAAI,aAAa,CAAC,aAAa,EAAE,EAAE,CAAC;SACtD,UAAU,CAAC,YAAY,CAAC;SACxB,WAAW,CAAC,OAAO,CAAC;SACpB,KAAK,EAAE,CAAC;IAEX,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IAExE,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/src/server.d.ts
DELETED
package/dist/src/server.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":";AA4CA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA0UzE,eAAO,MAAM,gBAAgB,GAC3B,UAAS,kBAAuB,KAC/B,OAAO,CAAC,kBAAkB,CAmF5B,CAAC;AAEF,cAAc,YAAY,CAAC"}
|
package/dist/src/server.js
DELETED
|
@@ -1,325 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { PGlite } from "@electric-sql/pglite";
|
|
3
|
-
import { ChannelScheme, EventBus, ReactorBuilder, ReactorClientBuilder, driveCollectionId, parseDriveUrl, } from "@powerhousedao/reactor";
|
|
4
|
-
import { VitePackageLoader, createViteLogger, getUniqueDocumentModels, initializeAndStartAPI, startViteServer, } from "@powerhousedao/reactor-api";
|
|
5
|
-
import {} from "@renown/sdk";
|
|
6
|
-
import * as Sentry from "@sentry/node";
|
|
7
|
-
import { DocumentAlreadyExistsError, InMemoryCache, ReactorBuilder as LegacyReactorBuilder, childLogger, driveDocumentModelModule, } from "document-drive";
|
|
8
|
-
import { RedisCache } from "document-drive/cache/redis";
|
|
9
|
-
import { FilesystemStorage } from "document-drive/storage/filesystem";
|
|
10
|
-
import { PrismaStorageFactory } from "document-drive/storage/prisma";
|
|
11
|
-
import { documentModelDocumentModelModule } from "document-model";
|
|
12
|
-
import dotenv from "dotenv";
|
|
13
|
-
import express from "express";
|
|
14
|
-
import { Kysely, PostgresDialect } from "kysely";
|
|
15
|
-
import { PGliteDialect } from "kysely-pglite-dialect";
|
|
16
|
-
import path from "path";
|
|
17
|
-
import { Pool } from "pg";
|
|
18
|
-
import { initRedis } from "./clients/redis.js";
|
|
19
|
-
import { initFeatureFlags } from "./feature-flags.js";
|
|
20
|
-
import { initProfilerFromEnv } from "./profiler.js";
|
|
21
|
-
import { initRenown } from "./renown.js";
|
|
22
|
-
import { addDefaultDrive, addRemoteDrive, isPostgresUrl } from "./utils.js";
|
|
23
|
-
const defaultLogger = childLogger(["switchboard"]);
|
|
24
|
-
dotenv.config();
|
|
25
|
-
// Feature flag constants
|
|
26
|
-
const DOCUMENT_MODEL_SUBGRAPHS_ENABLED = "DOCUMENT_MODEL_SUBGRAPHS_ENABLED";
|
|
27
|
-
const DOCUMENT_MODEL_SUBGRAPHS_ENABLED_DEFAULT = true;
|
|
28
|
-
const REACTOR_STORAGE_V2 = "REACTOR_STORAGE_V2";
|
|
29
|
-
const REACTOR_STORAGE_V2_DEFAULT = true;
|
|
30
|
-
const ENABLE_DUAL_ACTION_CREATE = "ENABLE_DUAL_ACTION_CREATE";
|
|
31
|
-
const ENABLE_DUAL_ACTION_CREATE_DEFAULT = true;
|
|
32
|
-
const USE_NEW_DOCUMENT_MODEL_SUBGRAPH = "USE_NEW_DOCUMENT_MODEL_SUBGRAPH";
|
|
33
|
-
const USE_NEW_DOCUMENT_MODEL_SUBGRAPH_DEFAULT = true;
|
|
34
|
-
// Create a monolith express app for all subgraphs
|
|
35
|
-
const app = express();
|
|
36
|
-
if (process.env.SENTRY_DSN) {
|
|
37
|
-
defaultLogger.info("Initialized Sentry with env: @env", process.env.SENTRY_ENV);
|
|
38
|
-
Sentry.init({
|
|
39
|
-
dsn: process.env.SENTRY_DSN,
|
|
40
|
-
environment: process.env.SENTRY_ENV,
|
|
41
|
-
});
|
|
42
|
-
Sentry.setupExpressErrorHandler(app);
|
|
43
|
-
}
|
|
44
|
-
const DEFAULT_PORT = process.env.PORT ? Number(process.env.PORT) : 4001;
|
|
45
|
-
async function initPrismaStorage(connectionString, cache) {
|
|
46
|
-
try {
|
|
47
|
-
const prismaFactory = new PrismaStorageFactory(connectionString, cache);
|
|
48
|
-
await prismaFactory.checkConnection();
|
|
49
|
-
return prismaFactory.build();
|
|
50
|
-
}
|
|
51
|
-
catch (e) {
|
|
52
|
-
const prismaConnectError = "Can't reach database server at";
|
|
53
|
-
if (e instanceof Error && e.message.includes(prismaConnectError)) {
|
|
54
|
-
const dbUrl = connectionString;
|
|
55
|
-
const safeUrl = `${dbUrl.slice(0, dbUrl.indexOf(":") + 1)}{...}${dbUrl.slice(dbUrl.indexOf("@"), dbUrl.lastIndexOf("?"))}`;
|
|
56
|
-
defaultLogger.warn("Can't reach database server at '@safeUrl'", safeUrl);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
defaultLogger.error("@error", e);
|
|
60
|
-
}
|
|
61
|
-
throw e;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
async function initReactorStorage(cache, dbPath = "./.ph/drive-storage") {
|
|
65
|
-
const isPostgres = isPostgresUrl(dbPath);
|
|
66
|
-
try {
|
|
67
|
-
if (isPostgres) {
|
|
68
|
-
const connectionString = dbPath.includes("amazonaws") && !dbPath.includes("sslmode=no-verify")
|
|
69
|
-
? dbPath + "?sslmode=no-verify"
|
|
70
|
-
: dbPath;
|
|
71
|
-
const storage = await initPrismaStorage(connectionString, cache);
|
|
72
|
-
return { storage, storagePath: dbPath };
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
catch {
|
|
76
|
-
defaultLogger.warn("Falling back to filesystem storage");
|
|
77
|
-
}
|
|
78
|
-
// if url was postgres and connection failed, fallback to filesystem on default path
|
|
79
|
-
const filesystemPath = isPostgres ? "./.ph/drive-storage" : dbPath;
|
|
80
|
-
return {
|
|
81
|
-
storage: new FilesystemStorage(path.join(process.cwd(), filesystemPath)),
|
|
82
|
-
storagePath: filesystemPath,
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
async function initServer(serverPort, options, renown) {
|
|
86
|
-
const { dev, packages = [], remoteDrives = [], logger = defaultLogger, } = options;
|
|
87
|
-
const dbPath = options.dbPath ?? process.env.DATABASE_URL;
|
|
88
|
-
// start redis if configured
|
|
89
|
-
const redisUrl = process.env.REDIS_TLS_URL ?? process.env.REDIS_URL;
|
|
90
|
-
let redis;
|
|
91
|
-
if (redisUrl) {
|
|
92
|
-
try {
|
|
93
|
-
redis = await initRedis(redisUrl);
|
|
94
|
-
}
|
|
95
|
-
catch (e) {
|
|
96
|
-
logger.error("@error", e);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
const cache = redis ? new RedisCache(redis) : new InMemoryCache();
|
|
100
|
-
const { storage, storagePath } = await initReactorStorage(cache, dbPath);
|
|
101
|
-
// if dbPath is not configured, or it was a postgres url but the connection failed,
|
|
102
|
-
// use default path for read model storage
|
|
103
|
-
const readModelPath = !dbPath || (isPostgresUrl(dbPath) && dbPath !== storagePath)
|
|
104
|
-
? ".ph/read-storage"
|
|
105
|
-
: dbPath;
|
|
106
|
-
const initializeDriveServer = async (documentModels) => {
|
|
107
|
-
const driveServer = new LegacyReactorBuilder(getUniqueDocumentModels([
|
|
108
|
-
documentModelDocumentModelModule,
|
|
109
|
-
driveDocumentModelModule,
|
|
110
|
-
...documentModels,
|
|
111
|
-
]))
|
|
112
|
-
.withStorage(storage)
|
|
113
|
-
.withCache(cache)
|
|
114
|
-
.withOptions({
|
|
115
|
-
featureFlags: {
|
|
116
|
-
enableDualActionCreate: options.reactorOptions?.enableDualActionCreate ?? false,
|
|
117
|
-
},
|
|
118
|
-
})
|
|
119
|
-
.build();
|
|
120
|
-
// init drive server
|
|
121
|
-
await driveServer.initialize();
|
|
122
|
-
return driveServer;
|
|
123
|
-
};
|
|
124
|
-
const reactorLogger = logger.child(["reactor"]);
|
|
125
|
-
const initializeClient = async (driveServer, documentModels) => {
|
|
126
|
-
const eventBus = new EventBus();
|
|
127
|
-
const builder = new ReactorBuilder()
|
|
128
|
-
.withEventBus(eventBus)
|
|
129
|
-
.withDocumentModels(getUniqueDocumentModels([
|
|
130
|
-
documentModelDocumentModelModule,
|
|
131
|
-
driveDocumentModelModule,
|
|
132
|
-
...documentModels,
|
|
133
|
-
]))
|
|
134
|
-
.withLegacyStorage(storage)
|
|
135
|
-
.withChannelScheme(ChannelScheme.SWITCHBOARD)
|
|
136
|
-
.withSignalHandlers()
|
|
137
|
-
.withLogger(reactorLogger);
|
|
138
|
-
const maxSkipThreshold = parseInt(process.env.MAX_SKIP_THRESHOLD ?? "", 10);
|
|
139
|
-
if (!isNaN(maxSkipThreshold) && maxSkipThreshold > 0) {
|
|
140
|
-
builder.withExecutorConfig({ maxSkipThreshold });
|
|
141
|
-
logger.info(`Reactor maxSkipThreshold set to ${maxSkipThreshold}`);
|
|
142
|
-
}
|
|
143
|
-
const reactorDbUrl = process.env.PH_REACTOR_DATABASE_URL;
|
|
144
|
-
if (reactorDbUrl && isPostgresUrl(reactorDbUrl)) {
|
|
145
|
-
const connectionString = reactorDbUrl.includes("?")
|
|
146
|
-
? reactorDbUrl
|
|
147
|
-
: `${reactorDbUrl}?sslmode=disable`;
|
|
148
|
-
const pool = new Pool({ connectionString });
|
|
149
|
-
const kysely = new Kysely({
|
|
150
|
-
dialect: new PostgresDialect({ pool }),
|
|
151
|
-
});
|
|
152
|
-
builder.withKysely(kysely);
|
|
153
|
-
logger.info("Using PostgreSQL for reactor storage");
|
|
154
|
-
}
|
|
155
|
-
else {
|
|
156
|
-
const pglitePath = "./.ph/reactor-storage";
|
|
157
|
-
const pglite = new PGlite(pglitePath);
|
|
158
|
-
const kysely = new Kysely({
|
|
159
|
-
dialect: new PGliteDialect(pglite),
|
|
160
|
-
});
|
|
161
|
-
builder.withKysely(kysely);
|
|
162
|
-
logger.info("Using PGlite for reactor storage");
|
|
163
|
-
}
|
|
164
|
-
const clientBuilder = new ReactorClientBuilder().withReactorBuilder(builder);
|
|
165
|
-
if (renown) {
|
|
166
|
-
clientBuilder.withSigner(renown.signer);
|
|
167
|
-
}
|
|
168
|
-
const module = await clientBuilder.buildModule();
|
|
169
|
-
// Return the full ReactorClientModule
|
|
170
|
-
return module;
|
|
171
|
-
};
|
|
172
|
-
let defaultDriveUrl = undefined;
|
|
173
|
-
// TODO get path from powerhouse config
|
|
174
|
-
// start vite server if dev mode is enabled
|
|
175
|
-
const basePath = process.cwd();
|
|
176
|
-
const viteLogger = createViteLogger(logger);
|
|
177
|
-
const vite = dev
|
|
178
|
-
? await startViteServer(process.cwd(), viteLogger)
|
|
179
|
-
: undefined;
|
|
180
|
-
// get paths to local document models
|
|
181
|
-
if (!options.disableLocalPackages) {
|
|
182
|
-
packages.push(basePath);
|
|
183
|
-
}
|
|
184
|
-
// storageV2=true means use new reactor (NOT legacy)
|
|
185
|
-
const legacyReactor = !options.reactorOptions?.storageV2;
|
|
186
|
-
// create loader with legacyReactor option
|
|
187
|
-
const packageLoader = vite
|
|
188
|
-
? VitePackageLoader.build(vite, { legacyReactor })
|
|
189
|
-
: undefined;
|
|
190
|
-
const apiLogger = logger.child(["reactor-api"]);
|
|
191
|
-
const api = await initializeAndStartAPI(initializeDriveServer, initializeClient, {
|
|
192
|
-
express: app,
|
|
193
|
-
port: serverPort,
|
|
194
|
-
dbPath: readModelPath,
|
|
195
|
-
https: options.https,
|
|
196
|
-
packageLoader,
|
|
197
|
-
packages: packages,
|
|
198
|
-
processorConfig: options.processorConfig,
|
|
199
|
-
configFile: options.configFile ??
|
|
200
|
-
path.join(process.cwd(), "powerhouse.config.json"),
|
|
201
|
-
mcp: options.mcp ?? true,
|
|
202
|
-
logger: apiLogger,
|
|
203
|
-
enableDocumentModelSubgraphs: options.enableDocumentModelSubgraphs,
|
|
204
|
-
useNewDocumentModelSubgraph: options.useNewDocumentModelSubgraph,
|
|
205
|
-
legacyReactor,
|
|
206
|
-
}, "switchboard");
|
|
207
|
-
const { client, driveServer } = api;
|
|
208
|
-
// Create default drive if provided
|
|
209
|
-
if (options.drive) {
|
|
210
|
-
if (!renown) {
|
|
211
|
-
throw new Error("Cannot create default drive without Renown identity");
|
|
212
|
-
}
|
|
213
|
-
defaultDriveUrl = await addDefaultDrive(driveServer, client, options.drive, serverPort);
|
|
214
|
-
}
|
|
215
|
-
// add vite middleware after express app is initialized if applicable
|
|
216
|
-
if (vite) {
|
|
217
|
-
api.app.use(vite.middlewares);
|
|
218
|
-
}
|
|
219
|
-
// Connect to remote drives AFTER packages are loaded
|
|
220
|
-
if (remoteDrives.length > 0) {
|
|
221
|
-
for (const remoteDriveUrl of remoteDrives) {
|
|
222
|
-
let driveId;
|
|
223
|
-
try {
|
|
224
|
-
if (legacyReactor) {
|
|
225
|
-
// Use legacy reactor's addRemoteDrive
|
|
226
|
-
const remoteDrive = await addRemoteDrive(driveServer, remoteDriveUrl);
|
|
227
|
-
driveId = remoteDrive.header.id;
|
|
228
|
-
}
|
|
229
|
-
else {
|
|
230
|
-
// Use new reactor's sync manager
|
|
231
|
-
const { syncManager } = api;
|
|
232
|
-
const parsed = parseDriveUrl(remoteDriveUrl);
|
|
233
|
-
driveId = parsed.driveId;
|
|
234
|
-
const remoteName = `remote-drive-${driveId}-${crypto.randomUUID()}`;
|
|
235
|
-
await syncManager.add(remoteName, driveCollectionId("main", driveId), {
|
|
236
|
-
type: "gql",
|
|
237
|
-
parameters: { url: parsed.graphqlEndpoint },
|
|
238
|
-
});
|
|
239
|
-
}
|
|
240
|
-
logger.debug("Remote drive @remoteDriveUrl synced", remoteDriveUrl);
|
|
241
|
-
}
|
|
242
|
-
catch (error) {
|
|
243
|
-
if (error instanceof DocumentAlreadyExistsError) {
|
|
244
|
-
logger.debug("Remote drive already added: @remoteDriveUrl", remoteDriveUrl);
|
|
245
|
-
driveId = remoteDriveUrl.split("/").pop();
|
|
246
|
-
}
|
|
247
|
-
else {
|
|
248
|
-
logger.error("Failed to connect to remote drive @remoteDriveUrl: @error", remoteDriveUrl, error);
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
finally {
|
|
252
|
-
// Construct local URL once in finally block
|
|
253
|
-
if (!defaultDriveUrl && driveId) {
|
|
254
|
-
const protocol = options.https ? "https" : "http";
|
|
255
|
-
defaultDriveUrl = `${protocol}://localhost:${serverPort}/d/${driveId}`;
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
return {
|
|
261
|
-
defaultDriveUrl,
|
|
262
|
-
api,
|
|
263
|
-
reactor: client,
|
|
264
|
-
legacyReactor: driveServer,
|
|
265
|
-
renown,
|
|
266
|
-
};
|
|
267
|
-
}
|
|
268
|
-
export const startSwitchboard = async (options = {}) => {
|
|
269
|
-
const serverPort = options.port ?? DEFAULT_PORT;
|
|
270
|
-
// Initialize feature flags
|
|
271
|
-
const featureFlags = await initFeatureFlags();
|
|
272
|
-
const enableDocumentModelSubgraphs = await featureFlags.getBooleanValue(DOCUMENT_MODEL_SUBGRAPHS_ENABLED, options.enableDocumentModelSubgraphs ??
|
|
273
|
-
DOCUMENT_MODEL_SUBGRAPHS_ENABLED_DEFAULT);
|
|
274
|
-
options.enableDocumentModelSubgraphs = enableDocumentModelSubgraphs;
|
|
275
|
-
const storageV2 = await featureFlags.getBooleanValue(REACTOR_STORAGE_V2, options.reactorOptions?.storageV2 ?? REACTOR_STORAGE_V2_DEFAULT);
|
|
276
|
-
const enableDualActionCreate = await featureFlags.getBooleanValue(ENABLE_DUAL_ACTION_CREATE, options.reactorOptions?.enableDualActionCreate ??
|
|
277
|
-
ENABLE_DUAL_ACTION_CREATE_DEFAULT);
|
|
278
|
-
const useNewDocumentModelSubgraph = await featureFlags.getBooleanValue(USE_NEW_DOCUMENT_MODEL_SUBGRAPH, options.useNewDocumentModelSubgraph ??
|
|
279
|
-
USE_NEW_DOCUMENT_MODEL_SUBGRAPH_DEFAULT);
|
|
280
|
-
options.useNewDocumentModelSubgraph = useNewDocumentModelSubgraph;
|
|
281
|
-
options.reactorOptions = {
|
|
282
|
-
enableDualActionCreate,
|
|
283
|
-
storageV2,
|
|
284
|
-
};
|
|
285
|
-
const logger = options.logger ?? defaultLogger;
|
|
286
|
-
logger.info("Feature flags: @flags", JSON.stringify({
|
|
287
|
-
DOCUMENT_MODEL_SUBGRAPHS_ENABLED: enableDocumentModelSubgraphs,
|
|
288
|
-
REACTOR_STORAGE_V2: storageV2,
|
|
289
|
-
ENABLE_DUAL_ACTION_CREATE: enableDualActionCreate,
|
|
290
|
-
USE_NEW_DOCUMENT_MODEL_SUBGRAPH: useNewDocumentModelSubgraph,
|
|
291
|
-
}, null, 2));
|
|
292
|
-
if (process.env.PYROSCOPE_SERVER_ADDRESS) {
|
|
293
|
-
try {
|
|
294
|
-
await initProfilerFromEnv(process.env);
|
|
295
|
-
}
|
|
296
|
-
catch (e) {
|
|
297
|
-
Sentry.captureException(e);
|
|
298
|
-
logger.error("Error starting profiler: @error", e);
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
// Initialize Renown if identity options are provided or keypair exists
|
|
302
|
-
let renown = null;
|
|
303
|
-
try {
|
|
304
|
-
renown = await initRenown(options.identity);
|
|
305
|
-
}
|
|
306
|
-
catch (e) {
|
|
307
|
-
logger.warn("Failed to initialize ConnectCrypto: @error", e);
|
|
308
|
-
if (options.identity?.requireExisting) {
|
|
309
|
-
throw new Error('Identity required but failed to initialize. Run "ph login" first.');
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
try {
|
|
313
|
-
return await initServer(serverPort, options, renown);
|
|
314
|
-
}
|
|
315
|
-
catch (e) {
|
|
316
|
-
Sentry.captureException(e);
|
|
317
|
-
logger.error("App crashed: @error", e);
|
|
318
|
-
throw e;
|
|
319
|
-
}
|
|
320
|
-
};
|
|
321
|
-
export * from "./types.js";
|
|
322
|
-
if (import.meta.main) {
|
|
323
|
-
await startSwitchboard();
|
|
324
|
-
}
|
|
325
|
-
//# sourceMappingURL=server.js.map
|
package/dist/src/server.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types.d.ts
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import type { IReactorClient } from "@powerhousedao/reactor";
|
|
2
|
-
import type { IRenown } from "@renown/sdk";
|
|
3
|
-
import type { DriveInput, IDocumentDriveServer, ILogger } from "document-drive";
|
|
4
|
-
export type StorageOptions = {
|
|
5
|
-
type: "filesystem" | "memory" | "postgres" | "browser";
|
|
6
|
-
filesystemPath?: string;
|
|
7
|
-
postgresUrl?: string;
|
|
8
|
-
};
|
|
9
|
-
export type IdentityOptions = {
|
|
10
|
-
/** Path to the keypair file. Defaults to ~/.ph/keypair.json */
|
|
11
|
-
keypairPath?: string;
|
|
12
|
-
/**
|
|
13
|
-
* If true, won't start without an existing keypair.
|
|
14
|
-
* Use this to ensure the switchboard only runs with an authenticated identity.
|
|
15
|
-
*/
|
|
16
|
-
requireExisting?: boolean;
|
|
17
|
-
/** Base url of the Renown instance to use */
|
|
18
|
-
baseUrl?: string;
|
|
19
|
-
};
|
|
20
|
-
export type StartServerOptions = {
|
|
21
|
-
configFile?: string;
|
|
22
|
-
port?: number;
|
|
23
|
-
dev?: boolean;
|
|
24
|
-
dbPath?: string;
|
|
25
|
-
drive?: DriveInput;
|
|
26
|
-
packages?: string[];
|
|
27
|
-
remoteDrives?: string[];
|
|
28
|
-
https?: {
|
|
29
|
-
keyPath: string;
|
|
30
|
-
certPath: string;
|
|
31
|
-
} | boolean | undefined;
|
|
32
|
-
auth?: {
|
|
33
|
-
enabled: boolean;
|
|
34
|
-
guests: string[];
|
|
35
|
-
users: string[];
|
|
36
|
-
admins: string[];
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* Identity options for Renown.
|
|
40
|
-
* When configured, the switchboard will load the keypair from `ph login`
|
|
41
|
-
* and can authenticate with remote services on behalf of the user.
|
|
42
|
-
*/
|
|
43
|
-
identity?: IdentityOptions;
|
|
44
|
-
mcp?: boolean;
|
|
45
|
-
processorConfig?: Map<string, unknown>;
|
|
46
|
-
disableLocalPackages?: boolean;
|
|
47
|
-
reactorOptions?: {
|
|
48
|
-
/**
|
|
49
|
-
* When true, both legacy and new reactors will use CREATE/UPDATE operation
|
|
50
|
-
* flow for new documents.
|
|
51
|
-
*/
|
|
52
|
-
enableDualActionCreate?: boolean;
|
|
53
|
-
/**
|
|
54
|
-
* When true, the new Reactor uses only the new Kysely-based storage
|
|
55
|
-
* instead of the legacy document-drive storage.
|
|
56
|
-
*/
|
|
57
|
-
storageV2?: boolean;
|
|
58
|
-
};
|
|
59
|
-
enableDocumentModelSubgraphs?: boolean;
|
|
60
|
-
/**
|
|
61
|
-
* When true, uses the new DocumentModelSubgraph class that uses reactorClient.
|
|
62
|
-
* When false (default), uses the legacy DocumentModelSubgraphLegacy class.
|
|
63
|
-
*/
|
|
64
|
-
useNewDocumentModelSubgraph?: boolean;
|
|
65
|
-
logger?: ILogger;
|
|
66
|
-
};
|
|
67
|
-
export type SwitchboardReactor = {
|
|
68
|
-
defaultDriveUrl: string | undefined;
|
|
69
|
-
reactor: IReactorClient;
|
|
70
|
-
legacyReactor: IDocumentDriveServer;
|
|
71
|
-
/** The Renown instance if identity was initialized */
|
|
72
|
-
renown: IRenown | null;
|
|
73
|
-
};
|
|
74
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/src/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEhF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,EACF;QACE,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,GACD,OAAO,GACP,SAAS,CAAC;IACd,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;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE;QACf;;;WAGG;QACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;QAEjC;;;WAGG;QACH,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,OAAO,EAAE,cAAc,CAAC;IACxB,aAAa,EAAE,oBAAoB,CAAC;IACpC,sDAAsD;IACtD,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CACxB,CAAC"}
|
package/dist/src/types.js
DELETED
package/dist/src/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|