@unstoppabledomains/ud-cli 0.1.20 → 0.1.21
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 +83 -72
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +100 -1
- package/dist/commands/auth.js.map +1 -1
- package/dist/lib/api.js +1 -1
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/prompt.d.ts +5 -0
- package/dist/lib/prompt.d.ts.map +1 -1
- package/dist/lib/prompt.js +56 -0
- package/dist/lib/prompt.js.map +1 -1
- package/dist/lib/signup.d.ts +15 -0
- package/dist/lib/signup.d.ts.map +1 -0
- package/dist/lib/signup.js +47 -0
- package/dist/lib/signup.js.map +1 -0
- package/package.json +1 -1
- package/skills/ud-cli/SKILL.md +11 -1
package/README.md
CHANGED
|
@@ -11,8 +11,8 @@ curl -fsSL https://raw.githubusercontent.com/unstoppabledomains/ud-cli/main/inst
|
|
|
11
11
|
# Or install via npm
|
|
12
12
|
npm install -g @unstoppabledomains/ud-cli
|
|
13
13
|
|
|
14
|
-
#
|
|
15
|
-
ud auth
|
|
14
|
+
# Create an account (or use ud auth login to sign in)
|
|
15
|
+
ud auth signup
|
|
16
16
|
|
|
17
17
|
# You're ready — try it out
|
|
18
18
|
ud search mybusiness
|
|
@@ -32,13 +32,21 @@ The CLI also checks for updates automatically once every 24 hours and prints a n
|
|
|
32
32
|
|
|
33
33
|
## Authentication
|
|
34
34
|
|
|
35
|
-
###
|
|
35
|
+
### Signup (create account)
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
ud auth signup
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Creates a new account directly from the terminal. Prompts for email and password, sends a verification code to your email, and signs you in — no browser needed.
|
|
42
|
+
|
|
43
|
+
### OAuth (browser-based)
|
|
36
44
|
|
|
37
45
|
```bash
|
|
38
46
|
ud auth login
|
|
39
47
|
```
|
|
40
48
|
|
|
41
|
-
Opens a browser for authorization using OAuth 2.0 with PKCE. Tokens are automatically refreshed.
|
|
49
|
+
Opens a browser for authorization using OAuth 2.0 with PKCE. Use this to sign in to an existing account. Tokens are automatically refreshed.
|
|
42
50
|
|
|
43
51
|
### API Key
|
|
44
52
|
|
|
@@ -100,85 +108,86 @@ Invalid field names are rejected with an error and a hint to run `--fields` for
|
|
|
100
108
|
|
|
101
109
|
```
|
|
102
110
|
ud
|
|
103
|
-
├── search <query> Search for available domains
|
|
104
|
-
├── tlds List available TLDs
|
|
105
111
|
├── auth
|
|
112
|
+
│ ├── signup Create a new account
|
|
106
113
|
│ ├── login Authenticate (OAuth or API key)
|
|
107
114
|
│ ├── logout Clear stored credentials
|
|
108
115
|
│ └── status Check current auth status
|
|
116
|
+
├── cart
|
|
117
|
+
│ ├── add [domain...] Smart add (auto-detects source)
|
|
118
|
+
│ │ ├── afternic <domains...> Add Afternic marketplace domains
|
|
119
|
+
│ │ ├── listed <domains...> Add marketplace-listed domains
|
|
120
|
+
│ │ ├── registration <domains...> Add domains for registration
|
|
121
|
+
│ │ ├── renewal <domains...> Add domain renewals
|
|
122
|
+
│ │ └── sedo <domains...> Add Sedo marketplace domains
|
|
123
|
+
│ ├── checkout Complete cart checkout
|
|
124
|
+
│ ├── list List shopping cart with pricing
|
|
125
|
+
│ ├── payment-methods
|
|
126
|
+
│ │ ├── add Get URL to add payment method
|
|
127
|
+
│ │ └── list List available payment methods
|
|
128
|
+
│ ├── remove Remove items from cart
|
|
129
|
+
│ └── url Get checkout URL
|
|
130
|
+
├── completion Generate shell completion scripts
|
|
131
|
+
├── config
|
|
132
|
+
│ ├── get [command] Show saved defaults
|
|
133
|
+
│ ├── reset <command> [key] Remove saved defaults
|
|
134
|
+
│ └── set <command> <key> <value> Save a default option
|
|
109
135
|
├── domains
|
|
110
|
-
│ ├── list List portfolio domains
|
|
111
|
-
│ ├── get <domains...> Get detailed domain info
|
|
112
|
-
│ ├── push <domains...> Push domains to another user
|
|
113
|
-
│ ├── operations
|
|
114
|
-
│ │ └── show <domains...> Show pending operations
|
|
115
|
-
│ ├── tags
|
|
116
|
-
│ │ ├── add <domains...> Add tags to domains
|
|
117
|
-
│ │ └── remove <domains...> Remove tags from domains
|
|
118
|
-
│ ├── flags
|
|
119
|
-
│ │ └── update <domains...> Update domain flags
|
|
120
136
|
│ ├── auto-renewal
|
|
121
137
|
│ │ └── update <domains...> Toggle auto-renewal
|
|
122
138
|
│ ├── contacts
|
|
123
|
-
│ │ ├──
|
|
124
|
-
│ │ └──
|
|
139
|
+
│ │ ├── create Create ICANN contact
|
|
140
|
+
│ │ └── list List ICANN contacts
|
|
125
141
|
│ ├── dns
|
|
126
|
-
│ │ ├──
|
|
127
|
-
│ │ │ ├──
|
|
128
|
-
│ │ │ ├──
|
|
129
|
-
│ │ │
|
|
130
|
-
│ │
|
|
131
|
-
│ │
|
|
132
|
-
│ │
|
|
133
|
-
│ │ ├──
|
|
134
|
-
│ │ ├──
|
|
135
|
-
│ │ └──
|
|
136
|
-
│
|
|
137
|
-
│
|
|
138
|
-
│
|
|
139
|
-
│
|
|
140
|
-
│
|
|
141
|
-
│
|
|
142
|
-
│
|
|
143
|
-
│
|
|
144
|
-
│
|
|
145
|
-
├──
|
|
146
|
-
│ ├──
|
|
147
|
-
│
|
|
148
|
-
│ ├──
|
|
149
|
-
│ ├──
|
|
150
|
-
│
|
|
151
|
-
│
|
|
152
|
-
│
|
|
153
|
-
│
|
|
154
|
-
│
|
|
155
|
-
|
|
156
|
-
│
|
|
157
|
-
│
|
|
158
|
-
|
|
142
|
+
│ │ ├── nameservers
|
|
143
|
+
│ │ │ ├── set-custom Set custom nameservers
|
|
144
|
+
│ │ │ ├── set-default Reset to default nameservers
|
|
145
|
+
│ │ │ └── show <domain> Show nameservers
|
|
146
|
+
│ │ └── records
|
|
147
|
+
│ │ ├── add <domain> Add DNS records
|
|
148
|
+
│ │ ├── remove Remove DNS records
|
|
149
|
+
│ │ ├── remove-all <domains...> Remove all DNS records
|
|
150
|
+
│ │ ├── show <domain> Show DNS records
|
|
151
|
+
│ │ └── update Update DNS records
|
|
152
|
+
│ ├── flags
|
|
153
|
+
│ │ └── update <domains...> Update domain flags
|
|
154
|
+
│ ├── get <domains...> Get detailed domain info
|
|
155
|
+
│ ├── hosting
|
|
156
|
+
│ │ ├── landers
|
|
157
|
+
│ │ │ ├── generate <domains...> Generate AI landing page
|
|
158
|
+
│ │ │ ├── remove <domains...> Remove AI landing page
|
|
159
|
+
│ │ │ └── show <domains...> Show lander status
|
|
160
|
+
│ │ └── redirects
|
|
161
|
+
│ │ ├── add Add redirect configuration
|
|
162
|
+
│ │ ├── remove Remove redirect configuration
|
|
163
|
+
│ │ └── show <domain> Show redirect configurations
|
|
164
|
+
│ ├── list List portfolio domains
|
|
165
|
+
│ ├── operations
|
|
166
|
+
│ │ └── show <domains...> Show pending operations
|
|
167
|
+
│ ├── push <domains...> Push domains to another user
|
|
168
|
+
│ └── tags
|
|
169
|
+
│ ├── add <domains...> Add tags to domains
|
|
170
|
+
│ └── remove <domains...> Remove tags from domains
|
|
171
|
+
├── env
|
|
172
|
+
│ ├── set <environment> Switch default environment
|
|
173
|
+
│ └── show Show current environment
|
|
174
|
+
├── install Install shell completions (+ --skills for agent skill)
|
|
159
175
|
├── marketplace
|
|
176
|
+
│ ├── leads
|
|
177
|
+
│ │ ├── list List domain conversation leads
|
|
178
|
+
│ │ ├── messages
|
|
179
|
+
│ │ │ ├── list List messages in a conversation
|
|
180
|
+
│ │ │ └── send Send a message in a conversation
|
|
181
|
+
│ │ └── open <domain> Inquire about a domain
|
|
160
182
|
│ ├── listings
|
|
183
|
+
│ │ ├── cancel Cancel listings
|
|
161
184
|
│ │ ├── create <domains...> Create marketplace listings
|
|
162
|
-
│ │
|
|
163
|
-
│
|
|
164
|
-
│
|
|
165
|
-
│
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
│ ├── list List domain conversation leads
|
|
169
|
-
│ ├── open <domain> Inquire about a domain
|
|
170
|
-
│ └── messages
|
|
171
|
-
│ ├── list List messages in a conversation
|
|
172
|
-
│ └── send Send a message in a conversation
|
|
173
|
-
├── config
|
|
174
|
-
│ ├── set <command> <key> <value> Save a default option
|
|
175
|
-
│ ├── get [command] Show saved defaults
|
|
176
|
-
│ └── reset <command> [key] Remove saved defaults
|
|
177
|
-
├── skill
|
|
178
|
-
│ └── install Install Claude Code skill
|
|
179
|
-
├── env
|
|
180
|
-
│ ├── show Show current environment
|
|
181
|
-
│ └── set <environment> Switch default environment
|
|
185
|
+
│ │ └── update Update marketplace listings
|
|
186
|
+
│ └── offers
|
|
187
|
+
│ ├── list List marketplace offers
|
|
188
|
+
│ └── respond Respond to marketplace offers
|
|
189
|
+
├── search <query> Search for available domains
|
|
190
|
+
├── tlds List available TLDs
|
|
182
191
|
└── update
|
|
183
192
|
└── check Check for updates
|
|
184
193
|
```
|
|
@@ -398,11 +407,13 @@ npx skills add unstoppabledomains/ud-cli
|
|
|
398
407
|
If you already have the CLI installed:
|
|
399
408
|
|
|
400
409
|
```bash
|
|
401
|
-
ud
|
|
410
|
+
ud install --skills
|
|
402
411
|
```
|
|
403
412
|
|
|
404
413
|
Both methods copy the skill to `.claude/skills/ud-cli/` (or the equivalent for your agent). The skill covers search, DNS, cart, marketplace, and all other ud-cli workflows.
|
|
405
414
|
|
|
415
|
+
The `ud install` command also sets up shell tab-completion (auto-detects your shell). Use `--skills-target <dir>` to install to a specific directory instead of the current one.
|
|
416
|
+
|
|
406
417
|
For skills-less operation, agents can also read `ud --help` directly.
|
|
407
418
|
|
|
408
419
|
## Environments
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsE3D"}
|
package/dist/commands/auth.js
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import { getActiveEnv, getEnvConfig, setEnvConfig, clearEnvConfig, apiBaseUrl } from '../lib/config.js';
|
|
3
|
-
import { saveApiKey, clearCredentials, getTokens } from '../lib/credentials.js';
|
|
3
|
+
import { saveApiKey, saveTokens, clearCredentials, getTokens } from '../lib/credentials.js';
|
|
4
4
|
import { performOAuthLogin, revokeToken, discoverMetadata } from '../lib/oauth.js';
|
|
5
|
+
import { startSignup, verifySignup } from '../lib/signup.js';
|
|
6
|
+
import { promptInput, promptPassword } from '../lib/prompt.js';
|
|
7
|
+
import { createSpinner } from '../lib/spinner.js';
|
|
5
8
|
import { verifyAuth } from '../lib/api.js';
|
|
6
9
|
const API_KEY_PATTERN = /^ud_mcp_[0-9a-f]{64}$/;
|
|
10
|
+
const EMAIL_PATTERN = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
11
|
+
const PASSWORD_PATTERN = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^a-zA-Z0-9]).{8,}$/;
|
|
12
|
+
const SIGNUP_CLIENT_ID = 'ud-api-signup-client';
|
|
7
13
|
export function registerAuthCommands(program) {
|
|
8
14
|
const auth = program.command('auth').description('Manage authentication');
|
|
9
15
|
auth
|
|
@@ -21,6 +27,13 @@ export function registerAuthCommands(program) {
|
|
|
21
27
|
await loginOAuth(env);
|
|
22
28
|
}
|
|
23
29
|
});
|
|
30
|
+
auth
|
|
31
|
+
.command('signup')
|
|
32
|
+
.description('Create a new Unstoppable Domains account')
|
|
33
|
+
.action(async () => {
|
|
34
|
+
const env = getActiveEnv();
|
|
35
|
+
await signupFlow(env);
|
|
36
|
+
});
|
|
24
37
|
auth
|
|
25
38
|
.command('logout')
|
|
26
39
|
.description('Clear stored credentials')
|
|
@@ -96,4 +109,90 @@ async function loginOAuth(env) {
|
|
|
96
109
|
process.exitCode = 1;
|
|
97
110
|
}
|
|
98
111
|
}
|
|
112
|
+
async function signupFlow(env) {
|
|
113
|
+
if (!process.stdin.isTTY) {
|
|
114
|
+
console.error(chalk.red('Signup requires an interactive terminal.'));
|
|
115
|
+
process.exitCode = 1;
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
console.log(chalk.blue(`Creating a new account on ${env}...\n`));
|
|
119
|
+
// 1. Email
|
|
120
|
+
const email = await promptInput('Email: ', { validate: EMAIL_PATTERN });
|
|
121
|
+
if (!email) {
|
|
122
|
+
console.error(chalk.red('A valid email address is required.'));
|
|
123
|
+
process.exitCode = 1;
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
// 2. Password
|
|
127
|
+
console.log(chalk.dim('Password must be at least 8 characters with uppercase, lowercase, number, and special character.'));
|
|
128
|
+
const password = await promptPassword('Password: ');
|
|
129
|
+
if (!password) {
|
|
130
|
+
process.exitCode ??= 1;
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (!PASSWORD_PATTERN.test(password)) {
|
|
134
|
+
console.error(chalk.red('Password does not meet requirements.'));
|
|
135
|
+
process.exitCode = 1;
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
// 3. Confirm password
|
|
139
|
+
const confirm = await promptPassword('Confirm password: ');
|
|
140
|
+
if (!confirm) {
|
|
141
|
+
process.exitCode ??= 1;
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
if (password !== confirm) {
|
|
145
|
+
console.error(chalk.red('Passwords do not match.'));
|
|
146
|
+
process.exitCode = 1;
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
// 4. Start signup
|
|
150
|
+
const spinner = await createSpinner('Creating account...');
|
|
151
|
+
spinner.start();
|
|
152
|
+
let sessionToken;
|
|
153
|
+
try {
|
|
154
|
+
const result = await startSignup(email, password);
|
|
155
|
+
sessionToken = result.signup_session_token;
|
|
156
|
+
spinner.succeed('Account created');
|
|
157
|
+
}
|
|
158
|
+
catch (err) {
|
|
159
|
+
spinner.fail('Signup failed');
|
|
160
|
+
console.error(chalk.red(err instanceof Error ? err.message : String(err)));
|
|
161
|
+
process.exitCode = 1;
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
// 5. Verification code
|
|
165
|
+
console.log(`\n${chalk.cyan('Check your email')} for a 6-character verification code.`);
|
|
166
|
+
const code = await promptInput('Verification code: ', { validate: /^[A-Z0-9]{6}$/i });
|
|
167
|
+
if (!code) {
|
|
168
|
+
console.error(chalk.red('Verification code is required.'));
|
|
169
|
+
process.exitCode = 1;
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
// 6. Verify
|
|
173
|
+
const verifySpinner = await createSpinner('Verifying...');
|
|
174
|
+
verifySpinner.start();
|
|
175
|
+
try {
|
|
176
|
+
const tokenResponse = await verifySignup(sessionToken, code.toUpperCase());
|
|
177
|
+
const tokens = {
|
|
178
|
+
accessToken: tokenResponse.access_token,
|
|
179
|
+
refreshToken: tokenResponse.refresh_token,
|
|
180
|
+
expiresAt: Date.now() + tokenResponse.expires_in * 1000,
|
|
181
|
+
scope: tokenResponse.scope,
|
|
182
|
+
};
|
|
183
|
+
await saveTokens(tokens, env);
|
|
184
|
+
setEnvConfig({
|
|
185
|
+
authMethod: 'oauth',
|
|
186
|
+
oauth: { clientId: SIGNUP_CLIENT_ID },
|
|
187
|
+
}, env);
|
|
188
|
+
verifySpinner.succeed('Email verified');
|
|
189
|
+
console.log(chalk.green(`\n✓ Account created and logged in to ${env}.`));
|
|
190
|
+
console.log(chalk.dim('Tip: Run "ud install" to enable shell tab completion.'));
|
|
191
|
+
}
|
|
192
|
+
catch (err) {
|
|
193
|
+
verifySpinner.fail('Verification failed');
|
|
194
|
+
console.error(chalk.red(err instanceof Error ? err.message : String(err)));
|
|
195
|
+
process.exitCode = 1;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
99
198
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/api.js
CHANGED
|
@@ -121,7 +121,7 @@ export async function verifyAuth() {
|
|
|
121
121
|
return {
|
|
122
122
|
authenticated: false,
|
|
123
123
|
environment: env,
|
|
124
|
-
message: 'Not authenticated. Run `ud auth login` to
|
|
124
|
+
message: 'Not authenticated. Run `ud auth signup` to create an account or `ud auth login` to sign in.',
|
|
125
125
|
};
|
|
126
126
|
}
|
|
127
127
|
const method = envConfig.authMethod ?? (hasApiKey ? 'api-key' : 'oauth');
|
package/dist/lib/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAC,4BAA4B;AAE9D,KAAK,UAAU,aAAa;IAC1B,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAEpC,IAAI,SAAS,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;QACrC,IAAI,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,mDAAmD;QACnD,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,EAAE,CAAC;YACtD,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,UAAU,MAAM,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IAED,mBAAmB;IACnB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,UAAU,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,MAAiB;IAC/C,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC;IAC3C,IAAI,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CACvC,QAAQ,CAAC,cAAc,EACvB,MAAM,CAAC,YAAY,EACnB,QAAQ,CACT,CAAC;QAEF,MAAM,SAAS,GAAc;YAC3B,WAAW,EAAE,QAAQ,CAAC,YAAY;YAClC,YAAY,EAAE,QAAQ,CAAC,aAAa;YACpC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,UAAU,GAAG,IAAI;YAClD,KAAK,EAAE,QAAQ,CAAC,KAAK;SACtB,CAAC;QAEF,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;QAC3E,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,GAAW,EACX,UAAuB,EAAE,EACzB,KAAK,GAAG,IAAI;IAEZ,MAAM,UAAU,GAAG,MAAM,aAAa,EAAE,CAAC;IACzC,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;QAClC,GAAI,OAAO,CAAC,OAAkC;KAC/C,CAAC;IACF,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC;IACxC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAEtD,sCAAsC;IACtC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,IAAI,SAAS,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;YACjC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,SAAS,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;oBACjD,OAAO,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,IAAY;IAC9C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAyC,CAAC;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;QAEnD,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,GAAG;gBACN,OAAO,IAAI,QAAQ,CAAC,gBAAgB,OAAO,EAAE,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;YACrE,KAAK,GAAG;gBACN,OAAO,IAAI,QAAQ,CAAC,6DAA6D,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;YAC1G,KAAK,GAAG;gBACN,OAAO,IAAI,QAAQ,CAAC,kBAAkB,OAAO,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YACrE;gBACE,OAAO,IAAI,QAAQ,CAAC,cAAc,MAAM,MAAM,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,QAAQ,CAAC,cAAc,MAAM,MAAM,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED,qBAAqB;AAErB,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAAgB,EAChB,MAA+B;IAE/B,MAAM,GAAG,GAAG,GAAG,UAAU,EAAE,YAAY,QAAQ,EAAE,CAAC;IAClD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE;QAC7B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;KAC7B,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,UAAU,EAAE,SAAS,CAAC;QACrC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,GAAG,CAAC,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAEpC,iCAAiC;IACjC,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAE3C,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO;YACL,aAAa,EAAE,KAAK;YACpB,WAAW,EAAE,GAAG;YAChB,OAAO,EAAE,6FAA6F;SACvG,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAEzE,IAAI,CAAC;QACH,iDAAiD;QACjD,MAAM,GAAG,GAAG,GAAG,UAAU,EAAE,4BAA4B,CAAC;QACxD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE;YAC7B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACX,OAAO;gBACL,aAAa,EAAE,IAAI;gBACnB,MAAM;gBACN,WAAW,EAAE,GAAG;gBAChB,OAAO,EAAE,qBAAqB,MAAM,OAAO,GAAG,EAAE;aACjD,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO;YACL,aAAa,EAAE,KAAK;YACpB,MAAM;YACN,WAAW,EAAE,GAAG;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,aAAa,EAAE,KAAK;YACpB,MAAM;YACN,WAAW,EAAE,GAAG;YAChB,OAAO,EAAE,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SACjF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/lib/prompt.d.ts
CHANGED
|
@@ -9,6 +9,11 @@
|
|
|
9
9
|
export declare function promptInput(message: string, opts?: {
|
|
10
10
|
validate?: RegExp;
|
|
11
11
|
}): Promise<string>;
|
|
12
|
+
/**
|
|
13
|
+
* Prompt the user for a password with masked input (echoes * per character).
|
|
14
|
+
* Returns empty string in non-TTY environments.
|
|
15
|
+
*/
|
|
16
|
+
export declare function promptPassword(message: string): Promise<string>;
|
|
12
17
|
/**
|
|
13
18
|
* Prompt the user for a yes/no confirmation.
|
|
14
19
|
* Returns false in non-TTY environments.
|
package/dist/lib/prompt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/lib/prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUrE"}
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/lib/prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuDrE;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUrE"}
|
package/dist/lib/prompt.js
CHANGED
|
@@ -34,6 +34,62 @@ export async function promptInput(message, opts) {
|
|
|
34
34
|
rl.close();
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Prompt the user for a password with masked input (echoes * per character).
|
|
39
|
+
* Returns empty string in non-TTY environments.
|
|
40
|
+
*/
|
|
41
|
+
export async function promptPassword(message) {
|
|
42
|
+
if (!process.stdin.isTTY)
|
|
43
|
+
return '';
|
|
44
|
+
process.stdout.write(message);
|
|
45
|
+
return new Promise((resolve) => {
|
|
46
|
+
const stdin = process.stdin;
|
|
47
|
+
stdin.setRawMode(true);
|
|
48
|
+
stdin.resume();
|
|
49
|
+
stdin.setEncoding('utf8');
|
|
50
|
+
let password = '';
|
|
51
|
+
const onData = (chunk) => {
|
|
52
|
+
// Raw-mode stdin may deliver multiple characters in a single chunk
|
|
53
|
+
// (e.g. pasted text), so iterate through each character individually.
|
|
54
|
+
for (const char of chunk) {
|
|
55
|
+
switch (char) {
|
|
56
|
+
case '\n':
|
|
57
|
+
case '\r':
|
|
58
|
+
case '\u0004': // Ctrl+D
|
|
59
|
+
stdin.setRawMode(false);
|
|
60
|
+
stdin.pause();
|
|
61
|
+
stdin.removeListener('data', onData);
|
|
62
|
+
process.stdout.write('\n');
|
|
63
|
+
resolve(password);
|
|
64
|
+
return;
|
|
65
|
+
case '\u0003': // Ctrl+C
|
|
66
|
+
stdin.setRawMode(false);
|
|
67
|
+
stdin.pause();
|
|
68
|
+
stdin.removeListener('data', onData);
|
|
69
|
+
process.stdout.write('\n');
|
|
70
|
+
process.exitCode = 130;
|
|
71
|
+
resolve('');
|
|
72
|
+
return;
|
|
73
|
+
case '\u007F': // Backspace
|
|
74
|
+
case '\b':
|
|
75
|
+
if (password.length > 0) {
|
|
76
|
+
password = password.slice(0, -1);
|
|
77
|
+
process.stdout.write('\b \b');
|
|
78
|
+
}
|
|
79
|
+
break;
|
|
80
|
+
default:
|
|
81
|
+
// Only accept printable ASCII (space through tilde)
|
|
82
|
+
if (char >= ' ' && char <= '~') {
|
|
83
|
+
password += char;
|
|
84
|
+
process.stdout.write('*');
|
|
85
|
+
}
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
stdin.on('data', onData);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
37
93
|
/**
|
|
38
94
|
* Prompt the user for a yes/no confirmation.
|
|
39
95
|
* Returns false in non-TTY environments.
|
package/dist/lib/prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/lib/prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,IAA4B;IAE5B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,WAAW,GAAG,CAAC,CAAC;IACtB,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACxD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,IAAI,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,MAAM,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;gBACxC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,CAAC,QAAQ,KAAK,SAAS,WAAW,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;gBAC/H,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACnE,CAAC;gBACD,SAAS;YACX,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEvC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,OAAO,SAAS,CAAC,CAAC;QACtD,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/lib/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface SignupResponse {
|
|
2
|
+
signup_session_token: string;
|
|
3
|
+
expires_in: number;
|
|
4
|
+
}
|
|
5
|
+
interface SignupVerifyResponse {
|
|
6
|
+
access_token: string;
|
|
7
|
+
token_type: string;
|
|
8
|
+
expires_in: number;
|
|
9
|
+
refresh_token: string;
|
|
10
|
+
scope: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function startSignup(email: string, password: string): Promise<SignupResponse>;
|
|
13
|
+
export declare function verifySignup(sessionToken: string, verificationCode: string): Promise<SignupVerifyResponse>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=signup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signup.d.ts","sourceRoot":"","sources":["../../src/lib/signup.ts"],"names":[],"mappings":"AAEA,UAAU,cAAc;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,oBAAoB;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAOD,wBAAsB,WAAW,CAC/B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC,CAoBzB;AAED,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAuB/B"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { apiBaseUrl } from './config.js';
|
|
2
|
+
export async function startSignup(email, password) {
|
|
3
|
+
const url = `${apiBaseUrl()}/api/oauth/signup`;
|
|
4
|
+
const res = await fetch(url, {
|
|
5
|
+
method: 'POST',
|
|
6
|
+
headers: { 'Content-Type': 'application/json' },
|
|
7
|
+
body: JSON.stringify({ email, password }),
|
|
8
|
+
});
|
|
9
|
+
if (!res.ok) {
|
|
10
|
+
const text = await res.text();
|
|
11
|
+
try {
|
|
12
|
+
const body = JSON.parse(text);
|
|
13
|
+
throw new Error(body.error_description ?? 'Signup failed');
|
|
14
|
+
}
|
|
15
|
+
catch (err) {
|
|
16
|
+
if (err instanceof SyntaxError)
|
|
17
|
+
throw new Error('Signup failed');
|
|
18
|
+
throw err;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return (await res.json());
|
|
22
|
+
}
|
|
23
|
+
export async function verifySignup(sessionToken, verificationCode) {
|
|
24
|
+
const url = `${apiBaseUrl()}/api/oauth/signup/verify`;
|
|
25
|
+
const res = await fetch(url, {
|
|
26
|
+
method: 'POST',
|
|
27
|
+
headers: { 'Content-Type': 'application/json' },
|
|
28
|
+
body: JSON.stringify({
|
|
29
|
+
signup_session_token: sessionToken,
|
|
30
|
+
verification_code: verificationCode,
|
|
31
|
+
}),
|
|
32
|
+
});
|
|
33
|
+
if (!res.ok) {
|
|
34
|
+
const text = await res.text();
|
|
35
|
+
try {
|
|
36
|
+
const body = JSON.parse(text);
|
|
37
|
+
throw new Error(body.error_description ?? 'Verification failed');
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
if (err instanceof SyntaxError)
|
|
41
|
+
throw new Error('Verification failed');
|
|
42
|
+
throw err;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return (await res.json());
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=signup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signup.js","sourceRoot":"","sources":["../../src/lib/signup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAoBzC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAa,EACb,QAAgB;IAEhB,MAAM,GAAG,GAAG,GAAG,UAAU,EAAE,mBAAmB,CAAC;IAC/C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;KAC1C,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,eAAe,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,WAAW;gBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;YACjE,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAmB,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,YAAoB,EACpB,gBAAwB;IAExB,MAAM,GAAG,GAAG,GAAG,UAAU,EAAE,0BAA0B,CAAC;IACtD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,oBAAoB,EAAE,YAAY;YAClC,iBAAiB,EAAE,gBAAgB;SACpC,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,qBAAqB,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,WAAW;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACvE,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;AACpD,CAAC"}
|
package/package.json
CHANGED
package/skills/ud-cli/SKILL.md
CHANGED
|
@@ -9,11 +9,21 @@ allowed-tools: Bash(ud:*)
|
|
|
9
9
|
## Prerequisites
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
ud auth
|
|
12
|
+
ud auth signup # Create account (no browser needed — recommended for agents)
|
|
13
|
+
ud auth login # OAuth sign-in (opens browser)
|
|
13
14
|
ud auth login -k <key> # API key (ud_mcp_ + 64 hex chars)
|
|
14
15
|
ud auth status # Check current auth
|
|
15
16
|
```
|
|
16
17
|
|
|
18
|
+
### Account Creation (headless)
|
|
19
|
+
|
|
20
|
+
`ud auth signup` creates an account interactively:
|
|
21
|
+
1. Prompts for email and password (min 8 chars, uppercase, lowercase, number, special character)
|
|
22
|
+
2. Sends a 6-character verification code to the email
|
|
23
|
+
3. Prompts for the code, then signs you in automatically
|
|
24
|
+
|
|
25
|
+
This is the fastest path to onboard — no browser or dashboard needed.
|
|
26
|
+
|
|
17
27
|
## Global Options
|
|
18
28
|
|
|
19
29
|
```
|