@palmyr/cli 1.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/README.md +731 -0
- package/dist/admin-auth.d.ts +1 -0
- package/dist/admin-auth.js +52 -0
- package/dist/admin-auth.js.map +1 -0
- package/dist/app.d.ts +182 -0
- package/dist/app.js +218 -0
- package/dist/app.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +3495 -0
- package/dist/cli.js.map +1 -0
- package/dist/compute-ssh.d.ts +246 -0
- package/dist/compute-ssh.js +577 -0
- package/dist/compute-ssh.js.map +1 -0
- package/dist/config.d.ts +46 -0
- package/dist/config.js +183 -0
- package/dist/config.js.map +1 -0
- package/dist/credential-store.d.ts +4 -0
- package/dist/credential-store.js +180 -0
- package/dist/credential-store.js.map +1 -0
- package/dist/mascot-data.d.ts +1 -0
- package/dist/mascot-data.js +14 -0
- package/dist/mascot-data.js.map +1 -0
- package/dist/pay.d.ts +60 -0
- package/dist/pay.js +483 -0
- package/dist/pay.js.map +1 -0
- package/dist/sdk.d.ts +259 -0
- package/dist/sdk.js +944 -0
- package/dist/sdk.js.map +1 -0
- package/dist/social-queue.d.ts +125 -0
- package/dist/social-queue.js +340 -0
- package/dist/social-queue.js.map +1 -0
- package/dist/social-vault.d.ts +118 -0
- package/dist/social-vault.js +268 -0
- package/dist/social-vault.js.map +1 -0
- package/dist/social-worker.d.ts +43 -0
- package/dist/social-worker.js +155 -0
- package/dist/social-worker.js.map +1 -0
- package/dist/totp.d.ts +2 -0
- package/dist/totp.js +46 -0
- package/dist/totp.js.map +1 -0
- package/dist/ui.d.ts +77 -0
- package/dist/ui.js +441 -0
- package/dist/ui.js.map +1 -0
- package/dist/vault.d.ts +65 -0
- package/dist/vault.js +455 -0
- package/dist/vault.js.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function buildAdminHeaders(method: string, path: string): Record<string, string>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds the three headers required by the server's pool-admin middleware:
|
|
3
|
+
* X-Admin-Pubkey / X-Admin-Timestamp / X-Admin-Signature
|
|
4
|
+
*
|
|
5
|
+
* The admin signs `<method>:<path>:<timestamp>` with the Solana key derived
|
|
6
|
+
* from the configured admin wallet. No secrets transit the network.
|
|
7
|
+
*/
|
|
8
|
+
import { readFileSync, readdirSync, existsSync } from 'fs';
|
|
9
|
+
import { join } from 'path';
|
|
10
|
+
import { homedir } from 'os';
|
|
11
|
+
import { loadConfig } from './config.js';
|
|
12
|
+
import { signMessageLocal } from './vault.js';
|
|
13
|
+
function resolveAdminWalletId() {
|
|
14
|
+
const fromEnv = process.env.PALMYR_POOL_ADMIN_WALLET;
|
|
15
|
+
if (fromEnv)
|
|
16
|
+
return fromEnv;
|
|
17
|
+
const cfg = loadConfig();
|
|
18
|
+
const id = cfg.defaultPayWalletId;
|
|
19
|
+
if (!id) {
|
|
20
|
+
throw new Error('No admin wallet configured. Set PALMYR_POOL_ADMIN_WALLET to a wallet ID, or ' +
|
|
21
|
+
'run: palmyr wallet use <ID> --chain solana');
|
|
22
|
+
}
|
|
23
|
+
return id;
|
|
24
|
+
}
|
|
25
|
+
export function buildAdminHeaders(method, path) {
|
|
26
|
+
const walletId = resolveAdminWalletId();
|
|
27
|
+
const vaultDir = process.env.PALMYR_WALLET_PATH || join(homedir(), '.palmyr', 'wallet');
|
|
28
|
+
const walletsDir = join(vaultDir, 'wallets');
|
|
29
|
+
if (!existsSync(walletsDir))
|
|
30
|
+
throw new Error(`Vault directory not found: ${walletsDir}`);
|
|
31
|
+
let pubkey = '';
|
|
32
|
+
for (const f of readdirSync(walletsDir).filter(n => n.endsWith('.json'))) {
|
|
33
|
+
const data = JSON.parse(readFileSync(join(walletsDir, f), 'utf8'));
|
|
34
|
+
if (data.id === walletId || data.name === walletId) {
|
|
35
|
+
const sol = (data.accounts || []).find((a) => a.chainId === 'solana' || String(a.chainId || '').startsWith('solana:'));
|
|
36
|
+
if (sol)
|
|
37
|
+
pubkey = sol.address;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (!pubkey)
|
|
42
|
+
throw new Error(`Wallet "${walletId}" not found or has no Solana address`);
|
|
43
|
+
const timestamp = Date.now().toString();
|
|
44
|
+
const message = `${method.toUpperCase()}:${path}:${timestamp}`;
|
|
45
|
+
const { signature } = signMessageLocal(walletId, 'solana', message);
|
|
46
|
+
return {
|
|
47
|
+
'X-Admin-Pubkey': pubkey,
|
|
48
|
+
'X-Admin-Timestamp': timestamp,
|
|
49
|
+
'X-Admin-Signature': signature,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=admin-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-auth.js","sourceRoot":"","sources":["../admin-auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C,SAAS,oBAAoB;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA;IACpD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAA;IAC3B,MAAM,GAAG,GAAG,UAAU,EAAE,CAAA;IACxB,MAAM,EAAE,GAAI,GAAW,CAAC,kBAAkB,CAAA;IAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CACb,8EAA8E;YAC9E,4CAA4C,CAC7C,CAAA;IACH,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,IAAY;IAC5D,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAA;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;IACvF,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IAC5C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAA;IAExF,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAQ,CAAA;QACzE,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAChD,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CACxE,CAAA;YACD,IAAI,GAAG;gBAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAA;YAC7B,MAAK;QACP,CAAC;IACH,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,WAAW,QAAQ,sCAAsC,CAAC,CAAA;IAEvF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAA;IACvC,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,IAAI,IAAI,SAAS,EAAE,CAAA;IAC9D,MAAM,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAEnE,OAAO;QACL,gBAAgB,EAAE,MAAM;QACxB,mBAAmB,EAAE,SAAS;QAC9B,mBAAmB,EAAE,SAAS;KAC/B,CAAA;AACH,CAAC"}
|
package/dist/app.d.ts
ADDED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type DashboardProps = {
|
|
3
|
+
version: string;
|
|
4
|
+
chain?: string;
|
|
5
|
+
wallets?: Record<string, {
|
|
6
|
+
keyfile?: string;
|
|
7
|
+
owsWalletId?: string;
|
|
8
|
+
}> | undefined;
|
|
9
|
+
apiOk?: boolean;
|
|
10
|
+
onSelectAction?: (command: string) => void;
|
|
11
|
+
};
|
|
12
|
+
export type ScreenControls = {
|
|
13
|
+
interactive?: boolean;
|
|
14
|
+
onBack?: () => void;
|
|
15
|
+
};
|
|
16
|
+
export type StatusScreenProps = {
|
|
17
|
+
version: string;
|
|
18
|
+
api: string;
|
|
19
|
+
apiOk: boolean;
|
|
20
|
+
wallets?: Record<string, {
|
|
21
|
+
keyfile?: string;
|
|
22
|
+
owsWalletId?: string;
|
|
23
|
+
}>;
|
|
24
|
+
defaultChain?: string;
|
|
25
|
+
};
|
|
26
|
+
export type SetupScreenProps = {
|
|
27
|
+
version: string;
|
|
28
|
+
api: string;
|
|
29
|
+
keyfile: string;
|
|
30
|
+
chains: string[];
|
|
31
|
+
addedChain: string;
|
|
32
|
+
};
|
|
33
|
+
export type ComputePlansScreenProps = {
|
|
34
|
+
version: string;
|
|
35
|
+
plans: Array<{
|
|
36
|
+
name: string;
|
|
37
|
+
cpu: string;
|
|
38
|
+
ram: string;
|
|
39
|
+
price: string;
|
|
40
|
+
}>;
|
|
41
|
+
};
|
|
42
|
+
export type DomainCheckScreenProps = {
|
|
43
|
+
version: string;
|
|
44
|
+
domain: string;
|
|
45
|
+
available: boolean;
|
|
46
|
+
};
|
|
47
|
+
export type DomainPricingScreenProps = {
|
|
48
|
+
version: string;
|
|
49
|
+
query: string;
|
|
50
|
+
items: Array<{
|
|
51
|
+
tld: string;
|
|
52
|
+
price: string;
|
|
53
|
+
}>;
|
|
54
|
+
};
|
|
55
|
+
export type DoctorCheck = {
|
|
56
|
+
name: string;
|
|
57
|
+
status: 'pass' | 'warn' | 'fail';
|
|
58
|
+
detail: string;
|
|
59
|
+
};
|
|
60
|
+
export type DoctorScreenProps = {
|
|
61
|
+
version: string;
|
|
62
|
+
checks: DoctorCheck[];
|
|
63
|
+
};
|
|
64
|
+
export type ConfigScreenProps = {
|
|
65
|
+
version: string;
|
|
66
|
+
config: Record<string, string | number | boolean | null | undefined>;
|
|
67
|
+
};
|
|
68
|
+
export type WalletCreateScreenProps = {
|
|
69
|
+
version: string;
|
|
70
|
+
id: string;
|
|
71
|
+
name: string;
|
|
72
|
+
mode: string;
|
|
73
|
+
solana: string | null;
|
|
74
|
+
base: string | null;
|
|
75
|
+
};
|
|
76
|
+
export type WalletStatusScreenProps = {
|
|
77
|
+
version: string;
|
|
78
|
+
id: string;
|
|
79
|
+
name: string;
|
|
80
|
+
mode: string;
|
|
81
|
+
solana: string | null;
|
|
82
|
+
base: string | null;
|
|
83
|
+
};
|
|
84
|
+
export type WalletListScreenProps = {
|
|
85
|
+
version: string;
|
|
86
|
+
wallets: Array<{
|
|
87
|
+
id: string;
|
|
88
|
+
name: string;
|
|
89
|
+
mode: string;
|
|
90
|
+
solana: string | null;
|
|
91
|
+
base: string | null;
|
|
92
|
+
}>;
|
|
93
|
+
};
|
|
94
|
+
export type ComputeDeployScreenProps = {
|
|
95
|
+
version: string;
|
|
96
|
+
ip: string;
|
|
97
|
+
id: string;
|
|
98
|
+
type: string;
|
|
99
|
+
name: string;
|
|
100
|
+
};
|
|
101
|
+
export type ComputeListScreenProps = {
|
|
102
|
+
version: string;
|
|
103
|
+
servers: Array<{
|
|
104
|
+
ip: string;
|
|
105
|
+
type: string;
|
|
106
|
+
status: string;
|
|
107
|
+
}>;
|
|
108
|
+
};
|
|
109
|
+
export type SuccessScreenProps = {
|
|
110
|
+
version: string;
|
|
111
|
+
title: string;
|
|
112
|
+
subtitle: string;
|
|
113
|
+
details: Array<{
|
|
114
|
+
label: string;
|
|
115
|
+
value: string;
|
|
116
|
+
}>;
|
|
117
|
+
footerLeft: string;
|
|
118
|
+
};
|
|
119
|
+
export type PricingScreenProps = {
|
|
120
|
+
version: string;
|
|
121
|
+
services: Array<{
|
|
122
|
+
name: string;
|
|
123
|
+
items: Array<{
|
|
124
|
+
label: string;
|
|
125
|
+
value: string;
|
|
126
|
+
}>;
|
|
127
|
+
}>;
|
|
128
|
+
};
|
|
129
|
+
export type HealthScreenProps = {
|
|
130
|
+
version: string;
|
|
131
|
+
status: string;
|
|
132
|
+
uptime: string;
|
|
133
|
+
apiVersion: string;
|
|
134
|
+
};
|
|
135
|
+
export type MenuScreenProps = {
|
|
136
|
+
version: string;
|
|
137
|
+
title: string;
|
|
138
|
+
subtitle: string;
|
|
139
|
+
commands: Array<{
|
|
140
|
+
name: string;
|
|
141
|
+
description: string;
|
|
142
|
+
hint?: string;
|
|
143
|
+
}>;
|
|
144
|
+
footerLeft: string;
|
|
145
|
+
};
|
|
146
|
+
export type RecordsScreenProps = {
|
|
147
|
+
version: string;
|
|
148
|
+
title: string;
|
|
149
|
+
subtitle: string;
|
|
150
|
+
records: Array<{
|
|
151
|
+
primary: string;
|
|
152
|
+
secondary?: string;
|
|
153
|
+
status?: string;
|
|
154
|
+
}>;
|
|
155
|
+
footerLeft: string;
|
|
156
|
+
};
|
|
157
|
+
export type ErrorScreenProps = {
|
|
158
|
+
version: string;
|
|
159
|
+
title: string;
|
|
160
|
+
message: string;
|
|
161
|
+
hint?: string;
|
|
162
|
+
footerLeft: string;
|
|
163
|
+
};
|
|
164
|
+
export declare function Dashboard(props: DashboardProps): React.JSX.Element;
|
|
165
|
+
export declare function StatusScreen(props: StatusScreenProps & ScreenControls): React.JSX.Element;
|
|
166
|
+
export declare function SetupScreen(props: SetupScreenProps & ScreenControls): React.JSX.Element;
|
|
167
|
+
export declare function ComputePlansScreen(props: ComputePlansScreenProps & ScreenControls): React.JSX.Element;
|
|
168
|
+
export declare function DomainCheckScreen(props: DomainCheckScreenProps & ScreenControls): React.JSX.Element;
|
|
169
|
+
export declare function DomainPricingScreen(props: DomainPricingScreenProps & ScreenControls): React.JSX.Element;
|
|
170
|
+
export declare function WalletCreateScreen(props: WalletCreateScreenProps & ScreenControls): React.JSX.Element;
|
|
171
|
+
export declare function WalletStatusScreen(props: WalletStatusScreenProps & ScreenControls): React.JSX.Element;
|
|
172
|
+
export declare function WalletListScreen(props: WalletListScreenProps & ScreenControls): React.JSX.Element;
|
|
173
|
+
export declare function DoctorScreen(props: DoctorScreenProps & ScreenControls): React.JSX.Element;
|
|
174
|
+
export declare function ConfigScreen(props: ConfigScreenProps & ScreenControls): React.JSX.Element;
|
|
175
|
+
export declare function ComputeDeployScreen(props: ComputeDeployScreenProps & ScreenControls): React.JSX.Element;
|
|
176
|
+
export declare function ComputeListScreen(props: ComputeListScreenProps & ScreenControls): React.JSX.Element;
|
|
177
|
+
export declare function SuccessScreen(props: SuccessScreenProps & ScreenControls): React.JSX.Element;
|
|
178
|
+
export declare function PricingScreen(props: PricingScreenProps & ScreenControls): React.JSX.Element;
|
|
179
|
+
export declare function HealthScreen(props: HealthScreenProps & ScreenControls): React.JSX.Element;
|
|
180
|
+
export declare function MenuScreen(props: MenuScreenProps & ScreenControls): React.JSX.Element;
|
|
181
|
+
export declare function RecordsScreen(props: RecordsScreenProps & ScreenControls): React.JSX.Element;
|
|
182
|
+
export declare function ErrorScreen(props: ErrorScreenProps & ScreenControls): React.JSX.Element;
|
package/dist/app.js
ADDED
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
|
+
import { Box, Text, useApp, useInput, useStdout } from 'ink';
|
|
3
|
+
import { MASCOT_STIPPLE } from './mascot-data.js';
|
|
4
|
+
// ─── Theme ───
|
|
5
|
+
const C = {
|
|
6
|
+
accent: 'yellow', // section headers, mascot, selected items
|
|
7
|
+
bright: 'whiteBright', // service names, primary values
|
|
8
|
+
text: 'white', // regular text
|
|
9
|
+
label: 'yellowBright', // key labels in key:value pairs
|
|
10
|
+
muted: 'gray', // descriptions, secondary info
|
|
11
|
+
dim: 'blackBright', // dividers, footer
|
|
12
|
+
ok: 'green',
|
|
13
|
+
err: 'red',
|
|
14
|
+
};
|
|
15
|
+
// ─── Stipple Mascot ───
|
|
16
|
+
function StippleMascot({ hide }) {
|
|
17
|
+
if (hide)
|
|
18
|
+
return null;
|
|
19
|
+
return (React.createElement(Box, { flexDirection: "column" }, MASCOT_STIPPLE.map((line, i) => React.createElement(Text, { key: i, color: C.accent }, line))));
|
|
20
|
+
}
|
|
21
|
+
// ─── Primitives ───
|
|
22
|
+
function Row(props) {
|
|
23
|
+
return (React.createElement(Box, null,
|
|
24
|
+
React.createElement(Text, { color: C.label },
|
|
25
|
+
props.label,
|
|
26
|
+
" "),
|
|
27
|
+
React.createElement(Text, { color: props.valueColor || C.bright }, props.value)));
|
|
28
|
+
}
|
|
29
|
+
function Dot(props) {
|
|
30
|
+
return React.createElement(Text, { color: props.ok ? C.ok : C.err },
|
|
31
|
+
props.ok ? '●' : '○',
|
|
32
|
+
" ",
|
|
33
|
+
React.createElement(Text, { color: C.muted }, props.label));
|
|
34
|
+
}
|
|
35
|
+
function Divider() {
|
|
36
|
+
const { stdout } = useStdout();
|
|
37
|
+
const w = Math.min((stdout?.columns || 80) - 4, 76);
|
|
38
|
+
return React.createElement(Text, { color: C.dim }, '─'.repeat(w));
|
|
39
|
+
}
|
|
40
|
+
// ─── Shell ───
|
|
41
|
+
function Shell(props) {
|
|
42
|
+
useInput((input, key) => {
|
|
43
|
+
if (props.onBack && (input === 'b' || key.escape))
|
|
44
|
+
props.onBack();
|
|
45
|
+
});
|
|
46
|
+
return (React.createElement(Box, { flexDirection: "column", paddingX: 1, paddingY: 1 },
|
|
47
|
+
props.autoExit === false ? null : React.createElement(AutoExit, null),
|
|
48
|
+
React.createElement(Box, null,
|
|
49
|
+
React.createElement(Text, { color: C.accent, bold: true }, "Palmyr"),
|
|
50
|
+
React.createElement(Text, { color: C.dim },
|
|
51
|
+
" v",
|
|
52
|
+
props.version),
|
|
53
|
+
React.createElement(Text, { color: C.muted },
|
|
54
|
+
" \u00B7 ",
|
|
55
|
+
props.title)),
|
|
56
|
+
React.createElement(Divider, null),
|
|
57
|
+
React.createElement(Box, { marginY: 1, flexDirection: "column" }, props.children),
|
|
58
|
+
React.createElement(Divider, null),
|
|
59
|
+
React.createElement(Text, { color: C.dim }, props.footer || '')));
|
|
60
|
+
}
|
|
61
|
+
function AutoExit() {
|
|
62
|
+
const { exit } = useApp();
|
|
63
|
+
useEffect(() => { const t = setTimeout(() => exit(), 10); return () => clearTimeout(t); }, [exit]);
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
// ─── Generic Screen ───
|
|
67
|
+
function Screen(props) {
|
|
68
|
+
const { stdout } = useStdout();
|
|
69
|
+
const narrow = (stdout?.columns || 80) < 60;
|
|
70
|
+
return (React.createElement(Shell, { title: props.title, version: props.version, footer: props.interactive ? 'b/esc back' : props.footer, autoExit: props.interactive ? false : undefined, onBack: props.onBack },
|
|
71
|
+
React.createElement(Box, { flexDirection: "column" }, props.rows.map((r, i) => React.createElement(Row, { key: i, label: r.label, value: r.value })))));
|
|
72
|
+
}
|
|
73
|
+
// ─── Dashboard ───
|
|
74
|
+
export function Dashboard(props) {
|
|
75
|
+
const { stdout } = useStdout();
|
|
76
|
+
const cols = stdout?.columns || 80;
|
|
77
|
+
const narrow = cols < 70;
|
|
78
|
+
const services = [
|
|
79
|
+
{ name: 'Phone', actions: 'search · buy · sms · call' },
|
|
80
|
+
{ name: 'Email', actions: 'create · read · send' },
|
|
81
|
+
{ name: 'Domains', actions: 'check · pricing · buy · dns' },
|
|
82
|
+
{ name: 'Compute', actions: 'plans · deploy · list' },
|
|
83
|
+
{ name: 'Wallet', actions: 'create · status · keygen' },
|
|
84
|
+
{ name: 'Accounts', actions: 'X · TikTok · Reddit' },
|
|
85
|
+
];
|
|
86
|
+
return (React.createElement(Shell, { title: "home", version: props.version, footer: "Run palmyr <service> <command> to get started" },
|
|
87
|
+
React.createElement(Box, { flexDirection: narrow ? 'column' : 'row' },
|
|
88
|
+
React.createElement(Box, { flexDirection: "column", marginRight: narrow ? 0 : 3, marginBottom: narrow ? 1 : 0 },
|
|
89
|
+
React.createElement(StippleMascot, { hide: narrow }),
|
|
90
|
+
React.createElement(Text, { color: C.muted }, "Everything agents need.")),
|
|
91
|
+
React.createElement(Box, { flexDirection: "column" },
|
|
92
|
+
React.createElement(Text, { color: C.accent, bold: true }, "Services"),
|
|
93
|
+
services.map(s => (React.createElement(Box, { key: s.name },
|
|
94
|
+
React.createElement(Text, { color: C.label }, s.name.padEnd(10)),
|
|
95
|
+
React.createElement(Text, { color: C.muted }, s.actions)))),
|
|
96
|
+
React.createElement(Box, { marginTop: 1 },
|
|
97
|
+
React.createElement(Text, { color: C.accent, bold: true }, "Examples")),
|
|
98
|
+
React.createElement(Text, { color: C.muted }, " palmyr phone search --country US"),
|
|
99
|
+
React.createElement(Text, { color: C.muted }, " palmyr compute plans"),
|
|
100
|
+
React.createElement(Text, { color: C.muted }, " palmyr domain check --name my.dev"),
|
|
101
|
+
React.createElement(Text, { color: C.muted }, " palmyr --help")))));
|
|
102
|
+
}
|
|
103
|
+
// ─── Screens ───
|
|
104
|
+
export function StatusScreen(props) {
|
|
105
|
+
const w = props.wallets || {};
|
|
106
|
+
return React.createElement(Screen, { title: "status", version: props.version, interactive: props.interactive, onBack: props.onBack, footer: props.apiOk ? 'API healthy' : 'API offline', rows: [
|
|
107
|
+
{ label: 'API:', value: props.api },
|
|
108
|
+
{ label: 'Status:', value: props.apiOk ? 'healthy' : 'offline' },
|
|
109
|
+
{ label: 'Solana:', value: w.solana?.keyfile || 'not set' },
|
|
110
|
+
{ label: 'Base:', value: w.base?.keyfile || 'not set' },
|
|
111
|
+
{ label: 'Default:', value: props.defaultChain || 'solana' },
|
|
112
|
+
] });
|
|
113
|
+
}
|
|
114
|
+
export function SetupScreen(props) {
|
|
115
|
+
return React.createElement(Screen, { title: "setup", version: props.version, interactive: props.interactive, onBack: props.onBack, footer: "Run status to verify", rows: [
|
|
116
|
+
{ label: 'Added:', value: props.addedChain },
|
|
117
|
+
{ label: 'API:', value: props.api },
|
|
118
|
+
{ label: 'Chains:', value: props.chains.join(', ') },
|
|
119
|
+
{ label: 'Keyfile:', value: props.keyfile },
|
|
120
|
+
] });
|
|
121
|
+
}
|
|
122
|
+
export function ComputePlansScreen(props) {
|
|
123
|
+
return React.createElement(Screen, { title: "compute plans", version: props.version, interactive: props.interactive, onBack: props.onBack, footer: "deploy --type <plan>", rows: props.plans.slice(0, 6).map(p => ({ label: p.name, value: `${p.cpu} · ${p.ram} · $${p.price}/mo` })) });
|
|
124
|
+
}
|
|
125
|
+
export function DomainCheckScreen(props) {
|
|
126
|
+
return React.createElement(Screen, { title: "domain check", version: props.version, interactive: props.interactive, onBack: props.onBack, footer: props.available ? 'Ready to buy' : 'Try another', rows: [
|
|
127
|
+
{ label: 'Domain:', value: props.domain },
|
|
128
|
+
{ label: 'Status:', value: props.available ? 'available' : 'taken' },
|
|
129
|
+
] });
|
|
130
|
+
}
|
|
131
|
+
export function DomainPricingScreen(props) {
|
|
132
|
+
return React.createElement(Screen, { title: "pricing", version: props.version, interactive: props.interactive, onBack: props.onBack, footer: "domain check --name <n>", rows: props.items.slice(0, 6).map(i => ({ label: `.${i.tld}`, value: `$${i.price}` })) });
|
|
133
|
+
}
|
|
134
|
+
// Shared row builder — one wallet rendered as a consistent block
|
|
135
|
+
function walletRows(w) {
|
|
136
|
+
return [
|
|
137
|
+
{ label: 'Name:', value: w.name },
|
|
138
|
+
{ label: 'ID:', value: w.id },
|
|
139
|
+
{ label: 'Mode:', value: w.mode },
|
|
140
|
+
...(w.solana ? [{ label: 'Solana:', value: w.solana }] : []),
|
|
141
|
+
...(w.base ? [{ label: 'Base:', value: w.base }] : []),
|
|
142
|
+
];
|
|
143
|
+
}
|
|
144
|
+
export function WalletCreateScreen(props) {
|
|
145
|
+
return React.createElement(Screen, { title: "wallet created", version: props.version, interactive: props.interactive, onBack: props.onBack, footer: "Wallet ready", rows: walletRows(props) });
|
|
146
|
+
}
|
|
147
|
+
export function WalletStatusScreen(props) {
|
|
148
|
+
return React.createElement(Screen, { title: "wallet", version: props.version, interactive: props.interactive, onBack: props.onBack, footer: "Encrypted vault", rows: walletRows(props) });
|
|
149
|
+
}
|
|
150
|
+
export function WalletListScreen(props) {
|
|
151
|
+
// Flatten all wallets into one rows array with blank separators between them
|
|
152
|
+
const rows = [];
|
|
153
|
+
props.wallets.forEach((w, i) => {
|
|
154
|
+
if (i > 0)
|
|
155
|
+
rows.push({ label: '', value: '' }); // spacer
|
|
156
|
+
rows.push(...walletRows(w));
|
|
157
|
+
});
|
|
158
|
+
return React.createElement(Screen, { title: "wallets", version: props.version, interactive: props.interactive, onBack: props.onBack, footer: `${props.wallets.length} wallet(s)`, rows: rows });
|
|
159
|
+
}
|
|
160
|
+
export function DoctorScreen(props) {
|
|
161
|
+
const failCount = props.checks.filter(c => c.status === 'fail').length;
|
|
162
|
+
const warnCount = props.checks.filter(c => c.status === 'warn').length;
|
|
163
|
+
const footer = failCount > 0
|
|
164
|
+
? `${failCount} issue(s) found`
|
|
165
|
+
: warnCount > 0
|
|
166
|
+
? `All critical checks pass · ${warnCount} warning(s)`
|
|
167
|
+
: 'All checks passed';
|
|
168
|
+
// Icon-prefixed label shows status at a glance, consistent with wallet screens' label:value pattern
|
|
169
|
+
const rows = props.checks.map(c => ({
|
|
170
|
+
label: (c.status === 'pass' ? '✓' : c.status === 'warn' ? '!' : '✗') + ' ' + c.name + ':',
|
|
171
|
+
value: c.detail,
|
|
172
|
+
}));
|
|
173
|
+
return React.createElement(Screen, { title: "doctor", version: props.version, interactive: props.interactive, onBack: props.onBack, footer: footer, rows: rows });
|
|
174
|
+
}
|
|
175
|
+
export function ConfigScreen(props) {
|
|
176
|
+
const rows = Object.entries(props.config).map(([k, v]) => ({
|
|
177
|
+
label: k + ':',
|
|
178
|
+
value: v === null || v === undefined ? 'not set' : String(v),
|
|
179
|
+
}));
|
|
180
|
+
return React.createElement(Screen, { title: "config", version: props.version, interactive: props.interactive, onBack: props.onBack, footer: "palmyr config", rows: rows });
|
|
181
|
+
}
|
|
182
|
+
export function ComputeDeployScreen(props) {
|
|
183
|
+
return React.createElement(Screen, { title: "deployed", version: props.version, interactive: props.interactive, onBack: props.onBack, footer: "Server live", rows: [
|
|
184
|
+
{ label: 'IP:', value: props.ip },
|
|
185
|
+
{ label: 'Name:', value: props.name },
|
|
186
|
+
{ label: 'Type:', value: props.type },
|
|
187
|
+
{ label: 'SSH:', value: `root@${props.ip}` },
|
|
188
|
+
] });
|
|
189
|
+
}
|
|
190
|
+
export function ComputeListScreen(props) {
|
|
191
|
+
return React.createElement(Screen, { title: "servers", version: props.version, interactive: props.interactive, onBack: props.onBack, footer: `${props.servers.length} server(s)`, rows: props.servers.slice(0, 6).map(s => ({ label: s.ip, value: `${s.type} · ${s.status}` })) });
|
|
192
|
+
}
|
|
193
|
+
export function SuccessScreen(props) {
|
|
194
|
+
return React.createElement(Screen, { title: props.title, version: props.version, interactive: props.interactive, onBack: props.onBack, footer: props.footerLeft, rows: props.details });
|
|
195
|
+
}
|
|
196
|
+
export function PricingScreen(props) {
|
|
197
|
+
return React.createElement(Screen, { title: "pricing", version: props.version, interactive: props.interactive, onBack: props.onBack, footer: "All prices USD/USDC", rows: props.services.slice(0, 6).map(s => ({ label: s.name, value: s.items.map(i => `${i.label} $${i.value}`).join(' · ') })) });
|
|
198
|
+
}
|
|
199
|
+
export function HealthScreen(props) {
|
|
200
|
+
return React.createElement(Screen, { title: "health", version: props.version, interactive: props.interactive, onBack: props.onBack, footer: props.status === 'healthy' ? 'OK' : 'Degraded', rows: [
|
|
201
|
+
{ label: 'Status:', value: props.status },
|
|
202
|
+
{ label: 'Version:', value: props.apiVersion },
|
|
203
|
+
{ label: 'Uptime:', value: props.uptime },
|
|
204
|
+
] });
|
|
205
|
+
}
|
|
206
|
+
export function MenuScreen(props) {
|
|
207
|
+
return React.createElement(Screen, { title: props.title, version: props.version, interactive: props.interactive, onBack: props.onBack, footer: props.footerLeft, rows: props.commands.map(c => ({ label: c.name, value: [c.description, c.hint].filter(Boolean).join(' · ') })) });
|
|
208
|
+
}
|
|
209
|
+
export function RecordsScreen(props) {
|
|
210
|
+
return React.createElement(Screen, { title: props.title, version: props.version, interactive: props.interactive, onBack: props.onBack, footer: props.footerLeft, rows: props.records.slice(0, 8).map(r => ({ label: r.primary, value: [r.secondary, r.status].filter(Boolean).join(' · ') || '-' })) });
|
|
211
|
+
}
|
|
212
|
+
export function ErrorScreen(props) {
|
|
213
|
+
return React.createElement(Screen, { title: "error", version: props.version, interactive: props.interactive, onBack: props.onBack, footer: props.footerLeft, rows: [
|
|
214
|
+
{ label: 'Error:', value: props.message },
|
|
215
|
+
...(props.hint ? [{ label: 'Hint:', value: props.hint }] : []),
|
|
216
|
+
] });
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=app.js.map
|
package/dist/app.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAqB,SAAS,EAAqB,MAAM,OAAO,CAAA;AAC9E,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAkCjD,gBAAgB;AAEhB,MAAM,CAAC,GAAG;IACR,MAAM,EAAE,QAAQ,EAAS,0CAA0C;IACnE,MAAM,EAAE,aAAa,EAAI,gCAAgC;IACzD,IAAI,EAAE,OAAO,EAAY,eAAe;IACxC,KAAK,EAAE,cAAc,EAAI,gCAAgC;IACzD,KAAK,EAAE,MAAM,EAAY,+BAA+B;IACxD,GAAG,EAAE,aAAa,EAAO,mBAAmB;IAC5C,EAAE,EAAE,OAAO;IACX,GAAG,EAAE,KAAK;CACF,CAAA;AAEV,yBAAyB;AAEzB,SAAS,aAAa,CAAC,EAAE,IAAI,EAAsB;IACjD,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IACrB,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,IACxB,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,IAAG,IAAI,CAAQ,CAAC,CAC1E,CACP,CAAA;AACH,CAAC;AAED,qBAAqB;AAErB,SAAS,GAAG,CAAC,KAA4D;IACvE,OAAO,CACL,oBAAC,GAAG;QACF,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK;YAAG,KAAK,CAAC,KAAK;gBAAS;QAC3C,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,IAAG,KAAK,CAAC,KAAK,CAAQ,CAC3D,CACP,CAAA;AACH,CAAC;AAED,SAAS,GAAG,CAAC,KAAqC;IAChD,OAAO,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;;QAAE,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAG,KAAK,CAAC,KAAK,CAAQ,CAAO,CAAA;AACvH,CAAC;AAED,SAAS,OAAO;IACd,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;IAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;IACnD,OAAO,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,GAAG,IAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAQ,CAAA;AACnD,CAAC;AAED,gBAAgB;AAEhB,SAAS,KAAK,CAAC,KAMb;IACA,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;YAAE,KAAK,CAAC,MAAM,EAAE,CAAA;IACnE,CAAC,CAAC,CAAA;IAEF,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;QACjD,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAC,QAAQ,OAAG;QAG/C,oBAAC,GAAG;YACF,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,mBAAc;YACzC,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,GAAG;;gBAAK,KAAK,CAAC,OAAO,CAAQ;YAC5C,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK;;gBAAM,KAAK,CAAC,KAAK,CAAQ,CACzC;QAEN,oBAAC,OAAO,OAAG;QAGX,oBAAC,GAAG,IAAC,OAAO,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,IACpC,KAAK,CAAC,QAAQ,CACX;QAEN,oBAAC,OAAO,OAAG;QAGX,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,GAAG,IAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAQ,CAC3C,CACP,CAAA;AACH,CAAC;AAED,SAAS,QAAQ;IACf,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAA;IACzB,SAAS,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IACjG,OAAO,IAAI,CAAA;AACb,CAAC;AAED,yBAAyB;AAEzB,SAAS,MAAM,CAAC,KAOf;IACC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;IAC9B,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,GAAG,EAAE,CAAA;IAC3C,OAAO,CACL,oBAAC,KAAK,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM;QAC/K,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,IACxB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAC,GAAG,IAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAI,CAAC,CACtE,CACA,CACT,CAAA;AACH,CAAC;AAED,oBAAoB;AAEpB,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;IAC9B,MAAM,IAAI,GAAG,MAAM,EAAE,OAAO,IAAI,EAAE,CAAA;IAClC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,CAAA;IAExB,MAAM,QAAQ,GAAG;QACf,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE;QACvD,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE;QAClD,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,6BAA6B,EAAE;QAC3D,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,uBAAuB,EAAE;QACrD,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,EAAE;QACvD,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,qBAAqB,EAAE;KACrD,CAAA;IAED,OAAO,CACL,oBAAC,KAAK,IAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAC,+CAA+C;QAChG,oBAAC,GAAG,IAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;YAE3C,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnF,oBAAC,aAAa,IAAC,IAAI,EAAE,MAAM,GAAI;gBAC/B,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK,8BAAgC,CAChD;YAGN,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;gBACzB,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,qBAAgB;gBAC1C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACjB,oBAAC,GAAG,IAAC,GAAG,EAAE,CAAC,CAAC,IAAI;oBACd,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAQ;oBAChD,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAG,CAAC,CAAC,OAAO,CAAQ,CACpC,CACP,CAAC;gBAEF,oBAAC,GAAG,IAAC,SAAS,EAAE,CAAC;oBACf,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,qBAAgB,CACvC;gBACN,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK,yCAA2C;gBAC/D,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK,6BAA+B;gBACnD,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK,0CAA4C;gBAChE,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK,sBAAwB,CACxC,CACF,CACA,CACT,CAAA;AACH,CAAC;AAED,kBAAkB;AAElB,MAAM,UAAU,YAAY,CAAC,KAAyC;IACpE,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAA;IAC7B,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE;YACrK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE;YACnC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE;YAChE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,IAAI,SAAS,EAAE;YAC3D,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,SAAS,EAAE;YACvD,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,IAAI,QAAQ,EAAE;SAC7D,GAAI,CAAA;AACP,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAwC;IAClE,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAC,sBAAsB,EAAC,IAAI,EAAE;YAC7I,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE;YAC5C,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE;YACnC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpD,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE;SAC5C,GAAI,CAAA;AACP,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAA+C;IAChF,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAC,eAAe,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAC,sBAAsB,EAAC,IAAI,EACnJ,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,GAClG,CAAA;AACN,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAA8C;IAC9E,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAC,cAAc,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE;YAChL,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE;YACzC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE;SACrE,GAAI,CAAA;AACP,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAgD;IAClF,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAC,yBAAyB,EAAC,IAAI,EAChJ,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAC9E,CAAA;AACN,CAAC;AAED,iEAAiE;AACjE,SAAS,UAAU,CAAC,CAAyF;IAC3G,OAAO;QACL,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE;QACjC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;QAC7B,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE;QACjC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAA+C;IAChF,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAC,gBAAgB,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAC,cAAc,EAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GAAI,CAAA;AACvK,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAA+C;IAChF,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAC,iBAAiB,EAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GAAI,CAAA;AAClK,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAA6C;IAC5E,6EAA6E;IAC7E,MAAM,IAAI,GAA4C,EAAE,CAAA;IACxD,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC7B,IAAI,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA,CAAC,SAAS;QACxD,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;IACF,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,YAAY,EAAE,IAAI,EAAE,IAAI,GAAI,CAAA;AAC1K,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAyC;IACpE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAA;IACtE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAA;IACtE,MAAM,MAAM,GAAG,SAAS,GAAG,CAAC;QAC1B,CAAC,CAAC,GAAG,SAAS,iBAAiB;QAC/B,CAAC,CAAC,SAAS,GAAG,CAAC;YACb,CAAC,CAAC,8BAA8B,SAAS,aAAa;YACtD,CAAC,CAAC,mBAAmB,CAAA;IACzB,oGAAoG;IACpG,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG;QACzF,KAAK,EAAE,CAAC,CAAC,MAAM;KAChB,CAAC,CAAC,CAAA;IACH,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAI,CAAA;AAC5I,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAyC;IACpE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzD,KAAK,EAAE,CAAC,GAAG,GAAG;QACd,KAAK,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;KAC7D,CAAC,CAAC,CAAA;IACH,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAC,eAAe,EAAC,IAAI,EAAE,IAAI,GAAI,CAAA;AACnJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAgD;IAClF,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAC,UAAU,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAC,aAAa,EAAC,IAAI,EAAE;YACvI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE;YACjC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;YACrC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;YACrC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,CAAC,EAAE,EAAE,EAAE;SAC7C,GAAI,CAAA;AACP,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAA8C;IAC9E,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,YAAY,EAAE,IAAI,EAC5J,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GACrF,CAAA;AACN,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAA0C;IACtE,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,GAAI,CAAA;AACpK,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAA0C;IACtE,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAC,qBAAqB,EAAC,IAAI,EAC5I,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GACrH,CAAA;AACN,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAyC;IACpE,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE;YACxK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE;YACzC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE;YAC9C,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE;SAC1C,GAAI,CAAA;AACP,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAuC;IAChE,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAC7I,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GACtG,CAAA;AACN,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAA0C;IACtE,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAC7I,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,GAC3H,CAAA;AACN,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAwC;IAClE,OAAO,oBAAC,MAAM,IAAC,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE;YACzI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE;YACzC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/D,GAAI,CAAA;AACP,CAAC"}
|
package/dist/cli.d.ts
ADDED