@hasna/domains 0.0.23 → 0.0.25

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 (61) hide show
  1. package/README.md +203 -59
  2. package/dist/cli/commands/config.d.ts.map +1 -1
  3. package/dist/cli/commands/dns.d.ts.map +1 -1
  4. package/dist/cli/commands/domain.d.ts.map +1 -1
  5. package/dist/cli/commands/provider.d.ts.map +1 -1
  6. package/dist/cli/commands/providers.d.ts.map +1 -1
  7. package/dist/cli/commands/storage.d.ts +3 -0
  8. package/dist/cli/commands/storage.d.ts.map +1 -0
  9. package/dist/cli/commands/wallet.d.ts +2 -2
  10. package/dist/cli/commands/wallet.d.ts.map +1 -1
  11. package/dist/cli/index.js +38100 -29741
  12. package/dist/db/database.d.ts +1 -1
  13. package/dist/db/database.d.ts.map +1 -1
  14. package/dist/db/domain-records.d.ts +2 -2
  15. package/dist/db/domain-records.d.ts.map +1 -1
  16. package/dist/db/pg-migrations.d.ts +5 -0
  17. package/dist/db/pg-migrations.d.ts.map +1 -0
  18. package/dist/db/remote-storage.d.ts +10 -0
  19. package/dist/db/remote-storage.d.ts.map +1 -0
  20. package/dist/db/storage-sync.d.ts +55 -0
  21. package/dist/db/storage-sync.d.ts.map +1 -0
  22. package/dist/index.d.ts +5 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +26024 -18153
  25. package/dist/lib/brandsight.d.ts +48 -5
  26. package/dist/lib/brandsight.d.ts.map +1 -1
  27. package/dist/lib/capability.d.ts +8 -6
  28. package/dist/lib/capability.d.ts.map +1 -1
  29. package/dist/lib/cloudflare-auth.d.ts +2 -3
  30. package/dist/lib/cloudflare-auth.d.ts.map +1 -1
  31. package/dist/lib/cloudflare.d.ts +4 -3
  32. package/dist/lib/cloudflare.d.ts.map +1 -1
  33. package/dist/lib/config.d.ts +4 -4
  34. package/dist/lib/config.d.ts.map +1 -1
  35. package/dist/lib/creds-check.d.ts +1 -2
  36. package/dist/lib/creds-check.d.ts.map +1 -1
  37. package/dist/lib/delegate.d.ts +1 -1
  38. package/dist/lib/dns-plan.d.ts +29 -0
  39. package/dist/lib/dns-plan.d.ts.map +1 -0
  40. package/dist/lib/env-aliases.d.ts +39 -0
  41. package/dist/lib/env-aliases.d.ts.map +1 -0
  42. package/dist/lib/godaddy.d.ts +4 -4
  43. package/dist/lib/namecheap.d.ts +13 -0
  44. package/dist/lib/namecheap.d.ts.map +1 -1
  45. package/dist/lib/ns-drift.d.ts +1 -1
  46. package/dist/lib/registrar.d.ts +49 -5
  47. package/dist/lib/registrar.d.ts.map +1 -1
  48. package/dist/lib/route53.d.ts +4 -3
  49. package/dist/lib/route53.d.ts.map +1 -1
  50. package/dist/lib/sedo.d.ts +7 -0
  51. package/dist/lib/sedo.d.ts.map +1 -1
  52. package/dist/mcp/index.d.ts.map +1 -1
  53. package/dist/mcp/index.js +39370 -33581
  54. package/dist/mcp/storage-tools.d.ts +3 -0
  55. package/dist/mcp/storage-tools.d.ts.map +1 -0
  56. package/dist/mcp/tool-filter.d.ts +4 -0
  57. package/dist/mcp/tool-filter.d.ts.map +1 -0
  58. package/dist/storage.d.ts +5 -0
  59. package/dist/storage.d.ts.map +1 -0
  60. package/dist/storage.js +5691 -0
  61. package/package.json +20 -13
