@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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * PostgreSQL migrations for open-domains cloud sync.
2
+ * PostgreSQL migrations for open-domains remote storage sync.
3
3
  */
4
4
  export declare const PG_MIGRATIONS: string[];
5
5
  //# sourceMappingURL=pg-migrations.d.ts.map
@@ -0,0 +1,55 @@
1
+ import { PgAdapterAsync } from "./remote-storage.js";
2
+ export declare const STORAGE_TABLES: readonly ["domains", "dns_records", "alerts", "domain_offers", "domain_emails", "domain_owners", "domain_history", "domain_reputation"];
3
+ export declare const DOMAINS_STORAGE_TABLES: readonly ["domains", "dns_records", "alerts", "domain_offers", "domain_emails", "domain_owners", "domain_history", "domain_reputation"];
4
+ type StorageTable = (typeof STORAGE_TABLES)[number];
5
+ export type StorageMode = "local" | "remote" | "hybrid";
6
+ export interface StorageSyncResult {
7
+ table: string;
8
+ rowsRead: number;
9
+ rowsWritten: number;
10
+ errors: string[];
11
+ }
12
+ export interface StorageSyncMeta {
13
+ table_name: string;
14
+ last_synced_at: string | null;
15
+ direction: "push" | "pull";
16
+ }
17
+ export type SyncResult = StorageSyncResult;
18
+ export type SyncMeta = StorageSyncMeta;
19
+ export interface StorageStatus {
20
+ configured: boolean;
21
+ env: typeof STORAGE_DATABASE_ENV;
22
+ mode: StorageMode;
23
+ service: "domains";
24
+ tables: typeof STORAGE_TABLES;
25
+ sync: StorageSyncMeta[];
26
+ }
27
+ export declare const DOMAINS_STORAGE_ENV = "HASNA_DOMAINS_DATABASE_URL";
28
+ export declare const DOMAINS_STORAGE_FALLBACK_ENV = "DOMAINS_DATABASE_URL";
29
+ export declare const DOMAINS_STORAGE_MODE_ENV = "HASNA_DOMAINS_STORAGE_MODE";
30
+ export declare const DOMAINS_STORAGE_MODE_FALLBACK_ENV = "DOMAINS_STORAGE_MODE";
31
+ export declare const STORAGE_DATABASE_ENV: readonly ["HASNA_DOMAINS_DATABASE_URL", "DOMAINS_DATABASE_URL"];
32
+ export declare const STORAGE_MODE_ENV: readonly ["HASNA_DOMAINS_STORAGE_MODE", "DOMAINS_STORAGE_MODE"];
33
+ export declare function getStorageDatabaseUrl(): string | null;
34
+ export declare function getStorageDatabaseEnvName(): (typeof STORAGE_DATABASE_ENV)[number] | null;
35
+ export declare function getStorageMode(): StorageMode;
36
+ export declare function getStoragePg(): Promise<PgAdapterAsync>;
37
+ export declare function runStorageMigrations(remote: PgAdapterAsync): Promise<void>;
38
+ export declare function storagePush(options?: {
39
+ tables?: string[];
40
+ }): Promise<StorageSyncResult[]>;
41
+ export declare function storagePull(options?: {
42
+ tables?: string[];
43
+ }): Promise<StorageSyncResult[]>;
44
+ export declare function storageSync(options?: {
45
+ tables?: string[];
46
+ }): Promise<{
47
+ pull: StorageSyncResult[];
48
+ push: StorageSyncResult[];
49
+ }>;
50
+ export declare function getStorageSyncMetaAll(): StorageSyncMeta[];
51
+ export declare function getStorageStatus(): StorageStatus;
52
+ export declare function getSyncMetaAll(): StorageSyncMeta[];
53
+ export declare function resolveTables(tables?: string[]): StorageTable[];
54
+ export {};
55
+ //# sourceMappingURL=storage-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-sync.d.ts","sourceRoot":"","sources":["../../src/db/storage-sync.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,eAAO,MAAM,cAAc,yIASjB,CAAC;AACX,eAAO,MAAM,sBAAsB,yIAAiB,CAAC;AAErD,KAAK,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAcpD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAC3C,MAAM,MAAM,QAAQ,GAAG,eAAe,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,GAAG,EAAE,OAAO,oBAAoB,CAAC;IACjC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,OAAO,cAAc,CAAC;IAC9B,IAAI,EAAE,eAAe,EAAE,CAAC;CACzB;AAED,eAAO,MAAM,mBAAmB,+BAA+B,CAAC;AAChE,eAAO,MAAM,4BAA4B,yBAAyB,CAAC;AACnE,eAAO,MAAM,wBAAwB,+BAA+B,CAAC;AACrE,eAAO,MAAM,iCAAiC,yBAAyB,CAAC;AACxE,eAAO,MAAM,oBAAoB,iEAA+D,CAAC;AACjG,eAAO,MAAM,gBAAgB,iEAAyE,CAAC;AAiBvG,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAErD;AAED,wBAAgB,yBAAyB,IAAI,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAKxF;AAED,wBAAgB,cAAc,IAAI,WAAW,CAG5C;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,CAM5D;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhF;AAED,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAY/F;AAED,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAY/F;AAED,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAAC,IAAI,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAAC,CAIpI;AAED,wBAAgB,qBAAqB,IAAI,eAAe,EAAE,CAIzD;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CAShD;AAED,wBAAgB,cAAc,IAAI,eAAe,EAAE,CAElD;AAED,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAO/D"}
package/dist/index.d.ts CHANGED
@@ -8,9 +8,9 @@ export { whoisLookup, checkDnsPropagation, checkSsl, exportZoneFile, importZoneF
8
8
  export { getDatabase, closeDatabase } from "./db/database.js";
9
9
  export { PG_MIGRATIONS } from "./db/pg-migrations.js";
10
10
  export { PgAdapterAsync } from "./db/remote-storage.js";
11
- export { CLOUD_TABLES, cloudPull, cloudPush, cloudSync, getCloudDatabaseUrl, getCloudPg, getSyncMetaAll, resolveTables, runCloudMigrations, } from "./db/cloud-sync.js";
12
- export type { SyncResult as CloudSyncResult, SyncMeta } from "./db/cloud-sync.js";
13
- export { getProvider, getAvailableProviders, syncAll, autoDetectRegistrar, type RegistrarProvider, type ProviderDnsRecord, type ProviderDomainInfo, type ProviderAvailability, type ProviderInfo, type SyncAllResult, } from "./lib/registrar.js";
11
+ export { DOMAINS_STORAGE_FALLBACK_ENV, DOMAINS_STORAGE_MODE_ENV, DOMAINS_STORAGE_MODE_FALLBACK_ENV, DOMAINS_STORAGE_ENV, DOMAINS_STORAGE_TABLES, STORAGE_DATABASE_ENV, STORAGE_MODE_ENV, STORAGE_TABLES, getStorageDatabaseEnvName, getStorageDatabaseUrl, getStorageMode, getStoragePg, getStorageStatus, getStorageSyncMetaAll, getSyncMetaAll, resolveTables, runStorageMigrations, storagePull, storagePush, storageSync, } from "./db/storage-sync.js";
12
+ export type { StorageMode, StorageStatus, StorageSyncMeta, StorageSyncResult, SyncMeta, SyncResult, } from "./db/storage-sync.js";
13
+ export { getProvider, getAvailableProviders, getProviderInfo, providerHasRegistrar, providerHasDns, syncAll, autoDetectRegistrar, type RegistrarProvider, type ProviderDnsRecord, type ProviderDomainInfo, type ProviderAvailability, type ProviderInfo, type SyncAllResult, } from "./lib/registrar.js";
14
14
  export { checkAvailability as r53CheckAvailability, registerDomain as r53RegisterDomain, getRegistrationStatus as r53GetRegistrationStatus, updateNameservers as r53UpdateNameservers, listRegisteredDomains as r53ListRegisteredDomains, createHostedZone as r53CreateHostedZone, listHostedZones as r53ListHostedZones, getHostedZone as r53GetHostedZone, deleteHostedZone as r53DeleteHostedZone, findHostedZoneByDomain as r53FindHostedZoneByDomain, listRecords as r53ListRecords, upsertRecord as r53UpsertRecord, upsertRecords as r53UpsertRecords, deleteRecord as r53DeleteRecord, createRoute53Provider, getConfig as r53GetConfig, type Route53Config, type DomainContactInfo, type DomainAvailability, type RegisteredDomain, type HostedZoneInfo, type Route53Record, type Route53RecordInput, } from "./lib/route53.js";
15
15
  export { createZone as cfCreateZone, getZone as cfGetZone, ensureZone as cfEnsureZone, upsertRecord as cfUpsertRecord, type CloudflareZone, } from "./lib/cloudflare.js";
16
16
  export { resolveCloudflareConfig, cloudflareAuthHeaders, type CloudflareConfig } from "./lib/cloudflare-auth.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}