@hasna/domains 0.0.23 → 0.0.24

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.
Files changed (56) hide show
  1. package/README.md +148 -53
  2. package/dist/cli/commands/config.d.ts.map +1 -1
  3. package/dist/cli/commands/domain.d.ts.map +1 -1
  4. package/dist/cli/commands/provider.d.ts.map +1 -1
  5. package/dist/cli/commands/providers.d.ts.map +1 -1
  6. package/dist/cli/commands/storage.d.ts +3 -0
  7. package/dist/cli/commands/storage.d.ts.map +1 -0
  8. package/dist/cli/commands/wallet.d.ts +2 -2
  9. package/dist/cli/commands/wallet.d.ts.map +1 -1
  10. package/dist/cli/index.js +7107 -880
  11. package/dist/db/database.d.ts +1 -1
  12. package/dist/db/database.d.ts.map +1 -1
  13. package/dist/db/domain-records.d.ts +2 -2
  14. package/dist/db/domain-records.d.ts.map +1 -1
  15. package/dist/db/pg-migrations.d.ts +5 -0
  16. package/dist/db/pg-migrations.d.ts.map +1 -0
  17. package/dist/db/remote-storage.d.ts +10 -0
  18. package/dist/db/remote-storage.d.ts.map +1 -0
  19. package/dist/db/storage-sync.d.ts +55 -0
  20. package/dist/db/storage-sync.d.ts.map +1 -0
  21. package/dist/index.d.ts +5 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +6168 -197
  24. package/dist/lib/brandsight.d.ts +48 -5
  25. package/dist/lib/brandsight.d.ts.map +1 -1
  26. package/dist/lib/capability.d.ts +8 -6
  27. package/dist/lib/capability.d.ts.map +1 -1
  28. package/dist/lib/cloudflare-auth.d.ts +2 -3
  29. package/dist/lib/cloudflare-auth.d.ts.map +1 -1
  30. package/dist/lib/cloudflare.d.ts +4 -3
  31. package/dist/lib/cloudflare.d.ts.map +1 -1
  32. package/dist/lib/config.d.ts +4 -4
  33. package/dist/lib/config.d.ts.map +1 -1
  34. package/dist/lib/creds-check.d.ts +1 -2
  35. package/dist/lib/creds-check.d.ts.map +1 -1
  36. package/dist/lib/delegate.d.ts +1 -1
  37. package/dist/lib/env-aliases.d.ts +39 -0
  38. package/dist/lib/env-aliases.d.ts.map +1 -0
  39. package/dist/lib/godaddy.d.ts +4 -4
  40. package/dist/lib/namecheap.d.ts +13 -0
  41. package/dist/lib/namecheap.d.ts.map +1 -1
  42. package/dist/lib/ns-drift.d.ts +1 -1
  43. package/dist/lib/registrar.d.ts +49 -5
  44. package/dist/lib/registrar.d.ts.map +1 -1
  45. package/dist/lib/route53.d.ts +4 -3
  46. package/dist/lib/route53.d.ts.map +1 -1
  47. package/dist/lib/sedo.d.ts +7 -0
  48. package/dist/lib/sedo.d.ts.map +1 -1
  49. package/dist/mcp/index.d.ts.map +1 -1
  50. package/dist/mcp/index.js +16716 -12898
  51. package/dist/mcp/storage-tools.d.ts +3 -0
  52. package/dist/mcp/storage-tools.d.ts.map +1 -0
  53. package/dist/storage.d.ts +5 -0
  54. package/dist/storage.d.ts.map +1 -0
  55. package/dist/storage.js +5709 -0
  56. package/package.json +13 -8
package/README.md CHANGED
@@ -1,11 +1,17 @@
1
1
  # @hasna/domains
2
2
 
3
- Domain portfolio and DNS management for AI agents — CLI + MCP server with SQLite.
3
+ Domain portfolio, registrar, marketplace, and DNS management for AI agents — CLI + MCP server with SQLite.
4
4
 
5
5
  ## Features
6
6
 
7
- - **Domain portfolio management** — track registrar, expiry, SSL, nameservers, status
7
+ - **Domain portfolio management** — track registrar, expiry, SSL, nameservers, pricing, lifecycle status, and notes
8
+ - **Registrar sync and purchase flows** — direct Route 53 and Namecheap registration plus GoDaddy and Brandsight provider surfaces through a shared provider registry
9
+ - **Nameserver delegation** — Route 53 and Namecheap adapters can update registrar nameservers when the provider API supports it
10
+ - **DNS provider management** — create or reuse Cloudflare or Route 53 zones and manage DNS records through the DNS provider layer
8
11
  - **DNS record CRUD** — A, AAAA, CNAME, MX, TXT, NS, SRV records
