@dotdo/do 0.1.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 (486) hide show
  1. package/README.md +400 -0
  2. package/dist/ai/embeddings.d.ts +129 -0
  3. package/dist/ai/embeddings.d.ts.map +1 -0
  4. package/dist/ai/embeddings.js +217 -0
  5. package/dist/ai/embeddings.js.map +1 -0
  6. package/dist/ai/gateway.d.ts +139 -0
  7. package/dist/ai/gateway.d.ts.map +1 -0
  8. package/dist/ai/gateway.js +179 -0
  9. package/dist/ai/gateway.js.map +1 -0
  10. package/dist/ai/image.d.ts +140 -0
  11. package/dist/ai/image.d.ts.map +1 -0
  12. package/dist/ai/image.js +199 -0
  13. package/dist/ai/image.js.map +1 -0
  14. package/dist/ai/index.d.ts +98 -0
  15. package/dist/ai/index.d.ts.map +1 -0
  16. package/dist/ai/index.js +223 -0
  17. package/dist/ai/index.js.map +1 -0
  18. package/dist/ai/models.d.ts +81 -0
  19. package/dist/ai/models.d.ts.map +1 -0
  20. package/dist/ai/models.js +537 -0
  21. package/dist/ai/models.js.map +1 -0
  22. package/dist/ai/text.d.ts +176 -0
  23. package/dist/ai/text.d.ts.map +1 -0
  24. package/dist/ai/text.js +253 -0
  25. package/dist/ai/text.js.map +1 -0
  26. package/dist/ai/voice/agents.d.ts +224 -0
  27. package/dist/ai/voice/agents.d.ts.map +1 -0
  28. package/dist/ai/voice/agents.js +375 -0
  29. package/dist/ai/voice/agents.js.map +1 -0
  30. package/dist/ai/voice/campaigns.d.ts +307 -0
  31. package/dist/ai/voice/campaigns.d.ts.map +1 -0
  32. package/dist/ai/voice/campaigns.js +739 -0
  33. package/dist/ai/voice/campaigns.js.map +1 -0
  34. package/dist/ai/voice/index.d.ts +21 -0
  35. package/dist/ai/voice/index.d.ts.map +1 -0
  36. package/dist/ai/voice/index.js +42 -0
  37. package/dist/ai/voice/index.js.map +1 -0
  38. package/dist/ai/voice/providers.d.ts +283 -0
  39. package/dist/ai/voice/providers.d.ts.map +1 -0
  40. package/dist/ai/voice/providers.js +286 -0
  41. package/dist/ai/voice/providers.js.map +1 -0
  42. package/dist/ai/voice/sessions.d.ts +294 -0
  43. package/dist/ai/voice/sessions.d.ts.map +1 -0
  44. package/dist/ai/voice/sessions.js +531 -0
  45. package/dist/ai/voice/sessions.js.map +1 -0
  46. package/dist/ai/voice/tools.d.ts +242 -0
  47. package/dist/ai/voice/tools.d.ts.map +1 -0
  48. package/dist/ai/voice/tools.js +370 -0
  49. package/dist/ai/voice/tools.js.map +1 -0
  50. package/dist/ai/voice/tts.d.ts +173 -0
  51. package/dist/ai/voice/tts.d.ts.map +1 -0
  52. package/dist/ai/voice/tts.js +252 -0
  53. package/dist/ai/voice/tts.js.map +1 -0
  54. package/dist/ai/voice/webrtc.d.ts +228 -0
  55. package/dist/ai/voice/webrtc.d.ts.map +1 -0
  56. package/dist/ai/voice/webrtc.js +372 -0
  57. package/dist/ai/voice/webrtc.js.map +1 -0
  58. package/dist/api/index.d.ts +103 -0
  59. package/dist/api/index.d.ts.map +1 -0
  60. package/dist/api/index.js +191 -0
  61. package/dist/api/index.js.map +1 -0
  62. package/dist/api/mcp/handlers.d.ts +25 -0
  63. package/dist/api/mcp/handlers.d.ts.map +1 -0
  64. package/dist/api/mcp/handlers.js +422 -0
  65. package/dist/api/mcp/handlers.js.map +1 -0
  66. package/dist/api/mcp/index.d.ts +113 -0
  67. package/dist/api/mcp/index.d.ts.map +1 -0
  68. package/dist/api/mcp/index.js +141 -0
  69. package/dist/api/mcp/index.js.map +1 -0
  70. package/dist/api/middleware/auth.d.ts +65 -0
  71. package/dist/api/middleware/auth.d.ts.map +1 -0
  72. package/dist/api/middleware/auth.js +271 -0
  73. package/dist/api/middleware/auth.js.map +1 -0
  74. package/dist/api/middleware/cors.d.ts +62 -0
  75. package/dist/api/middleware/cors.d.ts.map +1 -0
  76. package/dist/api/middleware/cors.js +225 -0
  77. package/dist/api/middleware/cors.js.map +1 -0
  78. package/dist/api/middleware/index.d.ts +60 -0
  79. package/dist/api/middleware/index.d.ts.map +1 -0
  80. package/dist/api/middleware/index.js +175 -0
  81. package/dist/api/middleware/index.js.map +1 -0
  82. package/dist/api/middleware/rateLimit.d.ts +84 -0
  83. package/dist/api/middleware/rateLimit.d.ts.map +1 -0
  84. package/dist/api/middleware/rateLimit.js +321 -0
  85. package/dist/api/middleware/rateLimit.js.map +1 -0
  86. package/dist/api/routes/ai.d.ts +17 -0
  87. package/dist/api/routes/ai.d.ts.map +1 -0
  88. package/dist/api/routes/ai.js +430 -0
  89. package/dist/api/routes/ai.js.map +1 -0
  90. package/dist/api/routes/do.d.ts +17 -0
  91. package/dist/api/routes/do.d.ts.map +1 -0
  92. package/dist/api/routes/do.js +458 -0
  93. package/dist/api/routes/do.js.map +1 -0
  94. package/dist/api/routes/functions.d.ts +111 -0
  95. package/dist/api/routes/functions.d.ts.map +1 -0
  96. package/dist/api/routes/functions.js +548 -0
  97. package/dist/api/routes/functions.js.map +1 -0
  98. package/dist/api/routes/health.d.ts +16 -0
  99. package/dist/api/routes/health.d.ts.map +1 -0
  100. package/dist/api/routes/health.js +163 -0
  101. package/dist/api/routes/health.js.map +1 -0
  102. package/dist/api/routes/index.d.ts +41 -0
  103. package/dist/api/routes/index.d.ts.map +1 -0
  104. package/dist/api/routes/index.js +275 -0
  105. package/dist/api/routes/index.js.map +1 -0
  106. package/dist/api/routes/nouns.d.ts +26 -0
  107. package/dist/api/routes/nouns.d.ts.map +1 -0
  108. package/dist/api/routes/nouns.js +456 -0
  109. package/dist/api/routes/nouns.js.map +1 -0
  110. package/dist/api/routes/orgs.d.ts +17 -0
  111. package/dist/api/routes/orgs.d.ts.map +1 -0
  112. package/dist/api/routes/orgs.js +560 -0
  113. package/dist/api/routes/orgs.js.map +1 -0
  114. package/dist/api/routes/relationships.d.ts +30 -0
  115. package/dist/api/routes/relationships.d.ts.map +1 -0
  116. package/dist/api/routes/relationships.js +360 -0
  117. package/dist/api/routes/relationships.js.map +1 -0
  118. package/dist/api/routes/roles.d.ts +17 -0
  119. package/dist/api/routes/roles.d.ts.map +1 -0
  120. package/dist/api/routes/roles.js +721 -0
  121. package/dist/api/routes/roles.js.map +1 -0
  122. package/dist/api/routes/things.d.ts +27 -0
  123. package/dist/api/routes/things.d.ts.map +1 -0
  124. package/dist/api/routes/things.js +568 -0
  125. package/dist/api/routes/things.js.map +1 -0
  126. package/dist/api/routes/users.d.ts +17 -0
  127. package/dist/api/routes/users.d.ts.map +1 -0
  128. package/dist/api/routes/users.js +401 -0
  129. package/dist/api/routes/users.js.map +1 -0
  130. package/dist/api/routes/verbs.d.ts +31 -0
  131. package/dist/api/routes/verbs.d.ts.map +1 -0
  132. package/dist/api/routes/verbs.js +505 -0
  133. package/dist/api/routes/verbs.js.map +1 -0
  134. package/dist/api/routes/workflows.d.ts +44 -0
  135. package/dist/api/routes/workflows.d.ts.map +1 -0
  136. package/dist/api/routes/workflows.js +521 -0
  137. package/dist/api/routes/workflows.js.map +1 -0
  138. package/dist/api/types.d.ts +370 -0
  139. package/dist/api/types.d.ts.map +1 -0
  140. package/dist/api/types.js +11 -0
  141. package/dist/api/types.js.map +1 -0
  142. package/dist/db/cdc/events.d.ts +201 -0
  143. package/dist/db/cdc/events.d.ts.map +1 -0
  144. package/dist/db/cdc/events.js +271 -0
  145. package/dist/db/cdc/events.js.map +1 -0
  146. package/dist/db/cdc/index.d.ts +13 -0
  147. package/dist/db/cdc/index.d.ts.map +1 -0
  148. package/dist/db/cdc/index.js +16 -0
  149. package/dist/db/cdc/index.js.map +1 -0
  150. package/dist/db/cdc/replay.d.ts +388 -0
  151. package/dist/db/cdc/replay.d.ts.map +1 -0
  152. package/dist/db/cdc/replay.js +469 -0
  153. package/dist/db/cdc/replay.js.map +1 -0
  154. package/dist/db/cdc/storage.d.ts +567 -0
  155. package/dist/db/cdc/storage.d.ts.map +1 -0
  156. package/dist/db/cdc/storage.js +856 -0
  157. package/dist/db/cdc/storage.js.map +1 -0
  158. package/dist/db/cdc/streaming.d.ts +459 -0
  159. package/dist/db/cdc/streaming.d.ts.map +1 -0
  160. package/dist/db/cdc/streaming.js +636 -0
  161. package/dist/db/cdc/streaming.js.map +1 -0
  162. package/dist/db/collections/actions.d.ts +440 -0
  163. package/dist/db/collections/actions.d.ts.map +1 -0
  164. package/dist/db/collections/actions.js +631 -0
  165. package/dist/db/collections/actions.js.map +1 -0
  166. package/dist/db/collections/base.d.ts +342 -0
  167. package/dist/db/collections/base.d.ts.map +1 -0
  168. package/dist/db/collections/base.js +510 -0
  169. package/dist/db/collections/base.js.map +1 -0
  170. package/dist/db/collections/index.d.ts +50 -0
  171. package/dist/db/collections/index.d.ts.map +1 -0
  172. package/dist/db/collections/index.js +48 -0
  173. package/dist/db/collections/index.js.map +1 -0
  174. package/dist/db/collections/nouns.d.ts +260 -0
  175. package/dist/db/collections/nouns.d.ts.map +1 -0
  176. package/dist/db/collections/nouns.js +273 -0
  177. package/dist/db/collections/nouns.js.map +1 -0
  178. package/dist/db/collections/relationships.d.ts +484 -0
  179. package/dist/db/collections/relationships.d.ts.map +1 -0
  180. package/dist/db/collections/relationships.js +815 -0
  181. package/dist/db/collections/relationships.js.map +1 -0
  182. package/dist/db/collections/things.d.ts +439 -0
  183. package/dist/db/collections/things.d.ts.map +1 -0
  184. package/dist/db/collections/things.js +603 -0
  185. package/dist/db/collections/things.js.map +1 -0
  186. package/dist/db/collections/verbs.d.ts +308 -0
  187. package/dist/db/collections/verbs.d.ts.map +1 -0
  188. package/dist/db/collections/verbs.js +480 -0
  189. package/dist/db/collections/verbs.js.map +1 -0
  190. package/dist/db/index.d.ts +14 -0
  191. package/dist/db/index.d.ts.map +1 -0
  192. package/dist/db/index.js +23 -0
  193. package/dist/db/index.js.map +1 -0
  194. package/dist/db/storage/cold.d.ts +313 -0
  195. package/dist/db/storage/cold.d.ts.map +1 -0
  196. package/dist/db/storage/cold.js +319 -0
  197. package/dist/db/storage/cold.js.map +1 -0
  198. package/dist/db/storage/hot.d.ts +340 -0
  199. package/dist/db/storage/hot.d.ts.map +1 -0
  200. package/dist/db/storage/hot.js +333 -0
  201. package/dist/db/storage/hot.js.map +1 -0
  202. package/dist/db/storage/index.d.ts +242 -0
  203. package/dist/db/storage/index.d.ts.map +1 -0
  204. package/dist/db/storage/index.js +109 -0
  205. package/dist/db/storage/index.js.map +1 -0
  206. package/dist/db/storage/snapshots.d.ts +342 -0
  207. package/dist/db/storage/snapshots.d.ts.map +1 -0
  208. package/dist/db/storage/snapshots.js +298 -0
  209. package/dist/db/storage/snapshots.js.map +1 -0
  210. package/dist/db/storage/vortex.d.ts +324 -0
  211. package/dist/db/storage/vortex.d.ts.map +1 -0
  212. package/dist/db/storage/vortex.js +365 -0
  213. package/dist/db/storage/vortex.js.map +1 -0
  214. package/dist/db/storage/warm.d.ts +306 -0
  215. package/dist/db/storage/warm.d.ts.map +1 -0
  216. package/dist/db/storage/warm.js +339 -0
  217. package/dist/db/storage/warm.js.map +1 -0
  218. package/dist/do/DigitalObject.d.ts +595 -0
  219. package/dist/do/DigitalObject.d.ts.map +1 -0
  220. package/dist/do/DigitalObject.js +971 -0
  221. package/dist/do/DigitalObject.js.map +1 -0
  222. package/dist/do/business/financial/accounting.d.ts +436 -0
  223. package/dist/do/business/financial/accounting.d.ts.map +1 -0
  224. package/dist/do/business/financial/accounting.js +476 -0
  225. package/dist/do/business/financial/accounting.js.map +1 -0
  226. package/dist/do/business/financial/index.d.ts +15 -0
  227. package/dist/do/business/financial/index.d.ts.map +1 -0
  228. package/dist/do/business/financial/index.js +20 -0
  229. package/dist/do/business/financial/index.js.map +1 -0
  230. package/dist/do/business/financial/metrics.d.ts +370 -0
  231. package/dist/do/business/financial/metrics.d.ts.map +1 -0
  232. package/dist/do/business/financial/metrics.js +376 -0
  233. package/dist/do/business/financial/metrics.js.map +1 -0
  234. package/dist/do/business/financial/payments.d.ts +397 -0
  235. package/dist/do/business/financial/payments.d.ts.map +1 -0
  236. package/dist/do/business/financial/payments.js +395 -0
  237. package/dist/do/business/financial/payments.js.map +1 -0
  238. package/dist/do/business/financial/reports.d.ts +284 -0
  239. package/dist/do/business/financial/reports.d.ts.map +1 -0
  240. package/dist/do/business/financial/reports.js +347 -0
  241. package/dist/do/business/financial/reports.js.map +1 -0
  242. package/dist/do/business/financial/stripe.d.ts +254 -0
  243. package/dist/do/business/financial/stripe.d.ts.map +1 -0
  244. package/dist/do/business/financial/stripe.js +261 -0
  245. package/dist/do/business/financial/stripe.js.map +1 -0
  246. package/dist/do/business/financial/subscriptions.d.ts +402 -0
  247. package/dist/do/business/financial/subscriptions.d.ts.map +1 -0
  248. package/dist/do/business/financial/subscriptions.js +349 -0
  249. package/dist/do/business/financial/subscriptions.js.map +1 -0
  250. package/dist/do/business/index.d.ts +9 -0
  251. package/dist/do/business/index.d.ts.map +1 -0
  252. package/dist/do/business/index.js +10 -0
  253. package/dist/do/business/index.js.map +1 -0
  254. package/dist/do/colo/followers.d.ts +194 -0
  255. package/dist/do/colo/followers.d.ts.map +1 -0
  256. package/dist/do/colo/followers.js +224 -0
  257. package/dist/do/colo/followers.js.map +1 -0
  258. package/dist/do/colo/fork.d.ts +103 -0
  259. package/dist/do/colo/fork.d.ts.map +1 -0
  260. package/dist/do/colo/fork.js +143 -0
  261. package/dist/do/colo/fork.js.map +1 -0
  262. package/dist/do/colo/index.d.ts +181 -0
  263. package/dist/do/colo/index.d.ts.map +1 -0
  264. package/dist/do/colo/index.js +145 -0
  265. package/dist/do/colo/index.js.map +1 -0
  266. package/dist/do/colo/info.d.ts +106 -0
  267. package/dist/do/colo/info.d.ts.map +1 -0
  268. package/dist/do/colo/info.js +196 -0
  269. package/dist/do/colo/info.js.map +1 -0
  270. package/dist/do/colo/migrate.d.ts +161 -0
  271. package/dist/do/colo/migrate.d.ts.map +1 -0
  272. package/dist/do/colo/migrate.js +190 -0
  273. package/dist/do/colo/migrate.js.map +1 -0
  274. package/dist/do/colo/routing.d.ts +182 -0
  275. package/dist/do/colo/routing.d.ts.map +1 -0
  276. package/dist/do/colo/routing.js +254 -0
  277. package/dist/do/colo/routing.js.map +1 -0
  278. package/dist/do/domains/dns.d.ts +269 -0
  279. package/dist/do/domains/dns.d.ts.map +1 -0
  280. package/dist/do/domains/dns.js +215 -0
  281. package/dist/do/domains/dns.js.map +1 -0
  282. package/dist/do/domains/index.d.ts +40 -0
  283. package/dist/do/domains/index.d.ts.map +1 -0
  284. package/dist/do/domains/index.js +61 -0
  285. package/dist/do/domains/index.js.map +1 -0
  286. package/dist/do/domains/routing.d.ts +263 -0
  287. package/dist/do/domains/routing.d.ts.map +1 -0
  288. package/dist/do/domains/routing.js +362 -0
  289. package/dist/do/domains/routing.js.map +1 -0
  290. package/dist/do/domains/ssl.d.ts +217 -0
  291. package/dist/do/domains/ssl.d.ts.map +1 -0
  292. package/dist/do/domains/ssl.js +231 -0
  293. package/dist/do/domains/ssl.js.map +1 -0
  294. package/dist/do/domains/subdomains.d.ts +207 -0
  295. package/dist/do/domains/subdomains.d.ts.map +1 -0
  296. package/dist/do/domains/subdomains.js +223 -0
  297. package/dist/do/domains/subdomains.js.map +1 -0
  298. package/dist/do/domains/tlds.d.ts +175 -0
  299. package/dist/do/domains/tlds.d.ts.map +1 -0
  300. package/dist/do/domains/tlds.js +188 -0
  301. package/dist/do/domains/tlds.js.map +1 -0
  302. package/dist/do/domains/validation.d.ts +164 -0
  303. package/dist/do/domains/validation.d.ts.map +1 -0
  304. package/dist/do/domains/validation.js +290 -0
  305. package/dist/do/domains/validation.js.map +1 -0
  306. package/dist/do/hibernation.d.ts +385 -0
  307. package/dist/do/hibernation.d.ts.map +1 -0
  308. package/dist/do/hibernation.js +518 -0
  309. package/dist/do/hibernation.js.map +1 -0
  310. package/dist/do/index.d.ts +19 -0
  311. package/dist/do/index.d.ts.map +1 -0
  312. package/dist/do/index.js +23 -0
  313. package/dist/do/index.js.map +1 -0
  314. package/dist/do/state.d.ts +336 -0
  315. package/dist/do/state.d.ts.map +1 -0
  316. package/dist/do/state.js +290 -0
  317. package/dist/do/state.js.map +1 -0
  318. package/dist/index.d.ts +44 -0
  319. package/dist/index.d.ts.map +1 -0
  320. package/dist/index.js +89 -0
  321. package/dist/index.js.map +1 -0
  322. package/dist/rpc/client.d.ts +426 -0
  323. package/dist/rpc/client.d.ts.map +1 -0
  324. package/dist/rpc/client.js +826 -0
  325. package/dist/rpc/client.js.map +1 -0
  326. package/dist/rpc/index.d.ts +19 -0
  327. package/dist/rpc/index.d.ts.map +1 -0
  328. package/dist/rpc/index.js +23 -0
  329. package/dist/rpc/index.js.map +1 -0
  330. package/dist/rpc/methods.d.ts +364 -0
  331. package/dist/rpc/methods.d.ts.map +1 -0
  332. package/dist/rpc/methods.js +557 -0
  333. package/dist/rpc/methods.js.map +1 -0
  334. package/dist/rpc/protocol.d.ts +310 -0
  335. package/dist/rpc/protocol.d.ts.map +1 -0
  336. package/dist/rpc/protocol.js +672 -0
  337. package/dist/rpc/protocol.js.map +1 -0
  338. package/dist/rpc/routes.d.ts +332 -0
  339. package/dist/rpc/routes.d.ts.map +1 -0
  340. package/dist/rpc/routes.js +633 -0
  341. package/dist/rpc/routes.js.map +1 -0
  342. package/dist/rpc/server.d.ts +380 -0
  343. package/dist/rpc/server.d.ts.map +1 -0
  344. package/dist/rpc/server.js +850 -0
  345. package/dist/rpc/server.js.map +1 -0
  346. package/dist/sdk/auth.d.ts +201 -0
  347. package/dist/sdk/auth.d.ts.map +1 -0
  348. package/dist/sdk/auth.js +343 -0
  349. package/dist/sdk/auth.js.map +1 -0
  350. package/dist/sdk/client.d.ts +123 -0
  351. package/dist/sdk/client.d.ts.map +1 -0
  352. package/dist/sdk/client.js +403 -0
  353. package/dist/sdk/client.js.map +1 -0
  354. package/dist/sdk/index.d.ts +123 -0
  355. package/dist/sdk/index.d.ts.map +1 -0
  356. package/dist/sdk/index.js +230 -0
  357. package/dist/sdk/index.js.map +1 -0
  358. package/dist/sdk/rpc.d.ts +275 -0
  359. package/dist/sdk/rpc.d.ts.map +1 -0
  360. package/dist/sdk/rpc.js +249 -0
  361. package/dist/sdk/rpc.js.map +1 -0
  362. package/dist/sdk/transport.d.ts +283 -0
  363. package/dist/sdk/transport.d.ts.map +1 -0
  364. package/dist/sdk/transport.js +661 -0
  365. package/dist/sdk/transport.js.map +1 -0
  366. package/dist/sdk/types.d.ts +265 -0
  367. package/dist/sdk/types.d.ts.map +1 -0
  368. package/dist/sdk/types.js +27 -0
  369. package/dist/sdk/types.js.map +1 -0
  370. package/dist/types/ai.d.ts +533 -0
  371. package/dist/types/ai.d.ts.map +1 -0
  372. package/dist/types/ai.js +18 -0
  373. package/dist/types/ai.js.map +1 -0
  374. package/dist/types/app.d.ts +371 -0
  375. package/dist/types/app.d.ts.map +1 -0
  376. package/dist/types/app.js +151 -0
  377. package/dist/types/app.js.map +1 -0
  378. package/dist/types/business.d.ts +482 -0
  379. package/dist/types/business.d.ts.map +1 -0
  380. package/dist/types/business.js +60 -0
  381. package/dist/types/business.js.map +1 -0
  382. package/dist/types/cascade.d.ts +323 -0
  383. package/dist/types/cascade.d.ts.map +1 -0
  384. package/dist/types/cascade.js +82 -0
  385. package/dist/types/cascade.js.map +1 -0
  386. package/dist/types/collections.d.ts +704 -0
  387. package/dist/types/collections.d.ts.map +1 -0
  388. package/dist/types/collections.js +23 -0
  389. package/dist/types/collections.js.map +1 -0
  390. package/dist/types/colo.d.ts +171 -0
  391. package/dist/types/colo.d.ts.map +1 -0
  392. package/dist/types/colo.js +63 -0
  393. package/dist/types/colo.js.map +1 -0
  394. package/dist/types/communication.d.ts +595 -0
  395. package/dist/types/communication.d.ts.map +1 -0
  396. package/dist/types/communication.js +16 -0
  397. package/dist/types/communication.js.map +1 -0
  398. package/dist/types/content.d.ts +286 -0
  399. package/dist/types/content.d.ts.map +1 -0
  400. package/dist/types/content.js +8 -0
  401. package/dist/types/content.js.map +1 -0
  402. package/dist/types/context.d.ts +407 -0
  403. package/dist/types/context.d.ts.map +1 -0
  404. package/dist/types/context.js +36 -0
  405. package/dist/types/context.js.map +1 -0
  406. package/dist/types/databases.d.ts +377 -0
  407. package/dist/types/databases.d.ts.map +1 -0
  408. package/dist/types/databases.js +14 -0
  409. package/dist/types/databases.js.map +1 -0
  410. package/dist/types/domains.d.ts +132 -0
  411. package/dist/types/domains.d.ts.map +1 -0
  412. package/dist/types/domains.js +107 -0
  413. package/dist/types/domains.js.map +1 -0
  414. package/dist/types/execution.d.ts +381 -0
  415. package/dist/types/execution.d.ts.map +1 -0
  416. package/dist/types/execution.js +40 -0
  417. package/dist/types/execution.js.map +1 -0
  418. package/dist/types/financial.d.ts +608 -0
  419. package/dist/types/financial.d.ts.map +1 -0
  420. package/dist/types/financial.js +12 -0
  421. package/dist/types/financial.js.map +1 -0
  422. package/dist/types/functions.d.ts +215 -0
  423. package/dist/types/functions.d.ts.map +1 -0
  424. package/dist/types/functions.js +15 -0
  425. package/dist/types/functions.js.map +1 -0
  426. package/dist/types/git.d.ts +299 -0
  427. package/dist/types/git.d.ts.map +1 -0
  428. package/dist/types/git.js +17 -0
  429. package/dist/types/git.js.map +1 -0
  430. package/dist/types/identity.d.ts +141 -0
  431. package/dist/types/identity.d.ts.map +1 -0
  432. package/dist/types/identity.js +54 -0
  433. package/dist/types/identity.js.map +1 -0
  434. package/dist/types/index.d.ts +40 -0
  435. package/dist/types/index.d.ts.map +1 -0
  436. package/dist/types/index.js +65 -0
  437. package/dist/types/index.js.map +1 -0
  438. package/dist/types/integrations.d.ts +356 -0
  439. package/dist/types/integrations.d.ts.map +1 -0
  440. package/dist/types/integrations.js +19 -0
  441. package/dist/types/integrations.js.map +1 -0
  442. package/dist/types/mdxui.d.ts +1955 -0
  443. package/dist/types/mdxui.d.ts.map +1 -0
  444. package/dist/types/mdxui.js +751 -0
  445. package/dist/types/mdxui.js.map +1 -0
  446. package/dist/types/observability.d.ts +315 -0
  447. package/dist/types/observability.d.ts.map +1 -0
  448. package/dist/types/observability.js +13 -0
  449. package/dist/types/observability.js.map +1 -0
  450. package/dist/types/rpc.d.ts +339 -0
  451. package/dist/types/rpc.d.ts.map +1 -0
  452. package/dist/types/rpc.js +24 -0
  453. package/dist/types/rpc.js.map +1 -0
  454. package/dist/types/saas.d.ts +678 -0
  455. package/dist/types/saas.d.ts.map +1 -0
  456. package/dist/types/saas.js +59 -0
  457. package/dist/types/saas.js.map +1 -0
  458. package/dist/types/service.d.ts +676 -0
  459. package/dist/types/service.d.ts.map +1 -0
  460. package/dist/types/service.js +69 -0
  461. package/dist/types/service.js.map +1 -0
  462. package/dist/types/site.d.ts +317 -0
  463. package/dist/types/site.d.ts.map +1 -0
  464. package/dist/types/site.js +203 -0
  465. package/dist/types/site.js.map +1 -0
  466. package/dist/types/startup.d.ts +576 -0
  467. package/dist/types/startup.d.ts.map +1 -0
  468. package/dist/types/startup.js +59 -0
  469. package/dist/types/startup.js.map +1 -0
  470. package/dist/types/storage.d.ts +276 -0
  471. package/dist/types/storage.d.ts.map +1 -0
  472. package/dist/types/storage.js +35 -0
  473. package/dist/types/storage.js.map +1 -0
  474. package/dist/types/telephony.d.ts +458 -0
  475. package/dist/types/telephony.d.ts.map +1 -0
  476. package/dist/types/telephony.js +19 -0
  477. package/dist/types/telephony.js.map +1 -0
  478. package/dist/types/tenant.d.ts +708 -0
  479. package/dist/types/tenant.d.ts.map +1 -0
  480. package/dist/types/tenant.js +103 -0
  481. package/dist/types/tenant.js.map +1 -0
  482. package/dist/types/voice-ai.d.ts +459 -0
  483. package/dist/types/voice-ai.d.ts.map +1 -0
  484. package/dist/types/voice-ai.js +32 -0
  485. package/dist/types/voice-ai.js.map +1 -0
  486. package/package.json +143 -0