package/README.md CHANGED
@@ -1,11 +1,18 @@
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. Core registrar/DNS commands load by default; heavier integrations are optional command groups.
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
+ - **DNS desired state** — plan/diff/apply provider DNS records from JSON with explicit delete opt-in and post-apply verification
13
+ - **Sedo marketplace tools** — optional search, portfolio/listing management, blacklist checks, and recorded Sedo purchases
14
+ - **AWS diagnostics** — sync Route 53 registered domains and hosted zones without printing secret values
15
+ - **Credential diagnostics** — redacted checks for Route 53, Cloudflare, Namecheap, GoDaddy, Brandsight, and Sedo
9
16
  - **Expiry alerts** — set alerts for domain expiry and SSL certificate expiry
10
17
  - **WHOIS lookup** — query and store registrar/expiry info from WHOIS
11
18
  - **SSL certificate check** — verify SSL issuer and expiry
@@ -14,10 +21,10 @@ Domain portfolio and DNS management for AI agents — CLI + MCP server with SQLi
14
21
  - **Subdomain discovery** — via crt.sh certificate transparency logs
15
22
  - **DNS validation** — detect CNAME conflicts, missing MX, and more
16
23
  - **Portfolio export** — CSV or JSON with all domain data
17
- - **Registrar sync** — Namecheap and GoDaddy integration
18
- - **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
+ - **Brand monitoring** — optional typosquat/threat detection via Brandsight API
25
+ - **MCP server** — Model Context Protocol support for AI agents
26
+ - **MCP safe mode** — expose read-only tools only with `DOMAINS_MCP_SAFE_MODE=1`
27
+ - **Interactive TUI** — optional portfolio browser in the terminal with `domains interactive`
21
28
 
22
29
  ## Installation
23
30
 
@@ -25,36 +32,106 @@ Domain portfolio and DNS management for AI agents — CLI + MCP server with SQLi
25
32
  npm install -g @hasna/domains
26
33
  ```
27
34
 
28
- Data is stored at `~/.hasna/domains/domains.db`. Override with `HASNA_DOMAINS_DIR` or `DOMAINS_DIR` env var.
35
+ 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.
29
36
 
30
- ## CLI Usage
37
+ ## Optional Command Groups
38
+
39
+ The default CLI keeps core portfolio, registrar, DNS, provider, Route 53, doctor, MCP, and server commands loaded. Optional groups are enabled per invocation:
40
+
41
+ ```bash
42
+ domains extras
43
+ DOMAINS_COMMAND_GROUPS=marketplace,storage domains --help
44
+ DOMAINS_ENABLE_EXTRAS=1 domains --help
45
+ ```
46
+
47
+ Available groups: `brandsight`, `events`, `history`, `interactive`, `marketplace`, `outreach`, `owner`, `provision`, `research`, `storage`, `wallet`.
48
+
49
+ ## Quick Start
31
50
 
32
51
  ```bash