12
+ - **Sedo marketplace tools** — search, portfolio/listing management, blacklist checks, and recorded Sedo purchases
13
+ - **AWS diagnostics** — sync Route 53 registered domains and hosted zones without printing secret values
14
+ - **Credential diagnostics** — redacted checks for Route 53, Cloudflare, Namecheap, GoDaddy, Brandsight, and Sedo
9
15
  - **Expiry alerts** — set alerts for domain expiry and SSL certificate expiry
10
16
  - **WHOIS lookup** — query and store registrar/expiry info from WHOIS
11
17
  - **SSL certificate check** — verify SSL issuer and expiry
@@ -14,10 +20,9 @@ Domain portfolio and DNS management for AI agents — CLI + MCP server with SQLi
14
20
  - **Subdomain discovery** — via crt.sh certificate transparency logs
15
21
  - **DNS validation** — detect CNAME conflicts, missing MX, and more
16
22
  - **Portfolio export** — CSV or JSON with all domain data
17
- - **Registrar sync** — Namecheap and GoDaddy integration
18
23
  - **Brand monitoring** — typosquat/threat detection via Brandsight API
19
- - **MCP server** — full Model Context Protocol support for AI agents
20
- - **Interactive TUI** — browse your portfolio in the terminal with `domains interactive`
24
+ - **MCP server** — Model Context Protocol support for AI agents
25
+ - **Interactive TUI** — browse the portfolio in the terminal with `domains interactive`
21
26
 
22
27
  ## Installation
23
28
 
@@ -25,36 +30,98 @@ Domain portfolio and DNS management for AI agents — CLI + MCP server with SQLi
25
30
  npm install -g @hasna/domains
26
31
  ```
27
32
 
28
- Data is stored at `~/.hasna/domains/domains.db`. Override with `HASNA_DOMAINS_DIR` or `DOMAINS_DIR` env var.
33
+ Data is stored in the local domains data directory (`$XDG_DATA_HOME/open-domains` or `~/.local/share/open-domains` for new installs; existing legacy installs continue using their current directory). Override with `DOMAINS_DB_PATH`, `DOMAINS_DIR`, or the legacy `HASNA_DOMAINS_DB_PATH` / `HASNA_DOMAINS_DIR` names.
34
+
35
+ ## Quick Start
36
+
37
+ ```bash
38
+ # Set defaults used by availability, buy, setup, DNS, and doctor commands
39
+ domains config set default-registrar route53
40
+ domains config set default-dns cloudflare
41
+ domains config set purchase-aws-profile production-domains
42
+
43
+ # Add registrant contact defaults used by registrar purchase APIs
44
+ domains config set contact.first_name Jane
45
+ domains config set contact.last_name Example
46
+ domains config set contact.email jane@example.com
47
+ domains config set contact.phone +1.5555555555
48
+ domains config set contact.address_line_1 "1 Main St"
49
+ domains config set contact.city "New York"
50
+ domains config set contact.state NY
51
+ domains config set contact.country_code US
52
+ domains config set contact.zip_code 10001
53
+
54
+ # Check local health without printing secrets
55
+ domains doctor
56
+ ```
57
+
58
+ ## Provider Matrix
59
+
60
+ | Provider | Type | Availability | Buy/Register | Renew | Nameservers/DNS | Notes |
61
+ |----------|------|--------------|--------------|-------|-----------------|-------|
62
+ | `route53` | registrar + DNS | yes | yes | no | nameservers + Route 53 hosted zones | Primary self-serve registration path. Use `AWS_PROFILE` or AWS keys. |
63
+ | `namecheap` | registrar + DNS | yes | yes | yes | nameservers + Namecheap DNS records | Requires Namecheap API access and whitelisted client IP. |
64
+ | `godaddy` | registrar + DNS | gated | no direct CLI purchase | gated | DNS records when API access qualifies | Availability remains threshold-gated; DNS/domain management is available for qualifying accounts. |
65
+ | `brandsight` | registrar + DNS | yes | gated by contract | yes when contract allows | nameservers + DNS records | GoDaddy Corporate Domains / Brandsight v2 API; enterprise-contract-only. |
66
+ | `cloudflare` | DNS + inventory | no | no | no | DNS zones and records | Preferred DNS provider; zone inventory syncs domains but does not prove registrar ownership. |
67
+ | `sedo` | marketplace | marketplace search/status | recorded purchase only | no | no | Sedo is marketplace/listing/portfolio, not registrar DNS in this CLI. |
29
68
 
30
69
  ## CLI Usage
31
70
 
32
71
  ```bash
33
- # Interactive portfolio browser (Ink TUI)
72
+ # Interactive portfolio browser
34
73
  domains interactive
35
74
  domains interactive --status active
