@hasna/domains 0.0.20 → 0.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +139 -63
  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/index.js +1525 -448
  9. package/dist/db/pg-migrations.d.ts +1 -1
  10. package/dist/db/storage-sync.d.ts +55 -0
  11. package/dist/db/storage-sync.d.ts.map +1 -0
  12. package/dist/index.d.ts +3 -3
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +348 -58
  15. package/dist/lib/brandsight.d.ts.map +1 -1
  16. package/dist/lib/capability.d.ts.map +1 -1
  17. package/dist/lib/cloudflare-auth.d.ts.map +1 -1
  18. package/dist/lib/creds-check.d.ts.map +1 -1
  19. package/dist/lib/env-aliases.d.ts +43 -0
  20. package/dist/lib/env-aliases.d.ts.map +1 -0
  21. package/dist/lib/namecheap.d.ts +13 -0
  22. package/dist/lib/namecheap.d.ts.map +1 -1
  23. package/dist/lib/registrar.d.ts +36 -2
  24. package/dist/lib/registrar.d.ts.map +1 -1
  25. package/dist/lib/route53.d.ts.map +1 -1
  26. package/dist/lib/sedo.d.ts +7 -0
  27. package/dist/lib/sedo.d.ts.map +1 -1
  28. package/dist/mcp/index.d.ts.map +1 -1
  29. package/dist/mcp/index.js +16721 -18634
  30. package/dist/mcp/storage-tools.d.ts +3 -0
  31. package/dist/mcp/storage-tools.d.ts.map +1 -0
  32. package/dist/storage.d.ts +5 -0
  33. package/dist/storage.d.ts.map +1 -0
  34. package/dist/storage.js +5703 -0
  35. package/package.json +8 -2
  36. package/dist/cli/commands/cloud.d.ts +0 -3
  37. package/dist/cli/commands/cloud.d.ts.map +0 -1
  38. package/dist/db/cloud-sync.d.ts +0 -33
  39. package/dist/db/cloud-sync.d.ts.map +0 -1
  40. package/dist/mcp/cloud-tools.d.ts +0 -3
  41. package/dist/mcp/cloud-tools.d.ts.map +0 -1
package/dist/index.js CHANGED
@@ -28633,8 +28633,8 @@ class PgAdapterAsync {
28633
28633
  await this.pool.end();
28634
28634
  }
28635
28635
  }