33
- # Interactive portfolio browser (Ink TUI)
34
- domains interactive
35
- domains interactive --status active
52
+ # Set defaults used by availability, buy, setup, DNS, and doctor commands
53
+ domains config set default-registrar route53
54
+ domains config set default-dns cloudflare
55
+ domains config set purchase-aws-profile production-domains
56
+
57
+ # Add registrant contact defaults used by registrar purchase APIs
58
+ domains config set contact.first_name Jane
59
+ domains config set contact.last_name Example
60
+ domains config set contact.email jane@example.com
61
+ domains config set contact.phone +1.5555555555
62
+ domains config set contact.address_line_1 "1 Main St"
63
+ domains config set contact.city "New York"
64
+ domains config set contact.state NY
65
+ domains config set contact.country_code US
66
+ domains config set contact.zip_code 10001
67
+
68
+ # Check local health without printing secrets
69
+ domains doctor
36
70
  ```
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
71
+
72
+ ## Provider Matrix
73
+
74
+ | Provider | Type | Availability | Buy/Register | Renew | Nameservers/DNS | Notes |
75
+ |----------|------|--------------|--------------|-------|-----------------|-------|
76
+ | `route53` | registrar + DNS | yes | yes | no | nameservers + Route 53 hosted zones | Primary self-serve registration path. Use `AWS_PROFILE` or AWS keys. |
77
+ | `namecheap` | registrar + DNS | yes | yes | yes | nameservers + Namecheap DNS records | Requires Namecheap API access and whitelisted client IP. |
78
+ | `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. |
79
+ | `brandsight` | registrar + DNS | yes | gated by contract | yes when contract allows | nameservers + DNS records | GoDaddy Corporate Domains / Brandsight v2 API; enterprise-contract-only. |
80
+ | `cloudflare` | DNS + inventory | no | no | no | DNS zones and records | Preferred DNS provider; zone inventory syncs domains but does not prove registrar ownership. |
81
+ | `sedo` | marketplace | marketplace search/status | recorded purchase only | no | no | Sedo is marketplace/listing/portfolio, not registrar DNS in this CLI. |
82
+
83
+ ## CLI Usage
84
+
85
+ ```bash
86
+ # Portfolio management
87
+ domains domain add --name example.com --registrar Namecheap --expires-at 2027-01-01
88
+ domains domain list
89
+ domains domain list --status active --registrar Namecheap
90
+ domains domain get example.com
91
+ domains domain update <id> --notes "renewed"
92
+ domains domain delete <id>
93
+ domains domain search example
94
+ domains domain stats
45
95
 
46
96
  # Expiry monitoring
47
- domains expiring --days 30
48
- domains ssl --days 30
97
+ domains domain expiring --days 30
98
+ domains ssl expiring --days 30
49
99
 
50
100
  # WHOIS / SSL checks
51
- domains whois example.com
52
- domains ssl-check example.com
53
- domains check-all
101
+ domains domain whois example.com
102
+ domains ssl check example.com
103
+ domains domain check example.com example.net
54
104
 
55
105
  # Portfolio export
56
- domains export --format csv --output portfolio.csv
57
- domains export --format json
106
+ domains domain export --format csv > portfolio.csv
107
+ domains domain export --format json
108
+
109
+ # Provider registry and diagnostics
110
+ domains providers
111
+ domains provider list
112
+ domains provider test route53
113
+ domains provider test cloudflare
114
+ domains doctor
115
+
116
+ # Registrar sync
117
+ domains sync --provider route53
118
+ domains sync --provider cloudflare
119
+ domains sync --provider namecheap
120
+ domains sync --provider godaddy
121
+ domains sync --provider brandsight
122
+ domains sync --all
123
+
124
+ # Availability and renewals
125
+ domains check example.com
126
+ domains check --provider route53 example.com
127
+ domains check --provider namecheap example.com
128
+ domains renew example.com --provider namecheap --years 1
129
+
130
+ # Purchases and setup
131
+ domains domain buy example.com --provider route53 --wait
132
+ domains domain buy example.com --provider namecheap --wait
133
+ domains domain buy premium.example --registrar sedo --price 2500 --expires 2027-01-01
134
+ domains domain setup example.com --registrar route53 --dns cloudflare --wait
58
135
 
59
136
  # DNS record management
60
137
  domains dns list <domain-id>
@@ -66,37 +143,77 @@ domains dns export <domain-id>
66
143
  domains dns import <domain-id> --file zone.txt
67
144
  domains dns discover-subdomains example.com
68
145
  domains dns validate <domain-id>
146
+ domains dns pull example.com --provider cloudflare
147
+ domains dns push <domain-id> --provider cloudflare
69
148
 
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>
149
+ # Desired DNS state against a provider zone
150
+ domains dns plan example.com --provider cloudflare --file dns.example.json
151
+ domains dns diff example.com --provider cloudflare --file dns.example.json
152
+ domains dns apply example.com --provider cloudflare --file dns.example.json --yes
153
+ # Delete plans require --allow-delete and may still be refused before writes
154
+ # when the provider path cannot guarantee safe convergence.
74
155
 
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)
87
-
88
- # Brand monitoring
89
- domains monitor mybrand
90
- domains similar example.com
91
- domains threats example.com
156
+ # Optional Sedo marketplace
157
+ DOMAINS_COMMAND_GROUPS=marketplace domains sedo search example
158
+ DOMAINS_COMMAND_GROUPS=marketplace domains sedo status example.com
159
+ DOMAINS_COMMAND_GROUPS=marketplace domains sedo portfolio --limit 25
160
+ DOMAINS_COMMAND_GROUPS=marketplace domains sedo add example.com --price 2500
161
+ DOMAINS_COMMAND_GROUPS=marketplace domains sedo edit example.com --price 3000
162
+ DOMAINS_COMMAND_GROUPS=marketplace domains sedo remove example.com
163
+ DOMAINS_COMMAND_GROUPS=marketplace domains sedo buy example.com --price 2500 --order-id SEDO-ORDER-ID
164
+
165
+ # Optional brand monitoring
166
+ DOMAINS_COMMAND_GROUPS=brandsight domains monitor watch mybrand
167
+ DOMAINS_COMMAND_GROUPS=brandsight domains monitor similar example.com
168
+ DOMAINS_COMMAND_GROUPS=brandsight domains monitor threats example.com
169
+
170
+ # Optional interactive portfolio browser
171
+ DOMAINS_COMMAND_GROUPS=interactive domains interactive
172
+ DOMAINS_COMMAND_GROUPS=interactive domains interactive --status active
173
+ ```
174
+
175
+ 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.
176
+
177
+ Desired DNS state files are JSON:
178
+
179
+ ```json
180
+ {
181
+ "domain": "example.com",
182
+ "records": [
183
+ { "type": "A", "name": "@", "value": "192.0.2.10", "ttl": 300 },
184
+ { "type": "MX", "name": "@", "value": "mail.example.com", "ttl": 300, "priority": 10 },
185
+ { "type": "TXT", "name": "@", "value": "v=spf1 -all", "ttl": 300 }
186
+ ]
187
+ }
188
+ ```
189
+
190
+ `dns apply` refuses to run without `--yes`. If the plan includes deletes, it also requires `--allow-delete`, then refuses before writing unless the provider path can guarantee delete convergence without partial mutation. Non-delete applies re-read provider records after writing and fail if the live zone still differs from the desired file.
191
+
192
+ ## AWS Domain Discovery
193
+
194
+ ```bash
195
+ # Sync registered domains and hosted zones from specific AWS profiles
196
+ AWS_PROFILE=production-domains domains sync --provider route53
197
+ AWS_PROFILE=shared-dns domains sync --provider route53
198
+
199
+ # Check all configured providers and redacted credential status
200
+ domains providers --json
201
+ domains doctor --json
92
202
  ```
