@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,217 @@
1
+ /**
2
+ * SSL Certificate Management
3
+ *
4
+ * Handles SSL certificate status checking and provisioning triggers.
5
+ * Cloudflare manages certificates automatically for proxied records;
6
+ * this module provides visibility and control for edge cases.
7
+ *
8
+ * @module domains/ssl
9
+ */
10
+ import type { PlatformTLD } from '../../types/domains';
11
+ /**
12
+ * SSL certificate status
13
+ */
14
+ export type SSLStatus = 'active' | 'pending_validation' | 'pending_issuance' | 'pending_deployment' | 'validation_timed_out' | 'issuance_timed_out' | 'deployment_timed_out' | 'deleted' | 'inactive';
15
+ /**
16
+ * SSL certificate type
17
+ */
18
+ export type SSLCertificateType = 'universal' | 'advanced' | 'custom' | 'dedicated';
19
+ /**
20
+ * SSL validation method
21
+ */
22
+ export type SSLValidationMethod = 'http' | 'txt' | 'email';
23
+ /**
24
+ * SSL certificate information
25
+ */
26
+ export interface SSLCertificate {
27
+ /** Certificate ID */
28
+ id: string;
29
+ /** Certificate type */
30
+ type: SSLCertificateType;
31
+ /** Current status */
32
+ status: SSLStatus;
33
+ /** Hostnames covered by this certificate */
34
+ hosts: string[];
35
+ /** Certificate authority */
36
+ issuer: string;
37
+ /** Expiration timestamp */
38
+ expiresAt: number;
39
+ /** When the certificate was issued */
40
+ issuedAt?: number;
41
+ /** Validation method used */
42
+ validationMethod?: SSLValidationMethod;
43
+ }
44
+ /**
45
+ * Options for checking certificate status
46
+ */
47
+ export interface CheckCertificateOptions {
48
+ /** The full hostname (e.g., 'acme.saas.group') */
49
+ hostname: string;
50
+ /** The platform TLD (extracted from hostname if not provided) */
51
+ tld?: PlatformTLD;
52
+ }
53
+ /**
54
+ * Options for waiting for certificate
55
+ */
56
+ export interface WaitForCertificateOptions {
57
+ /** Maximum time to wait in milliseconds */
58
+ timeout?: number;
59
+ /** Polling interval in milliseconds */
60
+ pollInterval?: number;
61
+ }
62
+ /**
63
+ * Error from SSL operations
64
+ */
65
+ export declare class SSLError extends Error {
66
+ code: 'NOT_FOUND' | 'TIMEOUT' | 'VALIDATION_FAILED' | 'API_ERROR';
67
+ details?: Record<string, unknown> | undefined;
68
+ constructor(code: 'NOT_FOUND' | 'TIMEOUT' | 'VALIDATION_FAILED' | 'API_ERROR', message: string, details?: Record<string, unknown> | undefined);
69
+ }
70
+ /**
71
+ * Get SSL certificate status for a hostname
72
+ *
73
+ * @param options - Check options
74
+ * @param env - Environment with CF_API_TOKEN
75
+ * @returns Certificate information or null if not found
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * const cert = await getCertificateStatus({
80
+ * hostname: 'acme.saas.group'
81
+ * }, env)
82
+ *
83
+ * if (cert?.status === 'active') {
84
+ * console.log('SSL active, expires:', new Date(cert.expiresAt))
85
+ * }
86
+ * ```
87
+ */
88
+ export declare function getCertificateStatus(options: CheckCertificateOptions, env: {
89
+ CF_API_TOKEN: string;
90
+ }): Promise<SSLCertificate | null>;
91
+ /**
92
+ * Wait for a certificate to become active
93
+ *
94
+ * Useful after creating DNS records or triggering certificate provisioning.
95
+ *
96
+ * @param hostname - The hostname to check
97
+ * @param options - Wait options
98
+ * @param env - Environment with CF_API_TOKEN
99
+ * @returns The active certificate
100
+ * @throws SSLError if timeout or validation fails
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * try {
105
+ * const cert = await waitForCertificate('acme.saas.group', {
106
+ * timeout: 60000,
107
+ * pollInterval: 5000
108
+ * }, env)
109
+ * console.log('Certificate active!')
110
+ * } catch (error) {
111
+ * if (error instanceof SSLError && error.code === 'TIMEOUT') {
112
+ * console.log('Certificate not ready yet')
113
+ * }
114
+ * }
115
+ * ```
116
+ */
117
+ export declare function waitForCertificate(hostname: string, options: WaitForCertificateOptions, env: {
118
+ CF_API_TOKEN: string;
119
+ }): Promise<SSLCertificate>;
120
+ /**
121
+ * Check if a hostname is covered by an active certificate
122
+ *
123
+ * @param hostname - The hostname to check
124
+ * @param env - Environment with CF_API_TOKEN
125
+ * @returns True if covered by an active certificate
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * const covered = await isCertificateActive('acme.saas.group', env)
130
+ * ```
131
+ */
132
+ export declare function isCertificateActive(hostname: string, env: {
133
+ CF_API_TOKEN: string;
134
+ }): Promise<boolean>;
135
+ /**
136
+ * List all SSL certificates for a zone
137
+ *
138
+ * @param zone - The platform TLD
139
+ * @param env - Environment with CF_API_TOKEN
140
+ * @returns Array of certificates
141
+ *
142
+ * @example
143
+ * ```typescript
144
+ * const certs = await listCertificates('saas.group', env)
145
+ * ```
146
+ */
147
+ export declare function listCertificates(zone: PlatformTLD, env: {
148
+ CF_API_TOKEN: string;
149
+ }): Promise<SSLCertificate[]>;
150
+ /**
151
+ * Check if a hostname requires Advanced Certificate Manager
152
+ *
153
+ * Deep subdomains (a.b.saas.group) are not covered by Universal SSL
154
+ * and require Advanced Certificate Manager.
155
+ *
156
+ * @param hostname - The hostname to check
157
+ * @returns True if Advanced Certificate Manager is required
158
+ *
159
+ * @example
160
+ * ```typescript
161
+ * requiresAdvancedCertificate('acme.saas.group') // false
162
+ * requiresAdvancedCertificate('api.acme.saas.group') // true
163
+ * ```
164
+ */
165
+ export declare function requiresAdvancedCertificate(hostname: string): boolean;
166
+ /**
167
+ * Get certificates expiring within a time window
168
+ *
169
+ * @param zone - The platform TLD
170
+ * @param withinMs - Time window in milliseconds
171
+ * @param env - Environment with CF_API_TOKEN
172
+ * @returns Certificates expiring within the window
173
+ *
174
+ * @example
175
+ * ```typescript
176
+ * // Get certificates expiring in the next 30 days
177
+ * const expiring = await getExpiringCertificates('saas.group', 30 * 24 * 60 * 60 * 1000, env)
178
+ * ```
179
+ */
180
+ export declare function getExpiringCertificates(zone: PlatformTLD, withinMs: number, env: {
181
+ CF_API_TOKEN: string;
182
+ }): Promise<SSLCertificate[]>;
183
+ /**
184
+ * Order an Advanced Certificate for deep subdomains
185
+ *
186
+ * @param hostnames - Hostnames to cover
187
+ * @param zone - The platform TLD
188
+ * @param env - Environment with CF_API_TOKEN
189
+ * @returns The ordered certificate (pending)
190
+ *
191
+ * @example
192
+ * ```typescript
193
+ * const cert = await orderAdvancedCertificate(
194
+ * ['api.acme.saas.group', 'admin.acme.saas.group'],
195
+ * 'saas.group',
196
+ * env
197
+ * )
198
+ * ```
199
+ */
200
+ export declare function orderAdvancedCertificate(hostnames: string[], zone: PlatformTLD, env: {
201
+ CF_API_TOKEN: string;
202
+ }): Promise<SSLCertificate>;
203
+ /**
204
+ * Extract TLD from a hostname
205
+ *
206
+ * @param hostname - Full hostname (e.g., 'acme.saas.group')
207
+ * @returns The TLD portion (e.g., 'saas.group')
208
+ */
209
+ export declare function extractTLD(hostname: string): string;
210
+ /**
211
+ * Extract subdomain from a hostname
212
+ *
213
+ * @param hostname - Full hostname (e.g., 'acme.saas.group')
214
+ * @returns The subdomain portion (e.g., 'acme')
215
+ */
216
+ export declare function extractSubdomain(hostname: string): string;
217
+ //# sourceMappingURL=ssl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssl.d.ts","sourceRoot":"","sources":["../../../do/domains/ssl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,231 @@
1
+ /**
2
+ * SSL Certificate Management
3
+ *
4
+ * Handles SSL certificate status checking and provisioning triggers.
5
+ * Cloudflare manages certificates automatically for proxied records;
6
+ * this module provides visibility and control for edge cases.
7
+ *
8
+ * @module domains/ssl
9
+ */
10
+ /**
11
+ * Error from SSL operations
12
+ */
13
+ export class SSLError 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 = 'SSLError';
21
+ }
22
+ }
23
+ // =============================================================================
24
+ // Cloudflare API Constants
25
+ // =============================================================================
26
+ const CF_API_BASE = 'https://api.cloudflare.com/client/v4';
27
+ /** Default timeout for waiting (60 seconds) */
28
+ const DEFAULT_TIMEOUT = 60_000;
29
+ /** Default poll interval (5 seconds) */
30
+ const DEFAULT_POLL_INTERVAL = 5_000;
31
+ // =============================================================================
32
+ // Public API
33
+ // =============================================================================
34
+ /**
35
+ * Get SSL certificate status for a hostname
36
+ *
37
+ * @param options - Check options
38
+ * @param env - Environment with CF_API_TOKEN
39
+ * @returns Certificate information or null if not found
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * const cert = await getCertificateStatus({
44
+ * hostname: 'acme.saas.group'
45
+ * }, env)
46
+ *
47
+ * if (cert?.status === 'active') {
48
+ * console.log('SSL active, expires:', new Date(cert.expiresAt))
49
+ * }
50
+ * ```
51
+ */
52
+ export async function getCertificateStatus(options, env) {
53
+ // TODO: Implement Cloudflare API call
54
+ // GET /zones/{zone_id}/ssl/certificate_packs
55
+ throw new Error('Not implemented');
56
+ }
57
+ /**
58
+ * Wait for a certificate to become active
59
+ *
60
+ * Useful after creating DNS records or triggering certificate provisioning.
61
+ *
62
+ * @param hostname - The hostname to check
63
+ * @param options - Wait options
64
+ * @param env - Environment with CF_API_TOKEN
65
+ * @returns The active certificate
66
+ * @throws SSLError if timeout or validation fails
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * try {
71
+ * const cert = await waitForCertificate('acme.saas.group', {
72
+ * timeout: 60000,
73
+ * pollInterval: 5000
74
+ * }, env)
75
+ * console.log('Certificate active!')
76
+ * } catch (error) {
77
+ * if (error instanceof SSLError && error.code === 'TIMEOUT') {
78
+ * console.log('Certificate not ready yet')
79
+ * }
80
+ * }
81
+ * ```
82
+ */
83
+ export async function waitForCertificate(hostname, options, env) {
84
+ const timeout = options.timeout ?? DEFAULT_TIMEOUT;
85
+ const pollInterval = options.pollInterval ?? DEFAULT_POLL_INTERVAL;
86
+ const startTime = Date.now();
87
+ while (Date.now() - startTime < timeout) {
88
+ const cert = await getCertificateStatus({ hostname }, env);
89
+ if (cert?.status === 'active') {
90
+ return cert;
91
+ }
92
+ if (cert?.status === 'validation_timed_out' || cert?.status === 'issuance_timed_out') {
93
+ throw new SSLError('VALIDATION_FAILED', `Certificate validation failed: ${cert.status}`, { hostname, status: cert.status });
94
+ }
95
+ await sleep(pollInterval);
96
+ }
97
+ throw new SSLError('TIMEOUT', `Timed out waiting for certificate: ${hostname}`, { hostname, timeout });
98
+ }
99
+ /**
100
+ * Check if a hostname is covered by an active certificate
101
+ *
102
+ * @param hostname - The hostname to check
103
+ * @param env - Environment with CF_API_TOKEN
104
+ * @returns True if covered by an active certificate
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * const covered = await isCertificateActive('acme.saas.group', env)
109
+ * ```
110
+ */
111
+ export async function isCertificateActive(hostname, env) {
112
+ const cert = await getCertificateStatus({ hostname }, env);
113
+ return cert?.status === 'active';
114
+ }
115
+ /**
116
+ * List all SSL certificates for a zone
117
+ *
118
+ * @param zone - The platform TLD
119
+ * @param env - Environment with CF_API_TOKEN
120
+ * @returns Array of certificates
121
+ *
122
+ * @example
123
+ * ```typescript
124
+ * const certs = await listCertificates('saas.group', env)
125
+ * ```
126
+ */
127
+ export async function listCertificates(zone, env) {
128
+ // TODO: Implement Cloudflare API call
129
+ // GET /zones/{zone_id}/ssl/certificate_packs
130
+ throw new Error('Not implemented');
131
+ }
132
+ /**
133
+ * Check if a hostname requires Advanced Certificate Manager
134
+ *
135
+ * Deep subdomains (a.b.saas.group) are not covered by Universal SSL
136
+ * and require Advanced Certificate Manager.
137
+ *
138
+ * @param hostname - The hostname to check
139
+ * @returns True if Advanced Certificate Manager is required
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * requiresAdvancedCertificate('acme.saas.group') // false
144
+ * requiresAdvancedCertificate('api.acme.saas.group') // true
145
+ * ```
146
+ */
147
+ export function requiresAdvancedCertificate(hostname) {
148
+ // Count subdomain depth
149
+ // acme.saas.group = depth 1 (covered by *.saas.group)
150
+ // api.acme.saas.group = depth 2 (NOT covered)
151
+ const parts = hostname.split('.');
152
+ // Assuming TLD is last 2 parts (e.g., saas.group)
153
+ const subdomainDepth = parts.length - 2;
154
+ return subdomainDepth > 1;
155
+ }
156
+ /**
157
+ * Get certificates expiring within a time window
158
+ *
159
+ * @param zone - The platform TLD
160
+ * @param withinMs - Time window in milliseconds
161
+ * @param env - Environment with CF_API_TOKEN
162
+ * @returns Certificates expiring within the window
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * // Get certificates expiring in the next 30 days
167
+ * const expiring = await getExpiringCertificates('saas.group', 30 * 24 * 60 * 60 * 1000, env)
168
+ * ```
169
+ */
170
+ export async function getExpiringCertificates(zone, withinMs, env) {
171
+ const certs = await listCertificates(zone, env);
172
+ const expiryThreshold = Date.now() + withinMs;
173
+ return certs.filter((cert) => cert.expiresAt < expiryThreshold);
174
+ }
175
+ // =============================================================================
176
+ // Advanced Certificate Management
177
+ // =============================================================================
178
+ /**
179
+ * Order an Advanced Certificate for deep subdomains
180
+ *
181
+ * @param hostnames - Hostnames to cover
182
+ * @param zone - The platform TLD
183
+ * @param env - Environment with CF_API_TOKEN
184
+ * @returns The ordered certificate (pending)
185
+ *
186
+ * @example
187
+ * ```typescript
188
+ * const cert = await orderAdvancedCertificate(
189
+ * ['api.acme.saas.group', 'admin.acme.saas.group'],
190
+ * 'saas.group',
191
+ * env
192
+ * )
193
+ * ```
194
+ */
195
+ export async function orderAdvancedCertificate(hostnames, zone, env) {
196
+ // TODO: Implement Cloudflare API call
197
+ // POST /zones/{zone_id}/ssl/certificate_packs/order
198
+ throw new Error('Not implemented');
199
+ }
200
+ // =============================================================================
201
+ // Helper Functions
202
+ // =============================================================================
203
+ /**
204
+ * Sleep for a specified duration
205
+ */
206
+ function sleep(ms) {
207
+ return new Promise((resolve) => setTimeout(resolve, ms));
208
+ }
209
+ /**
210
+ * Extract TLD from a hostname
211
+ *
212
+ * @param hostname - Full hostname (e.g., 'acme.saas.group')
213
+ * @returns The TLD portion (e.g., 'saas.group')
214
+ */
215
+ export function extractTLD(hostname) {
216
+ const parts = hostname.split('.');
217
+ // Assumes TLD is last 2 parts
218
+ return parts.slice(-2).join('.');
219
+ }
220
+ /**
221
+ * Extract subdomain from a hostname
222
+ *
223
+ * @param hostname - Full hostname (e.g., 'acme.saas.group')
224
+ * @returns The subdomain portion (e.g., 'acme')
225
+ */
226
+ export function extractSubdomain(hostname) {
227
+ const parts = hostname.split('.');
228
+ // Everything except last 2 parts
229
+ return parts.slice(0, -2).join('.');
230
+ }
231
+ //# sourceMappingURL=ssl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssl.js","sourceRoot":"","sources":["../../../do/domains/ssl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,207 @@
1
+ /**
2
+ * Subdomain Registration
3
+ *
4
+ * CRUD operations for subdomain registrations on platform TLDs.
5
+ * Interacts with the Builder.Domains DO for centralized registration management.
6
+ *
7
+ * @module domains/subdomains
8
+ */
9
+ import type { PlatformTLD, SubdomainStatus, SubdomainRegistration, ClaimSubdomainRequest, ClaimSubdomainResult, DomainsManager } from '../../types/domains';
10
+ /**
11
+ * Options for listing subdomains
12
+ */
13
+ export interface ListSubdomainsOptions {
14
+ /** Filter by TLD */
15
+ tld?: PlatformTLD;
16
+ /** Filter by status */
17
+ status?: SubdomainStatus;
18
+ /** Maximum results to return */
19
+ limit?: number;
20
+ /** Pagination cursor */
21
+ cursor?: string;
22
+ }
23
+ /**
24
+ * Result of listing subdomains
25
+ */
26
+ export interface ListSubdomainsResult {
27
+ /** The subdomain registrations */
28
+ items: SubdomainRegistration[];
29
+ /** Cursor for next page (if more results exist) */
30
+ cursor?: string;
31
+ /** Whether more results are available */
32
+ hasMore: boolean;
33
+ }
34
+ /**
35
+ * Options for searching subdomains
36
+ */
37
+ export interface SearchSubdomainsOptions {
38
+ /** Search query (matches subdomain prefix) */
39
+ query: string;
40
+ /** Filter by TLD */
41
+ tld?: PlatformTLD;
42
+ /** Maximum results */
43
+ limit?: number;
44
+ }
45
+ /**
46
+ * Client for subdomain operations
47
+ *
48
+ * Wraps the Builder.Domains DO stub for subdomain management.
49
+ */
50
+ export declare class SubdomainClient implements DomainsManager {
51
+ private domainsStub;
52
+ /**
53
+ * Create a new SubdomainClient
54
+ *
55
+ * @param domainsStub - Durable Object stub for Builder.Domains
56
+ */
57
+ constructor(domainsStub: DurableObjectStub);
58
+ /**
59
+ * Check if a subdomain is available
60
+ *
61
+ * @param subdomain - The subdomain to check (e.g., 'acme')
62
+ * @param tld - The platform TLD (e.g., 'saas.group')
63
+ * @returns The subdomain status
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * const status = await client.check('acme', 'saas.group')
68
+ * if (status === 'available') {
69
+ * // Can be claimed
70
+ * }
71
+ * ```
72
+ */
73
+ check(subdomain: string, tld: PlatformTLD): Promise<SubdomainStatus>;
74
+ /**
75
+ * Claim a subdomain
76
+ *
77
+ * @param request - The claim request
78
+ * @returns The claim result
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * const result = await client.claim({
83
+ * subdomain: 'acme',
84
+ * tld: 'saas.group',
85
+ * ownerRef: 'do://Startup/acme'
86
+ * })
87
+ *
88
+ * if (result.success) {
89
+ * console.log('Claimed:', result.$id) // https://acme.saas.group
90
+ * }
91
+ * ```
92
+ */
93
+ claim(request: ClaimSubdomainRequest): Promise<ClaimSubdomainResult>;
94
+ /**
95
+ * Release a subdomain
96
+ *
97
+ * @param subdomain - The subdomain to release
98
+ * @param tld - The platform TLD
99
+ * @param ownerRef - The owner's DO $id (must match registration)
100
+ * @returns True if released successfully
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * const released = await client.release('acme', 'saas.group', 'do://Startup/acme')
105
+ * ```
106
+ */
107
+ release(subdomain: string, tld: PlatformTLD, ownerRef: string): Promise<boolean>;
108
+ /**
109
+ * List subdomains owned by a specific DO
110
+ *
111
+ * @param ownerRef - The owner's DO $id
112
+ * @returns Array of subdomain registrations
113
+ *
114
+ * @example
115
+ * ```typescript
116
+ * const subdomains = await client.listByOwner('do://Startup/acme')
117
+ * // [{ $id: 'https://acme.saas.group', subdomain: 'acme', ... }]
118
+ * ```
119
+ */
120
+ listByOwner(ownerRef: string): Promise<SubdomainRegistration[]>;
121
+ /**
122
+ * Get a specific subdomain registration
123
+ *
124
+ * @param subdomain - The subdomain
125
+ * @param tld - The platform TLD
126
+ * @returns The registration or null if not found
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * const reg = await client.get('acme', 'saas.group')
131
+ * if (reg) {
132
+ * console.log('Owner:', reg.ownerRef)
133
+ * }
134
+ * ```
135
+ */
136
+ get(subdomain: string, tld: PlatformTLD): Promise<SubdomainRegistration | null>;
137
+ /**
138
+ * Search subdomains by prefix
139
+ *
140
+ * @param query - Search query (prefix match)
141
+ * @param tld - Optional TLD filter
142
+ * @returns Matching registrations
143
+ *
144
+ * @example
145
+ * ```typescript
146
+ * const results = await client.search('acm', 'saas.group')
147
+ * // [{ subdomain: 'acme', ... }, { subdomain: 'acme-dev', ... }]
148
+ * ```
149
+ */
150
+ search(query: string, tld?: PlatformTLD): Promise<SubdomainRegistration[]>;
151
+ }
152
+ /**
153
+ * Create a subdomain client from a Durable Object namespace
154
+ *
155
+ * @param namespace - The Builder.Domains DO namespace
156
+ * @returns A SubdomainClient instance
157
+ *
158
+ * @example
159
+ * ```typescript
160
+ * const client = createSubdomainClient(env.BUILDER_DOMAINS)
161
+ * ```
162
+ */
163
+ export declare function createSubdomainClient(namespace: DurableObjectNamespace): SubdomainClient;
164
+ /**
165
+ * Build the full domain URL from subdomain and TLD
166
+ *
167
+ * @param subdomain - The subdomain (e.g., 'acme')
168
+ * @param tld - The platform TLD (e.g., 'saas.group')
169
+ * @returns The full URL (e.g., 'https://acme.saas.group')
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * buildDomainUrl('acme', 'saas.group')
174
+ * // 'https://acme.saas.group'
175
+ * ```
176
+ */
177
+ export declare function buildDomainUrl(subdomain: string, tld: PlatformTLD): string;
178
+ /**
179
+ * Parse a domain URL into subdomain and TLD
180
+ *
181
+ * @param url - The domain URL (e.g., 'https://acme.saas.group')
182
+ * @returns Object with subdomain and tld, or null if invalid
183
+ *
184
+ * @example
185
+ * ```typescript
186
+ * parseDomainUrl('https://acme.saas.group')
187
+ * // { subdomain: 'acme', tld: 'saas.group' }
188
+ * ```
189
+ */
190
+ export declare function parseDomainUrl(url: string): {
191
+ subdomain: string;
192
+ tld: PlatformTLD;
193
+ } | null;
194
+ /**
195
+ * Check if a URL is a platform domain
196
+ *
197
+ * @param url - The URL to check
198
+ * @returns True if the URL is on a platform TLD
199
+ *
200
+ * @example
201
+ * ```typescript
202
+ * isPlatformDomain('https://acme.saas.group') // true
203
+ * isPlatformDomain('https://example.com') // false
204
+ * ```
205
+ */
206
+ export declare function isPlatformDomain(url: string): boolean;
207
+ //# sourceMappingURL=subdomains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subdomains.d.ts","sourceRoot":"","sources":["../../../do/domains/subdomains.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACf,MAAM,qBAAqB,CAAA;AAQ5B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,oBAAoB;IACpB,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,uBAAuB;IACvB,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kCAAkC;IAClC,KAAK,EAAE,qBAAqB,EAAE,CAAA;IAC9B,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAA;IACb,oBAAoB;IACpB,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAMD;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,cAAc;IAMxC,OAAO,CAAC,WAAW;IAL/B;;;;OAIG;gBACiB,WAAW,EAAE,iBAAiB;IAElD;;;;;;;;;;;;;;OAcG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAK1E;;;;;;;;;;;;;;;;;;OAkBG;IACG,KAAK,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwB1E;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtF;;;;;;;;;;;OAWG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAKrE;;;;;;;;;;;;;;OAcG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAKrF;;;;;;;;;;;;OAYG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;CAIjF;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,sBAAsB,GAAG,eAAe,CAIxF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAE1E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAE,GAAG,IAAI,CAG1F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAErD"}