@sapiom/tools 0.12.0 → 0.13.0

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 (44) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +4 -3
  3. package/dist/cjs/client.d.ts +33 -0
  4. package/dist/cjs/client.d.ts.map +1 -1
  5. package/dist/cjs/client.js +16 -0
  6. package/dist/cjs/client.js.map +1 -1
  7. package/dist/cjs/domains/errors.d.ts +16 -0
  8. package/dist/cjs/domains/errors.d.ts.map +1 -0
  9. package/dist/cjs/domains/errors.js +36 -0
  10. package/dist/cjs/domains/errors.js.map +1 -0
  11. package/dist/cjs/domains/index.d.ts +297 -0
  12. package/dist/cjs/domains/index.d.ts.map +1 -0
  13. package/dist/cjs/domains/index.js +348 -0
  14. package/dist/cjs/domains/index.js.map +1 -0
  15. package/dist/cjs/index.d.ts +2 -0
  16. package/dist/cjs/index.d.ts.map +1 -1
  17. package/dist/cjs/index.js +4 -1
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/stub/index.d.ts.map +1 -1
  20. package/dist/cjs/stub/index.js +72 -0
  21. package/dist/cjs/stub/index.js.map +1 -1
  22. package/dist/esm/client.d.ts +33 -0
  23. package/dist/esm/client.d.ts.map +1 -1
  24. package/dist/esm/client.js +16 -0
  25. package/dist/esm/client.js.map +1 -1
  26. package/dist/esm/domains/errors.d.ts +16 -0
  27. package/dist/esm/domains/errors.d.ts.map +1 -0
  28. package/dist/esm/domains/errors.js +31 -0
  29. package/dist/esm/domains/errors.js.map +1 -0
  30. package/dist/esm/domains/index.d.ts +297 -0
  31. package/dist/esm/domains/index.d.ts.map +1 -0
  32. package/dist/esm/domains/index.js +335 -0
  33. package/dist/esm/domains/index.js.map +1 -0
  34. package/dist/esm/index.d.ts +2 -0
  35. package/dist/esm/index.d.ts.map +1 -1
  36. package/dist/esm/index.js +2 -0
  37. package/dist/esm/index.js.map +1 -1
  38. package/dist/esm/stub/index.d.ts.map +1 -1
  39. package/dist/esm/stub/index.js +72 -0
  40. package/dist/esm/stub/index.js.map +1 -1
  41. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  42. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  43. package/package.json +6 -1
  44. package/src/domains/README.md +76 -0
@@ -0,0 +1,76 @@
1
+ # domains
2
+
3
+ Register domain names and manage their DNS. The same domains capability your
4
+ agents call over MCP, callable directly from your code or from within a Sapiom
5
+ workflow step.
6
+
7
+ ```typescript
8
+ import { createClient } from "@sapiom/tools";
9
+ const sapiom = createClient({ apiKey: process.env.SAPIOM_API_KEY });
10
+
11
+ // 1. Find an available name and its price (free).
12
+ const results = await sapiom.domains.check({
13
+ domainNames: ["my-app.dev", "my-app.io", "get-my-app.com"],
14
+ });
15
+ const pick = results.find((r) => r.available);
16
+
17
+ // 2. Register it for a year (charges apply).
18
+ if (pick) {
19
+ await sapiom.domains.register({ domainName: pick.domainName });
20
+
21
+ // 3. Point it at your server.
22
+ await sapiom.domains.dns.create({
23
+ domainName: pick.domainName,
24
+ type: "A",
25
+ host: "", // "" = the root domain (@); or "www", "api", …
26
+ value: "203.0.113.10",
27
+ });
28
+ }
29
+ ```
30
+
31
+ Ambient import works too: `import { domains } from "@sapiom/tools"`.
32
+
33
+ ## Operations
34
+
35
+ Top-level (domains):
36
+
37
+ - `check({ domainNames })` — availability + pricing for up to 50 names (free).
38
+ - `register({ domainName })` — buy a domain for one year (**charges apply**).
39
+ - `renew({ domainName })` — extend a domain you own by one year (**charges apply**).
40
+ - `list()` — the domains you own.
41
+ - `get({ domainName })` — full details for a domain you own (nameservers, lock
42
+ status, renewal price, transfer eligibility).
43
+ - `transferOut({ domainName })` — start a transfer to another registrar; returns
44
+ an auth code to give the receiving registrar (**disruptive**).
45
+
46
+ `dns` (DNS records on a domain you own):
47
+
48
+ - `dns.create({ domainName, type, host, value, ttl?, priority? })`
49
+ - `dns.list({ domainName })`
50
+ - `dns.get({ domainName, recordId })`
51
+ - `dns.update({ domainName, recordId, type?, host?, value?, ttl?, priority? })`
52
+ - `dns.delete({ domainName, recordId })`
53
+
54
+ ## DNS records
55
+
56
+ - **`type`** — one of `A`, `AAAA`, `ANAME`, `CNAME`, `MX`, `TXT`, `SRV`, `NS`.
57
+ - **`host`** — use `""` for the root domain (`@`), or a subdomain like `"www"` or
58
+ `"api"`.
59
+ - **`ttl`** — seconds; minimum `300`, defaults to `300`.
60
+ - **`priority`** — required for `MX`, optional otherwise.
61
+ - **`recordId`** — returned from `dns.create` / `dns.list`; pass it to `dns.get`,
62
+ `dns.update`, and `dns.delete`.
63
+
64
+ `dns.update` is a partial update: send only the fields you want to change; the
65
+ rest keep their current values.
66
+
67
+ ## Gotchas
68
+
69
+ - **`register` and `renew` charge on success and are not reversible.** Check
70
+ availability and price with `check` first. A rejected request (e.g. a domain you
71
+ already own, or a malformed name) does not charge.
72
+ - **A newly registered domain is transfer-locked for 60 days** — `transferOut`
73
+ is rejected until it becomes eligible (see `transferEligibleAt` on `get`).
74
+ - **Prices are decimal strings** (e.g. `"12.99"`), not numbers.
75
+ - **Failed requests throw `DomainsHttpError`** (carries `status` + parsed
76
+ `body`), exported from `@sapiom/tools`.