@powerhousedao/ph-cli 5.1.0-staging.0 → 5.2.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/cli.js +1 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/access-token.d.ts +9 -0
- package/dist/src/commands/access-token.d.ts.map +1 -0
- package/dist/src/commands/access-token.js +110 -0
- package/dist/src/commands/access-token.js.map +1 -0
- package/dist/src/commands/generate.d.ts.map +1 -1
- package/dist/src/commands/generate.js +2 -1
- package/dist/src/commands/generate.js.map +1 -1
- package/dist/src/commands/index.d.ts +2 -0
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +2 -0
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/login.d.ts +12 -0
- package/dist/src/commands/login.d.ts.map +1 -0
- package/dist/src/commands/login.js +208 -0
- package/dist/src/commands/login.js.map +1 -0
- package/dist/src/commands/migrate.d.ts +1 -1
- package/dist/src/commands/migrate.d.ts.map +1 -1
- package/dist/src/commands/migrate.js +1 -1
- package/dist/src/commands/migrate.js.map +1 -1
- package/dist/src/commands/register-commands.d.ts.map +1 -1
- package/dist/src/commands/register-commands.js +4 -0
- package/dist/src/commands/register-commands.js.map +1 -1
- package/dist/src/commands/switchboard.d.ts.map +1 -1
- package/dist/src/commands/switchboard.js +12 -2
- package/dist/src/commands/switchboard.js.map +1 -1
- package/dist/src/help.d.ts +9 -1
- package/dist/src/help.d.ts.map +1 -1
- package/dist/src/help.js +164 -9
- package/dist/src/help.js.map +1 -1
- package/dist/src/services/auth.d.ts +69 -0
- package/dist/src/services/auth.d.ts.map +1 -0
- package/dist/src/services/auth.js +171 -0
- package/dist/src/services/auth.js.map +1 -0
- package/dist/src/services/generate.d.ts +2 -1
- package/dist/src/services/generate.d.ts.map +1 -1
- package/dist/src/services/generate.js +15 -8
- package/dist/src/services/generate.js.map +1 -1
- package/dist/src/services/migrate.d.ts +7 -0
- package/dist/src/services/migrate.d.ts.map +1 -0
- package/dist/src/services/{migrate/migrate.js → migrate.js} +16 -12
- package/dist/src/services/migrate.js.map +1 -0
- package/dist/src/services/switchboard.d.ts +12 -0
- package/dist/src/services/switchboard.d.ts.map +1 -1
- package/dist/src/services/switchboard.js +10 -1
- package/dist/src/services/switchboard.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -8
- package/dist/src/services/migrate/migrate.d.ts +0 -7
- package/dist/src/services/migrate/migrate.d.ts.map +0 -1
- package/dist/src/services/migrate/migrate.js.map +0 -1
- package/dist/src/services/migrate/migrations/templates/document-models.d.ts +0 -2
- package/dist/src/services/migrate/migrations/templates/document-models.d.ts.map +0 -1
- package/dist/src/services/migrate/migrations/templates/document-models.js +0 -6
- package/dist/src/services/migrate/migrations/templates/document-models.js.map +0 -1
- package/dist/src/services/migrate/migrations/templates/editors.d.ts +0 -2
- package/dist/src/services/migrate/migrations/templates/editors.d.ts.map +0 -1
- package/dist/src/services/migrate/migrations/templates/editors.js +0 -6
- package/dist/src/services/migrate/migrations/templates/editors.js.map +0 -1
- package/dist/src/services/migrate/migrations/templates/index.d.ts +0 -2
- package/dist/src/services/migrate/migrations/templates/index.d.ts.map +0 -1
- package/dist/src/services/migrate/migrations/templates/index.js +0 -7
- package/dist/src/services/migrate/migrations/templates/index.js.map +0 -1
- package/dist/src/services/migrate/migrations/templates/packageJson.d.ts +0 -55
- package/dist/src/services/migrate/migrations/templates/packageJson.d.ts.map +0 -1
- package/dist/src/services/migrate/migrations/templates/packageJson.js +0 -55
- package/dist/src/services/migrate/migrations/templates/packageJson.js.map +0 -1
- package/dist/src/services/migrate/migrations/templates/tsConfig.d.ts +0 -2
- package/dist/src/services/migrate/migrations/templates/tsConfig.d.ts.map +0 -1
- package/dist/src/services/migrate/migrations/templates/tsConfig.js +0 -45
- package/dist/src/services/migrate/migrations/templates/tsConfig.js.map +0 -1
package/dist/src/cli.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from "commander";
|
|
3
|
-
import { registerCommands } from "
|
|
3
|
+
import { registerCommands } from "./index.js";
|
|
4
4
|
function ensureNodeVersion(minVersion = "22") {
|
|
5
5
|
const version = process.versions.node;
|
|
6
6
|
if (!version) {
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,SAAS,iBAAiB,CAAC,UAAU,GAAG,IAAI;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CACX,gBAAgB,UAAU,4CAA4C,OAAO,EAAE,CAChF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,iCAAiC;AACjC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAExB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CACV,6PAA6P,CAC9P;KACA,kBAAkB,CAAC,IAAI,CAAC;KACxB,MAAM,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;AAErD,6DAA6D;AAC7D,qCAAqC;AACrC,MAAM,CAAC,cAAc,CAAC;KACnB,IAAI,CAAC,CAAC,EAAE,OAAO,EAAuB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACpE,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC,CAAC;AAE5E,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAE1B,wEAAwE;AACxE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACxC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CACvC,CAAC;IACF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK;QACpB,CAAC,CAAC,KAAK,CAAC,OAAO;QACf,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEvC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
import type { CommandActionType } from "../types.js";
|
|
3
|
+
export type AccessTokenOptions = {
|
|
4
|
+
expiry?: string;
|
|
5
|
+
audience?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const accessToken: CommandActionType<[AccessTokenOptions]>;
|
|
8
|
+
export declare function accessTokenCommand(program: Command): Command;
|
|
9
|
+
//# sourceMappingURL=access-token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-token.d.ts","sourceRoot":"","sources":["../../../src/commands/access-token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAgDF,eAAO,MAAM,WAAW,EAAE,iBAAiB,CAAC,CAAC,kBAAkB,CAAC,CAkF/D,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAY5D"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { accessTokenHelp } from "../help.js";
|
|
2
|
+
import { setCustomHelp } from "../utils.js";
|
|
3
|
+
const SECONDS_IN_DAY = 24 * 60 * 60;
|
|
4
|
+
const DEFAULT_EXPIRY_DAYS = 7;
|
|
5
|
+
const DEFAULT_EXPIRY_SECONDS = DEFAULT_EXPIRY_DAYS * SECONDS_IN_DAY;
|
|
6
|
+
/**
|
|
7
|
+
* Parse expiry string to seconds
|
|
8
|
+
* Supports formats: "7d" (days), "24h" (hours), "3600" (seconds), "3600s" (seconds)
|
|
9
|
+
*/
|
|
10
|
+
function parseExpiry(expiry) {
|
|
11
|
+
const trimmed = expiry.trim().toLowerCase();
|
|
12
|
+
// Check for day format (e.g., "7d")
|
|
13
|
+
if (trimmed.endsWith("d")) {
|
|
14
|
+
const days = parseInt(trimmed.slice(0, -1), 10);
|
|
15
|
+
if (isNaN(days) || days <= 0) {
|
|
16
|
+
throw new Error(`Invalid expiry format: ${expiry}. Days must be a positive number.`);
|
|
17
|
+
}
|
|
18
|
+
return days * SECONDS_IN_DAY;
|
|
19
|
+
}
|
|
20
|
+
// Check for hour format (e.g., "24h")
|
|
21
|
+
if (trimmed.endsWith("h")) {
|
|
22
|
+
const hours = parseInt(trimmed.slice(0, -1), 10);
|
|
23
|
+
if (isNaN(hours) || hours <= 0) {
|
|
24
|
+
throw new Error(`Invalid expiry format: ${expiry}. Hours must be a positive number.`);
|
|
25
|
+
}
|
|
26
|
+
return hours * 60 * 60;
|
|
27
|
+
}
|
|
28
|
+
// Check for seconds format (e.g., "3600s" or just "3600")
|
|
29
|
+
const numericValue = trimmed.endsWith("s") ? trimmed.slice(0, -1) : trimmed;
|
|
30
|
+
const seconds = parseInt(numericValue, 10);
|
|
31
|
+
if (isNaN(seconds) || seconds <= 0) {
|
|
32
|
+
throw new Error(`Invalid expiry format: ${expiry}. Expected a positive number or format like "7d", "24h", "3600s".`);
|
|
33
|
+
}
|
|
34
|
+
return seconds;
|
|
35
|
+
}
|
|
36
|
+
export const accessToken = async (options) => {
|
|
37
|
+
const { getConnectCrypto, getConnectDid, isAuthenticated, loadCredentials } = await import("../services/auth.js");
|
|
38
|
+
// Require Renown authentication - user must have done 'ph login'
|
|
39
|
+
if (!isAuthenticated()) {
|
|
40
|
+
console.error("Not authenticated. Run 'ph login' first to authenticate with Renown.");
|
|
41
|
+
console.error("A Renown credential is required to generate valid bearer tokens.");
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
const creds = loadCredentials();
|
|
45
|
+
if (!creds) {
|
|
46
|
+
console.error("Failed to load credentials.");
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
// Get the CLI's DID
|
|
50
|
+
let did;
|
|
51
|
+
try {
|
|
52
|
+
did = await getConnectDid();
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
console.error("Failed to get CLI identity. Run 'ph login' to reinitialize.");
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
const address = creds.address;
|
|
59
|
+
// Parse expiry
|
|
60
|
+
let expiresIn = DEFAULT_EXPIRY_SECONDS;
|
|
61
|
+
if (options.expiry) {
|
|
62
|
+
try {
|
|
63
|
+
expiresIn = parseExpiry(options.expiry);
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
console.error(e.message);
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Generate the bearer token
|
|
71
|
+
const crypto = await getConnectCrypto();
|
|
72
|
+
const token = await crypto.getBearerToken(options.audience ?? "", address, true, // Force refresh to ensure we get a new token with the specified expiry
|
|
73
|
+
{
|
|
74
|
+
expiresIn,
|
|
75
|
+
aud: options.audience,
|
|
76
|
+
});
|
|
77
|
+
// Calculate human-readable expiry
|
|
78
|
+
const expiryDays = Math.floor(expiresIn / SECONDS_IN_DAY);
|
|
79
|
+
const expiryHours = Math.floor((expiresIn % SECONDS_IN_DAY) / 3600);
|
|
80
|
+
let expiryStr;
|
|
81
|
+
if (expiryDays > 0) {
|
|
82
|
+
expiryStr =
|
|
83
|
+
expiryHours > 0
|
|
84
|
+
? `${expiryDays} day${expiryDays > 1 ? "s" : ""} and ${expiryHours} hour${expiryHours > 1 ? "s" : ""}`
|
|
85
|
+
: `${expiryDays} day${expiryDays > 1 ? "s" : ""}`;
|
|
86
|
+
}
|
|
87
|
+
else if (expiryHours > 0) {
|
|
88
|
+
expiryStr = `${expiryHours} hour${expiryHours > 1 ? "s" : ""}`;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
expiryStr = `${expiresIn} seconds`;
|
|
92
|
+
}
|
|
93
|
+
// Output token info to stderr, token itself to stdout for piping
|
|
94
|
+
console.error(`CLI DID: ${did}`);
|
|
95
|
+
console.error(`ETH Address: ${address}`);
|
|
96
|
+
console.error(`Token expires in: ${expiryStr}`);
|
|
97
|
+
console.error("");
|
|
98
|
+
// Output just the token to stdout (for easy piping/copying)
|
|
99
|
+
console.log(token);
|
|
100
|
+
};
|
|
101
|
+
export function accessTokenCommand(program) {
|
|
102
|
+
const cmd = program
|
|
103
|
+
.command("access-token")
|
|
104
|
+
.description("Generate a bearer token for API authentication")
|
|
105
|
+
.option("--expiry <duration>", `Token expiry duration. Supports: "7d" (days), "24h" (hours), "3600" or "3600s" (seconds). Default: ${DEFAULT_EXPIRY_DAYS}d`)
|
|
106
|
+
.option("--audience <url>", "Target audience URL for the token (optional)")
|
|
107
|
+
.action(accessToken);
|
|
108
|
+
return setCustomHelp(cmd, accessTokenHelp);
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=access-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-token.js","sourceRoot":"","sources":["../../../src/commands/access-token.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAcrD,eAAO,MAAM,QAAQ,EAAE,iBAAiB,CACtC;IAAC,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAAE,eAAe;CAAC,CAGjD,CAAC;AAEF,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAcrD,eAAO,MAAM,QAAQ,EAAE,iBAAiB,CACtC;IAAC,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAAE,eAAe;CAAC,CAGjD,CAAC;AAEF,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,QA6C/C"}
|
|
@@ -32,7 +32,8 @@ export function generateCommand(program) {
|
|
|
32
32
|
.option("--allowed-document-types <types>", "Supported document types for a drive editor")
|
|
33
33
|
.option("--migration-file <path>", "Path to the migration file")
|
|
34
34
|
.option("--schema-file <path>", "Path to the output file. Defaults to './schema.ts'")
|
|
35
|
-
.option("--
|
|
35
|
+
.option("--use-hygen", "Use legacy hygen codegen")
|
|
36
|
+
.option("--use-versioning", "Allow upgrading document models with versioning");
|
|
36
37
|
// Use the setCustomHelp utility to apply custom help formatting
|
|
37
38
|
setCustomHelp(cmd, generateHelp);
|
|
38
39
|
cmd.action(generate);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/generate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,UAAU,aAAa,CAC1B,QAAuC,EACvC,OAAwB;IAExB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACzD,MAAM,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC;IAEnC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7E,OAAO,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAEjB,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAC9B,OAAO,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,wCAAwC,CAAC;SACrD,QAAQ,CAAC,0BAA0B,EAAE,iCAAiC,CAAC;SACvE,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,CAAC;SAClE,MAAM,CAAC,kBAAkB,EAAE,+BAA+B,CAAC;SAC3D,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;SAC5C,MAAM,CAAC,eAAe,EAAE,6BAA6B,CAAC;SACtD,MAAM,CAAC,qBAAqB,EAAE,kCAAkC,CAAC;SACjE,MAAM,CAAC,wBAAwB,EAAE,gBAAgB,CAAC;SAClD,MAAM,CACL,yBAAyB,EACzB,+CAA+C,CAChD;SACA,MAAM,CAAC,uBAAuB,EAAE,eAAe,CAAC;SAChD,MAAM,CAAC,0BAA0B,EAAE,uCAAuC,CAAC;SAC3E,MAAM,CAAC,yBAAyB,EAAE,wCAAwC,CAAC;SAC3E,MAAM,CAAC,6BAA6B,EAAE,oBAAoB,CAAC;SAC3D,MAAM,CAAC,oBAAoB,EAAE,oCAAoC,CAAC;SAClE,MAAM,CAAC,aAAa,EAAE,8BAA8B,CAAC;SACrD,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC;SACjD,MAAM,CACL,2BAA2B,EAC3B,iDAAiD,CAClD;SACA,MAAM,CACL,kCAAkC,EAClC,6CAA6C,CAC9C;SACA,MAAM,CAAC,yBAAyB,EAAE,4BAA4B,CAAC;SAC/D,MAAM,CACL,sBAAsB,EACtB,oDAAoD,CACrD;SACA,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/generate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,UAAU,aAAa,CAC1B,QAAuC,EACvC,OAAwB;IAExB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACzD,MAAM,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC;IAEnC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7E,OAAO,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAEjB,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAC9B,OAAO,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,wCAAwC,CAAC;SACrD,QAAQ,CAAC,0BAA0B,EAAE,iCAAiC,CAAC;SACvE,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,CAAC;SAClE,MAAM,CAAC,kBAAkB,EAAE,+BAA+B,CAAC;SAC3D,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;SAC5C,MAAM,CAAC,eAAe,EAAE,6BAA6B,CAAC;SACtD,MAAM,CAAC,qBAAqB,EAAE,kCAAkC,CAAC;SACjE,MAAM,CAAC,wBAAwB,EAAE,gBAAgB,CAAC;SAClD,MAAM,CACL,yBAAyB,EACzB,+CAA+C,CAChD;SACA,MAAM,CAAC,uBAAuB,EAAE,eAAe,CAAC;SAChD,MAAM,CAAC,0BAA0B,EAAE,uCAAuC,CAAC;SAC3E,MAAM,CAAC,yBAAyB,EAAE,wCAAwC,CAAC;SAC3E,MAAM,CAAC,6BAA6B,EAAE,oBAAoB,CAAC;SAC3D,MAAM,CAAC,oBAAoB,EAAE,oCAAoC,CAAC;SAClE,MAAM,CAAC,aAAa,EAAE,8BAA8B,CAAC;SACrD,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC;SACjD,MAAM,CACL,2BAA2B,EAC3B,iDAAiD,CAClD;SACA,MAAM,CACL,kCAAkC,EAClC,6CAA6C,CAC9C;SACA,MAAM,CAAC,yBAAyB,EAAE,4BAA4B,CAAC;SAC/D,MAAM,CACL,sBAAsB,EACtB,oDAAoD,CACrD;SACA,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC;SACjD,MAAM,CACL,kBAAkB,EAClB,iDAAiD,CAClD,CAAC;IAEJ,gEAAgE;IAChE,aAAa,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAEjC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
export * from "./access-token.js";
|
|
1
2
|
export * from "./connect.js";
|
|
2
3
|
export * from "./generate.js";
|
|
3
4
|
export * from "./help.js";
|
|
4
5
|
export * from "./inspect.js";
|
|
5
6
|
export * from "./install.js";
|
|
6
7
|
export * from "./list.js";
|
|
8
|
+
export * from "./login.js";
|
|
7
9
|
export * from "./register-commands.js";
|
|
8
10
|
export * from "./service.js";
|
|
9
11
|
export * from "./switchboard.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
export * from "./access-token.js";
|
|
1
2
|
export * from "./connect.js";
|
|
2
3
|
export * from "./generate.js";
|
|
3
4
|
export * from "./help.js";
|
|
4
5
|
export * from "./inspect.js";
|
|
5
6
|
export * from "./install.js";
|
|
6
7
|
export * from "./list.js";
|
|
8
|
+
export * from "./login.js";
|
|
7
9
|
export * from "./register-commands.js";
|
|
8
10
|
export * from "./service.js";
|
|
9
11
|
export * from "./switchboard.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
import type { CommandActionType } from "../types.js";
|
|
3
|
+
export type LoginOptions = {
|
|
4
|
+
renownUrl?: string;
|
|
5
|
+
timeout?: string;
|
|
6
|
+
logout?: boolean;
|
|
7
|
+
status?: boolean;
|
|
8
|
+
showDid?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare const login: CommandActionType<[LoginOptions]>;
|
|
11
|
+
export declare function loginCommand(program: Command): Command;
|
|
12
|
+
//# sourceMappingURL=login.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AA+IF,eAAO,MAAM,KAAK,EAAE,iBAAiB,CAAC,CAAC,YAAY,CAAC,CA8FnD,CAAC;AAEF,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAkBtD"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { loginHelp } from "../help.js";
|
|
2
|
+
import { clearCredentials, DEFAULT_RENOWN_URL, generateSessionId, getConnectDid, isAuthenticated, loadCredentials, saveCredentials, } from "../services/auth.js";
|
|
3
|
+
import { setCustomHelp } from "../utils.js";
|
|
4
|
+
const DEFAULT_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
|
|
5
|
+
const POLL_INTERVAL_MS = 2000; // 2 seconds
|
|
6
|
+
/**
|
|
7
|
+
* Open a URL in the default browser
|
|
8
|
+
*/
|
|
9
|
+
async function openBrowser(url) {
|
|
10
|
+
const { exec } = await import("node:child_process");
|
|
11
|
+
const { promisify } = await import("node:util");
|
|
12
|
+
const execAsync = promisify(exec);
|
|
13
|
+
const platform = process.platform;
|
|
14
|
+
try {
|
|
15
|
+
if (platform === "darwin") {
|
|
16
|
+
await execAsync(`open "${url}"`);
|
|
17
|
+
}
|
|
18
|
+
else if (platform === "win32") {
|
|
19
|
+
await execAsync(`start "" "${url}"`);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
// Linux and others
|
|
23
|
+
await execAsync(`xdg-open "${url}"`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
console.error("Failed to open browser automatically.");
|
|
28
|
+
console.log(`Please open this URL manually: ${url}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Poll the session endpoint until ready or timeout
|
|
33
|
+
*/
|
|
34
|
+
async function pollSession(renownUrl, sessionId, timeoutMs) {
|
|
35
|
+
const startTime = Date.now();
|
|
36
|
+
const sessionUrl = `${renownUrl}/api/console/session/${sessionId}`;
|
|
37
|
+
while (Date.now() - startTime < timeoutMs) {
|
|
38
|
+
try {
|
|
39
|
+
const response = await fetch(sessionUrl);
|
|
40
|
+
if (!response.ok) {
|
|
41
|
+
console.error(`Session check failed: ${response.status}`);
|
|
42
|
+
await sleep(POLL_INTERVAL_MS);
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const data = (await response.json());
|
|
46
|
+
if (data.status === "ready") {
|
|
47
|
+
return data;
|
|
48
|
+
}
|
|
49
|
+
// Still pending, wait and try again
|
|
50
|
+
process.stdout.write(".");
|
|
51
|
+
await sleep(POLL_INTERVAL_MS);
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
// Network error, wait and retry
|
|
55
|
+
await sleep(POLL_INTERVAL_MS);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return null; // Timeout reached
|
|
59
|
+
}
|
|
60
|
+
function sleep(ms) {
|
|
61
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Show current authentication status
|
|
65
|
+
*/
|
|
66
|
+
async function showStatus() {
|
|
67
|
+
const creds = loadCredentials();
|
|
68
|
+
// Always show the CLI's DID
|
|
69
|
+
try {
|
|
70
|
+
const connectDid = await getConnectDid();
|
|
71
|
+
console.log(`CLI DID: ${connectDid}`);
|
|
72
|
+
console.log();
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
console.log("CLI DID: (not yet initialized)");
|
|
76
|
+
console.log();
|
|
77
|
+
}
|
|
78
|
+
if (!creds || !creds.credentialId) {
|
|
79
|
+
console.log("Not authenticated with an Ethereum address.");
|
|
80
|
+
console.log('Run "ph login" to authenticate.');
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
console.log("Authenticated");
|
|
84
|
+
console.log(` ETH Address: ${creds.address}`);
|
|
85
|
+
console.log(` User DID: ${creds.did}`);
|
|
86
|
+
console.log(` Chain ID: ${creds.chainId}`);
|
|
87
|
+
console.log(` Authenticated at: ${creds.authenticatedAt}`);
|
|
88
|
+
console.log(` Renown URL: ${creds.renownUrl}`);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Show just the CLI DID
|
|
92
|
+
*/
|
|
93
|
+
async function showDid() {
|
|
94
|
+
try {
|
|
95
|
+
const connectDid = await getConnectDid();
|
|
96
|
+
console.log(connectDid);
|
|
97
|
+
}
|
|
98
|
+
catch (e) {
|
|
99
|
+
console.error("Failed to get DID:", e);
|
|
100
|
+
process.exit(1);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Logout and clear credentials
|
|
105
|
+
*/
|
|
106
|
+
function handleLogout() {
|
|
107
|
+
if (!isAuthenticated()) {
|
|
108
|
+
console.log("Not currently authenticated.");
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const success = clearCredentials();
|
|
112
|
+
if (success) {
|
|
113
|
+
console.log("Successfully logged out.");
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
console.error("Failed to clear credentials.");
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
export const login = async (options) => {
|
|
120
|
+
// Handle showing just the DID
|
|
121
|
+
if (options.showDid) {
|
|
122
|
+
await showDid();
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
// Handle status check
|
|
126
|
+
if (options.status) {
|
|
127
|
+
await showStatus();
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
// Handle logout
|
|
131
|
+
if (options.logout) {
|
|
132
|
+
handleLogout();
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const renownUrl = options.renownUrl || DEFAULT_RENOWN_URL;
|
|
136
|
+
const timeoutMs = options.timeout
|
|
137
|
+
? parseInt(options.timeout, 10) * 1000
|
|
138
|
+
: DEFAULT_TIMEOUT_MS;
|
|
139
|
+
// Check if already authenticated
|
|
140
|
+
if (isAuthenticated()) {
|
|
141
|
+
const creds = loadCredentials();
|
|
142
|
+
console.log(`Already authenticated as ${creds?.address}`);
|
|
143
|
+
console.log('Use "ph login --logout" to sign out first.');
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
// Get the CLI's DID from ConnectCrypto
|
|
147
|
+
console.log("Initializing cryptographic identity...");
|
|
148
|
+
const connectDid = await getConnectDid();
|
|
149
|
+
console.log(`CLI DID: ${connectDid}`);
|
|
150
|
+
console.log();
|
|
151
|
+
// Generate session ID
|
|
152
|
+
const sessionId = generateSessionId();
|
|
153
|
+
// Build the login URL with connect DID
|
|
154
|
+
const loginUrl = new URL(`${renownUrl}/console`);
|
|
155
|
+
loginUrl.searchParams.set("session", sessionId);
|
|
156
|
+
loginUrl.searchParams.set("connect", connectDid);
|
|
157
|
+
console.log("Opening browser for authentication...");
|
|
158
|
+
console.log(`Session ID: ${sessionId.slice(0, 8)}...`);
|
|
159
|
+
console.log();
|
|
160
|
+
// Open browser
|
|
161
|
+
await openBrowser(loginUrl.toString());
|
|
162
|
+
console.log("Waiting for authentication in browser");
|
|
163
|
+
console.log(`(timeout in ${timeoutMs / 1000} seconds)`);
|
|
164
|
+
console.log();
|
|
165
|
+
console.log("Please connect your wallet and authorize this CLI to act on your behalf.");
|
|
166
|
+
console.log();
|
|
167
|
+
process.stdout.write("Waiting");
|
|
168
|
+
// Poll for session completion
|
|
169
|
+
const result = await pollSession(renownUrl, sessionId, timeoutMs);
|
|
170
|
+
console.log(); // New line after dots
|
|
171
|
+
if (!result) {
|
|
172
|
+
console.error("\nAuthentication timed out.");
|
|
173
|
+
console.log("Please try again with: ph login");
|
|
174
|
+
process.exit(1);
|
|
175
|
+
}
|
|
176
|
+
// Save credentials
|
|
177
|
+
const credentials = {
|
|
178
|
+
address: result.address,
|
|
179
|
+
chainId: result.chainId,
|
|
180
|
+
did: result.did,
|
|
181
|
+
connectDid: connectDid,
|
|
182
|
+
credentialId: result.credentialId,
|
|
183
|
+
userDocumentId: result.userDocumentId,
|
|
184
|
+
authenticatedAt: new Date().toISOString(),
|
|
185
|
+
renownUrl,
|
|
186
|
+
};
|
|
187
|
+
saveCredentials(credentials);
|
|
188
|
+
console.log();
|
|
189
|
+
console.log("Successfully authenticated!");
|
|
190
|
+
console.log(` ETH Address: ${credentials.address}`);
|
|
191
|
+
console.log(` User DID: ${credentials.did}`);
|
|
192
|
+
console.log(` CLI DID: ${credentials.connectDid}`);
|
|
193
|
+
console.log();
|
|
194
|
+
console.log("The CLI can now act on behalf of your Ethereum identity.");
|
|
195
|
+
};
|
|
196
|
+
export function loginCommand(program) {
|
|
197
|
+
const loginCmd = program
|
|
198
|
+
.command("login")
|
|
199
|
+
.description("Authenticate with Renown using your Ethereum wallet")
|
|
200
|
+
.option("--renown-url <url>", `Renown server URL (default: ${DEFAULT_RENOWN_URL})`)
|
|
201
|
+
.option("--timeout <seconds>", "Authentication timeout in seconds (default: 300)")
|
|
202
|
+
.option("--logout", "Sign out and clear stored credentials")
|
|
203
|
+
.option("--status", "Show current authentication status")
|
|
204
|
+
.option("--show-did", "Show the CLI's DID and exit")
|
|
205
|
+
.action(login);
|
|
206
|
+
return setCustomHelp(loginCmd, loginHelp);
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,eAAO,MAAM,OAAO,EAAE,iBAAiB,CACrC;IAAC,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAAE;QAAE,
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,eAAO,MAAM,OAAO,EAAE,iBAAiB,CACrC;IAAC,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE;CAAC,CAIxD,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAM9C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export const migrate = async (_, options) => {
|
|
2
|
-
const { migrate: startMigrate } = await import("../services/migrate
|
|
2
|
+
const { migrate: startMigrate } = await import("../services/migrate.js");
|
|
3
3
|
return await startMigrate(options);
|
|
4
4
|
};
|
|
5
5
|
export function migrateCommand(program) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/commands/migrate.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,OAAO,GAEhB,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE;IACvB,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/commands/migrate.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,OAAO,GAEhB,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE;IACvB,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;IACzE,OAAO,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,gBAAgB,CAAC;SAC7B,MAAM,CAAC,YAAY,EAAE,0BAA0B,CAAC;SAChD,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-commands.d.ts","sourceRoot":"","sources":["../../../src/commands/register-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"register-commands.d.ts","sourceRoot":"","sources":["../../../src/commands/register-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAYhD,eAAO,MAAM,QAAQ,4BAcpB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,QAEhD"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
+
import { accessTokenCommand } from "./access-token.js";
|
|
1
2
|
import { connectCommand } from "./connect.js";
|
|
2
3
|
import { generateCommand } from "./generate.js";
|
|
3
4
|
import { helpCommand } from "./help.js";
|
|
4
5
|
import { inspectCommand } from "./inspect.js";
|
|
5
6
|
import { installCommand } from "./install.js";
|
|
6
7
|
import { listCommand } from "./list.js";
|
|
8
|
+
import { loginCommand } from "./login.js";
|
|
7
9
|
import { migrateCommand } from "./migrate.js";
|
|
8
10
|
import { serviceCommand } from "./service.js";
|
|
9
11
|
import { switchboardCommand } from "./switchboard.js";
|
|
10
12
|
import { uninstallCommand } from "./uninstall.js";
|
|
11
13
|
import { vetraCommand } from "./vetra.js";
|
|
12
14
|
export const commands = [
|
|
15
|
+
accessTokenCommand,
|
|
13
16
|
connectCommand,
|
|
14
17
|
generateCommand,
|
|
15
18
|
helpCommand,
|
|
@@ -18,6 +21,7 @@ export const commands = [
|
|
|
18
21
|
serviceCommand,
|
|
19
22
|
listCommand,
|
|
20
23
|
inspectCommand,
|
|
24
|
+
loginCommand,
|
|
21
25
|
switchboardCommand,
|
|
22
26
|
vetraCommand,
|
|
23
27
|
migrateCommand,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-commands.js","sourceRoot":"","sources":["../../../src/commands/register-commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,cAAc;IACd,eAAe;IACf,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,WAAW;IACX,cAAc;IACd,kBAAkB;IAClB,YAAY;IACZ,cAAc;CACf,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAClD,CAAC"}
|
|
1
|
+
{"version":3,"file":"register-commands.js","sourceRoot":"","sources":["../../../src/commands/register-commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,WAAW;IACX,cAAc;IACd,YAAY;IACZ,kBAAkB;IAClB,YAAY;IACZ,cAAc;CACf,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switchboard.d.ts","sourceRoot":"","sources":["../../../src/commands/switchboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"switchboard.d.ts","sourceRoot":"","sources":["../../../src/commands/switchboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAqCrD,eAAO,MAAM,wBAAwB,EAAE,iBAAiB,CACtD;IAAC,uBAAuB;CAAC,EACzB,OAAO,CAAC,kBAAkB,CAAC,CAG5B,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,QA8ClD"}
|
|
@@ -7,7 +7,7 @@ async function startLocalSwitchboard(options) {
|
|
|
7
7
|
const Switchboard = await import("../services/switchboard.js");
|
|
8
8
|
const { startSwitchboard } = Switchboard;
|
|
9
9
|
// Extract only the props that switchboard expects
|
|
10
|
-
const { port: rawPort, configFile, dev, dbPath, packages } = options;
|
|
10
|
+
const { port: rawPort, configFile, dev, dbPath, packages, useIdentity, keypairPath, requireIdentity, } = options;
|
|
11
11
|
const port = typeof rawPort === "string" ? parseInt(rawPort) : rawPort;
|
|
12
12
|
return startSwitchboard({
|
|
13
13
|
port,
|
|
@@ -15,6 +15,9 @@ async function startLocalSwitchboard(options) {
|
|
|
15
15
|
dev,
|
|
16
16
|
dbPath,
|
|
17
17
|
packages,
|
|
18
|
+
useIdentity,
|
|
19
|
+
keypairPath,
|
|
20
|
+
requireIdentity,
|
|
18
21
|
});
|
|
19
22
|
}
|
|
20
23
|
export const runStartLocalSwitchboard = async (options) => {
|
|
@@ -35,9 +38,16 @@ export function switchboardCommand(program) {
|
|
|
35
38
|
.option("--packages <packages...>", "list of packages to be loaded, if defined then packages on config file are ignored")
|
|
36
39
|
.option("--base-path <basePath>", "base path for the API endpoints (sets the BASE_PATH environment variable)")
|
|
37
40
|
.option("--mcp", "enable Mcp route at /mcp. Default: true")
|
|
41
|
+
.option("--use-identity", "enable identity using keypair from ph login (uses ~/.ph/keypair.json)")
|
|
42
|
+
.option("--keypair-path <path>", "path to custom keypair file for identity")
|
|
43
|
+
.option("--require-identity", "require existing keypair, fail if not found (implies --use-identity)")
|
|
38
44
|
.action(async (...args) => {
|
|
39
|
-
const { defaultDriveUrl } = await runStartLocalSwitchboard(...args);
|
|
45
|
+
const { defaultDriveUrl, connectCrypto } = await runStartLocalSwitchboard(...args);
|
|
40
46
|
console.log(" ➜ Switchboard:", defaultDriveUrl);
|
|
47
|
+
if (connectCrypto) {
|
|
48
|
+
const did = await connectCrypto.did();
|
|
49
|
+
console.log(" ➜ Identity:", did);
|
|
50
|
+
}
|
|
41
51
|
});
|
|
42
52
|
setCustomHelp(command, switchboardHelp);
|
|
43
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switchboard.js","sourceRoot":"","sources":["../../../src/commands/switchboard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,UAAU,qBAAqB,CAAC,OAAgC;IACnE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC3C,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;IAC/D,MAAM,EAAE,gBAAgB,EAAE,GAAG,WAAW,CAAC;IAEzC,kDAAkD;IAClD,MAAM,
|
|
1
|
+
{"version":3,"file":"switchboard.js","sourceRoot":"","sources":["../../../src/commands/switchboard.ts"],"names":[],"mappings":"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"}
|