93
203
 
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.
204
+ 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.
205
+
206
+ ## Storage Sync
207
+
208
+ Set one of these environment variables to sync with a remote PostgreSQL storage database:
209
+
210
+ ```bash
211
+ export DOMAINS_DATABASE_URL="postgres://..."
212
+
213
+ DOMAINS_COMMAND_GROUPS=storage domains storage status
214
+ DOMAINS_COMMAND_GROUPS=storage domains storage push
215
+ DOMAINS_COMMAND_GROUPS=storage domains storage pull
216
+ ```
100
217
 
101
218
  ## MCP Server
102
219
 
@@ -126,24 +243,51 @@ domains-mcp --http --port 8814
126
243
  MCP_HTTP=1 MCP_HTTP_PORT=8814 domains-mcp
127
244
  ```
128
245
 
129
- - `GET /health` `{"status":"ok","name":"domains"}`
130
- - `POST /mcp` Streamable HTTP MCP endpoint
246
+ - `GET /health` returns `{"status":"ok","name":"domains"}`
247
+ - `POST /mcp` is the Streamable HTTP MCP endpoint
131
248
 
132
249
  Stdio remains the default transport for gradual rollout.
133
250
 
251
+ For read-only agent sessions:
252
+
253
+ ```bash
254
+ DOMAINS_MCP_SAFE_MODE=1 domains-mcp
255
+ DOMAINS_MCP_SAFE_MODE=1 domains-mcp --http
256
+ ```
257
+
258
+ Safe mode registers only read-only/list/check/export tools. Mutating tools such as domain creation, DNS writes, provider sync, Route 53 registration, and storage push/pull are withheld.
259
+
134
260
  ## Environment Variables
135
261
 
136
262
  | Variable | Description |
137
263
  |----------|-------------|
264
+ | `DOMAINS_DB_PATH` | Override database file path |
265
+ | `HASNA_DOMAINS_DB_PATH` | Override database file path |
266
+ | `DOMAINS_CONFIG_PATH` | Override config file path |
267
+ | `DOMAINS_CONFIG_DIR` | Override config directory |
138
268
  | `HASNA_DOMAINS_DIR` | Override database directory |
139
- | `DOMAINS_DIR` | Override database directory (fallback) |
269
+ | `DOMAINS_DIR` | Override database directory fallback |
270
+ | `DOMAINS_COMMAND_GROUPS` | Comma-separated optional command groups to load, or `all` |
271
+ | `DOMAINS_ENABLE_EXTRAS` | Set to `1` to load all optional command groups |
272
+ | `DOMAINS_MCP_SAFE_MODE` | Set to `1` to expose only read-only MCP tools |
273
+ | `DOMAINS_DATABASE_URL` | Remote storage PostgreSQL database URL |
274
+ | `HASNA_DOMAINS_DATABASE_URL` | Legacy remote storage PostgreSQL database URL fallback |
275
+ | `DOMAINS_STORAGE_MODE` | Storage mode: `local`, `remote`, or `hybrid` |
276
+ | `HASNA_DOMAINS_STORAGE_MODE` | Legacy storage mode fallback |
277
+ | `AWS_PROFILE` | AWS profile for Route 53 Domains and hosted zones |
278
+ | `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_SESSION_TOKEN` | AWS credential fallback |
279
+ | `DOMAINS_PURCHASE_AWS_PROFILE` | Purchase profile fallback when config has no `purchase_aws_profile` |
280
+ | `CLOUDFLARE_API_TOKEN` | Cloudflare API token |
281
+ | `CLOUDFLARE_API_KEY`, `CLOUDFLARE_EMAIL` | Cloudflare global key fallback |
282
+ | `CLOUDFLARE_ACCOUNT_ID` | Cloudflare account ID for zone creation |
140
283
  | `NAMECHEAP_API_KEY` | Namecheap API key |
141
284
  | `NAMECHEAP_USERNAME` | Namecheap account username |
142
285
  | `NAMECHEAP_CLIENT_IP` | Namecheap whitelisted IP |
143
286
  | `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 |
287
+ | `GODADDY_API_KEY`, `GODADDY_API_SECRET` | GoDaddy API credentials |
288
+ | `BRANDSIGHT_API_KEY`, `BRANDSIGHT_API_SECRET`, `BRANDSIGHT_CUSTOMER_ID` | Brandsight / GoDaddy Corporate Domains credentials |
289
+ | `BRANDSIGHT_DEMO_STUBS`, `BRANDSIGHT_ALLOW_STUBS` | Set either to `1` to allow demo stub responses when the Brandsight API is unreachable |
290
+ | `SEDO_PARTNER_ID`, `SEDO_API_KEY`, `SEDO_USERNAME`, `SEDO_PASSWORD` | Sedo marketplace API credentials |
147
291
 
148
292
  ## License
149
293
 
@@ -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":"dns.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsR1D"}
1
+ {"version":3,"file":"dns.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuCzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgX1D"}
@@ -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;AA+DzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAq1B5D"}
@@ -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"}