@unstoppabledomains/ud-cli 0.1.0 → 0.1.1-rc.3
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 +29 -10
- package/dist/commands/auth.js +1 -1
- package/dist/commands/update.d.ts +3 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +63 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +4 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/types.d.ts +1 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/update.d.ts +25 -0
- package/dist/lib/update.d.ts.map +1 -0
- package/dist/lib/update.js +160 -0
- package/dist/lib/update.js.map +1 -0
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +41 -8
- package/dist/program.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,26 +1,35 @@
|
|
|
1
1
|
# ud-cli
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Unstoppable Domains CLI — Search, register, and manage your domains from the command line.
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
# Install
|
|
9
|
-
|
|
8
|
+
# Install (macOS / Linux) — may prompt for sudo
|
|
9
|
+
curl -fsSL https://raw.githubusercontent.com/unstoppabledomains/ud-cli/main/install.sh | sh
|
|
10
|
+
|
|
11
|
+
# Or install via npm
|
|
12
|
+
npm install -g @unstoppabledomains/ud-cli
|
|
10
13
|
|
|
11
14
|
# Authenticate (opens browser for OAuth)
|
|
12
|
-
|
|
15
|
+
ud auth login
|
|
13
16
|
|
|
14
|
-
#
|
|
15
|
-
|
|
17
|
+
# You're ready — try it out
|
|
18
|
+
ud domains search mybusiness
|
|
19
|
+
```
|
|
16
20
|
|
|
17
|
-
|
|
18
|
-
|
|
21
|
+
## Updating
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Check for updates
|
|
25
|
+
ud update check
|
|
19
26
|
|
|
20
|
-
#
|
|
21
|
-
|
|
27
|
+
# Update to the latest version
|
|
28
|
+
ud update
|
|
22
29
|
```
|
|
23
30
|
|
|
31
|
+
The CLI also checks for updates automatically once every 24 hours and prints a notification if a newer version is available.
|
|
32
|
+
|
|
24
33
|
## Authentication
|
|
25
34
|
|
|
26
35
|
### OAuth (default, browser-based)
|
|
@@ -337,6 +346,16 @@ npm run build:binaries # Create standalone executables in bin/
|
|
|
337
346
|
|
|
338
347
|
Binary targets: macOS (arm64, x64), Linux (x64), Windows (x64).
|
|
339
348
|
|
|
349
|
+
## Building from Source
|
|
350
|
+
|
|
351
|
+
```bash
|
|
352
|
+
git clone https://github.com/unstoppabledomains/ud-cli.git
|
|
353
|
+
cd ud-cli
|
|
354
|
+
npm install
|
|
355
|
+
npm run build
|
|
356
|
+
npm install -g .
|
|
357
|
+
```
|
|
358
|
+
|
|
340
359
|
## Credential Storage
|
|
341
360
|
|
|
342
361
|
Credentials are stored securely:
|
package/dist/commands/auth.js
CHANGED
|
@@ -9,7 +9,7 @@ export function registerAuthCommands(program) {
|
|
|
9
9
|
auth
|
|
10
10
|
.command('login')
|
|
11
11
|
.description('Authenticate with Unstoppable Domains')
|
|
12
|
-
.option('-m, --method <method>', '
|
|
12
|
+
.option('-m, --method <method>', 'Auth method (oauth or api-key)', 'oauth')
|
|
13
13
|
.option('-k, --key <key>', 'API key (for api-key method)')
|
|
14
14
|
.action(async (options) => {
|
|
15
15
|
const env = getActiveEnv();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiE7D"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { checkForUpdate, isBinaryInstall, selfUpdate, } from '../lib/update.js';
|
|
4
|
+
export function registerUpdateCommands(program) {
|
|
5
|
+
const update = program
|
|
6
|
+
.command('update')
|
|
7
|
+
.description('Update ud-cli to the latest version')
|
|
8
|
+
.action(async () => {
|
|
9
|
+
const spinner = ora('Checking for updates…').start();
|
|
10
|
+
let info;
|
|
11
|
+
try {
|
|
12
|
+
info = await checkForUpdate();
|
|
13
|
+
}
|
|
14
|
+
catch (err) {
|
|
15
|
+
spinner.fail('Failed to check for updates.');
|
|
16
|
+
console.error(chalk.red(err instanceof Error ? err.message : String(err)));
|
|
17
|
+
process.exitCode = 1;
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (!info.updateAvailable) {
|
|
21
|
+
spinner.succeed(`Already up to date (${chalk.bold(info.current)}).`);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
spinner.info(`Update available: ${chalk.dim(info.current)} → ${chalk.bold(info.latest)}`);
|
|
25
|
+
if (!isBinaryInstall()) {
|
|
26
|
+
console.log();
|
|
27
|
+
console.log('This installation is managed by npm. Run:');
|
|
28
|
+
console.log(chalk.cyan(' npm update -g @unstoppabledomains/ud-cli'));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const dlSpinner = ora(`Downloading v${info.latest}…`).start();
|
|
32
|
+
try {
|
|
33
|
+
const result = await selfUpdate(info.latest);
|
|
34
|
+
dlSpinner.succeed(`Updated successfully: ${chalk.dim(result.previousVersion)} → ${chalk.bold(result.newVersion)}`);
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
dlSpinner.fail('Update failed.');
|
|
38
|
+
console.error(chalk.red(err instanceof Error ? err.message : String(err)));
|
|
39
|
+
process.exitCode = 1;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
update
|
|
43
|
+
.command('check')
|
|
44
|
+
.description('Check if a newer version is available')
|
|
45
|
+
.action(async () => {
|
|
46
|
+
try {
|
|
47
|
+
const info = await checkForUpdate();
|
|
48
|
+
if (info.updateAvailable) {
|
|
49
|
+
console.log(`Update available: ${chalk.dim(info.current)} → ${chalk.bold(info.latest)}`);
|
|
50
|
+
console.log(chalk.dim('Run "ud update" to upgrade.'));
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
console.log(`Up to date: ${chalk.bold(info.current)}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
console.error(chalk.red('Failed to check for updates.'));
|
|
58
|
+
console.error(chalk.red(err instanceof Error ? err.message : String(err)));
|
|
59
|
+
process.exitCode = 1;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA8B7F,QAAA,MAAM,MAAM,iBAGV,CAAC;AAKH,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAErD;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAgB,YAAY,IAAI,WAAW,CAE1C;AAED,wBAAgB,aAAa,IAAI,WAAW,CAE3C;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAEpD;AAED,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,CAEpD;AAED,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,MAAM,CAEpD;AAED,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAGjE;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,CAI3F;AAED,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,CAGtD;AAMD,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAEhE;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAEvE;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAIhH;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,eAAe,GAAG,IAAI,CAc1F;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
package/dist/lib/config.js
CHANGED
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -54,6 +54,7 @@ export interface AppConfig {
|
|
|
54
54
|
environment: Environment;
|
|
55
55
|
environments: Record<Environment, EnvironmentConfig>;
|
|
56
56
|
defaults: Record<string, CommandDefaults>;
|
|
57
|
+
lastUpdateCheck: number;
|
|
57
58
|
}
|
|
58
59
|
export declare class ApiError extends Error {
|
|
59
60
|
statusCode: number;
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,gCAAgC,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,kBAAkB;IACjC,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;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,0BAA0B,EAAE,MAAM,CAAC;IACnC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACjC,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,uBAAuB,CAAC,EAAE,MAAM,CAAC;KAClC,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IACrD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,gCAAgC,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,kBAAkB;IACjC,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;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,0BAA0B,EAAE,MAAM,CAAC;IACnC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACjC,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,uBAAuB,CAAC,EAAE,MAAM,CAAC;KAClC,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IACrD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC1C,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,QAAS,SAAQ,KAAK;IAGxB,UAAU,EAAE,MAAM;IAClB,IAAI,CAAC,EAAE,MAAM;gBAFpB,OAAO,EAAE,MAAM,EACR,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,YAAA;CAKvB"}
|
package/dist/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAoEA,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGxB;IACA;IAHT,YACE,OAAe,EACR,UAAkB,EAClB,IAAa;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,eAAU,GAAV,UAAU,CAAQ;QAClB,SAAI,GAAJ,IAAI,CAAS;QAGpB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare function getCurrentVersion(): string;
|
|
2
|
+
export declare function getLatestVersion(options?: {
|
|
3
|
+
timeoutMs?: number;
|
|
4
|
+
}): Promise<string>;
|
|
5
|
+
/** Compare two semver strings. Returns true if latest > current. */
|
|
6
|
+
export declare function isNewer(current: string, latest: string): boolean;
|
|
7
|
+
/** @yao-pkg/pkg injects `process.pkg` when running as a standalone binary bundle. */
|
|
8
|
+
export declare function isBinaryInstall(): boolean;
|
|
9
|
+
export declare function getBinaryName(): string;
|
|
10
|
+
export declare function getDownloadUrl(version: string): string;
|
|
11
|
+
export declare function shouldCheckForUpdate(): boolean;
|
|
12
|
+
export declare function recordUpdateCheck(): void;
|
|
13
|
+
export interface UpdateInfo {
|
|
14
|
+
current: string;
|
|
15
|
+
latest: string;
|
|
16
|
+
updateAvailable: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare function checkForUpdate(options?: {
|
|
19
|
+
timeoutMs?: number;
|
|
20
|
+
}): Promise<UpdateInfo>;
|
|
21
|
+
export declare function selfUpdate(knownLatest?: string): Promise<{
|
|
22
|
+
previousVersion: string;
|
|
23
|
+
newVersion: string;
|
|
24
|
+
}>;
|
|
25
|
+
//# sourceMappingURL=update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/lib/update.ts"],"names":[],"mappings":"AAmBA,wBAAgB,iBAAiB,IAAI,MAAM,CAI1C;AAED,wBAAsB,gBAAgB,CAAC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBxF;AAKD,oEAAoE;AACpE,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAUhE;AAMD,qFAAqF;AACrF,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAiBD,wBAAgB,aAAa,IAAI,MAAM,CAQtC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAMD,wBAAgB,oBAAoB,IAAI,OAAO,CAG9C;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAMD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAI1F;AAED,wBAAsB,UAAU,CAC9B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CA0E1D"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import { createHash } from 'node:crypto';
|
|
3
|
+
import { chmod, rename, unlink, writeFile } from 'node:fs/promises';
|
|
4
|
+
import { execFile } from 'node:child_process';
|
|
5
|
+
import { promisify } from 'node:util';
|
|
6
|
+
import { config } from './config.js';
|
|
7
|
+
const execFileAsync = promisify(execFile);
|
|
8
|
+
const GITHUB_REPO = 'unstoppabledomains/ud-cli';
|
|
9
|
+
const RELEASES_LATEST_URL = `https://api.github.com/repos/${GITHUB_REPO}/releases/latest`;
|
|
10
|
+
const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// Version helpers
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
export function getCurrentVersion() {
|
|
15
|
+
if (typeof __PKG_VERSION__ === 'string')
|
|
16
|
+
return __PKG_VERSION__;
|
|
17
|
+
const req = createRequire(import.meta.url);
|
|
18
|
+
return req('../../package.json').version;
|
|
19
|
+
}
|
|
20
|
+
export async function getLatestVersion(options) {
|
|
21
|
+
const fetchOptions = {
|
|
22
|
+
headers: {
|
|
23
|
+
Accept: 'application/vnd.github.v3+json',
|
|
24
|
+
'User-Agent': 'ud-cli',
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
if (options?.timeoutMs) {
|
|
28
|
+
fetchOptions.signal = AbortSignal.timeout(options.timeoutMs);
|
|
29
|
+
}
|
|
30
|
+
const res = await fetch(RELEASES_LATEST_URL, fetchOptions);
|
|
31
|
+
if (!res.ok) {
|
|
32
|
+
throw new Error(`GitHub API returned ${res.status}: ${res.statusText}`);
|
|
33
|
+
}
|
|
34
|
+
const data = (await res.json());
|
|
35
|
+
return data.tag_name.replace(/^v/, '');
|
|
36
|
+
}
|
|
37
|
+
/** Strip pre-release and build metadata (e.g. "1.0.0-beta.1+build" → "1.0.0"). */
|
|
38
|
+
const normalize = (v) => v.replace(/[-+].*$/, '');
|
|
39
|
+
/** Compare two semver strings. Returns true if latest > current. */
|
|
40
|
+
export function isNewer(current, latest) {
|
|
41
|
+
const c = normalize(current).split('.').map(Number);
|
|
42
|
+
const l = normalize(latest).split('.').map(Number);
|
|
43
|
+
for (let i = 0; i < Math.max(c.length, l.length); i++) {
|
|
44
|
+
const cv = c[i] ?? 0;
|
|
45
|
+
const lv = l[i] ?? 0;
|
|
46
|
+
if (lv > cv)
|
|
47
|
+
return true;
|
|
48
|
+
if (lv < cv)
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
// Install-method detection
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
/** @yao-pkg/pkg injects `process.pkg` when running as a standalone binary bundle. */
|
|
57
|
+
export function isBinaryInstall() {
|
|
58
|
+
return !!process.pkg;
|
|
59
|
+
}
|
|
60
|
+
// ---------------------------------------------------------------------------
|
|
61
|
+
// Platform / binary naming
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
const PLATFORM_MAP = {
|
|
64
|
+
darwin: 'macos',
|
|
65
|
+
linux: 'linux',
|
|
66
|
+
win32: 'win',
|
|
67
|
+
};
|
|
68
|
+
const ARCH_MAP = {
|
|
69
|
+
arm64: 'arm64',
|
|
70
|
+
x64: 'x64',
|
|
71
|
+
};
|
|
72
|
+
export function getBinaryName() {
|
|
73
|
+
const os = PLATFORM_MAP[process.platform];
|
|
74
|
+
const arch = ARCH_MAP[process.arch];
|
|
75
|
+
if (!os || !arch) {
|
|
76
|
+
throw new Error(`Unsupported platform: ${process.platform}-${process.arch}`);
|
|
77
|
+
}
|
|
78
|
+
const ext = process.platform === 'win32' ? '.exe' : '';
|
|
79
|
+
return `ud-${os}-${arch}${ext}`;
|
|
80
|
+
}
|
|
81
|
+
export function getDownloadUrl(version) {
|
|
82
|
+
return `https://github.com/${GITHUB_REPO}/releases/download/v${version}/${getBinaryName()}`;
|
|
83
|
+
}
|
|
84
|
+
// ---------------------------------------------------------------------------
|
|
85
|
+
// Update check throttling
|
|
86
|
+
// ---------------------------------------------------------------------------
|
|
87
|
+
export function shouldCheckForUpdate() {
|
|
88
|
+
const last = config.get('lastUpdateCheck');
|
|
89
|
+
return Date.now() - last > CHECK_INTERVAL_MS;
|
|
90
|
+
}
|
|
91
|
+
export function recordUpdateCheck() {
|
|
92
|
+
config.set('lastUpdateCheck', Date.now());
|
|
93
|
+
}
|
|
94
|
+
export async function checkForUpdate(options) {
|
|
95
|
+
const current = getCurrentVersion();
|
|
96
|
+
const latest = await getLatestVersion(options);
|
|
97
|
+
return { current, latest, updateAvailable: isNewer(current, latest) };
|
|
98
|
+
}
|
|
99
|
+
export async function selfUpdate(knownLatest) {
|
|
100
|
+
const current = getCurrentVersion();
|
|
101
|
+
const latest = knownLatest ?? (await getLatestVersion());
|
|
102
|
+
if (!isNewer(current, latest)) {
|
|
103
|
+
return { previousVersion: current, newVersion: current };
|
|
104
|
+
}
|
|
105
|
+
if (process.platform === 'win32') {
|
|
106
|
+
throw new Error('Self-update is not supported on Windows. Download the latest release from:\n' +
|
|
107
|
+
` https://github.com/${GITHUB_REPO}/releases`);
|
|
108
|
+
}
|
|
109
|
+
const url = getDownloadUrl(latest);
|
|
110
|
+
const res = await fetch(url, {
|
|
111
|
+
headers: { 'User-Agent': 'ud-cli' },
|
|
112
|
+
});
|
|
113
|
+
if (!res.ok) {
|
|
114
|
+
throw new Error(`Failed to download binary: ${res.status} ${res.statusText}`);
|
|
115
|
+
}
|
|
116
|
+
const buffer = Buffer.from(await res.arrayBuffer());
|
|
117
|
+
const MIN_BINARY_SIZE = 1 * 1024 * 1024; // 1 MB
|
|
118
|
+
if (buffer.length < MIN_BINARY_SIZE) {
|
|
119
|
+
throw new Error(`Downloaded binary is suspiciously small (${buffer.length} bytes). Aborting.`);
|
|
120
|
+
}
|
|
121
|
+
// Verify SHA256 checksum if checksums.txt is published alongside the release
|
|
122
|
+
const checksumUrl = `https://github.com/${GITHUB_REPO}/releases/download/v${latest}/checksums.txt`;
|
|
123
|
+
const checksumRes = await fetch(checksumUrl, { headers: { 'User-Agent': 'ud-cli' } });
|
|
124
|
+
if (checksumRes.ok) {
|
|
125
|
+
const checksums = await checksumRes.text();
|
|
126
|
+
const binaryName = getBinaryName();
|
|
127
|
+
const expectedLine = checksums.split('\n').find((l) => l.includes(binaryName));
|
|
128
|
+
const expected = expectedLine?.split(/\s+/)[0];
|
|
129
|
+
const actual = createHash('sha256').update(buffer).digest('hex');
|
|
130
|
+
if (expected && actual !== expected) {
|
|
131
|
+
throw new Error('Binary integrity check failed — SHA256 mismatch. Download may be corrupted.');
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Place temp file next to the binary so rename() is an atomic same-filesystem move
|
|
135
|
+
const tempPath = `${process.execPath}.update`;
|
|
136
|
+
try {
|
|
137
|
+
await writeFile(tempPath, buffer);
|
|
138
|
+
await chmod(tempPath, 0o755);
|
|
139
|
+
// Strip macOS quarantine attribute
|
|
140
|
+
if (process.platform === 'darwin') {
|
|
141
|
+
try {
|
|
142
|
+
await execFileAsync('xattr', ['-d', 'com.apple.quarantine', tempPath]);
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
// Attribute may not be set — ignore
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
await rename(tempPath, process.execPath);
|
|
149
|
+
}
|
|
150
|
+
catch (err) {
|
|
151
|
+
// Clean up temp file on failure
|
|
152
|
+
await unlink(tempPath).catch(() => { });
|
|
153
|
+
if (err instanceof Error && 'code' in err && err.code === 'EACCES') {
|
|
154
|
+
throw new Error(`Permission denied. Try running with elevated privileges:\n sudo ud update`);
|
|
155
|
+
}
|
|
156
|
+
throw err;
|
|
157
|
+
}
|
|
158
|
+
return { previousVersion: current, newVersion: latest };
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/lib/update.ts"],"names":[],"mappings":"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"}
|
package/dist/program.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,eAAO,MAAM,OAAO,SAAgB,CAAC"}
|
package/dist/program.js
CHANGED
|
@@ -6,6 +6,7 @@ import { registerEnvCommands } from './commands/env.js';
|
|
|
6
6
|
import { registerApiCommands } from './commands/api-commands.js';
|
|
7
7
|
import { registerSmartCartAdd } from './commands/cart.js';
|
|
8
8
|
import { registerConfigCommands } from './commands/config.js';
|
|
9
|
+
import { registerUpdateCommands } from './commands/update.js';
|
|
9
10
|
function getVersion() {
|
|
10
11
|
// typeof avoids ReferenceError when __PKG_VERSION__ is not injected (ESM/dev)
|
|
11
12
|
if (typeof __PKG_VERSION__ === 'string')
|
|
@@ -19,14 +20,16 @@ export const program = new Command();
|
|
|
19
20
|
program
|
|
20
21
|
.configureHelp({ showGlobalOptions: true })
|
|
21
22
|
.name('ud')
|
|
22
|
-
.description('Unstoppable Domains CLI')
|
|
23
|
-
.version(getVersion())
|
|
24
|
-
.
|
|
25
|
-
.
|
|
26
|
-
.option('--
|
|
27
|
-
.option('--
|
|
28
|
-
.option('--
|
|
29
|
-
.option('--
|
|
23
|
+
.description('Unstoppable Domains CLI — Search, register, and manage your domains from the command line.')
|
|
24
|
+
.version(getVersion(), '-V, --version', 'Output the version number')
|
|
25
|
+
.helpOption('-h, --help', 'Display help for command')
|
|
26
|
+
.helpCommand('help [command]', 'Display help for command')
|
|
27
|
+
.option('--env <environment>', 'Override active environment (production or staging)')
|
|
28
|
+
.option('--format <format>', 'Output format (table, json, csv)')
|
|
29
|
+
.option('--quiet', 'Suppress output except errors')
|
|
30
|
+
.option('--verbose', 'Show detailed output')
|
|
31
|
+
.option('--fields [columns]', 'Show available fields, or specify columns to display (e.g., name,expiresAt,listing.price)')
|
|
32
|
+
.option('--profile <name>', 'Configuration profile to use')
|
|
30
33
|
.hook('preAction', (thisCommand) => {
|
|
31
34
|
const opts = thisCommand.opts();
|
|
32
35
|
if (opts.env) {
|
|
@@ -42,6 +45,36 @@ program
|
|
|
42
45
|
registerAuthCommands(program);
|
|
43
46
|
registerEnvCommands(program);
|
|
44
47
|
registerConfigCommands(program);
|
|
48
|
+
registerUpdateCommands(program);
|
|
45
49
|
registerApiCommands(program);
|
|
46
50
|
registerSmartCartAdd(program);
|
|
51
|
+
// --- Background update check (once per 24 h, after command execution) ---
|
|
52
|
+
program.hook('postAction', async (_thisCommand, actionCommand) => {
|
|
53
|
+
// postAction fires for every command in the chain; only run for the leaf action
|
|
54
|
+
if (actionCommand !== _thisCommand)
|
|
55
|
+
return;
|
|
56
|
+
// Skip during update commands (they already check) — covers both
|
|
57
|
+
// "ud update" (name=update) and "ud update check" (parent.name=update)
|
|
58
|
+
if (actionCommand.name() === 'update' || actionCommand.parent?.name() === 'update')
|
|
59
|
+
return;
|
|
60
|
+
// Skip in non-TTY (piped output)
|
|
61
|
+
if (!process.stderr.isTTY)
|
|
62
|
+
return;
|
|
63
|
+
// Lazy-import to avoid loading update module on every invocation
|
|
64
|
+
const { shouldCheckForUpdate, checkForUpdate, recordUpdateCheck } = await import('./lib/update.js');
|
|
65
|
+
if (!shouldCheckForUpdate())
|
|
66
|
+
return;
|
|
67
|
+
try {
|
|
68
|
+
const result = await checkForUpdate({ timeoutMs: 5000 });
|
|
69
|
+
recordUpdateCheck();
|
|
70
|
+
if (result.updateAvailable) {
|
|
71
|
+
const chalk = (await import('chalk')).default;
|
|
72
|
+
process.stderr.write(chalk.yellow(`\nUpdate available: ${result.current} → ${result.latest}`) +
|
|
73
|
+
chalk.dim(' — run "ud update" to upgrade\n'));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
// Silently ignore — update check failures should never break the CLI
|
|
78
|
+
}
|
|
79
|
+
});
|
|
47
80
|
//# sourceMappingURL=program.js.map
|
package/dist/program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAO9D,SAAS,UAAU;IACjB,8EAA8E;IAC9E,IAAI,OAAO,eAAe,KAAK,QAAQ;QAAE,OAAO,eAAe,CAAC;IAChE,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAQ,GAAG,CAAC,iBAAiB,CAAyB,CAAC,OAAO,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAC7C,MAAM,aAAa,GAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAErC,OAAO;KACJ,aAAa,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;KAC1C,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unstoppabledomains/ud-cli",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.1.1-rc.3",
|
|
4
|
+
"description": "Unstoppable Domains CLI — Search, register, and manage your domains from the command line.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"ud": "./dist/index.js"
|