@hasna/domains 0.0.16 → 0.0.18
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 +13 -1
- package/dist/cli/commands/interactive.d.ts +1 -0
- package/dist/cli/commands/interactive.d.ts.map +1 -1
- package/dist/cli/commands/providers.d.ts.map +1 -1
- package/dist/cli/index.js +67 -33
- package/dist/cli/tui/App.d.ts.map +1 -1
- package/dist/cli/tui/DomainTable.d.ts +2 -1
- package/dist/cli/tui/DomainTable.d.ts.map +1 -1
- package/dist/cli/tui/SearchView.d.ts.map +1 -1
- package/dist/cli/tui/format.d.ts +2 -0
- package/dist/cli/tui/format.d.ts.map +1 -1
- package/dist/cli/tui/tui-test-setup.d.ts +2 -0
- package/dist/cli/tui/tui-test-setup.d.ts.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -78,7 +78,12 @@ domains sync --provider namecheap
|
|
|
78
78
|
domains sync --provider godaddy
|
|
79
79
|
domains sync --all
|
|
80
80
|
domains renew example.com --provider namecheap
|
|
81
|
-
|
|
81
|
+
|
|
82
|
+
# Availability checks — pick the registrar with --provider
|
|
83
|
+
domains check example.com # default registrar (config default-registrar, else namecheap)
|
|
84
|
+
domains check --provider route53 example.com # AWS Route 53 availability
|
|
85
|
+
domains check --provider godaddy example.com
|
|
86
|
+
domains r53 check example.com # Route 53-specific subcommand (same backend)
|
|
82
87
|
|
|
83
88
|
# Brand monitoring
|
|
84
89
|
domains monitor mybrand
|
|
@@ -86,6 +91,13 @@ domains similar example.com
|
|
|
86
91
|
domains threats example.com
|
|
87
92
|
```
|
|
88
93
|
|
|
94
|
+
> **Prefer the `domains` CLI over raw `aws` commands.** For Route 53 availability,
|
|
95
|
+
> registration status, and DNS, use `domains check --provider route53`,
|
|
96
|
+
> `domains r53 status`, and `domains dns …` instead of `aws route53domains …` /
|
|
97
|
+
> `aws route53 …`. The CLI applies the configured purchase profile, records the
|
|
98
|
+
> result in the local portfolio DB, and works the same across registrars — raw
|
|
99
|
+
> `aws` calls bypass all of that.
|
|
100
|
+
|
|
89
101
|
## MCP Server
|
|
90
102
|
|
|
91
103
|
```bash
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/interactive.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/interactive.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,oBAAoB,IAAI,IAAI,CAQ3C;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CASjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuM/D"}
|
package/dist/cli/index.js
CHANGED
|
@@ -37509,6 +37509,7 @@ Registrar / DNS Providers:`);
|
|
|
37509
37509
|
}
|
|
37510
37510
|
|
|
37511
37511
|
// src/cli/commands/providers.ts
|
|
37512
|
+
init_config();
|
|
37512
37513
|
init_domains();
|
|
37513
37514
|
function registerProviderCommands(program2) {
|
|
37514
37515
|
program2.command("providers").description("Show which registrar providers are configured").option("--json", "Output as JSON", false).action((opts) => {
|
|
@@ -37659,17 +37660,14 @@ function registerProviderCommands(program2) {
|
|
|
37659
37660
|
process.exit(1);
|
|
37660
37661
|
}
|
|
37661
37662
|
});
|
|
37662
|
-
program2.command("check").description("Check domain availability").argument("<name>", "Domain name (e.g. example.com)").option("--json", "Output as JSON", false).action(async (name, opts) => {
|
|
37663
|
+
program2.command("check").description("Check domain availability via a registrar provider (route53, namecheap, godaddy)").argument("<name>", "Domain name (e.g. example.com)").option("--provider <name>", "Registrar provider \u2014 defaults to config default-registrar, else namecheap").option("--json", "Output as JSON", false).action(async (name, opts) => {
|
|
37663
37664
|
try {
|
|
37664
|
-
const
|
|
37665
|
+
const providerName = opts.provider ?? loadConfig3().default_registrar ?? "namecheap";
|
|
37666
|
+
const result = providerName === "namecheap" ? await checkAvailability(name) : await getRegistrarProvider(providerName).checkAvailability(name);
|
|
37665
37667
|
if (opts.json) {
|
|
37666
|
-
console.log(JSON.stringify(result, null, 2));
|
|
37668
|
+
console.log(JSON.stringify({ provider: providerName, ...result }, null, 2));
|
|
37667
37669
|
} else {
|
|
37668
|
-
|
|
37669
|
-
console.log(`${result.domain} is AVAILABLE`);
|
|
37670
|
-
} else {
|
|
37671
|
-
console.log(`${result.domain} is NOT available`);
|
|
37672
|
-
}
|
|
37670
|
+
console.log(`${result.domain} is ${result.available ? "AVAILABLE" : "NOT available"} (via ${providerName})`);
|
|
37673
37671
|
}
|
|
37674
37672
|
} catch (error) {
|
|
37675
37673
|
console.error(`Availability check failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
@@ -39959,8 +39957,13 @@ function formatDate(iso) {
|
|
|
39959
39957
|
function daysUntil(iso) {
|
|
39960
39958
|
if (!iso)
|
|
39961
39959
|
return "\u2014";
|
|
39962
|
-
const
|
|
39960
|
+
const parsed = new Date(iso).getTime();
|
|
39961
|
+
if (!Number.isFinite(parsed))
|
|
39962
|
+
return "\u2014";
|
|
39963
|
+
const ms = parsed - Date.now();
|
|
39963
39964
|
const days = Math.ceil(ms / (1000 * 60 * 60 * 24));
|
|
39965
|
+
if (!Number.isFinite(days))
|
|
39966
|
+
return "\u2014";
|
|
39964
39967
|
if (days < 0)
|
|
39965
39968
|
return "expired";
|
|
39966
39969
|
if (days === 0)
|
|
@@ -39994,6 +39997,20 @@ function filterLabel(filter) {
|
|
|
39994
39997
|
return "Premium";
|
|
39995
39998
|
}
|
|
39996
39999
|
}
|
|
40000
|
+
function resolveInitialFilter(initialStatus) {
|
|
40001
|
+
if (initialStatus === "active")
|
|
40002
|
+
return "active";
|
|
40003
|
+
if (initialStatus === "premium")
|
|
40004
|
+
return "premium";
|
|
40005
|
+
if (initialStatus === "expiring")
|
|
40006
|
+
return "expiring";
|
|
40007
|
+
return "all";
|
|
40008
|
+
}
|
|
40009
|
+
function clampSelectedIndex(index, length) {
|
|
40010
|
+
if (length <= 0)
|
|
40011
|
+
return 0;
|
|
40012
|
+
return Math.max(0, Math.min(index, length - 1));
|
|
40013
|
+
}
|
|
39997
40014
|
|
|
39998
40015
|
// src/cli/tui/Header.tsx
|
|
39999
40016
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
@@ -40038,18 +40055,24 @@ function Header({ count, filter, view }) {
|
|
|
40038
40055
|
import { Box as Box2, Text as Text2 } from "ink";
|
|
40039
40056
|
import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
|
|
40040
40057
|
var VISIBLE_ROWS = 16;
|
|
40041
|
-
function DomainTable({
|
|
40058
|
+
function DomainTable({
|
|
40059
|
+
domains,
|
|
40060
|
+
selectedIndex,
|
|
40061
|
+
compact = false,
|
|
40062
|
+
emptyMessage = "No domains match this filter. Press [f] to change filter or [r] to refresh."
|
|
40063
|
+
}) {
|
|
40042
40064
|
if (domains.length === 0) {
|
|
40043
40065
|
return /* @__PURE__ */ jsxDEV2(Box2, {
|
|
40044
40066
|
flexDirection: "column",
|
|
40045
40067
|
paddingLeft: compact ? 0 : 1,
|
|
40046
40068
|
children: /* @__PURE__ */ jsxDEV2(Text2, {
|
|
40047
40069
|
dimColor: true,
|
|
40048
|
-
children:
|
|
40070
|
+
children: emptyMessage
|
|
40049
40071
|
}, undefined, false, undefined, this)
|
|
40050
40072
|
}, undefined, false, undefined, this);
|
|
40051
40073
|
}
|
|
40052
|
-
const
|
|
40074
|
+
const safeSelectedIndex = clampSelectedIndex(selectedIndex, domains.length);
|
|
40075
|
+
const start = Math.max(0, Math.min(safeSelectedIndex - Math.floor(VISIBLE_ROWS / 2), Math.max(0, domains.length - VISIBLE_ROWS)));
|
|
40053
40076
|
const visible = domains.slice(start, start + VISIBLE_ROWS);
|
|
40054
40077
|
return /* @__PURE__ */ jsxDEV2(Box2, {
|
|
40055
40078
|
flexDirection: "column",
|
|
@@ -40083,7 +40106,7 @@ function DomainTable({ domains, selectedIndex, compact = false }) {
|
|
|
40083
40106
|
}, undefined, true, undefined, this),
|
|
40084
40107
|
visible.map((domain, offset) => {
|
|
40085
40108
|
const index = start + offset;
|
|
40086
|
-
const selected = index ===
|
|
40109
|
+
const selected = index === safeSelectedIndex;
|
|
40087
40110
|
const statusColor = STATUS_COLORS[domain.status] ?? "white";
|
|
40088
40111
|
return /* @__PURE__ */ jsxDEV2(Box2, {
|
|
40089
40112
|
children: [
|
|
@@ -40346,6 +40369,7 @@ function SearchView({
|
|
|
40346
40369
|
onSelect(results[selectedIndex]);
|
|
40347
40370
|
}
|
|
40348
40371
|
});
|
|
40372
|
+
const emptyMessage = query.trim().length < 2 ? "Type at least 2 characters to search." : "No matching domains. Refine your query or press [esc] to go back.";
|
|
40349
40373
|
return /* @__PURE__ */ jsxDEV4(Box4, {
|
|
40350
40374
|
flexDirection: "column",
|
|
40351
40375
|
children: [
|
|
@@ -40375,13 +40399,14 @@ function SearchView({
|
|
|
40375
40399
|
}, undefined, true, undefined, this),
|
|
40376
40400
|
/* @__PURE__ */ jsxDEV4(Text4, {
|
|
40377
40401
|
dimColor: true,
|
|
40378
|
-
children: "[enter] open \xB7 [esc] back"
|
|
40402
|
+
children: "[enter] open \xB7 [esc] back \xB7 [q] quit \xB7 \u2191\u2193 navigate results"
|
|
40379
40403
|
}, undefined, false, undefined, this),
|
|
40380
40404
|
/* @__PURE__ */ jsxDEV4(Box4, {
|
|
40381
40405
|
marginTop: 1,
|
|
40382
40406
|
children: /* @__PURE__ */ jsxDEV4(DomainTable, {
|
|
40383
40407
|
domains: results,
|
|
40384
|
-
selectedIndex
|
|
40408
|
+
selectedIndex,
|
|
40409
|
+
emptyMessage
|
|
40385
40410
|
}, undefined, false, undefined, this)
|
|
40386
40411
|
}, undefined, false, undefined, this)
|
|
40387
40412
|
]
|
|
@@ -40405,7 +40430,7 @@ function loadDomainsForFilter(activeFilter) {
|
|
|
40405
40430
|
function App({ initialStatus }) {
|
|
40406
40431
|
const { exit } = useApp();
|
|
40407
40432
|
const [view, setView] = useState2("list");
|
|
40408
|
-
const initialFilter = initialStatus
|
|
40433
|
+
const initialFilter = resolveInitialFilter(initialStatus);
|
|
40409
40434
|
const [filter, setFilter] = useState2(initialFilter);
|
|
40410
40435
|
const [selectedIndex, setSelectedIndex] = useState2(0);
|
|
40411
40436
|
const [details, setDetails] = useState2(null);
|
|
@@ -40415,13 +40440,13 @@ function App({ initialStatus }) {
|
|
|
40415
40440
|
const refresh = useCallback(() => {
|
|
40416
40441
|
const next = loadDomainsForFilter(filter);
|
|
40417
40442
|
setDomains(next);
|
|
40418
|
-
setSelectedIndex((current) =>
|
|
40443
|
+
setSelectedIndex((current) => clampSelectedIndex(current, next.length));
|
|
40419
40444
|
return next;
|
|
40420
40445
|
}, [filter]);
|
|
40421
40446
|
useEffect(() => {
|
|
40422
40447
|
refresh();
|
|
40423
40448
|
}, [refresh]);
|
|
40424
|
-
const selectedDomain = domains[selectedIndex] ?? null;
|
|
40449
|
+
const selectedDomain = domains[clampSelectedIndex(selectedIndex, domains.length)] ?? null;
|
|
40425
40450
|
const previewDetails = useMemo(() => {
|
|
40426
40451
|
if (!selectedDomain)
|
|
40427
40452
|
return null;
|
|
@@ -40433,15 +40458,17 @@ function App({ initialStatus }) {
|
|
|
40433
40458
|
return listDnsRecords(selectedDomain.id);
|
|
40434
40459
|
}, [selectedDomain]);
|
|
40435
40460
|
useInput2((input, key) => {
|
|
40436
|
-
if (input === "q"
|
|
40461
|
+
if (input === "q") {
|
|
40437
40462
|
exit();
|
|
40438
40463
|
return;
|
|
40439
40464
|
}
|
|
40440
40465
|
if (view === "list") {
|
|
40441
40466
|
if (key.upArrow || input === "k") {
|
|
40442
|
-
setSelectedIndex((index) =>
|
|
40467
|
+
setSelectedIndex((index) => clampSelectedIndex(index - 1, domains.length));
|
|
40443
40468
|
} else if (key.downArrow || input === "j") {
|
|
40444
|
-
|
|
40469
|
+
if (domains.length === 0)
|
|
40470
|
+
return;
|
|
40471
|
+
setSelectedIndex((index) => clampSelectedIndex(index + 1, domains.length));
|
|
40445
40472
|
} else if (key.return && selectedDomain) {
|
|
40446
40473
|
const full = getDomainDetails(selectedDomain.id);
|
|
40447
40474
|
if (full) {
|
|
@@ -40457,16 +40484,19 @@ function App({ initialStatus }) {
|
|
|
40457
40484
|
const index = DOMAIN_FILTERS.indexOf(current);
|
|
40458
40485
|
return DOMAIN_FILTERS[(index + 1) % DOMAIN_FILTERS.length];
|
|
40459
40486
|
});
|
|
40487
|
+
setSelectedIndex(0);
|
|
40460
40488
|
} else if (input === "r") {
|
|
40461
40489
|
refresh();
|
|
40462
40490
|
}
|
|
40463
40491
|
return;
|
|
40464
40492
|
}
|
|
40465
40493
|
if (view === "search") {
|
|
40466
|
-
if (key.upArrow
|
|
40467
|
-
setSearchIndex((index) =>
|
|
40468
|
-
} else if (key.downArrow
|
|
40469
|
-
|
|
40494
|
+
if (key.upArrow) {
|
|
40495
|
+
setSearchIndex((index) => clampSelectedIndex(index - 1, searchResults.length));
|
|
40496
|
+
} else if (key.downArrow) {
|
|
40497
|
+
if (searchResults.length === 0)
|
|
40498
|
+
return;
|
|
40499
|
+
setSearchIndex((index) => clampSelectedIndex(index + 1, searchResults.length));
|
|
40470
40500
|
}
|
|
40471
40501
|
return;
|
|
40472
40502
|
}
|
|
@@ -40498,6 +40528,7 @@ function App({ initialStatus }) {
|
|
|
40498
40528
|
}
|
|
40499
40529
|
}, []);
|
|
40500
40530
|
const detailDns = details ? listDnsRecords(details.domain.id) : [];
|
|
40531
|
+
const listSelectedIndex = clampSelectedIndex(selectedIndex, domains.length);
|
|
40501
40532
|
return /* @__PURE__ */ jsxDEV5(Box5, {
|
|
40502
40533
|
flexDirection: "column",
|
|
40503
40534
|
padding: 1,
|
|
@@ -40512,7 +40543,7 @@ function App({ initialStatus }) {
|
|
|
40512
40543
|
children: [
|
|
40513
40544
|
/* @__PURE__ */ jsxDEV5(DomainTable, {
|
|
40514
40545
|
domains,
|
|
40515
|
-
selectedIndex
|
|
40546
|
+
selectedIndex: listSelectedIndex
|
|
40516
40547
|
}, undefined, false, undefined, this),
|
|
40517
40548
|
previewDetails && /* @__PURE__ */ jsxDEV5(Box5, {
|
|
40518
40549
|
marginTop: 1,
|
|
@@ -40545,7 +40576,7 @@ function App({ initialStatus }) {
|
|
|
40545
40576
|
}, undefined, false, undefined, this),
|
|
40546
40577
|
view === "search" && /* @__PURE__ */ jsxDEV5(SearchView, {
|
|
40547
40578
|
results: searchResults,
|
|
40548
|
-
selectedIndex: searchIndex,
|
|
40579
|
+
selectedIndex: clampSelectedIndex(searchIndex, searchResults.length),
|
|
40549
40580
|
onSearch: handleSearch,
|
|
40550
40581
|
onSelect: handleSearchSelect,
|
|
40551
40582
|
onBack: () => setView("list")
|
|
@@ -40556,13 +40587,16 @@ function App({ initialStatus }) {
|
|
|
40556
40587
|
|
|
40557
40588
|
// src/cli/commands/interactive.tsx
|
|
40558
40589
|
import { jsxDEV as jsxDEV6 } from "react/jsx-dev-runtime";
|
|
40590
|
+
function assertInteractiveTty() {
|
|
40591
|
+
if (!process.stdin.isTTY || !process.stdout.isTTY) {
|
|
40592
|
+
console.error(chalk.red("Interactive mode requires a TTY terminal."));
|
|
40593
|
+
console.error(chalk.dim("Use `domains domain list` or `domains domain get <name>` for non-interactive use."));
|
|
40594
|
+
process.exit(1);
|
|
40595
|
+
}
|
|
40596
|
+
}
|
|
40559
40597
|
function registerInteractiveCommand(program2) {
|
|
40560
|
-
program2.command("interactive").description("Launch interactive domain portfolio browser (Ink TUI)").option("--status <status>", "Initial filter status (e.g. active, premium)").action((opts) => {
|
|
40561
|
-
|
|
40562
|
-
console.error(chalk.red("Interactive mode requires a TTY terminal."));
|
|
40563
|
-
console.error(chalk.dim("Use `domains domain list` or `domains domain get <name>` for non-interactive use."));
|
|
40564
|
-
process.exit(1);
|
|
40565
|
-
}
|
|
40598
|
+
program2.command("interactive").description("Launch interactive domain portfolio browser (Ink TUI)").option("--status <status>", "Initial filter status (e.g. active, premium, expiring)").action((opts) => {
|
|
40599
|
+
assertInteractiveTty();
|
|
40566
40600
|
render(/* @__PURE__ */ jsxDEV6(App, {
|
|
40567
40601
|
initialStatus: opts.status
|
|
40568
40602
|
}, undefined, false, undefined, this));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAmBzE,MAAM,WAAW,QAAQ;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAeD,wBAAgB,GAAG,CAAC,EAAE,aAAa,EAAE,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAmBzE,MAAM,WAAW,QAAQ;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAeD,wBAAgB,GAAG,CAAC,EAAE,aAAa,EAAE,EAAE,QAAQ,qBAoJ9C"}
|
|
@@ -4,7 +4,8 @@ interface DomainTableProps {
|
|
|
4
4
|
domains: Domain[];
|
|
5
5
|
selectedIndex: number;
|
|
6
6
|
compact?: boolean;
|
|
7
|
+
emptyMessage?: string;
|
|
7
8
|
}
|
|
8
|
-
export declare function DomainTable({ domains, selectedIndex, compact }: DomainTableProps): React.JSX.Element;
|
|
9
|
+
export declare function DomainTable({ domains, selectedIndex, compact, emptyMessage, }: DomainTableProps): React.JSX.Element;
|
|
9
10
|
export {};
|
|
10
11
|
//# sourceMappingURL=DomainTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DomainTable.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/DomainTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"DomainTable.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/DomainTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAYlD,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,aAAa,EACb,OAAe,EACf,YAA4F,GAC7F,EAAE,gBAAgB,qBA6DlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchView.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/SearchView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,MAAM,GACP,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"SearchView.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/SearchView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,MAAM,GACP,EAAE,eAAe,qBAyCjB"}
|
package/dist/cli/tui/format.d.ts
CHANGED
|
@@ -14,4 +14,6 @@ export declare function stripAnsi(value: string | undefined): string;
|
|
|
14
14
|
export type DomainFilter = "all" | "active" | "expiring" | "premium";
|
|
15
15
|
export declare const DOMAIN_FILTERS: DomainFilter[];
|
|
16
16
|
export declare function filterLabel(filter: DomainFilter): string;
|
|
17
|
+
export declare function resolveInitialFilter(initialStatus?: string): DomainFilter;
|
|
18
|
+
export declare function clampSelectedIndex(index: number, length: number): number;
|
|
17
19
|
//# sourceMappingURL=format.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEhE,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGjE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEhE,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGjE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAUhE;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAatD,CAAC;AAEF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE3D;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAErE,eAAO,MAAM,cAAc,EAAE,YAAY,EAA6C,CAAC;AAEvF,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAWxD;AAED,wBAAgB,oBAAoB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,YAAY,CAKzE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGxE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui-test-setup.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/tui-test-setup.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,cAAc,QAAU,CAAC"}
|