@@ -0,0 +1,269 @@
1
+ /**
2
+ * DNS Record Management
3
+ *
4
+ * Manages DNS records via Cloudflare API for platform TLDs.
5
+ * Supports A, AAAA, CNAME, TXT, and MX record types.
6
+ *
7
+ * @module domains/dns
8
+ */
9
+ import type { PlatformTLD } from '../../types/domains';
10
+ /**
11
+ * Supported DNS record types
12
+ */
13
+ export type DNSRecordType = 'A' | 'AAAA' | 'CNAME' | 'TXT' | 'MX';
14
+ /**
15
+ * DNS record definition
16
+ */
17
+ export interface DNSRecord {
18
+ /** Cloudflare record ID (returned after creation) */
19
+ id?: string;
20
+ /** Record type */
21
+ type: DNSRecordType;
22
+ /** Record name (subdomain portion, e.g., 'acme' for acme.saas.group) */
23
+ name: string;
24
+ /** Record content (IP, hostname, or text value) */
25
+ content: string;
26
+ /** TTL in seconds (1 = automatic when proxied) */
27
+ ttl: number;
28
+ /** Whether traffic is proxied through Cloudflare */
29
+ proxied?: boolean;
30
+ /** Priority (for MX records) */
31
+ priority?: number;
32
+ /** Record comment */
33
+ comment?: string;
34
+ }
35
+ /**
36
+ * Options for creating a DNS record
37
+ */
38
+ export interface CreateDNSRecordOptions {
39
+ /** The platform TLD zone */
40
+ zone: PlatformTLD;
41
+ /** Record type */
42
+ type: DNSRecordType;
43
+ /** Subdomain name */
44
+ name: string;
45
+ /** Record content */
46
+ content: string;
47
+ /** TTL (default: 1 for auto) */
48
+ ttl?: number;
49
+ /** Proxy through Cloudflare (default: true for A/AAAA/CNAME) */
50
+ proxied?: boolean;
51
+ /** Priority for MX records */
52
+ priority?: number;
53
+ /** Optional comment */
54
+ comment?: string;
55
+ }
56
+ /**
57
+ * Options for updating a DNS record
58
+ */
59
+ export interface UpdateDNSRecordOptions {
60
+ /** The platform TLD zone */
61
+ zone: PlatformTLD;
62
+ /** Record ID to update */
63
+ recordId: string;
64
+ /** New content (optional) */
65
+ content?: string;
66
+ /** New TTL (optional) */
67
+ ttl?: number;
68
+ /** New proxy setting (optional) */
69
+ proxied?: boolean;
70
+ /** New priority (optional, MX only) */
71
+ priority?: number;
72
+ /** New comment (optional) */
73
+ comment?: string;
74
+ }
75
+ /**
76
+ * Options for listing DNS records
77
+ */
78
+ export interface ListDNSRecordsOptions {
79
+ /** The platform TLD zone */
80
+ zone: PlatformTLD;
81
+ /** Filter by subdomain name */
82
+ name?: string;
83
+ /** Filter by record type */
84
+ type?: DNSRecordType;
85
+ /** Maximum results */
86
+ limit?: number;
87
+ /** Page number */
88
+ page?: number;
89
+ }
90
+ /**
91
+ * Result of listing DNS records
92
+ */
93
+ export interface ListDNSRecordsResult {
94
+ /** The DNS records */
95
+ records: DNSRecord[];
96
+ /** Total count */
97
+ total: number;
98
+ /** Current page */
99
+ page: number;
100
+ /** Total pages */
101
+ totalPages: number;
102
+ }
103
+ /**
104
+ * Error from DNS operations
105
+ */
106
+ export declare class DNSError extends Error {
107
+ code: 'ZONE_NOT_FOUND' | 'RECORD_NOT_FOUND' | 'INVALID_RECORD' | 'API_ERROR' | 'CONFLICT';
108
+ details?: Record<string, unknown> | undefined;
109
+ constructor(code: 'ZONE_NOT_FOUND' | 'RECORD_NOT_FOUND' | 'INVALID_RECORD' | 'API_ERROR' | 'CONFLICT', message: string, details?: Record<string, unknown> | undefined);
110
+ }
111
+ /**
112
+ * Create a DNS record
113
+ *
114
+ * @param options - Record creation options
115
+ * @param env - Environment with CF_API_TOKEN
116
+ * @returns The created DNS record with ID
117
+ *
118
+ * @example
119
+ * ```typescript
120
+ * const record = await createDNSRecord({
121
+ * zone: 'saas.group',
122
+ * type: 'A',
123
+ * name: 'acme',
124
+ * content: '192.0.2.1',
125
+ * proxied: true
126
+ * }, env)
127
+ * ```
128
+ */
129
+ export declare function createDNSRecord(options: CreateDNSRecordOptions, env: {
130
+ CF_API_TOKEN: string;
131
+ }): Promise<DNSRecord>;
132
+ /**
133
+ * Get a DNS record by ID
134
+ *
135
+ * @param zone - The platform TLD
136
+ * @param recordId - The record ID
137
+ * @param env - Environment with CF_API_TOKEN
138
+ * @returns The DNS record or null if not found
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * const record = await getDNSRecord('saas.group', 'abc123', env)
143
+ * ```
144
+ */
145
+ export declare function getDNSRecord(zone: PlatformTLD, recordId: string, env: {
146
+ CF_API_TOKEN: string;
147
+ }): Promise<DNSRecord | null>;
148
+ /**
149
+ * Update a DNS record
150
+ *
151
+ * @param options - Record update options
152
+ * @param env - Environment with CF_API_TOKEN
153
+ * @returns The updated DNS record
154
+ *
155
+ * @example
156
+ * ```typescript
157
+ * const record = await updateDNSRecord({
158
+ * zone: 'saas.group',
159
+ * recordId: 'abc123',
160
+ * content: '192.0.2.2'
161
+ * }, env)
162
+ * ```
163
+ */
164
+ export declare function updateDNSRecord(options: UpdateDNSRecordOptions, env: {
165
+ CF_API_TOKEN: string;
166
+ }): Promise<DNSRecord>;
167
+ /**
168
+ * Delete a DNS record
169
+ *
170
+ * @param zone - The platform TLD
171
+ * @param recordId - The record ID to delete
172
+ * @param env - Environment with CF_API_TOKEN
173
+ * @returns True if deleted successfully
174
+ *
175
+ * @example
176
+ * ```typescript
177
+ * await deleteDNSRecord('saas.group', 'abc123', env)
178
+ * ```
179
+ */
180
+ export declare function deleteDNSRecord(zone: PlatformTLD, recordId: string, env: {
181
+ CF_API_TOKEN: string;
182
+ }): Promise<boolean>;
183
+ /**
184
+ * List DNS records for a zone
185
+ *
186
+ * @param options - List options
187
+ * @param env - Environment with CF_API_TOKEN
188
+ * @returns Paginated list of DNS records
189
+ *
190
+ * @example
191
+ * ```typescript
192
+ * const result = await listDNSRecords({
193
+ * zone: 'saas.group',
194
+ * name: 'acme',
195
+ * type: 'A'
196
+ * }, env)
197
+ * ```
198
+ */
199
+ export declare function listDNSRecords(options: ListDNSRecordsOptions, env: {
200
+ CF_API_TOKEN: string;
201
+ }): Promise<ListDNSRecordsResult>;
202
+ /**
203
+ * Find DNS records by subdomain name
204
+ *
205
+ * @param zone - The platform TLD
206
+ * @param name - The subdomain name
207
+ * @param env - Environment with CF_API_TOKEN
208
+ * @returns Array of matching DNS records
209
+ *
210
+ * @example
211
+ * ```typescript
212
+ * const records = await findDNSRecordsByName('saas.group', 'acme', env)
213
+ * // Returns all record types for acme.saas.group
214
+ * ```
215
+ */
216
+ export declare function findDNSRecordsByName(zone: PlatformTLD, name: string, env: {
217
+ CF_API_TOKEN: string;
218
+ }): Promise<DNSRecord[]>;
219
+ /**
220
+ * Create multiple DNS records in a batch
221
+ *
222
+ * @param records - Array of record creation options
223
+ * @param env - Environment with CF_API_TOKEN
224
+ * @returns Array of created records (or errors)
225
+ *
226
+ * @example
227
+ * ```typescript
228
+ * const results = await batchCreateDNSRecords([
229
+ * { zone: 'saas.group', type: 'A', name: 'acme', content: '192.0.2.1' },
230
+ * { zone: 'saas.group', type: 'MX', name: 'acme', content: 'mail.example.com', priority: 10 }
231
+ * ], env)
232
+ * ```
233
+ */
234
+ export declare function batchCreateDNSRecords(records: CreateDNSRecordOptions[], env: {
235
+ CF_API_TOKEN: string;
236
+ }): Promise<Array<DNSRecord | DNSError>>;
237
+ /**
238
+ * Delete all DNS records for a subdomain
239
+ *
240
+ * @param zone - The platform TLD
241
+ * @param name - The subdomain name
242
+ * @param env - Environment with CF_API_TOKEN
243
+ * @returns Number of records deleted
244
+ *
245
+ * @example
246
+ * ```typescript
247
+ * const count = await deleteAllDNSRecords('saas.group', 'acme', env)
248
+ * // Deletes all A, AAAA, CNAME, TXT, MX records for acme.saas.group
249
+ * ```
250
+ */
251
+ export declare function deleteAllDNSRecords(zone: PlatformTLD, name: string, env: {
252
+ CF_API_TOKEN: string;
253
+ }): Promise<number>;
254
+ /**
255
+ * Build the full DNS name from subdomain and TLD
256
+ *
257
+ * @param subdomain - The subdomain (e.g., 'acme')
258
+ * @param tld - The platform TLD (e.g., 'saas.group')
259
+ * @returns The full DNS name (e.g., 'acme.saas.group')
260
+ */
261
+ export declare function buildDNSName(subdomain: string, tld: PlatformTLD): string;
262
+ /**
263
+ * Determine default proxy setting for a record type
264
+ *
265
+ * @param type - The DNS record type
266
+ * @returns Whether the record should be proxied by default
267
+ */
268
+ export declare function shouldProxyByDefault(type: DNSRecordType): boolean;
269
+ //# sourceMappingURL=dns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dns.d.ts","sourceRoot":"","sources":["../../../do/domains/dns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,215 @@
1
+ /**
2
+ * DNS Record Management
3
+ *
4
+ * Manages DNS records via Cloudflare API for platform TLDs.
5
+ * Supports A, AAAA, CNAME, TXT, and MX record types.
6
+ *
7
+ * @module domains/dns
8
+ */
9
+ import { getZoneId } from './tlds';
10
+ /**
11
+ * Error from DNS operations
12
+ */
13
+ export class DNSError extends Error {
14
+ code;
15
+ details;
16
+ constructor(code, message, details) {
17
+ super(message);
18
+ this.code = code;
19
+ this.details = details;
20
+ this.name = 'DNSError';
21
+ }
22
+ }
23
+ // =============================================================================
24
+ // Cloudflare API Constants
25
+ // =============================================================================
26
+ const CF_API_BASE = 'https://api.cloudflare.com/client/v4';
27
+ // =============================================================================
28
+ // Public API
29
+ // =============================================================================
30
+ /**
31
+ * Create a DNS record
32
+ *
33
+ * @param options - Record creation options
34
+ * @param env - Environment with CF_API_TOKEN
35
+ * @returns The created DNS record with ID
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * const record = await createDNSRecord({
40
+ * zone: 'saas.group',
41
+ * type: 'A',
42
+ * name: 'acme',
43
+ * content: '192.0.2.1',
44
+ * proxied: true
45
+ * }, env)
46
+ * ```
47
+ */
48
+ export async function createDNSRecord(options, env) {
49
+ const zoneId = getZoneId(options.zone);
50
+ if (!zoneId) {
51
+ throw new DNSError('ZONE_NOT_FOUND', `Zone not found for TLD: ${options.zone}`);
52
+ }
53
+ // TODO: Implement Cloudflare API call
54
+ // POST /zones/{zone_id}/dns_records
55
+ throw new Error('Not implemented');
56
+ }
57
+ /**
58
+ * Get a DNS record by ID
59
+ *
60
+ * @param zone - The platform TLD
61
+ * @param recordId - The record ID
62
+ * @param env - Environment with CF_API_TOKEN
63
+ * @returns The DNS record or null if not found
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * const record = await getDNSRecord('saas.group', 'abc123', env)
68
+ * ```
69
+ */
70
+ export async function getDNSRecord(zone, recordId, env) {
71
+ // TODO: Implement Cloudflare API call
72
+ // GET /zones/{zone_id}/dns_records/{record_id}
73
+ throw new Error('Not implemented');
74
+ }
75
+ /**
76
+ * Update a DNS record
77
+ *
78
+ * @param options - Record update options
79
+ * @param env - Environment with CF_API_TOKEN
80
+ * @returns The updated DNS record
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const record = await updateDNSRecord({
85
+ * zone: 'saas.group',
86
+ * recordId: 'abc123',
87
+ * content: '192.0.2.2'
88
+ * }, env)
89
+ * ```
90
+ */
91
+ export async function updateDNSRecord(options, env) {
92
+ // TODO: Implement Cloudflare API call
93
+ // PATCH /zones/{zone_id}/dns_records/{record_id}
94
+ throw new Error('Not implemented');
95
+ }
96
+ /**
97
+ * Delete a DNS record
98
+ *
99
+ * @param zone - The platform TLD
100
+ * @param recordId - The record ID to delete
101
+ * @param env - Environment with CF_API_TOKEN
102
+ * @returns True if deleted successfully
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * await deleteDNSRecord('saas.group', 'abc123', env)
107
+ * ```
108
+ */
109
+ export async function deleteDNSRecord(zone, recordId, env) {
110
+ // TODO: Implement Cloudflare API call
111
+ // DELETE /zones/{zone_id}/dns_records/{record_id}
112
+ throw new Error('Not implemented');
113
+ }
114
+ /**
115
+ * List DNS records for a zone
116
+ *
117
+ * @param options - List options
118
+ * @param env - Environment with CF_API_TOKEN
119
+ * @returns Paginated list of DNS records
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * const result = await listDNSRecords({
124
+ * zone: 'saas.group',
125
+ * name: 'acme',
126
+ * type: 'A'
127
+ * }, env)
128
+ * ```
129
+ */
130
+ export async function listDNSRecords(options, env) {
131
+ // TODO: Implement Cloudflare API call
132
+ // GET /zones/{zone_id}/dns_records
133
+ throw new Error('Not implemented');
134
+ }
135
+ /**
136
+ * Find DNS records by subdomain name
137
+ *
138
+ * @param zone - The platform TLD
139
+ * @param name - The subdomain name
140
+ * @param env - Environment with CF_API_TOKEN
141
+ * @returns Array of matching DNS records
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * const records = await findDNSRecordsByName('saas.group', 'acme', env)
146
+ * // Returns all record types for acme.saas.group
147
+ * ```
148
+ */
149
+ export async function findDNSRecordsByName(zone, name, env) {
150
+ const result = await listDNSRecords({ zone, name }, env);
151
+ return result.records;
152
+ }
153
+ // =============================================================================
154
+ // Batch Operations
155
+ // =============================================================================
156
+ /**
157
+ * Create multiple DNS records in a batch
158
+ *
159
+ * @param records - Array of record creation options
160
+ * @param env - Environment with CF_API_TOKEN
161
+ * @returns Array of created records (or errors)
162
+ *
163
+ * @example
164
+ * ```typescript
165
+ * const results = await batchCreateDNSRecords([
166
+ * { zone: 'saas.group', type: 'A', name: 'acme', content: '192.0.2.1' },
167
+ * { zone: 'saas.group', type: 'MX', name: 'acme', content: 'mail.example.com', priority: 10 }
168
+ * ], env)
169
+ * ```
170
+ */
171
+ export async function batchCreateDNSRecords(records, env) {
172
+ // TODO: Implement batch creation (parallel requests)
173
+ throw new Error('Not implemented');
174
+ }
175
+ /**
176
+ * Delete all DNS records for a subdomain
177
+ *
178
+ * @param zone - The platform TLD
179
+ * @param name - The subdomain name
180
+ * @param env - Environment with CF_API_TOKEN
181
+ * @returns Number of records deleted
182
+ *
183
+ * @example
184
+ * ```typescript
185
+ * const count = await deleteAllDNSRecords('saas.group', 'acme', env)
186
+ * // Deletes all A, AAAA, CNAME, TXT, MX records for acme.saas.group
187
+ * ```
188
+ */
189
+ export async function deleteAllDNSRecords(zone, name, env) {
190
+ // TODO: Implement batch deletion
191
+ throw new Error('Not implemented');
192
+ }
193
+ // =============================================================================
194
+ // Helper Functions
195
+ // =============================================================================
196
+ /**
197
+ * Build the full DNS name from subdomain and TLD
198
+ *
199
+ * @param subdomain - The subdomain (e.g., 'acme')
200
+ * @param tld - The platform TLD (e.g., 'saas.group')
201
+ * @returns The full DNS name (e.g., 'acme.saas.group')
202
+ */
203
+ export function buildDNSName(subdomain, tld) {
204
+ return `${subdomain}.${tld}`;
205
+ }
206
+ /**
207
+ * Determine default proxy setting for a record type
208
+ *
209
+ * @param type - The DNS record type
210
+ * @returns Whether the record should be proxied by default
211
+ */
212
+ export function shouldProxyByDefault(type) {
213
+ return type === 'A' || type === 'AAAA' || type === 'CNAME';
214
+ }
215
+ //# sourceMappingURL=dns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dns.js","sourceRoot":"","sources":["../../../do/domains/dns.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAyGlC;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IAExB;IAEA;IAHT,YACS,IAAyF,EAChG,OAAe,EACR,OAAiC;QAExC,KAAK,CAAC,OAAO,CAAC,CAAA;QAJP,SAAI,GAAJ,IAAI,CAAqF;QAEzF,YAAO,GAAP,OAAO,CAA0B;QAGxC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;IACxB,CAAC;CACF;AAED,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF,MAAM,WAAW,GAAG,sCAAsC,CAAA;AAE1D,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAA+B,EAC/B,GAA6B;IAE7B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,QAAQ,CAAC,gBAAgB,EAAE,2BAA2B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IACjF,CAAC;IAED,sCAAsC;IACtC,oCAAoC;IACpC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAiB,EACjB,QAAgB,EAChB,GAA6B;IAE7B,sCAAsC;IACtC,+CAA+C;IAC/C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAA+B,EAC/B,GAA6B;IAE7B,sCAAsC;IACtC,iDAAiD;IACjD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAiB,EACjB,QAAgB,EAChB,GAA6B;IAE7B,sCAAsC;IACtC,kDAAkD;IAClD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA8B,EAC9B,GAA6B;IAE7B,sCAAsC;IACtC,mCAAmC;IACnC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAiB,EACjB,IAAY,EACZ,GAA6B;IAE7B,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAA;IACxD,OAAO,MAAM,CAAC,OAAO,CAAA;AACvB,CAAC;AAED,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAiC,EACjC,GAA6B;IAE7B,qDAAqD;IACrD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAiB,EACjB,IAAY,EACZ,GAA6B;IAE7B,iCAAiC;IACjC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACpC,CAAC;AAED,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB,EAAE,GAAgB;IAC9D,OAAO,GAAG,SAAS,IAAI,GAAG,EAAE,CAAA;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAmB;IACtD,OAAO,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,CAAA;AAC5D,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Domain Management Module
3
+ *
4
+ * Manages subdomains on 50+ platform TLDs with DNS, SSL, and routing.
5
+ *
6
+ * @module domains
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { createSubdomainClient, validateSubdomain, setRoute } from 'do/domains'
11
+ *
12
+ * // Create client
13
+ * const client = createSubdomainClient(env.BUILDER_DOMAINS)
14
+ *
15
+ * // Validate and claim
16
+ * const validation = validateSubdomain('acme')
17
+ * if (validation.valid) {
18
+ * const result = await client.claim({
19
+ * subdomain: 'acme',
20
+ * tld: 'saas.group',
21
+ * ownerRef: 'do://Startup/acme'
22
+ * })
23
+ * }
24
+ *
25
+ * // Configure routing
26
+ * await setRoute({
27
+ * subdomain: 'acme',
28
+ * tld: 'saas.group',
29
+ * target: { type: 'do', namespace: 'DigitalObject', id: 'acme' }
30
+ * })
31
+ * ```
32
+ */
33
+ export { getAllTLDs, getTLDsByCategory, isValidTLD, getTLDConfig, getZoneId, getDefaultTarget, hasFeature, initializeTLDs, getTLDDescription, TLD_CATEGORY_DESCRIPTIONS, type TLDConfig, type TLDFeatures, type TLDCategory, type RouteTarget, } from './tlds';
34
+ export { SubdomainClient, createSubdomainClient, buildDomainUrl, parseDomainUrl, isPlatformDomain, type ListSubdomainsOptions, type ListSubdomainsResult, type SearchSubdomainsOptions, } from './subdomains';
35
+ export { createDNSRecord, getDNSRecord, updateDNSRecord, deleteDNSRecord, listDNSRecords, findDNSRecordsByName, batchCreateDNSRecords, deleteAllDNSRecords, buildDNSName, shouldProxyByDefault, DNSError, type DNSRecordType, type DNSRecord, type CreateDNSRecordOptions, type UpdateDNSRecordOptions, type ListDNSRecordsOptions, type ListDNSRecordsResult, } from './dns';
36
+ export { getCertificateStatus, waitForCertificate, isCertificateActive, listCertificates, requiresAdvancedCertificate, getExpiringCertificates, orderAdvancedCertificate, extractTLD, extractSubdomain, SSLError, type SSLStatus, type SSLCertificateType, type SSLValidationMethod, type SSLCertificate, type CheckCertificateOptions, type WaitForCertificateOptions, } from './ssl';
37
+ export { setRoute, getRoute, deleteRoute, listRoutes, enableRoute, disableRoute, resolveRoute, forwardToTarget, validateTarget, validatePathPattern, RoutingError, type RouteTargetType, type WorkerTarget, type DOTarget, type PagesTarget, type ExternalTarget, type RouteConfig, type SetRouteOptions, type ListRoutesOptions, type ListRoutesResult, } from './routing';
38
+ export { validateSubdomain, validateTLD, validateDomain, isReserved, normalizeSubdomain, suggestAlternatives, getReservedSubdomains, ADDITIONAL_RESERVED_SUBDOMAINS, ALL_RESERVED_SUBDOMAINS, type ValidationResult, type ValidationDetails, type ValidationOptions, } from './validation';
39
+ export { PLATFORM_TLDS, RESERVED_SUBDOMAINS, isReservedSubdomain, validateSubdomain as validateSubdomainBase, type PlatformTLD, type SubdomainStatus, type SubdomainRegistration, type ClaimSubdomainRequest, type ClaimSubdomainResult, type DomainsManager, type DomainContext, type ReservedSubdomain, } from '../../types/domains';
40
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../do/domains/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAMH,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,yBAAyB,EACzB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,QAAQ,CAAA;AAMf,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,GAC7B,MAAM,cAAc,CAAA;AAMrB,OAAO,EACL,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,OAAO,CAAA;AAMd,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB,EACxB,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,GAC/B,MAAM,OAAO,CAAA;AAMd,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,WAAW,CAAA;AAMlB,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,8BAA8B,EAC9B,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,cAAc,CAAA;AAMrB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,IAAI,qBAAqB,EAC1C,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Domain Management Module
3
+ *
4
+ * Manages subdomains on 50+ platform TLDs with DNS, SSL, and routing.
5
+ *
6
+ * @module domains
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { createSubdomainClient, validateSubdomain, setRoute } from 'do/domains'
11
+ *
12
+ * // Create client
13
+ * const client = createSubdomainClient(env.BUILDER_DOMAINS)
14
+ *
15
+ * // Validate and claim
16
+ * const validation = validateSubdomain('acme')
17
+ * if (validation.valid) {
18
+ * const result = await client.claim({
19
+ * subdomain: 'acme',
20
+ * tld: 'saas.group',
21
+ * ownerRef: 'do://Startup/acme'
22
+ * })
23
+ * }
24
+ *
25
+ * // Configure routing
26
+ * await setRoute({
27
+ * subdomain: 'acme',
28
+ * tld: 'saas.group',
29
+ * target: { type: 'do', namespace: 'DigitalObject', id: 'acme' }
30
+ * })
31
+ * ```
32
+ */
33
+ // =============================================================================
34
+ // TLD Registry
35
+ // =============================================================================
36
+ export { getAllTLDs, getTLDsByCategory, isValidTLD, getTLDConfig, getZoneId, getDefaultTarget, hasFeature, initializeTLDs, getTLDDescription, TLD_CATEGORY_DESCRIPTIONS, } from './tlds';
37
+ // =============================================================================
38
+ // Subdomain Operations
39
+ // =============================================================================
40
+ export { SubdomainClient, createSubdomainClient, buildDomainUrl, parseDomainUrl, isPlatformDomain, } from './subdomains';
41
+ // =============================================================================
42
+ // DNS Management
43
+ // =============================================================================
44
+ export { createDNSRecord, getDNSRecord, updateDNSRecord, deleteDNSRecord, listDNSRecords, findDNSRecordsByName, batchCreateDNSRecords, deleteAllDNSRecords, buildDNSName, shouldProxyByDefault, DNSError, } from './dns';
45
+ // =============================================================================
46
+ // SSL Certificates
47
+ // =============================================================================
48
+ export { getCertificateStatus, waitForCertificate, isCertificateActive, listCertificates, requiresAdvancedCertificate, getExpiringCertificates, orderAdvancedCertificate, extractTLD, extractSubdomain, SSLError, } from './ssl';
49
+ // =============================================================================
50
+ // Request Routing
51
+ // =============================================================================
52
+ export { setRoute, getRoute, deleteRoute, listRoutes, enableRoute, disableRoute, resolveRoute, forwardToTarget, validateTarget, validatePathPattern, RoutingError, } from './routing';
53
+ // =============================================================================
54
+ // Validation
55
+ // =============================================================================
56
+ export { validateSubdomain, validateTLD, validateDomain, isReserved, normalizeSubdomain, suggestAlternatives, getReservedSubdomains, ADDITIONAL_RESERVED_SUBDOMAINS, ALL_RESERVED_SUBDOMAINS, } from './validation';
57
+ // =============================================================================
58
+ // Re-export types from types/domains.ts
59
+ // =============================================================================
60
+ export { PLATFORM_TLDS, RESERVED_SUBDOMAINS, isReservedSubdomain, validateSubdomain as validateSubdomainBase, } from '../../types/domains';
61
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../do/domains/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,yBAAyB,GAK1B,MAAM,QAAQ,CAAA;AAEf,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,gBAAgB,GAIjB,MAAM,cAAc,CAAA;AAErB,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF,OAAO,EACL,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,QAAQ,GAOT,MAAM,OAAO,CAAA;AAEd,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB,EACxB,UAAU,EACV,gBAAgB,EAChB,QAAQ,GAOT,MAAM,OAAO,CAAA;AAEd,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,YAAY,GAUb,MAAM,WAAW,CAAA;AAElB,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,8BAA8B,EAC9B,uBAAuB,GAIxB,MAAM,cAAc,CAAA;AAErB,gFAAgF;AAChF,wCAAwC;AACxC,gFAAgF;AAEhF,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,IAAI,qBAAqB,GAS3C,MAAM,qBAAqB,CAAA"}