36
- ```
37
- domains add --name example.com --registrar Namecheap --expires-at 2025-01-01
38
- domains list
39
- domains list --status active --registrar Namecheap
40
- domains get <id>
41
- domains update <id> --notes "renewed"
42
- domains delete <id>
43
- domains search example
44
- domains stats
75
+
76
+ # Portfolio management
77
+ domains domain add --name example.com --registrar Namecheap --expires-at 2027-01-01
78
+ domains domain list
79
+ domains domain list --status active --registrar Namecheap
80
+ domains domain get example.com
81
+ domains domain update <id> --notes "renewed"
82
+ domains domain delete <id>
83
+ domains domain search example
84
+ domains domain stats
45
85
 
46
86
  # Expiry monitoring
47
- domains expiring --days 30
48
- domains ssl --days 30
87
+ domains domain expiring --days 30
88
+ domains ssl expiring --days 30
49
89
 
50
90
  # WHOIS / SSL checks
51
- domains whois example.com
52
- domains ssl-check example.com
53
- domains check-all
91
+ domains domain whois example.com
92
+ domains ssl check example.com
93
+ domains domain check example.com example.net
54
94
 
55
95
  # Portfolio export
56
- domains export --format csv --output portfolio.csv
57
- domains export --format json
96
+ domains domain export --format csv > portfolio.csv
97
+ domains domain export --format json
98
+
99
+ # Provider registry and diagnostics
100
+ domains providers
101
+ domains provider list
102
+ domains provider test route53
103
+ domains provider test cloudflare
104
+ domains doctor
105
+
106
+ # Registrar sync
107
+ domains sync --provider route53
108
+ domains sync --provider cloudflare
109
+ domains sync --provider namecheap
110
+ domains sync --provider godaddy
111
+ domains sync --provider brandsight
112
+ domains sync --all
113
+
114
+ # Availability and renewals
115
+ domains check example.com
116
+ domains check --provider route53 example.com
117
+ domains check --provider namecheap example.com
118
+ domains renew example.com --provider namecheap --years 1
119
+
120
+ # Purchases and setup
121
+ domains domain buy example.com --provider route53 --wait
122
+ domains domain buy example.com --provider namecheap --wait
123
+ domains domain buy premium.example --registrar sedo --price 2500 --expires 2027-01-01
124
+ domains domain setup example.com --registrar route53 --dns cloudflare --wait
58
125
 
59
126
  # DNS record management
60
127
  domains dns list <domain-id>
@@ -66,24 +133,17 @@ domains dns export <domain-id>
66
133
  domains dns import <domain-id> --file zone.txt
67
134
  domains dns discover-subdomains example.com
68
135
  domains dns validate <domain-id>
69
-
70
- # Alerts
71
- domains alert set --domain <id> --type expiry --days-before 30
72
- domains alert list <domain-id>
73
- domains alert remove <alert-id>
74
-
75
- # Registrar integration
76
- domains providers
77
- domains sync --provider namecheap
78
- domains sync --provider godaddy
79
- domains sync --all
80
- domains renew example.com --provider namecheap
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)
136
+ domains dns pull example.com --provider cloudflare
137
+ domains dns push <domain-id> --provider cloudflare
138
+
139
+ # Sedo marketplace
140
+ domains sedo search example
141
+ domains sedo status example.com
142
+ domains sedo portfolio --limit 25
143
+ domains sedo add example.com --price 2500
144
+ domains sedo edit example.com --price 3000
145
+ domains sedo remove example.com
146
+ domains sedo buy example.com --price 2500 --order-id SEDO-ORDER-ID
87
147
 
88
148
  # Brand monitoring
89
149
  domains monitor mybrand
@@ -91,12 +151,33 @@ domains similar example.com
91
151
  domains threats example.com
92
152
  ```
93
153
 
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.
154
+ Prefer the `domains` CLI over raw registrar CLIs for Route 53 availability, registration status, local portfolio updates, and DNS delegation. The CLI applies configured defaults, records outcomes in the local portfolio DB, and keeps behavior consistent across providers.
155
+
156
+ ## AWS Domain Discovery
157
+
158
+ ```bash
159
+ # Sync registered domains and hosted zones from specific AWS profiles
160
+ AWS_PROFILE=production-domains domains sync --provider route53
161
+ AWS_PROFILE=shared-dns domains sync --provider route53
162
+
163
+ # Check all configured providers and redacted credential status
164
+ domains providers --json
165
+ domains doctor --json
166
+ ```
167
+
168
+ Route 53 sync imports registered domains when the selected AWS account permits `route53domains:ListDomains`, and hosted zones when the account permits Route 53 hosted-zone reads. Domain-looking names from unrelated systems such as SSM parameters or Secrets Manager should only be imported after review because they do not prove registrar ownership.
169
+
170
+ ## Storage Sync
171
+
172
+ Set one of these environment variables to sync with a remote PostgreSQL storage database:
173
+
174
+ ```bash
175
+ export DOMAINS_DATABASE_URL="postgres://..."
176
+
177
+ domains storage status
178
+ domains storage push
179
+ domains storage pull
180
+ ```
100
181
 
