@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,164 @@
1
+ /**
2
+ * Subdomain Validation
3
+ *
4
+ * Utilities for validating subdomain names, checking reserved lists,
5
+ * and verifying TLD validity.
6
+ *
7
+ * @module domains/validation
8
+ */
9
+ /**
10
+ * Validation result
11
+ */
12
+ export interface ValidationResult {
13
+ /** Whether validation passed */
14
+ valid: boolean;
15
+ /** Error message if invalid */
16
+ error?: string;
17
+ /** Detailed validation info */
18
+ details?: ValidationDetails;
19
+ }
20
+ /**
21
+ * Detailed validation information
22
+ */
23
+ export interface ValidationDetails {
24
+ /** The value that was validated */
25
+ value: string;
26
+ /** Checks that passed */
27
+ passed: string[];
28
+ /** Check that failed (if any) */
29
+ failed?: string;
30
+ }
31
+ /**
32
+ * Validation options
33
+ */
34
+ export interface ValidationOptions {
35
+ /** Allow uppercase (will be normalized) */
36
+ allowUppercase?: boolean;
37
+ /** Minimum length (default: 2) */
38
+ minLength?: number;
39
+ /** Maximum length (default: 63) */
40
+ maxLength?: number;
41
+ /** Additional reserved words to block */
42
+ additionalReserved?: string[];
43
+ }
44
+ /**
45
+ * Additional reserved subdomains beyond the core list
46
+ * These are commonly used or potentially confusing names
47
+ */
48
+ export declare const ADDITIONAL_RESERVED_SUBDOMAINS: readonly ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "www2", "www3", "ftp2", "mail2", "smtp2", "ns", "ns3", "ns4", "mx", "mx2", "security", "secure", "ssl", "vpn", "proxy", "api2", "api3", "graphql", "rest", "rpc", "ws", "wss", "beta", "alpha", "preview", "canary", "edge", "admin2", "panel", "cp", "controlpanel", "webmail", "autodiscover", "autoconfig", "mail-server", "google", "facebook", "amazon", "microsoft", "apple", "twitter", "github", "cloudflare", "stripe", "aws"];
49
+ /**
50
+ * All reserved subdomains (core + additional)
51
+ */
52
+ export declare const ALL_RESERVED_SUBDOMAINS: readonly ["www", "mail", "email", "smtp", "pop", "imap", "ftp", "sftp", "ssh", "ns1", "ns2", "dns", "api", "app", "admin", "dashboard", "console", "dev", "staging", "prod", "test", "demo", "auth", "login", "signin", "signup", "logout", "sso", "oauth", "account", "profile", "support", "help", "docs", "blog", "status", "cdn", "static", "assets", "media", "images", "legal", "terms", "privacy", "about", "contact", "team", "careers", "press", "investors", "undefined", "null", "true", "false", "root", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "www2", "www3", "ftp2", "mail2", "smtp2", "ns", "ns3", "ns4", "mx", "mx2", "security", "secure", "ssl", "vpn", "proxy", "api2", "api3", "graphql", "rest", "rpc", "ws", "wss", "beta", "alpha", "preview", "canary", "edge", "admin2", "panel", "cp", "controlpanel", "webmail", "autodiscover", "autoconfig", "mail-server", "google", "facebook", "amazon", "microsoft", "apple", "twitter", "github", "cloudflare", "stripe", "aws"];
53
+ /**
54
+ * Validate a subdomain name
55
+ *
56
+ * Checks:
57
+ * 1. Length (2-63 characters)
58
+ * 2. Characters (lowercase alphanumeric + hyphens)
59
+ * 3. No leading/trailing hyphens
60
+ * 4. Not reserved
61
+ *
62
+ * @param subdomain - The subdomain to validate
63
+ * @param options - Validation options
64
+ * @returns Validation result
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * validateSubdomain('acme')
69
+ * // { valid: true, details: { passed: ['length', 'characters', 'hyphens', 'reserved'] } }
70
+ *
71
+ * validateSubdomain('www')
72
+ * // { valid: false, error: 'Subdomain is reserved' }
73
+ *
74
+ * validateSubdomain('a')
75
+ * // { valid: false, error: 'Subdomain must be 2-63 characters' }
76
+ * ```
77
+ */
78
+ export declare function validateSubdomain(subdomain: string, options?: ValidationOptions): ValidationResult;
79
+ /**
80
+ * Validate a platform TLD
81
+ *
82
+ * @param tld - The TLD to validate
83
+ * @returns Validation result
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * validateTLD('saas.group')
88
+ * // { valid: true }
89
+ *
90
+ * validateTLD('example.com')
91
+ * // { valid: false, error: 'Not a valid platform TLD' }
92
+ * ```
93
+ */
94
+ export declare function validateTLD(tld: string): ValidationResult;
95
+ /**
96
+ * Validate a full domain (subdomain + TLD)
97
+ *
98
+ * @param subdomain - The subdomain
99
+ * @param tld - The TLD
100
+ * @param options - Validation options
101
+ * @returns Validation result
102
+ *
103
+ * @example
104
+ * ```typescript
105
+ * validateDomain('acme', 'saas.group')
106
+ * // { valid: true }
107
+ * ```
108
+ */
109
+ export declare function validateDomain(subdomain: string, tld: string, options?: ValidationOptions): ValidationResult;
110
+ /**
111
+ * Check if a subdomain is in the reserved list
112
+ *
113
+ * @param subdomain - The subdomain to check
114
+ * @param includeAdditional - Include additional reserved list
115
+ * @returns True if reserved
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * isReserved('www') // true
120
+ * isReserved('acme') // false
121
+ * isReserved('google', true) // true (in additional list)
122
+ * ```
123
+ */
124
+ export declare function isReserved(subdomain: string, includeAdditional?: boolean): boolean;
125
+ /**
126
+ * Normalize a subdomain
127
+ *
128
+ * @param subdomain - The subdomain to normalize
129
+ * @returns Normalized subdomain (lowercase, trimmed)
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * normalizeSubdomain(' ACME ')
134
+ * // 'acme'
135
+ * ```
136
+ */
137
+ export declare function normalizeSubdomain(subdomain: string): string;
138
+ /**
139
+ * Suggest similar available subdomains
140
+ *
141
+ * When a subdomain is taken or reserved, suggest alternatives.
142
+ *
143
+ * @param subdomain - The original subdomain
144
+ * @param checkAvailability - Function to check if a subdomain is available
145
+ * @returns Array of suggested alternatives
146
+ *
147
+ * @example
148
+ * ```typescript
149
+ * const suggestions = await suggestAlternatives('acme', async (s) => {
150
+ * const status = await client.check(s, 'saas.group')
151
+ * return status === 'available'
152
+ * })
153
+ * // ['acme-app', 'acme-hq', 'getacme', 'acme2']
154
+ * ```
155
+ */
156
+ export declare function suggestAlternatives(subdomain: string, checkAvailability: (subdomain: string) => Promise<boolean>, maxSuggestions?: number): Promise<string[]>;
157
+ /**
158
+ * Get all reserved subdomains
159
+ *
160
+ * @param includeAdditional - Include additional reserved list
161
+ * @returns Array of reserved subdomain names
162
+ */
163
+ export declare function getReservedSubdomains(includeAdditional?: boolean): readonly string[];
164
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../do/domains/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAcH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,KAAK,EAAE,OAAO,CAAA;IACd,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+BAA+B;IAC/B,OAAO,CAAC,EAAE,iBAAiB,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,yBAAyB;IACzB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yCAAyC;IACzC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC9B;AAMD;;;GAGG;AACH,eAAO,MAAM,8BAA8B,qeAsBjC,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,uBAAuB,g9BAG1B,CAAA;AAMV;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,iBAAsB,GAC9B,gBAAgB,CAiFlB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CASzD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,iBAAiB,GAC1B,gBAAgB,CAYlB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,UAAO,GAAG,OAAO,CAY/E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAC1D,cAAc,SAAI,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CA0BnB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,iBAAiB,UAAO,GAAG,SAAS,MAAM,EAAE,CAKjF"}
@@ -0,0 +1,290 @@
1
+ /**
2
+ * Subdomain Validation
3
+ *
4
+ * Utilities for validating subdomain names, checking reserved lists,
5
+ * and verifying TLD validity.
6
+ *
7
+ * @module domains/validation
8
+ */
9
+ import { RESERVED_SUBDOMAINS, isReservedSubdomain, } from '../../types/domains';
10
+ import { isValidTLD } from './tlds';
11
+ // =============================================================================
12
+ // Constants
13
+ // =============================================================================
14
+ /**
15
+ * Additional reserved subdomains beyond the core list
16
+ * These are commonly used or potentially confusing names
17
+ */
18
+ export const ADDITIONAL_RESERVED_SUBDOMAINS = [
19
+ // Numbers that might be confusing
20
+ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
21
+ // Common abbreviations
22
+ 'www2', 'www3', 'ftp2', 'mail2', 'smtp2',
23
+ 'ns', 'ns3', 'ns4', 'mx', 'mx2',
24
+ // Security related
25
+ 'security', 'secure', 'ssl', 'vpn', 'proxy',
26
+ // Common service names
27
+ 'api2', 'api3', 'graphql', 'rest', 'rpc', 'ws', 'wss',
28
+ 'beta', 'alpha', 'preview', 'canary', 'edge',
29
+ // Platform specific
30
+ 'admin2', 'panel', 'cp', 'controlpanel', 'webmail',
31
+ 'autodiscover', 'autoconfig', 'mail-server',
32
+ // Potential trademark issues
33
+ 'google', 'facebook', 'amazon', 'microsoft', 'apple',
34
+ 'twitter', 'github', 'cloudflare', 'stripe', 'aws',
35
+ ];
36
+ /**
37
+ * All reserved subdomains (core + additional)
38
+ */
39
+ export const ALL_RESERVED_SUBDOMAINS = [
40
+ ...RESERVED_SUBDOMAINS,
41
+ ...ADDITIONAL_RESERVED_SUBDOMAINS,
42
+ ];
43
+ // =============================================================================
44
+ // Public API
45
+ // =============================================================================
46
+ /**
47
+ * Validate a subdomain name
48
+ *
49
+ * Checks:
50
+ * 1. Length (2-63 characters)
51
+ * 2. Characters (lowercase alphanumeric + hyphens)
52
+ * 3. No leading/trailing hyphens
53
+ * 4. Not reserved
54
+ *
55
+ * @param subdomain - The subdomain to validate
56
+ * @param options - Validation options
57
+ * @returns Validation result
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * validateSubdomain('acme')
62
+ * // { valid: true, details: { passed: ['length', 'characters', 'hyphens', 'reserved'] } }
63
+ *
64
+ * validateSubdomain('www')
65
+ * // { valid: false, error: 'Subdomain is reserved' }
66
+ *
67
+ * validateSubdomain('a')
68
+ * // { valid: false, error: 'Subdomain must be 2-63 characters' }
69
+ * ```
70
+ */
71
+ export function validateSubdomain(subdomain, options = {}) {
72
+ const passed = [];
73
+ const minLength = options.minLength ?? 2;
74
+ const maxLength = options.maxLength ?? 63;
75
+ // Normalize if uppercase allowed
76
+ const normalized = options.allowUppercase ? subdomain.toLowerCase() : subdomain;
77
+ // Check lowercase
78
+ if (!options.allowUppercase && subdomain !== subdomain.toLowerCase()) {
79
+ return {
80
+ valid: false,
81
+ error: 'Subdomain must be lowercase',
82
+ details: { value: subdomain, passed, failed: 'lowercase' },
83
+ };
84
+ }
85
+ passed.push('lowercase');
86
+ // Check length
87
+ if (normalized.length < minLength || normalized.length > maxLength) {
88
+ return {
89
+ valid: false,
90
+ error: `Subdomain must be ${minLength}-${maxLength} characters`,
91
+ details: { value: subdomain, passed, failed: 'length' },
92
+ };
93
+ }
94
+ passed.push('length');
95
+ // Check characters
96
+ if (!/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/.test(normalized) && normalized.length > 1) {
97
+ return {
98
+ valid: false,
99
+ error: 'Subdomain must be alphanumeric with optional hyphens (no leading/trailing hyphens)',
100
+ details: { value: subdomain, passed, failed: 'characters' },
101
+ };
102
+ }
103
+ // Single character check
104
+ if (normalized.length === 1 && !/^[a-z0-9]$/.test(normalized)) {
105
+ return {
106
+ valid: false,
107
+ error: 'Single character subdomain must be alphanumeric',
108
+ details: { value: subdomain, passed, failed: 'characters' },
109
+ };
110
+ }
111
+ passed.push('characters');
112
+ // Check consecutive hyphens
113
+ if (normalized.includes('--')) {
114
+ return {
115
+ valid: false,
116
+ error: 'Subdomain cannot contain consecutive hyphens',
117
+ details: { value: subdomain, passed, failed: 'consecutive-hyphens' },
118
+ };
119
+ }
120
+ passed.push('consecutive-hyphens');
121
+ // Check reserved (core list)
122
+ if (isReservedSubdomain(normalized)) {
123
+ return {
124
+ valid: false,
125
+ error: 'Subdomain is reserved',
126
+ details: { value: subdomain, passed, failed: 'reserved' },
127
+ };
128
+ }
129
+ passed.push('reserved');
130
+ // Check additional reserved
131
+ const additionalReserved = options.additionalReserved ?? ADDITIONAL_RESERVED_SUBDOMAINS;
132
+ if (additionalReserved.includes(normalized)) {
133
+ return {
134
+ valid: false,
135
+ error: 'Subdomain is reserved',
136
+ details: { value: subdomain, passed, failed: 'additional-reserved' },
137
+ };
138
+ }
139
+ passed.push('additional-reserved');
140
+ return {
141
+ valid: true,
142
+ details: { value: subdomain, passed },
143
+ };
144
+ }
145
+ /**
146
+ * Validate a platform TLD
147
+ *
148
+ * @param tld - The TLD to validate
149
+ * @returns Validation result
150
+ *
151
+ * @example
152
+ * ```typescript
153
+ * validateTLD('saas.group')
154
+ * // { valid: true }
155
+ *
156
+ * validateTLD('example.com')
157
+ * // { valid: false, error: 'Not a valid platform TLD' }
158
+ * ```
159
+ */
160
+ export function validateTLD(tld) {
161
+ if (isValidTLD(tld)) {
162
+ return { valid: true };
163
+ }
164
+ return {
165
+ valid: false,
166
+ error: 'Not a valid platform TLD',
167
+ details: { value: tld, passed: [], failed: 'platform-tld' },
168
+ };
169
+ }
170
+ /**
171
+ * Validate a full domain (subdomain + TLD)
172
+ *
173
+ * @param subdomain - The subdomain
174
+ * @param tld - The TLD
175
+ * @param options - Validation options
176
+ * @returns Validation result
177
+ *
178
+ * @example
179
+ * ```typescript
180
+ * validateDomain('acme', 'saas.group')
181
+ * // { valid: true }
182
+ * ```
183
+ */
184
+ export function validateDomain(subdomain, tld, options) {
185
+ const subdomainResult = validateSubdomain(subdomain, options);
186
+ if (!subdomainResult.valid) {
187
+ return subdomainResult;
188
+ }
189
+ const tldResult = validateTLD(tld);
190
+ if (!tldResult.valid) {
191
+ return tldResult;
192
+ }
193
+ return { valid: true };
194
+ }
195
+ /**
196
+ * Check if a subdomain is in the reserved list
197
+ *
198
+ * @param subdomain - The subdomain to check
199
+ * @param includeAdditional - Include additional reserved list
200
+ * @returns True if reserved
201
+ *
202
+ * @example
203
+ * ```typescript
204
+ * isReserved('www') // true
205
+ * isReserved('acme') // false
206
+ * isReserved('google', true) // true (in additional list)
207
+ * ```
208
+ */
209
+ export function isReserved(subdomain, includeAdditional = true) {
210
+ const normalized = subdomain.toLowerCase();
211
+ if (isReservedSubdomain(normalized)) {
212
+ return true;
213
+ }
214
+ if (includeAdditional) {
215
+ return ADDITIONAL_RESERVED_SUBDOMAINS.includes(normalized);
216
+ }
217
+ return false;
218
+ }
219
+ /**
220
+ * Normalize a subdomain
221
+ *
222
+ * @param subdomain - The subdomain to normalize
223
+ * @returns Normalized subdomain (lowercase, trimmed)
224
+ *
225
+ * @example
226
+ * ```typescript
227
+ * normalizeSubdomain(' ACME ')
228
+ * // 'acme'
229
+ * ```
230
+ */
231
+ export function normalizeSubdomain(subdomain) {
232
+ return subdomain.toLowerCase().trim();
233
+ }
234
+ /**
235
+ * Suggest similar available subdomains
236
+ *
237
+ * When a subdomain is taken or reserved, suggest alternatives.
238
+ *
239
+ * @param subdomain - The original subdomain
240
+ * @param checkAvailability - Function to check if a subdomain is available
241
+ * @returns Array of suggested alternatives
242
+ *
243
+ * @example
244
+ * ```typescript
245
+ * const suggestions = await suggestAlternatives('acme', async (s) => {
246
+ * const status = await client.check(s, 'saas.group')
247
+ * return status === 'available'
248
+ * })
249
+ * // ['acme-app', 'acme-hq', 'getacme', 'acme2']
250
+ * ```
251
+ */
252
+ export async function suggestAlternatives(subdomain, checkAvailability, maxSuggestions = 5) {
253
+ const suggestions = [];
254
+ const suffixes = ['app', 'hq', 'io', 'dev', 'co', 'team', 'labs', '2', '3'];
255
+ const prefixes = ['get', 'try', 'use', 'my', 'the', 'go'];
256
+ // Try suffixes
257
+ for (const suffix of suffixes) {
258
+ if (suggestions.length >= maxSuggestions)
259
+ break;
260
+ const candidate = `${subdomain}-${suffix}`;
261
+ const validation = validateSubdomain(candidate);
262
+ if (validation.valid && (await checkAvailability(candidate))) {
263
+ suggestions.push(candidate);
264
+ }
265
+ }
266
+ // Try prefixes
267
+ for (const prefix of prefixes) {
268
+ if (suggestions.length >= maxSuggestions)
269
+ break;
270
+ const candidate = `${prefix}${subdomain}`;
271
+ const validation = validateSubdomain(candidate);
272
+ if (validation.valid && (await checkAvailability(candidate))) {
273
+ suggestions.push(candidate);
274
+ }
275
+ }
276
+ return suggestions;
277
+ }
278
+ /**
279
+ * Get all reserved subdomains
280
+ *
281
+ * @param includeAdditional - Include additional reserved list
282
+ * @returns Array of reserved subdomain names
283
+ */
284
+ export function getReservedSubdomains(includeAdditional = true) {
285
+ if (includeAdditional) {
286
+ return ALL_RESERVED_SUBDOMAINS;
287
+ }
288
+ return RESERVED_SUBDOMAINS;
289
+ }
290
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../do/domains/validation.ts"],"names":[],"mappings":"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"}