28636
- // src/db/cloud-sync.ts
28637
- var CLOUD_TABLES = [
28636
+ // src/db/storage-sync.ts
28637
+ var STORAGE_TABLES = [
28638
28638
  "domains",
28639
28639
  "dns_records",
28640
28640
  "alerts",
@@ -28644,6 +28644,7 @@ var CLOUD_TABLES = [
28644
28644
  "domain_history",
28645
28645
  "domain_reputation"
28646
28646
  ];
28647
+ var DOMAINS_STORAGE_TABLES = STORAGE_TABLES;
28647
28648
  var PRIMARY_KEYS = {
28648
28649
  domains: ["id"],
28649
28650
  dns_records: ["id"],
@@ -28654,25 +28655,57 @@ var PRIMARY_KEYS = {
28654
28655
  domain_history: ["id"],
28655
28656
  domain_reputation: ["id"]
28656
28657
  };
28657
- function getCloudDatabaseUrl() {
28658
- return process.env["HASNA_DOMAINS_CLOUD_DATABASE_URL"] ?? process.env["OPEN_DOMAINS_CLOUD_DATABASE_URL"] ?? process.env["DOMAINS_CLOUD_DATABASE_URL"] ?? null;
28658
+ var DOMAINS_STORAGE_ENV = "HASNA_DOMAINS_DATABASE_URL";
28659
+ var DOMAINS_STORAGE_FALLBACK_ENV = "DOMAINS_DATABASE_URL";
28660
+ var DOMAINS_STORAGE_MODE_ENV = "HASNA_DOMAINS_STORAGE_MODE";
28661
+ var DOMAINS_STORAGE_MODE_FALLBACK_ENV = "DOMAINS_STORAGE_MODE";
28662
+ var STORAGE_DATABASE_ENV = [DOMAINS_STORAGE_ENV, DOMAINS_STORAGE_FALLBACK_ENV];
28663
+ var STORAGE_MODE_ENV = [DOMAINS_STORAGE_MODE_ENV, DOMAINS_STORAGE_MODE_FALLBACK_ENV];
28664
+ function firstEnv(names) {
28665
+ for (const name of names) {
28666
+ const value = process.env[name];
28667
+ if (value)
28668
+ return value;
28669
+ }
28670
+ return null;
28671
+ }
28672
+ function normalizeStorageMode(value) {
28673
+ if (!value)
28674
+ return null;
28675
+ const normalized = value.trim().toLowerCase();
28676
+ if (normalized === "local" || normalized === "remote" || normalized === "hybrid")
28677
+ return normalized;
28678
+ return null;
28659
28679
  }
28660
- async function getCloudPg() {
28661
- const url = getCloudDatabaseUrl();
28680
+ function getStorageDatabaseUrl() {
28681
+ return firstEnv(STORAGE_DATABASE_ENV);
28682
+ }
28683
+ function getStorageDatabaseEnvName() {
28684
+ for (const name of STORAGE_DATABASE_ENV) {
28685
+ if (process.env[name])
28686
+ return name;
28687
+ }
28688
+ return null;
28689
+ }
28690
+ function getStorageMode() {
28691
+ return normalizeStorageMode(firstEnv(STORAGE_MODE_ENV)) ?? (getStorageDatabaseUrl() ? "remote" : "local");
28692
+ }
28693
+ async function getStoragePg() {
28694
+ const url = getStorageDatabaseUrl();
28662
28695
  if (!url) {
28663
- throw new Error("Missing HASNA_DOMAINS_CLOUD_DATABASE_URL, OPEN_DOMAINS_CLOUD_DATABASE_URL, or DOMAINS_CLOUD_DATABASE_URL");
28696
+ throw new Error("Missing HASNA_DOMAINS_DATABASE_URL or DOMAINS_DATABASE_URL");
28664
28697
  }
28665
28698
  return new PgAdapterAsync(url);
28666
28699
  }
28667
- async function runCloudMigrations(remote) {
28700
+ async function runStorageMigrations(remote) {
28668
28701
  for (const sql of PG_MIGRATIONS)
28669
28702
  await remote.run(sql);
28670
28703
  }
28671
- async function cloudPush(options) {
28672
- const remote = await getCloudPg();
28704
+ async function storagePush(options) {
28705
+ const remote = await getStoragePg();
28673
28706
  const db = getDatabase();
28674
28707
  try {
28675
- await runCloudMigrations(remote);
28708
+ await runStorageMigrations(remote);
28676
28709
  const results = [];
28677
28710
  for (const table of resolveTables(options?.tables))
28678
28711
  results.push(await pushTable(db, remote, table));
@@ -28682,11 +28715,11 @@ async function cloudPush(options) {
28682
28715
  await remote.close();
28683
28716
  }
28684
28717
  }
28685
- async function cloudPull(options) {
28686
- const remote = await getCloudPg();
28718
+ async function storagePull(options) {
28719
+ const remote = await getStoragePg();
28687
28720
  const db = getDatabase();
28688
28721
  try {
28689
- await runCloudMigrations(remote);
28722
+ await runStorageMigrations(remote);
28690
28723
  const results = [];
28691
28724
  for (const table of resolveTables(options?.tables))
28692
28725
  results.push(await pullTable(remote, db, table));
@@ -28696,20 +28729,33 @@ async function cloudPull(options) {
28696
28729
  await remote.close();
28697
28730
  }
28698
28731
  }
28699
- async function cloudSync(options) {
28700
- const pull = await cloudPull(options);
28701
- const push = await cloudPush(options);
28732
+ async function storageSync(options) {
28733
+ const pull = await storagePull(options);
28734
+ const push = await storagePush(options);
28702
28735
  return { pull, push };
28703
28736
  }
28704
- function getSyncMetaAll() {
28737
+ function getStorageSyncMetaAll() {
28705
28738
  const db = getDatabase();
28706
28739
  ensureSyncMetaTable(db);
28707
28740
  return db.query("SELECT table_name, last_synced_at, direction FROM _domains_sync_meta ORDER BY table_name, direction").all();
28708
28741
  }
28742
+ function getStorageStatus() {
28743
+ return {
28744
+ configured: Boolean(getStorageDatabaseUrl()),
28745
+ env: STORAGE_DATABASE_ENV,
28746
+ mode: getStorageMode(),
28747
+ service: "domains",
28748
+ tables: STORAGE_TABLES,
28749
+ sync: getStorageSyncMetaAll()
28750
+ };
28751
+ }
28752
+ function getSyncMetaAll() {
28753
+ return getStorageSyncMetaAll();
28754
+ }
28709
28755
  function resolveTables(tables) {
28710
28756
  if (!tables || tables.length === 0)
28711
- return [...CLOUD_TABLES];
28712
- const allowed = new Set(CLOUD_TABLES);
28757
+ return [...STORAGE_TABLES];
28758
+ const allowed = new Set(STORAGE_TABLES);
28713
28759
  const requested = tables.map((table) => table.trim()).filter(Boolean);
28714
28760
  const invalid = requested.filter((table) => !allowed.has(table));
28715
28761
  if (invalid.length > 0)
@@ -28943,6 +28989,61 @@ async function renewDomain(domain, years = 1, config) {
28943
28989
  chargedAmount: chargedAmount || undefined
28944
28990
  };
28945
28991
  }
28992
+ function namecheapContactParams(contact) {
28993
+ const organization = contact.organization_name || "NA";
28994
+ const base = {
28995
+ FirstName: contact.first_name,
28996
+ LastName: contact.last_name,
28997
+ OrganizationName: organization,
28998
+ Address1: contact.address_line_1,
28999
+ City: contact.city,
29000
+ StateProvince: contact.state,
29001
+ PostalCode: contact.zip_code,
29002
+ Country: contact.country_code,
29003
+ Phone: contact.phone,
29004
+ EmailAddress: contact.email
29005
+ };
29006
+ const params = {};
29007
+ for (const prefix of ["Registrant", "Tech", "Admin", "AuxBilling"]) {
29008
+ for (const [key, value] of Object.entries(base)) {
29009
+ params[prefix + key] = value;
29010
+ }
29011
+ }
29012
+ return params;
29013
+ }
29014
+ async function registerDomain(domain, contact, options = {}, config) {
29015
+ const cfg = config || getConfig();
29016
+ const params = {
29017
+ DomainName: domain,
29018
+ Years: String(options.years ?? 1),
29019
+ AddFreeWhoisguard: options.whoisGuard === false ? "no" : "yes",
29020
+ WGEnabled: options.whoisGuard === false ? "no" : "yes",
29021
+ ...namecheapContactParams(contact)
29022
+ };
29023
+ if (options.premiumPrice !== undefined) {
29024
+ params.IsPremiumDomain = "true";
29025
+ params.PremiumPrice = String(options.premiumPrice);
29026
+ }
29027
+ const xml = await apiRequest(cfg, "namecheap.domains.create", params);
29028
+ return {
29029
+ domain,
29030
+ success: xml.includes('Status="OK"') || xml.includes('Registered="true"'),
29031
+ orderId: parseXmlValue(xml, "OrderId") || undefined,
29032
+ chargedAmount: parseXmlValue(xml, "ChargedAmount") || undefined
29033
+ };
29034
+ }
29035
+ async function updateNameservers(domain, nameservers, config) {
29036
+ if (nameservers.length === 0)
29037
+ throw new Error("updateNameservers requires at least one nameserver");
29038
+ const cfg = config || getConfig();
29039
+ const { sld, tld } = splitDomain(domain);
29040
+ const xml = await apiRequest(cfg, "namecheap.domains.dns.setCustom", {
29041
+ SLD: sld,
29042
+ TLD: tld,
29043
+ Nameservers: nameservers.join(",")
29044
+ });
29045
+ return xml.includes('Status="OK"') || xml.includes('Updated="true"');
29046
+ }
28946
29047
  async function getDnsRecords(_domain, sld, tld, config) {
28947
29048
  const cfg = config || getConfig();
28948
29049
  const xml = await apiRequest(cfg, "namecheap.domains.dns.getHosts", {
@@ -35661,7 +35762,7 @@ async function checkAvailability3(domain, config) {
35661
35762
  } catch {}
35662
35763
  return availability;
35663
35764
  }
35664
- async function registerDomain(domain, contact, durationYears = 1, autoRenew = true, config) {
35765
+ async function registerDomain2(domain, contact, durationYears = 1, autoRenew = true, config) {
35665
35766
  const { domains } = makeClients(config);
35666
35767
  const contactDetail = {
35667
35768
  FirstName: contact.first_name,
@@ -35710,7 +35811,7 @@ async function getDomainDetail(domain, config) {
35710
35811
  nameservers: (result.Nameservers ?? []).map((ns) => ns.Name ?? "").filter(Boolean)
35711
35812
  };
35712
35813
  }
35713
- async function updateNameservers(domain, nameservers, config, client) {
35814
+ async function updateNameservers2(domain, nameservers, config, client) {
35714
35815
  if (!nameservers.length) {
35715
35816
  throw new Error("updateNameservers requires at least one nameserver");
35716
35817
  }
@@ -35895,6 +35996,8 @@ async function upsertRecords(hostedZoneId, records, config) {
35895
35996
  }
35896
35997
  function createRoute53Provider(config) {
35897
35998
  const cfg = config ?? getConfig2();
35999
+ const registerWithRoute53 = registerDomain2;
36000
+ const updateRoute53Nameservers = updateNameservers2;
35898
36001
  return {
35899
36002
  name: "route53",
35900
36003
  async listDomains() {
@@ -35921,6 +36024,14 @@ function createRoute53Provider(config) {
35921
36024
  auto_renew: detail.auto_renew
35922
36025
  };
35923
36026
  },
36027
+ async registerDomain(domain, contact, options = {}) {
36028
+ const result = await registerWithRoute53(domain, contact, options.years ?? 1, options.autoRenew ?? true, cfg);
36029
+ return { domain, success: !!result.operationId, operationId: result.operationId };
36030
+ },
36031
+ async updateNameservers(domain, nameservers) {
36032
+ const result = await updateRoute53Nameservers(domain, nameservers, cfg);
36033
+ return { domain, success: !!result.operationId, operationId: result.operationId };
36034
+ },
35924
36035
  async renewDomain(_domain) {
35925
36036
  return { domain: _domain, success: false, orderId: undefined, chargedAmount: undefined };
35926
36037
  },
@@ -36004,15 +36115,129 @@ function createRoute53Provider(config) {
36004
36115
  };
36005
36116
  }
36006
36117
 
36007
- // src/lib/cloudflare-auth.ts
36008
- function resolveCloudflareConfig(env = process.env) {
36009
- const accountId = env["CLOUDFLARE_ACCOUNT_ID"] || undefined;
36010
- if (env["CLOUDFLARE_API_TOKEN"]) {
36011
- return { apiToken: env["CLOUDFLARE_API_TOKEN"], accountId };
36118
+ // src/lib/env-aliases.ts
36119
+ function firstEnv2(env, names) {
36120
+ for (const key of names) {
36121
+ const value = env[key];
36122
+ if (value)
36123
+ return { key, value };
36124
+ }
36125
+ return;
36126
+ }
36127
+ function hasEveryEnv(env, groups) {
36128
+ return groups.every((names) => !!firstEnv2(env, names));
36129
+ }
36130
+ function flattenEnvNames(groups) {
36131
+ return Array.from(new Set(groups.flatMap((names) => [...names])));
36132
+ }
36133
+ var NAMECHEAP_ENV = {
36134
+ apiKey: ["NAMECHEAP_API_KEY"],
36135
+ username: ["NAMECHEAP_USERNAME"],
36136
+ clientIp: ["NAMECHEAP_CLIENT_IP"]
36137
+ };
36138
+ var GODADDY_ENV = {
36139
+ apiKey: ["GODADDY_API_KEY"],
36140
+ apiSecret: ["GODADDY_API_SECRET"]
36141
+ };
36142
+ var BRANDSIGHT_ENV = {
36143
+ apiKey: [
36144
+ "BRANDSIGHT_API_KEY",
36145
+ "HASNAXYZ_BRANDSIGHT_LIVE_API_KEY",
36146
+ "HASNAXYZ_BRANDSIGHT_SANDBOX_API_KEY"
36147
+ ],
36148
+ apiSecret: [
36149
+ "BRANDSIGHT_API_SECRET",
36150
+ "HASNAXYZ_BRANDSIGHT_LIVE_API_SECRET",
36151
+ "HASNAXYZ_BRANDSIGHT_SANDBOX_API_SECRET"
36152
+ ],
36153
+ customerId: [
36154
+ "BRANDSIGHT_CUSTOMER_ID",
36155
+ "HASNAXYZ_BRANDSIGHT_LIVE_CUSTOMER_ID",
36156
+ "HASNAXYZ_BRANDSIGHT_SANDBOX_CUSTOMER_ID"
36157
+ ],
36158
+ shopperId: [
36159
+ "BRANDSIGHT_SHOPPER_ID",
36160
+ "HASNAXYZ_BRANDSIGHT_LIVE_SHOPPER_ID",
36161
+ "HASNAXYZ_BRANDSIGHT_SANDBOX_SHOPPER_ID"
36162
+ ],
36163
+ accountId: ["BRANDSIGHT_ACCOUNT_ID", "HASNAXYZ_BRANDSIGHT_LIVE_ACCOUNT_ID"]
36164
+ };
36165
+ var SEDO_ENV = {
36166
+ partnerId: ["SEDO_PARTNER_ID", "HASNAXYZ_SEDO_LIVE_PARTNER_ID"],
36167
+ signKey: ["SEDO_API_KEY", "SEDO_SIGN_KEY", "HASNAXYZ_SEDO_LIVE_API_KEY"],
36168
+ username: ["SEDO_USERNAME", "SEDO_EMAIL", "HASNAXYZ_SEDO_LIVE_USERNAME", "HASNAXYZ_SEDO_LIVE_EMAIL"],
36169
+ password: ["SEDO_PASSWORD", "HASNAXYZ_SEDO_LIVE_PASSWORD"]
36170
+ };
36171
+ var CLOUDFLARE_ENV = {
36172
+ apiToken: ["CLOUDFLARE_API_TOKEN", "HASNAXYZ_CLOUDFLARE_LIVE_API_TOKEN"],
36173
+ apiKey: ["CLOUDFLARE_API_KEY", "HASNAXYZ_CLOUDFLARE_LIVE_API_KEY"],
36174
+ email: ["CLOUDFLARE_EMAIL", "HASNAXYZ_CLOUDFLARE_LIVE_EMAIL"],
36175
+ accountId: ["CLOUDFLARE_ACCOUNT_ID", "HASNAXYZ_CLOUDFLARE_LIVE_ACCOUNT_ID"]
36176
+ };
36177
+ var BEEPMEDIA_AWS_ENV = {
36178
+ accessKeyId: ["HASNASTUDIO_BEEPMEDIA_AWS_LIVE_ACCESS_KEY_ID", "BEEPMEDIA_AWS_ACCESS_KEY_ID"],
36179
+ secretAccessKey: ["HASNASTUDIO_BEEPMEDIA_AWS_LIVE_SECRET_ACCESS_KEY", "BEEPMEDIA_AWS_SECRET_ACCESS_KEY"]
36180
+ };
36181
+ function providerEnvNames(provider) {
36182
+ switch (provider.toLowerCase()) {
36183
+ case "namecheap":
36184
+ return flattenEnvNames([NAMECHEAP_ENV.apiKey, NAMECHEAP_ENV.username, NAMECHEAP_ENV.clientIp]);
36185
+ case "godaddy":
36186
+ return flattenEnvNames([GODADDY_ENV.apiKey, GODADDY_ENV.apiSecret]);
36187
+ case "brandsight":
36188
+ return flattenEnvNames([
36189
+ BRANDSIGHT_ENV.apiKey,
36190
+ BRANDSIGHT_ENV.apiSecret,
36191
+ BRANDSIGHT_ENV.customerId,
36192
+ BRANDSIGHT_ENV.shopperId,
36193
+ BRANDSIGHT_ENV.accountId
36194
+ ]);
36195
+ case "sedo":
36196
+ return flattenEnvNames([SEDO_ENV.partnerId, SEDO_ENV.signKey, SEDO_ENV.username, SEDO_ENV.password]);
36197
+ case "cloudflare":
36198
+ return flattenEnvNames([CLOUDFLARE_ENV.apiToken, CLOUDFLARE_ENV.apiKey, CLOUDFLARE_ENV.email, CLOUDFLARE_ENV.accountId]);
36199
+ case "route53":
36200
+ return ["AWS_PROFILE", "AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_REGION"];
36201
+ case "aws:beepmedia":
36202
+ return flattenEnvNames([BEEPMEDIA_AWS_ENV.accessKeyId, BEEPMEDIA_AWS_ENV.secretAccessKey]);
36203
+ default:
36204
+ return [];
36012
36205
  }
36013
- if (env["CLOUDFLARE_API_KEY"] && env["CLOUDFLARE_EMAIL"]) {
36014
- return { apiKey: env["CLOUDFLARE_API_KEY"], email: env["CLOUDFLARE_EMAIL"], accountId };
36206
+ }
36207
+ function hasProviderCredentials(provider, env = process.env) {
36208
+ switch (provider.toLowerCase()) {
36209
+ case "namecheap":
36210
+ return hasEveryEnv(env, [NAMECHEAP_ENV.apiKey, NAMECHEAP_ENV.username, NAMECHEAP_ENV.clientIp]);
36211
+ case "godaddy":
36212
+ return hasEveryEnv(env, [GODADDY_ENV.apiKey, GODADDY_ENV.apiSecret]);
36213
+ case "brandsight":
36214
+ return hasEveryEnv(env, [BRANDSIGHT_ENV.apiKey, BRANDSIGHT_ENV.apiSecret, BRANDSIGHT_ENV.customerId]);
36215
+ case "sedo":
36216
+ return hasEveryEnv(env, [SEDO_ENV.partnerId, SEDO_ENV.signKey, SEDO_ENV.username, SEDO_ENV.password]);
36217
+ case "cloudflare": {
36218
+ const tokenMode = !!firstEnv2(env, CLOUDFLARE_ENV.apiToken);
36219
+ const keyMode = hasEveryEnv(env, [CLOUDFLARE_ENV.apiKey, CLOUDFLARE_ENV.email]);
36220
+ return tokenMode || keyMode;
36221
+ }
36222
+ case "route53":
36223
+ return !!env["AWS_PROFILE"] || hasEveryEnv(env, [["AWS_ACCESS_KEY_ID"], ["AWS_SECRET_ACCESS_KEY"]]);
36224
+ case "aws:beepmedia":
36225
+ return hasEveryEnv(env, [BEEPMEDIA_AWS_ENV.accessKeyId, BEEPMEDIA_AWS_ENV.secretAccessKey]);
36226
+ default:
36227
+ return false;
36015
36228
  }
36229
+ }
36230
+
36231
+ // src/lib/cloudflare-auth.ts
36232
+ function resolveCloudflareConfig(env = process.env) {
36233
+ const accountId = firstEnv2(env, CLOUDFLARE_ENV.accountId)?.value;
36234
+ const apiToken = firstEnv2(env, CLOUDFLARE_ENV.apiToken)?.value;
36235
+ if (apiToken)
36236
+ return { apiToken, accountId };
36237
+ const apiKey = firstEnv2(env, CLOUDFLARE_ENV.apiKey)?.value;
36238
+ const email = firstEnv2(env, CLOUDFLARE_ENV.email)?.value;
36239
+ if (apiKey && email)
36240
+ return { apiKey, email, accountId };
36016
36241
  return accountId ? { accountId } : {};
36017
36242
  }
36018
36243
  function cloudflareAuthHeaders(cfg) {
@@ -36136,6 +36361,21 @@ function createCloudflareProvider(config) {
36136
36361
  }
36137
36362
 
36138
36363
  // src/lib/brandsight.ts
36364
+ function resolveBrandsightConfig(env = process.env) {
36365
+ const apiKey = firstEnv2(env, BRANDSIGHT_ENV.apiKey)?.value ?? "";
36366
+ const apiSecret = firstEnv2(env, BRANDSIGHT_ENV.apiSecret)?.value;
36367
+ const customerId = firstEnv2(env, BRANDSIGHT_ENV.customerId)?.value;
36368
+ const shopperId = firstEnv2(env, BRANDSIGHT_ENV.shopperId)?.value;
36369
+ const accountId = firstEnv2(env, BRANDSIGHT_ENV.accountId)?.value;
36370
+ return {
36371
+ apiKey,
36372
+ apiSecret,
36373
+ customerId,
36374
+ shopperId,
36375
+ accountId,
36376
+ baseUrl: env["BRANDSIGHT_BASE_URL"]
36377
+ };
36378
+ }
36139
36379
  class BrandsightApiError extends Error {
36140
36380
  statusCode;
36141
36381
  responseBody;
@@ -36148,10 +36388,7 @@ class BrandsightApiError extends Error {
36148
36388
  }
36149
36389
  var _fetchFn = null;
36150
36390
  function getConfig4() {
36151
- return {
36152
- apiKey: process.env["BRANDSIGHT_API_KEY"] ?? "",
36153
- accountId: process.env["BRANDSIGHT_ACCOUNT_ID"]
36154
- };
36391
+ return resolveBrandsightConfig();
36155
36392
  }
36156
36393
  var BRANDSIGHT_BASE = "https://api.brandsight.com/v1";
36157
36394
  async function apiRequest3(method, path, apiKey, body, baseUrl = BRANDSIGHT_BASE) {
@@ -36299,8 +36536,8 @@ function createBrandsightProvider(config) {
36299
36536
  auto_renew: d3.auto_renew
36300
36537
  };
36301
36538
  },
36302
- async renewDomain(domain) {
36303
- const result = await renewDomain3(domain, 1, cfg);
36539
+ async renewDomain(domain, years = 1) {
36540
+ const result = await renewDomain3(domain, years, cfg);
36304
36541
  return { domain, success: result.success, orderId: result.orderId };
36305
36542
  },
36306
36543
  async checkAvailability(domain) {
@@ -36348,9 +36585,27 @@ function createNamecheapProvider() {
36348
36585
  auto_renew: true
36349
36586
  };
36350
36587
  },
36351
- async renewDomain(domain) {
36588
+ async registerDomain(domain, contact, options = {}) {
36352
36589
  const config = getConfig();
36353
- const result = await renewDomain(domain, 1, config);
36590
+ const result = await registerDomain(domain, contact, {
36591
+ years: options.years,
36592
+ premiumPrice: options.premiumPrice
36593
+ }, config);
36594
+ return {
36595
+ domain: result.domain,
36596
+ success: result.success,
36597
+ orderId: result.orderId,
36598
+ chargedAmount: result.chargedAmount
36599
+ };
36600
+ },
36601
+ async updateNameservers(domain, nameservers) {
36602
+ const config = getConfig();
36603
+ const success = await updateNameservers(domain, nameservers, config);
36604
+ return { domain, success };
36605
+ },
36606
+ async renewDomain(domain, years = 1) {
36607
+ const config = getConfig();
36608
+ const result = await renewDomain(domain, years, config);
36354
36609
  return {
36355
36610
  domain: result.domain,
36356
36611
  success: result.success,
@@ -36486,7 +36741,7 @@ var providerRegistry = new Map([
36486
36741
  name: "namecheap",
36487
36742
  type: "full",
36488
36743
  configured: false,
36489
- envVars: ["NAMECHEAP_API_KEY", "NAMECHEAP_USERNAME", "NAMECHEAP_CLIENT_IP"]
36744
+ envVars: providerEnvNames("namecheap")
36490
36745
  },
36491
36746
  createRegistrar: createNamecheapProvider,
36492
36747
  createDns: createNamecheapProvider
@@ -36496,7 +36751,7 @@ var providerRegistry = new Map([
36496
36751
  name: "godaddy",
36497
36752
  type: "full",
36498
36753
  configured: false,
36499
- envVars: ["GODADDY_API_KEY", "GODADDY_API_SECRET"]
36754
+ envVars: providerEnvNames("godaddy")
36500
36755
  },
36501
36756
  createRegistrar: createGoDaddyProvider,
36502
36757
  createDns: createGoDaddyProvider
@@ -36506,7 +36761,7 @@ var providerRegistry = new Map([
36506
36761
  name: "route53",
36507
36762
  type: "full",
36508
36763
  configured: false,
36509
- envVars: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_REGION"]
36764
+ envVars: providerEnvNames("route53")
36510
36765
  },
36511
36766
  createRegistrar: () => createRoute53Provider(),
36512
36767
  createDns: () => createRoute53Provider()
@@ -36516,7 +36771,7 @@ var providerRegistry = new Map([
36516
36771
  name: "cloudflare",
36517
36772
  type: "dns",
36518
36773
  configured: false,
36519
- envVars: ["CLOUDFLARE_API_TOKEN", "CLOUDFLARE_ACCOUNT_ID"]
36774
+ envVars: providerEnvNames("cloudflare")
36520
36775
  },
36521
36776
  createDns: createCloudflareProvider
36522
36777
  }],
@@ -36525,22 +36780,42 @@ var providerRegistry = new Map([
36525
36780
  name: "brandsight",
36526
36781
  type: "registrar",
36527
36782
  configured: false,
36528
- envVars: ["BRANDSIGHT_API_KEY", "BRANDSIGHT_ACCOUNT_ID"]
36783
+ envVars: providerEnvNames("brandsight")
36529
36784
  },
36530
36785
  createRegistrar: createBrandsightProvider
36786
+ }],
36787
+ ["sedo", {
36788
+ info: {
36789
+ name: "sedo",
36790
+ type: "marketplace",
36791
+ configured: false,
36792
+ envVars: providerEnvNames("sedo")
36793
+ }
36531
36794
  }]
36532
36795
  ]);
36533
- function isConfigured(envVars) {
36534
- return envVars.slice(0, 2).every((v3) => !!process.env[v3]);
36796
+ function isConfigured(providerName) {
36797
+ return hasProviderCredentials(providerName);
36535
36798
  }
36536
36799
  function getAvailableProviders() {
36537
36800
  return Array.from(providerRegistry.values()).map((e3) => ({
36538
36801
  ...e3.info,
36539
- configured: isConfigured(e3.info.envVars)
36802
+ configured: isConfigured(e3.info.name)
36540
36803
  }));
36541
36804
  }
36805
+ function getProviderInfo(name) {
36806
+ const entry = providerRegistry.get(name.toLowerCase());
36807
+ if (!entry)
36808
+ return null;
36809
+ return { ...entry.info, configured: isConfigured(entry.info.name) };
36810
+ }
36811
+ function providerHasRegistrar(name) {
36812
+ return !!providerRegistry.get(name.toLowerCase())?.createRegistrar;
36813
+ }
36814
+ function providerHasDns(name) {
36815
+ return !!providerRegistry.get(name.toLowerCase())?.createDns;
36816
+ }
36542
36817
  function getRegistrarProvider(name) {
36543
- const entry = providerRegistry.get(name);
36818
+ const entry = providerRegistry.get(name.toLowerCase());
36544
36819
  if (!entry?.createRegistrar)
36545
36820
  throw new Error(`No registrar provider: ${name}`);
36546
36821
  return entry.createRegistrar();
@@ -36549,7 +36824,7 @@ function getProvider(name) {
36549
36824
  return getRegistrarProvider(name);
36550
36825
  }
36551
36826
  async function syncAll(dbFns) {
36552
- const available = getAvailableProviders().filter((p3) => p3.configured && (p3.type === "registrar" || p3.type === "full") && p3.name !== "brandsight");
36827
+ const available = getAvailableProviders().filter((p3) => p3.configured && providerHasRegistrar(p3.name));
36553
36828
  const result = { providers: [], totalSynced: 0, totalErrors: [] };
36554
36829
  for (const info of available) {
36555
36830
  try {
@@ -36597,8 +36872,9 @@ var PROVIDER_CAPABILITIES = {
36597
36872
  route53: { canBuy: true, canDns: true, gated: false, notes: "Full self-serve buy + hosted zones via AWS API; primary buy path." },
36598
36873
  cloudflare: { canBuy: false, canDns: true, gated: false, notes: "DNS/zone management only; not a registrar. Always our DNS." },
36599
36874
  namecheap: { canBuy: true, canDns: true, gated: false, notes: "Buy + DNS via API; requires API access + whitelisted IP." },
36600
- godaddy: { canBuy: true, canDns: true, gated: true, notes: "Domains API gated behind account thresholds (>=10 / Discount Domain Club) since 2024; purchase + DNS writes unreliable." },
36601
- brandsight: { canBuy: true, canDns: true, gated: true, notes: "GoDaddy Corporate Domains (enterprise/contract-only); credentials issued to onboarded clients, not self-serve." }
36875
+ godaddy: { canBuy: false, canDns: true, gated: true, notes: "Domains API is account-gated; this CLI supports availability/sync/renew/DNS records where allowed, but not direct automated purchase." },
36876
+ brandsight: { canBuy: false, canDns: false, gated: true, notes: "GoDaddy Corporate Domains (enterprise/contract-only); portfolio/renewal surface only in this CLI, with purchase and DNS operations contract-specific." },
36877
+ sedo: { canBuy: false, canDns: false, gated: true, notes: "Marketplace API only: search/portfolio/listings and recorded purchases; no registrar DNS or direct registration API in this CLI." }
36602
36878
  };
36603
36879
  var UNKNOWN = { canBuy: false, canDns: false, gated: true, notes: "Unknown provider." };
36604
36880
  function getCapability(name) {
@@ -36656,17 +36932,20 @@ export {
36656
36932
  updateDomain,
36657
36933
  updateDnsRecord,
36658
36934
  syncAll,
36935
+ storageSync,
36936
+ storagePush,
36937
+ storagePull,
36659
36938
  selectDnsProvider,
36660
36939
  selectBuyRegistrar,
36661
36940
  searchDomains,
36662
- runCloudMigrations,
36941
+ runStorageMigrations,
36663
36942
  resolveTables,
36664
36943
  resolveCloudflareConfig,
36665
36944
  recordDomainPurchase,
36666
36945
  upsertRecords as r53UpsertRecords,
36667
36946
  upsertRecord as r53UpsertRecord,
36668
- updateNameservers as r53UpdateNameservers,
36669
- registerDomain as r53RegisterDomain,
36947
+ updateNameservers2 as r53UpdateNameservers,
36948
+ registerDomain2 as r53RegisterDomain,
36670
36949
  listRegisteredDomains as r53ListRegisteredDomains,
36671
36950
  listRecords as r53ListRecords,
36672
36951
  listHostedZones as r53ListHostedZones,
@@ -36678,6 +36957,8 @@ export {
36678
36957
  deleteHostedZone as r53DeleteHostedZone,
36679
36958
  createHostedZone as r53CreateHostedZone,
36680
36959
  checkAvailability3 as r53CheckAvailability,
36960
+ providerHasRegistrar,
36961
+ providerHasDns,
36681
36962
  pollRegistrationUntilDone,
36682
36963
  markDomainPremium,
36683
36964
  listSslExpiring,
@@ -36690,6 +36971,13 @@ export {
36690
36971
  linkDomainEmail,
36691
36972
  importZoneFile,
36692
36973
  getSyncMetaAll,
36974
+ getStorageSyncMetaAll,
36975
+ getStorageStatus,
36976
+ getStoragePg,
36977
+ getStorageMode,
36978
+ getStorageDatabaseUrl,
36979
+ getStorageDatabaseEnvName,
36980
+ getProviderInfo,
36693
36981
  getProvider,
36694
36982
  getDomainStats,
36695
36983
  getDomainOffer,
@@ -36700,8 +36988,6 @@ export {
36700
36988
  getDomain,
36701
36989
  getDnsRecord,
36702
36990
  getDatabase,
36703
- getCloudPg,
36704
- getCloudDatabaseUrl,
36705
36991
  getCapability,
36706
36992
  getByRegistrar,
36707
36993
  getAvailableProviders,
@@ -36720,9 +37006,6 @@ export {
36720
37006
  createAlert,
36721
37007
  countDomains,
36722
37008
  cloudflareAuthHeaders,
36723
- cloudSync,
36724
- cloudPush,
36725
- cloudPull,
36726
37009
  closeDatabase,
36727
37010
  classifyRegistrationStatus,
36728
37011
  checkSsl,
@@ -36734,11 +37017,18 @@ export {
36734
37017
  createZone as cfCreateZone,
36735
37018
  canBuy,
36736
37019
  autoDetectRegistrar,
37020
+ STORAGE_TABLES,
37021
+ STORAGE_MODE_ENV,
37022
+ STORAGE_DATABASE_ENV,
36737
37023
  PgAdapterAsync,
36738
37024
  PROVIDER_CAPABILITIES,
36739
37025
  PG_MIGRATIONS,
36740
37026
  DOMAIN_STATUSES,
36741
37027
  DOMAIN_OFFER_STATUSES,
36742
37028
  DOMAIN_EMAIL_TYPES,
36743
- CLOUD_TABLES
37029
+ DOMAINS_STORAGE_TABLES,
37030
+ DOMAINS_STORAGE_MODE_FALLBACK_ENV,
37031
+ DOMAINS_STORAGE_MODE_ENV,
37032
+ DOMAINS_STORAGE_FALLBACK_ENV,
37033
+ DOMAINS_STORAGE_ENV
36744
37034
  };
@@ -1 +1 @@
1
- {"version":3,"file":"brandsight.d.ts","sourceRoot":"","sources":["../../src/lib/brandsight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brandsight.d.ts","sourceRoot":"","sources":["../../src/lib/brandsight.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../src/lib/capability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,iFAAiF;IACjF,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAMpE,CAAC;AAIF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAE9D;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG5C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ9D;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
1
+ {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../src/lib/capability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,iFAAiF;IACjF,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAOpE,CAAC;AAIF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAE9D;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG5C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ9D;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-auth.d.ts","sourceRoot":"","sources":["../../src/lib/cloudflare-auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,uBAAuB,CACrC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAqD,GAC1F,gBAAgB,CAYlB;AAED,mDAAmD;AACnD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMnF"}
1
+ {"version":3,"file":"cloudflare-auth.d.ts","sourceRoot":"","sources":["../../src/lib/cloudflare-auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,uBAAuB,CACrC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAqD,GAC1F,gBAAgB,CAUlB;AAED,mDAAmD;AACnD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMnF"}
@@ -1 +1 @@
1
- {"version":3,"file":"creds-check.d.ts","sourceRoot":"","sources":["../../src/lib/creds-check.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAqD,GAC1F,UAAU,EAAE,CAqCd"}
1
+ {"version":3,"file":"creds-check.d.ts","sourceRoot":"","sources":["../../src/lib/creds-check.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAUD,wBAAgB,4BAA4B,CAC1C,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAqD,GAC1F,UAAU,EAAE,CA2Ed"}