@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,672 @@
1
+ /**
2
+ * CapnWeb RPC Protocol
3
+ *
4
+ * Message serialization, validation, and parsing for the RPC transport.
5
+ * Implements JSON-RPC style messages without requiring schema compilation.
6
+ *
7
+ * @module rpc/protocol
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { parseRequest, serializeResponse, validateRequest } from 'do/rpc/protocol'
12
+ *
13
+ * // Parse incoming message
14
+ * const request = parseRequest(rawMessage)
15
+ *
16
+ * // Validate request structure
17
+ * const validation = validateRequest(request)
18
+ * if (!validation.valid) {
19
+ * return serializeResponse({
20
+ * id: request?.id ?? 'unknown',
21
+ * error: { code: -32600, message: validation.error }
22
+ * })
23
+ * }
24
+ *
25
+ * // Serialize response
26
+ * const response = serializeResponse({
27
+ * id: request.id,
28
+ * result: { data: 'value' }
29
+ * })
30
+ * ```
31
+ */
32
+ // =============================================================================
33
+ // Error Classes
34
+ // =============================================================================
35
+ /**
36
+ * RPC Protocol Error
37
+ *
38
+ * Thrown when there's an error parsing or validating RPC messages.
39
+ */
40
+ export class RPCProtocolError extends Error {
41
+ constructor(message) {
42
+ super(message);
43
+ this.name = 'RPCProtocolError';
44
+ }
45
+ }
46
+ // =============================================================================
47
+ // Parsing Functions
48
+ // =============================================================================
49
+ /**
50
+ * Parse a raw message into an RPC request
51
+ *
52
+ * Handles both single requests and batch requests.
53
+ * Returns a ParseResult with either the parsed request or an error message.
54
+ *
55
+ * @param message - Raw message string (expected to be JSON)
56
+ * @returns ParseResult containing either the parsed request or error
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const result = parseRequest('{"id":"1","method":"do.things.list"}')
61
+ * if (result.success) {
62
+ * console.log(result.data.method) // 'do.things.list'
63
+ * }
64
+ * ```
65
+ */
66
+ export function parseRequest(message) {
67
+ try {
68
+ const str = message instanceof ArrayBuffer ? new TextDecoder().decode(message) : message;
69
+ const parsed = JSON.parse(str);
70
+ // Check if it's a batch request
71
+ if ('requests' in parsed && Array.isArray(parsed.requests)) {
72
+ return { success: true, data: parsed };
73
+ }
74
+ return { success: true, data: parsed };
75
+ }
76
+ catch (e) {
77
+ return { success: false, error: `Failed to parse request: ${e.message}` };
78
+ }
79
+ }
80
+ /**
81
+ * Parse a raw message into an RPC response
82
+ *
83
+ * @param message - Raw message string (expected to be JSON)
84
+ * @returns ParseResult containing either the parsed response or error
85
+ */
86
+ export function parseResponse(message) {
87
+ try {
88
+ const str = message instanceof ArrayBuffer ? new TextDecoder().decode(message) : message;
89
+ const parsed = JSON.parse(str);
90
+ // Check if it's a batch response
91
+ if ('responses' in parsed && Array.isArray(parsed.responses)) {
92
+ return { success: true, data: parsed };
93
+ }
94
+ return { success: true, data: parsed };
95
+ }
96
+ catch (e) {
97
+ return { success: false, error: `Failed to parse response: ${e.message}` };
98
+ }
99
+ }
100
+ /**
101
+ * Deserialize a raw message into an RPC request
102
+ *
103
+ * @param message - Raw message string (expected to be JSON)
104
+ * @returns Parsed RPC request
105
+ * @throws RPCProtocolError if parsing or validation fails
106
+ */
107
+ export function deserializeRequest(message) {
108
+ // Handle null/undefined/empty input
109
+ if (message === null || message === undefined) {
110
+ throw new RPCProtocolError('Cannot parse null or undefined message');
111
+ }
112
+ if (typeof message !== 'string') {
113
+ throw new RPCProtocolError('Message must be a string');
114
+ }
115
+ const trimmed = message.trim();
116
+ if (trimmed === '') {
117
+ throw new RPCProtocolError('Cannot parse empty message');
118
+ }
119
+ let parsed;
120
+ try {
121
+ parsed = JSON.parse(trimmed);
122
+ }
123
+ catch (e) {
124
+ throw new RPCProtocolError(`Failed to parse JSON: ${e.message}`);
125
+ }
126
+ if (typeof parsed !== 'object' || parsed === null) {
127
+ throw new RPCProtocolError('Request must be an object');
128
+ }
129
+ const obj = parsed;
130
+ // Validate id
131
+ if (!('id' in obj)) {
132
+ throw new RPCProtocolError('Missing required field: id');
133
+ }
134
+ if (typeof obj.id !== 'string') {
135
+ throw new RPCProtocolError('Field id must be a string');
136
+ }
137
+ if (obj.id === '') {
138
+ throw new RPCProtocolError('Field id cannot be empty');
139
+ }
140
+ // Validate method
141
+ if (!('method' in obj)) {
142
+ throw new RPCProtocolError('Missing required field: method');
143
+ }
144
+ if (typeof obj.method !== 'string') {
145
+ throw new RPCProtocolError('Field method must be a string');
146
+ }
147
+ return parsed;
148
+ }
149
+ /**
150
+ * Deserialize a raw message into an RPC response
151
+ *
152
+ * @param message - Raw message string (expected to be JSON)
153
+ * @returns Parsed RPC response
154
+ * @throws RPCProtocolError if parsing or validation fails
155
+ */
156
+ export function deserializeResponse(message) {
157
+ // Handle null/undefined/empty input
158
+ if (message === null || message === undefined) {
159
+ throw new RPCProtocolError('Cannot parse null or undefined message');
160
+ }
161
+ if (typeof message !== 'string') {
162
+ throw new RPCProtocolError('Message must be a string');
163
+ }
164
+ const trimmed = message.trim();
165
+ if (trimmed === '') {
166
+ throw new RPCProtocolError('Cannot parse empty message');
167
+ }
168
+ let parsed;
169
+ try {
170
+ parsed = JSON.parse(trimmed);
171
+ }
172
+ catch (e) {
173
+ throw new RPCProtocolError(`Failed to parse JSON: ${e.message}`);
174
+ }
175
+ if (typeof parsed !== 'object' || parsed === null) {
176
+ throw new RPCProtocolError('Response must be an object');
177
+ }
178
+ const obj = parsed;
179
+ // Validate id
180
+ if (!('id' in obj)) {
181
+ throw new RPCProtocolError('Missing required field: id');
182
+ }
183
+ if (typeof obj.id !== 'string') {
184
+ throw new RPCProtocolError('Field id must be a string');
185
+ }
186
+ // Validate error structure if present
187
+ if ('error' in obj && obj.error !== undefined) {
188
+ const error = obj.error;
189
+ if (typeof error !== 'object' || error === null) {
190
+ throw new RPCProtocolError('Field error must be an object');
191
+ }
192
+ if (typeof error.code !== 'number') {
193
+ throw new RPCProtocolError('Field error.code must be a number');
194
+ }
195
+ if (typeof error.message !== 'string') {
196
+ throw new RPCProtocolError('Field error.message must be a string');
197
+ }
198
+ }
199
+ return parsed;
200
+ }
201
+ /**
202
+ * Deserialize a raw message into an RPC batch request
203
+ *
204
+ * @param message - Raw message string (expected to be JSON)
205
+ * @returns Parsed RPC batch request
206
+ * @throws RPCProtocolError if parsing or validation fails
207
+ */
208
+ export function deserializeBatchRequest(message) {
209
+ // Handle null/undefined/empty input
210
+ if (message === null || message === undefined) {
211
+ throw new RPCProtocolError('Cannot parse null or undefined message');
212
+ }
213
+ if (typeof message !== 'string') {
214
+ throw new RPCProtocolError('Message must be a string');
215
+ }
216
+ const trimmed = message.trim();
217
+ if (trimmed === '') {
218
+ throw new RPCProtocolError('Cannot parse empty message');
219
+ }
220
+ let parsed;
221
+ try {
222
+ parsed = JSON.parse(trimmed);
223
+ }
224
+ catch (e) {
225
+ throw new RPCProtocolError(`Failed to parse JSON: ${e.message}`);
226
+ }
227
+ if (typeof parsed !== 'object' || parsed === null) {
228
+ throw new RPCProtocolError('Batch request must be an object');
229
+ }
230
+ const obj = parsed;
231
+ // Validate id
232
+ if (!('id' in obj)) {
233
+ throw new RPCProtocolError('Missing required field: id');
234
+ }
235
+ if (typeof obj.id !== 'string') {
236
+ throw new RPCProtocolError('Field id must be a string');
237
+ }
238
+ // Validate requests array
239
+ if (!('requests' in obj)) {
240
+ throw new RPCProtocolError('Missing required field: requests');
241
+ }
242
+ if (!Array.isArray(obj.requests)) {
243
+ throw new RPCProtocolError('Field requests must be an array');
244
+ }
245
+ if (obj.requests.length === 0) {
246
+ throw new RPCProtocolError('Batch request cannot be empty');
247
+ }
248
+ // Validate each request in the batch
249
+ for (let i = 0; i < obj.requests.length; i++) {
250
+ const req = obj.requests[i];
251
+ if (typeof req !== 'object' || req === null) {
252
+ throw new RPCProtocolError(`Request at index ${i} must be an object`);
253
+ }
254
+ if (!('id' in req) || typeof req.id !== 'string') {
255
+ throw new RPCProtocolError(`Request at index ${i} missing or invalid id`);
256
+ }
257
+ if (!('method' in req) || typeof req.method !== 'string') {
258
+ throw new RPCProtocolError(`Request at index ${i} missing or invalid method`);
259
+ }
260
+ }
261
+ return parsed;
262
+ }
263
+ /**
264
+ * Deserialize a raw message into an RPC batch response
265
+ *
266
+ * @param message - Raw message string (expected to be JSON)
267
+ * @returns Parsed RPC batch response
268
+ * @throws RPCProtocolError if parsing or validation fails
269
+ */
270
+ export function deserializeBatchResponse(message) {
271
+ // Handle null/undefined/empty input
272
+ if (message === null || message === undefined) {
273
+ throw new RPCProtocolError('Cannot parse null or undefined message');
274
+ }
275
+ if (typeof message !== 'string') {
276
+ throw new RPCProtocolError('Message must be a string');
277
+ }
278
+ const trimmed = message.trim();
279
+ if (trimmed === '') {
280
+ throw new RPCProtocolError('Cannot parse empty message');
281
+ }
282
+ let parsed;
283
+ try {
284
+ parsed = JSON.parse(trimmed);
285
+ }
286
+ catch (e) {
287
+ throw new RPCProtocolError(`Failed to parse JSON: ${e.message}`);
288
+ }
289
+ if (typeof parsed !== 'object' || parsed === null) {
290
+ throw new RPCProtocolError('Batch response must be an object');
291
+ }
292
+ const obj = parsed;
293
+ // Validate id
294
+ if (!('id' in obj)) {
295
+ throw new RPCProtocolError('Missing required field: id');
296
+ }
297
+ if (typeof obj.id !== 'string') {
298
+ throw new RPCProtocolError('Field id must be a string');
299
+ }
300
+ // Validate responses array
301
+ if (!('responses' in obj)) {
302
+ throw new RPCProtocolError('Missing required field: responses');
303
+ }
304
+ if (!Array.isArray(obj.responses)) {
305
+ throw new RPCProtocolError('Field responses must be an array');
306
+ }
307
+ return parsed;
308
+ }
309
+ // =============================================================================
310
+ // Validation Functions
311
+ // =============================================================================
312
+ /**
313
+ * Validate an RPC request structure
314
+ *
315
+ * Checks that the request has:
316
+ * - A string `id` field
317
+ * - A string `method` field in correct format (e.g., 'do.namespace.action')
318
+ * - Optional `params` object
319
+ * - Optional `meta` object with valid fields
320
+ *
321
+ * @param request - The request to validate
322
+ * @returns ValidationResult indicating success or failure with details
323
+ *
324
+ * @example
325
+ * ```typescript
326
+ * const validation = validateRequest({ id: '1', method: 'invalid' })
327
+ * if (!validation.valid) {
328
+ * console.log(validation.error) // 'Invalid method format'
329
+ * }
330
+ * ```
331
+ */
332
+ export function validateRequest(request) {
333
+ if (typeof request !== 'object' || request === null) {
334
+ throw new RPCProtocolError('Request must be an object');
335
+ }
336
+ const obj = request;
337
+ // Validate id
338
+ if (!('id' in obj)) {
339
+ throw new RPCProtocolError('Missing required field: id');
340
+ }
341
+ if (typeof obj.id !== 'string') {
342
+ throw new RPCProtocolError('Field id must be a string');
343
+ }
344
+ // Validate method
345
+ if (!('method' in obj)) {
346
+ throw new RPCProtocolError('Missing required field: method');
347
+ }
348
+ if (typeof obj.method !== 'string') {
349
+ throw new RPCProtocolError('Field method must be a string');
350
+ }
351
+ if (obj.method === '') {
352
+ throw new RPCProtocolError('Field method cannot be empty');
353
+ }
354
+ }
355
+ /**
356
+ * Validate an RPC response structure
357
+ *
358
+ * @param response - The response to validate
359
+ * @throws RPCProtocolError if validation fails
360
+ */
361
+ export function validateResponse(response) {
362
+ if (typeof response !== 'object' || response === null) {
363
+ throw new RPCProtocolError('Response must be an object');
364
+ }
365
+ const obj = response;
366
+ // Validate id
367
+ if (!('id' in obj)) {
368
+ throw new RPCProtocolError('Missing required field: id');
369
+ }
370
+ if (typeof obj.id !== 'string') {
371
+ throw new RPCProtocolError('Field id must be a string');
372
+ }
373
+ // Check for both result and error
374
+ const hasResult = 'result' in obj && obj.result !== undefined;
375
+ const hasError = 'error' in obj && obj.error !== undefined;
376
+ if (hasResult && hasError) {
377
+ throw new RPCProtocolError('Response cannot have both result and error');
378
+ }
379
+ // Validate error structure if present
380
+ if (hasError) {
381
+ const error = obj.error;
382
+ if (typeof error !== 'object' || error === null) {
383
+ throw new RPCProtocolError('Field error must be an object');
384
+ }
385
+ if (typeof error.code !== 'number') {
386
+ throw new RPCProtocolError('Field error.code must be a number');
387
+ }
388
+ if (typeof error.message !== 'string') {
389
+ throw new RPCProtocolError('Field error.message must be a string');
390
+ }
391
+ }
392
+ }
393
+ /**
394
+ * Validate a batch request structure
395
+ *
396
+ * @param batch - The batch request to validate
397
+ * @throws RPCProtocolError if validation fails
398
+ */
399
+ export function validateBatchRequest(batch) {
400
+ if (typeof batch !== 'object' || batch === null) {
401
+ throw new RPCProtocolError('Batch request must be an object');
402
+ }
403
+ const obj = batch;
404
+ // Validate id
405
+ if (!('id' in obj)) {
406
+ throw new RPCProtocolError('Missing required field: id');
407
+ }
408
+ if (typeof obj.id !== 'string') {
409
+ throw new RPCProtocolError('Field id must be a string');
410
+ }
411
+ // Validate requests array
412
+ if (!('requests' in obj)) {
413
+ throw new RPCProtocolError('Missing required field: requests');
414
+ }
415
+ if (!Array.isArray(obj.requests)) {
416
+ throw new RPCProtocolError('Field requests must be an array');
417
+ }
418
+ if (obj.requests.length === 0) {
419
+ throw new RPCProtocolError('Batch request cannot be empty');
420
+ }
421
+ // Validate each request in the batch
422
+ for (let i = 0; i < obj.requests.length; i++) {
423
+ try {
424
+ validateRequest(obj.requests[i]);
425
+ }
426
+ catch (e) {
427
+ throw new RPCProtocolError(`Invalid request at index ${i}: ${e.message}`);
428
+ }
429
+ }
430
+ }
431
+ /**
432
+ * Validate method name format
433
+ *
434
+ * Method names must follow the pattern: `do.{namespace}.{action}`
435
+ * Examples: 'do.things.list', 'do.identity.get', 'do.cdc.subscribe'
436
+ *
437
+ * @param method - The method name to validate
438
+ * @returns Whether the method name is valid
439
+ */
440
+ export function validateMethodName(method) {
441
+ // Accept various method patterns including special characters
442
+ // The method should be non-empty
443
+ return typeof method === 'string' && method.length > 0;
444
+ }
445
+ // =============================================================================
446
+ // Serialization Functions
447
+ // =============================================================================
448
+ /**
449
+ * Serialize an RPC request to a string
450
+ *
451
+ * @param request - The request to serialize
452
+ * @param options - Serialization options
453
+ * @returns JSON string representation
454
+ *
455
+ * @example
456
+ * ```typescript
457
+ * const json = serializeRequest({
458
+ * id: '1',
459
+ * method: 'do.things.list',
460
+ * params: { limit: 10 }
461
+ * })
462
+ * // '{"id":"1","method":"do.things.list","params":{"limit":10}}'
463
+ * ```
464
+ */
465
+ export function serializeRequest(request, options) {
466
+ const space = options?.pretty ? 2 : undefined;
467
+ return JSON.stringify(request, null, space);
468
+ }
469
+ /**
470
+ * Serialize an RPC response to a string
471
+ *
472
+ * @param response - The response to serialize
473
+ * @param options - Serialization options
474
+ * @returns JSON string representation
475
+ */
476
+ export function serializeResponse(response, options) {
477
+ const space = options?.pretty ? 2 : undefined;
478
+ return JSON.stringify(response, null, space);
479
+ }
480
+ /**
481
+ * Serialize a batch request to a string
482
+ *
483
+ * @param batch - The batch request to serialize
484
+ * @param options - Serialization options
485
+ * @returns JSON string representation
486
+ */
487
+ export function serializeBatchRequest(batch, options) {
488
+ const space = options?.pretty ? 2 : undefined;
489
+ return JSON.stringify(batch, null, space);
490
+ }
491
+ /**
492
+ * Serialize a batch response to a string
493
+ *
494
+ * @param batch - The batch response to serialize
495
+ * @param options - Serialization options
496
+ * @returns JSON string representation
497
+ */
498
+ export function serializeBatchResponse(batch, options) {
499
+ const space = options?.pretty ? 2 : undefined;
500
+ return JSON.stringify(batch, null, space);
501
+ }
502
+ // =============================================================================
503
+ // Error Helpers
504
+ // =============================================================================
505
+ /**
506
+ * Create an RPC error object
507
+ *
508
+ * @param code - Error code (from RpcErrorCodes)
509
+ * @param message - Human-readable error message
510
+ * @param data - Optional additional error data
511
+ * @returns RPCError object
512
+ *
513
+ * @example
514
+ * ```typescript
515
+ * const error = createError(-32601, 'Method not found', { method: 'do.invalid' })
516
+ * ```
517
+ */
518
+ export function createError(code, message, data) {
519
+ const error = { code, message };
520
+ if (data !== undefined) {
521
+ error.data = data;
522
+ }
523
+ return error;
524
+ }
525
+ /**
526
+ * Error code mapping for createRPCError
527
+ */
528
+ const ERROR_CODES = {
529
+ ParseError: -32700,
530
+ InvalidRequest: -32600,
531
+ MethodNotFound: -32601,
532
+ InvalidParams: -32602,
533
+ InternalError: -32603,
534
+ Unauthorized: -32001,
535
+ Forbidden: -32002,
536
+ NotFound: -32003,
537
+ Conflict: -32004,
538
+ RateLimited: -32005,
539
+ Timeout: -32006,
540
+ };
541
+ /**
542
+ * Create an RPC error object by type name
543
+ *
544
+ * @param type - Error type name
545
+ * @param message - Human-readable error message
546
+ * @param data - Optional additional error data
547
+ * @returns RPCError object
548
+ *
549
+ * @example
550
+ * ```typescript
551
+ * const error = createRPCError('MethodNotFound', 'Unknown method: do.invalid')
552
+ * ```
553
+ */
554
+ export function createRPCError(type, message, data) {
555
+ return {
556
+ code: ERROR_CODES[type],
557
+ message,
558
+ data,
559
+ };
560
+ }
561
+ /**
562
+ * Check if a value is an RPC error
563
+ *
564
+ * @param value - Value to check
565
+ * @returns Whether the value is a valid RPC error
566
+ */
567
+ export function isRPCError(value) {
568
+ if (!value || typeof value !== 'object') {
569
+ return false;
570
+ }
571
+ const obj = value;
572
+ if (typeof obj.code !== 'number' || typeof obj.message !== 'string') {
573
+ return false;
574
+ }
575
+ // Valid RPC error codes are:
576
+ // Standard JSON-RPC: -32700 to -32600
577
+ // Custom: -32001 to -32099
578
+ const code = obj.code;
579
+ const isStandardError = code >= -32700 && code <= -32600;
580
+ const isCustomError = code >= -32099 && code <= -32001;
581
+ return isStandardError || isCustomError;
582
+ }
583
+ /**
584
+ * Create an error response for a request
585
+ *
586
+ * @param requestId - The ID of the request that failed
587
+ * @param code - Error code
588
+ * @param message - Error message
589
+ * @param data - Optional error data
590
+ * @returns Complete RPCResponse with error
591
+ */
592
+ export function createErrorResponse(requestId, code, message, data) {
593
+ return {
594
+ id: requestId,
595
+ error: createError(code, message, data),
596
+ };
597
+ }
598
+ /**
599
+ * Create a success response for a request
600
+ *
601
+ * @param requestId - The ID of the request
602
+ * @param result - The result data
603
+ * @param meta - Optional metadata
604
+ * @returns Complete RPCResponse with result
605
+ */
606
+ export function createSuccessResponse(requestId, result, meta) {
607
+ const response = { id: requestId, result };
608
+ if (meta !== undefined) {
609
+ response.meta = meta;
610
+ }
611
+ return response;
612
+ }
613
+ // =============================================================================
614
+ // Utility Functions
615
+ // =============================================================================
616
+ /**
617
+ * Generate a unique request ID
618
+ *
619
+ * Uses a combination of timestamp and random string for uniqueness.
620
+ *
621
+ * @returns Unique request ID string
622
+ */
623
+ export function generateRequestId() {
624
+ const timestamp = Date.now();
625
+ const random = Math.random().toString(36).substring(2, 10);
626
+ return `req-${timestamp}-${random}`;
627
+ }
628
+ /**
629
+ * Check if a message is a batch request
630
+ *
631
+ * @param message - Parsed message object
632
+ * @returns Whether the message is a batch request
633
+ */
634
+ export function isBatchRequest(message) {
635
+ return typeof message === 'object' && message !== null && 'requests' in message && Array.isArray(message.requests);
636
+ }
637
+ /**
638
+ * Check if a message is a batch response
639
+ *
640
+ * @param message - Parsed message object
641
+ * @returns Whether the message is a batch response
642
+ */
643
+ export function isBatchResponse(message) {
644
+ return typeof message === 'object' && message !== null && 'responses' in message && Array.isArray(message.responses);
645
+ }
646
+ /**
647
+ * Extract namespace from method name
648
+ *
649
+ * @param method - Method name (e.g., 'do.things.list')
650
+ * @returns Namespace (e.g., 'things')
651
+ */
652
+ export function extractNamespace(method) {
653
+ const parts = method.split('.');
654
+ if (parts.length >= 2) {
655
+ return parts[1];
656
+ }
657
+ return null;
658
+ }
659
+ /**
660
+ * Extract action from method name
661
+ *
662
+ * @param method - Method name (e.g., 'do.things.list')
663
+ * @returns Action (e.g., 'list')
664
+ */
665
+ export function extractAction(method) {
666
+ const parts = method.split('.');
667
+ if (parts.length >= 3) {
668
+ return parts[2];
669
+ }
670
+ return null;
671
+ }
672
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../rpc/protocol.ts"],"names":[],"mappings":"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"}