101
182
  ## MCP Server
102
183
 
@@ -126,8 +207,8 @@ domains-mcp --http --port 8814
126
207
  MCP_HTTP=1 MCP_HTTP_PORT=8814 domains-mcp
127
208
  ```
128
209
 
129
- - `GET /health` `{"status":"ok","name":"domains"}`
130
- - `POST /mcp` Streamable HTTP MCP endpoint
210
+ - `GET /health` returns `{"status":"ok","name":"domains"}`
211
+ - `POST /mcp` is the Streamable HTTP MCP endpoint
131
212
 
132
213
  Stdio remains the default transport for gradual rollout.
133
214
 
@@ -135,15 +216,29 @@ Stdio remains the default transport for gradual rollout.
135
216
 
136
217
  | Variable | Description |
137
218
  |----------|-------------|
219
+ | `DOMAINS_DB_PATH` | Override database file path |
220
+ | `HASNA_DOMAINS_DB_PATH` | Override database file path |
221
+ | `DOMAINS_CONFIG_PATH` | Override config file path |
222
+ | `DOMAINS_CONFIG_DIR` | Override config directory |
138
223
  | `HASNA_DOMAINS_DIR` | Override database directory |
139
- | `DOMAINS_DIR` | Override database directory (fallback) |
224
+ | `DOMAINS_DIR` | Override database directory fallback |
225
+ | `DOMAINS_DATABASE_URL` | Remote storage PostgreSQL database URL |
226
+ | `HASNA_DOMAINS_DATABASE_URL` | Legacy remote storage PostgreSQL database URL fallback |
227
+ | `DOMAINS_STORAGE_MODE` | Storage mode: `local`, `remote`, or `hybrid` |
228
+ | `HASNA_DOMAINS_STORAGE_MODE` | Legacy storage mode fallback |
229
+ | `AWS_PROFILE` | AWS profile for Route 53 Domains and hosted zones |
230
+ | `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_SESSION_TOKEN` | AWS credential fallback |
231
+ | `DOMAINS_PURCHASE_AWS_PROFILE` | Purchase profile fallback when config has no `purchase_aws_profile` |
232
+ | `CLOUDFLARE_API_TOKEN` | Cloudflare API token |
233
+ | `CLOUDFLARE_API_KEY`, `CLOUDFLARE_EMAIL` | Cloudflare global key fallback |
234
+ | `CLOUDFLARE_ACCOUNT_ID` | Cloudflare account ID for zone creation |
140
235
  | `NAMECHEAP_API_KEY` | Namecheap API key |
141
236
  | `NAMECHEAP_USERNAME` | Namecheap account username |
142
237
  | `NAMECHEAP_CLIENT_IP` | Namecheap whitelisted IP |
143
238
  | `NAMECHEAP_SANDBOX` | Use Namecheap sandbox API |
144
- | `GODADDY_API_KEY` | GoDaddy API key |
145
- | `GODADDY_API_SECRET` | GoDaddy API secret |
146
- | `BRANDSIGHT_API_KEY` | Brandsight API key |
239
+ | `GODADDY_API_KEY`, `GODADDY_API_SECRET` | GoDaddy API credentials |
240
+ | `BRANDSIGHT_API_KEY`, `BRANDSIGHT_API_SECRET`, `BRANDSIGHT_CUSTOMER_ID` | Brandsight / GoDaddy Corporate Domains credentials |
241
+ | `SEDO_PARTNER_ID`, `SEDO_API_KEY`, `SEDO_USERNAME`, `SEDO_PASSWORD` | Sedo marketplace API credentials |
147
242
 
148
243
  ## License
149
244
 
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyD7D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0D7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkDzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8vB5D"}
1
+ {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8DzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA00B5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuJ9D"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4L9D"}
@@ -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;AAuBzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuM/D"}
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;AAoDzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2J/D"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerStorageCommand(program: Command): void;
3
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2GzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE7D"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Wallet payment integration for domain purchases
3
3
  *
4
- * Uses @hasna/wallets virtual cards to pay for domain registrations,
5
- * renewals, and marketplace purchases (Sedo, etc.)
4
+ * Uses an optional wallet module to pay for domain registrations,
5
+ * renewals, and marketplace purchases (Sedo, etc.).
6
6
  */
7
7
  import type { Command } from "commander";
8
8
  export interface WalletCard {
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/wallet.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AA2BD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyL5D"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/wallet.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAwCD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyL5D"}