contiguity 0.0.4 → 0.0.6

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 (386) hide show
  1. package/README.md +156 -48
  2. package/dist/cjs/client.d.ts +27 -0
  3. package/dist/cjs/client.d.ts.map +1 -0
  4. package/dist/cjs/client.js +43 -0
  5. package/dist/cjs/index.d.ts +13 -0
  6. package/dist/cjs/index.d.ts.map +1 -0
  7. package/dist/cjs/index.js +11 -0
  8. package/dist/cjs/resources/conversations.d.ts +30 -0
  9. package/dist/cjs/resources/conversations.d.ts.map +1 -0
  10. package/dist/cjs/resources/conversations.js +24 -0
  11. package/dist/cjs/resources/domains.d.ts +39 -0
  12. package/dist/cjs/resources/domains.d.ts.map +1 -0
  13. package/dist/cjs/resources/domains.js +28 -0
  14. package/dist/cjs/resources/email.d.ts +17 -0
  15. package/dist/cjs/resources/email.d.ts.map +1 -0
  16. package/dist/cjs/resources/email.js +19 -0
  17. package/dist/cjs/resources/imessage.d.ts +49 -0
  18. package/dist/cjs/resources/imessage.d.ts.map +1 -0
  19. package/dist/cjs/resources/imessage.js +42 -0
  20. package/dist/cjs/resources/lease.d.ts +55 -0
  21. package/dist/cjs/resources/lease.d.ts.map +1 -0
  22. package/dist/cjs/resources/lease.js +34 -0
  23. package/dist/cjs/resources/otp.d.ts +63 -0
  24. package/dist/cjs/resources/otp.d.ts.map +1 -0
  25. package/dist/cjs/resources/otp.js +48 -0
  26. package/dist/cjs/resources/text.d.ts +17 -0
  27. package/dist/cjs/resources/text.d.ts.map +1 -0
  28. package/dist/cjs/resources/text.js +19 -0
  29. package/dist/cjs/resources/voice.d.ts +129 -0
  30. package/dist/cjs/resources/voice.d.ts.map +1 -0
  31. package/dist/cjs/resources/voice.js +95 -0
  32. package/dist/cjs/resources/webhook.d.ts +21 -0
  33. package/dist/cjs/resources/webhook.d.ts.map +1 -0
  34. package/dist/cjs/resources/webhook.js +47 -0
  35. package/dist/cjs/resources/whatsapp.d.ts +33 -0
  36. package/dist/cjs/resources/whatsapp.d.ts.map +1 -0
  37. package/dist/cjs/resources/whatsapp.js +32 -0
  38. package/dist/cjs/schemas/conversations.d.ts +5 -0
  39. package/dist/cjs/schemas/conversations.d.ts.map +1 -0
  40. package/dist/cjs/schemas/conversations.js +5 -0
  41. package/dist/cjs/schemas/domains.d.ts +7 -0
  42. package/dist/cjs/schemas/domains.d.ts.map +1 -0
  43. package/dist/cjs/schemas/domains.js +10 -0
  44. package/dist/cjs/schemas/email.d.ts +16 -0
  45. package/dist/cjs/schemas/email.d.ts.map +1 -0
  46. package/dist/cjs/schemas/email.js +16 -0
  47. package/dist/cjs/schemas/imessage.d.ts +25 -0
  48. package/dist/cjs/schemas/imessage.d.ts.map +1 -0
  49. package/dist/cjs/schemas/imessage.js +25 -0
  50. package/dist/cjs/schemas/index.d.ts +10 -0
  51. package/dist/cjs/schemas/index.d.ts.map +1 -0
  52. package/dist/cjs/schemas/index.js +25 -0
  53. package/dist/cjs/schemas/leases.d.ts +9 -0
  54. package/dist/cjs/schemas/leases.d.ts.map +1 -0
  55. package/dist/cjs/schemas/leases.js +9 -0
  56. package/dist/cjs/schemas/otp.d.ts +25 -0
  57. package/dist/cjs/schemas/otp.d.ts.map +1 -0
  58. package/dist/cjs/schemas/otp.js +16 -0
  59. package/dist/cjs/schemas/text.d.ts +9 -0
  60. package/dist/cjs/schemas/text.d.ts.map +1 -0
  61. package/dist/cjs/schemas/text.js +12 -0
  62. package/dist/cjs/schemas/voice.d.ts +5 -0
  63. package/dist/cjs/schemas/voice.d.ts.map +1 -0
  64. package/dist/cjs/schemas/voice.js +5 -0
  65. package/dist/cjs/schemas/whatsapp.d.ts +25 -0
  66. package/dist/cjs/schemas/whatsapp.d.ts.map +1 -0
  67. package/dist/cjs/schemas/whatsapp.js +25 -0
  68. package/dist/cjs/types/index.d.ts +3 -0
  69. package/dist/cjs/types/index.d.ts.map +1 -0
  70. package/dist/cjs/types/index.js +18 -0
  71. package/dist/cjs/types/responses.d.ts +8 -0
  72. package/dist/cjs/types/responses.d.ts.map +1 -0
  73. package/dist/cjs/types/responses.js +2 -0
  74. package/dist/cjs/types/webhooks.d.ts +10 -0
  75. package/dist/cjs/types/webhooks.d.ts.map +1 -0
  76. package/dist/cjs/types/webhooks.js +2 -0
  77. package/dist/cjs/utils/errors.d.ts +6 -0
  78. package/dist/cjs/utils/errors.d.ts.map +1 -0
  79. package/dist/cjs/utils/errors.js +15 -0
  80. package/dist/cjs/utils/request.d.ts +27 -0
  81. package/dist/cjs/utils/request.d.ts.map +1 -0
  82. package/dist/cjs/utils/request.js +36 -0
  83. package/dist/cjs/utils/response.d.ts +12 -0
  84. package/dist/cjs/utils/response.d.ts.map +1 -0
  85. package/dist/cjs/utils/response.js +12 -0
  86. package/dist/cjs/webhook/parse.d.ts +6 -0
  87. package/dist/cjs/webhook/parse.d.ts.map +1 -0
  88. package/dist/cjs/webhook/parse.js +14 -0
  89. package/dist/cjs/webhook/verify.d.ts +6 -0
  90. package/dist/cjs/webhook/verify.d.ts.map +1 -0
  91. package/dist/cjs/webhook/verify.js +39 -0
  92. package/dist/client.d.ts +23 -0
  93. package/dist/client.d.ts.map +1 -0
  94. package/dist/client.js +44 -0
  95. package/dist/esm/client.d.ts +27 -0
  96. package/dist/esm/client.d.ts.map +1 -0
  97. package/dist/esm/client.js +39 -0
  98. package/dist/esm/index.d.ts +13 -0
  99. package/dist/esm/index.d.ts.map +1 -0
  100. package/dist/esm/index.js +4 -0
  101. package/dist/esm/resources/conversations.d.ts +30 -0
  102. package/dist/esm/resources/conversations.d.ts.map +1 -0
  103. package/dist/esm/resources/conversations.js +20 -0
  104. package/dist/esm/resources/domains.d.ts +39 -0
  105. package/dist/esm/resources/domains.d.ts.map +1 -0
  106. package/dist/esm/resources/domains.js +24 -0
  107. package/dist/esm/resources/email.d.ts +17 -0
  108. package/dist/esm/resources/email.d.ts.map +1 -0
  109. package/dist/esm/resources/email.js +15 -0
  110. package/dist/esm/resources/imessage.d.ts +49 -0
  111. package/dist/esm/resources/imessage.d.ts.map +1 -0
  112. package/dist/esm/resources/imessage.js +38 -0
  113. package/dist/esm/resources/lease.d.ts +55 -0
  114. package/dist/esm/resources/lease.d.ts.map +1 -0
  115. package/dist/esm/resources/lease.js +30 -0
  116. package/dist/esm/resources/otp.d.ts +63 -0
  117. package/dist/esm/resources/otp.d.ts.map +1 -0
  118. package/dist/esm/resources/otp.js +44 -0
  119. package/dist/esm/resources/text.d.ts +17 -0
  120. package/dist/esm/resources/text.d.ts.map +1 -0
  121. package/dist/esm/resources/text.js +15 -0
  122. package/dist/esm/resources/voice.d.ts +129 -0
  123. package/dist/esm/resources/voice.d.ts.map +1 -0
  124. package/dist/esm/resources/voice.js +91 -0
  125. package/dist/esm/resources/webhook.d.ts +21 -0
  126. package/dist/esm/resources/webhook.d.ts.map +1 -0
  127. package/dist/esm/resources/webhook.js +43 -0
  128. package/dist/esm/resources/whatsapp.d.ts +33 -0
  129. package/dist/esm/resources/whatsapp.d.ts.map +1 -0
  130. package/dist/esm/resources/whatsapp.js +28 -0
  131. package/dist/esm/schemas/conversations.d.ts +5 -0
  132. package/dist/esm/schemas/conversations.d.ts.map +1 -0
  133. package/dist/esm/schemas/conversations.js +2 -0
  134. package/dist/esm/schemas/domains.d.ts +7 -0
  135. package/dist/esm/schemas/domains.d.ts.map +1 -0
  136. package/dist/esm/schemas/domains.js +7 -0
  137. package/dist/esm/schemas/email.d.ts +16 -0
  138. package/dist/esm/schemas/email.d.ts.map +1 -0
  139. package/dist/esm/schemas/email.js +13 -0
  140. package/dist/esm/schemas/imessage.d.ts +25 -0
  141. package/dist/esm/schemas/imessage.d.ts.map +1 -0
  142. package/dist/esm/schemas/imessage.js +22 -0
  143. package/dist/esm/schemas/index.d.ts +10 -0
  144. package/dist/esm/schemas/index.d.ts.map +1 -0
  145. package/dist/esm/schemas/index.js +9 -0
  146. package/dist/esm/schemas/leases.d.ts +9 -0
  147. package/dist/esm/schemas/leases.d.ts.map +1 -0
  148. package/dist/esm/schemas/leases.js +6 -0
  149. package/dist/esm/schemas/otp.d.ts +25 -0
  150. package/dist/esm/schemas/otp.d.ts.map +1 -0
  151. package/dist/esm/schemas/otp.js +13 -0
  152. package/dist/esm/schemas/text.d.ts +9 -0
  153. package/dist/esm/schemas/text.d.ts.map +1 -0
  154. package/dist/esm/schemas/text.js +9 -0
  155. package/dist/esm/schemas/voice.d.ts +5 -0
  156. package/dist/esm/schemas/voice.d.ts.map +1 -0
  157. package/dist/esm/schemas/voice.js +2 -0
  158. package/dist/esm/schemas/whatsapp.d.ts +25 -0
  159. package/dist/esm/schemas/whatsapp.d.ts.map +1 -0
  160. package/dist/esm/schemas/whatsapp.js +22 -0
  161. package/dist/esm/types/index.d.ts +3 -0
  162. package/dist/esm/types/index.d.ts.map +1 -0
  163. package/dist/esm/types/index.js +2 -0
  164. package/dist/esm/types/responses.d.ts +8 -0
  165. package/dist/esm/types/responses.d.ts.map +1 -0
  166. package/dist/esm/types/webhooks.d.ts +10 -0
  167. package/dist/esm/types/webhooks.d.ts.map +1 -0
  168. package/dist/esm/types/webhooks.js +1 -0
  169. package/dist/esm/utils/errors.d.ts +6 -0
  170. package/dist/esm/utils/errors.d.ts.map +1 -0
  171. package/dist/esm/utils/errors.js +11 -0
  172. package/dist/esm/utils/request.d.ts +27 -0
  173. package/dist/esm/utils/request.d.ts.map +1 -0
  174. package/dist/esm/utils/request.js +33 -0
  175. package/dist/esm/utils/response.d.ts +12 -0
  176. package/dist/esm/utils/response.d.ts.map +1 -0
  177. package/dist/esm/utils/response.js +9 -0
  178. package/dist/esm/webhook/parse.d.ts +6 -0
  179. package/dist/esm/webhook/parse.d.ts.map +1 -0
  180. package/dist/esm/webhook/parse.js +11 -0
  181. package/dist/esm/webhook/verify.d.ts +6 -0
  182. package/dist/esm/webhook/verify.d.ts.map +1 -0
  183. package/dist/esm/webhook/verify.js +36 -0
  184. package/dist/index.d.ts +13 -27
  185. package/dist/index.d.ts.map +1 -1
  186. package/dist/index.js +4 -12423
  187. package/dist/resources/conversations.d.ts +31 -0
  188. package/dist/resources/conversations.d.ts.map +1 -0
  189. package/dist/resources/conversations.js +21 -0
  190. package/dist/resources/domains.d.ts +39 -0
  191. package/dist/resources/domains.d.ts.map +1 -0
  192. package/dist/resources/domains.js +24 -0
  193. package/dist/resources/email.d.ts +17 -0
  194. package/dist/resources/email.d.ts.map +1 -0
  195. package/dist/resources/email.js +15 -0
  196. package/dist/resources/identity.d.ts +56 -0
  197. package/dist/resources/identity.d.ts.map +1 -0
  198. package/dist/resources/identity.js +43 -0
  199. package/dist/resources/imessage.d.ts +58 -0
  200. package/dist/resources/imessage.d.ts.map +1 -0
  201. package/dist/resources/imessage.js +47 -0
  202. package/dist/resources/lease.d.ts +55 -0
  203. package/dist/resources/lease.d.ts.map +1 -0
  204. package/dist/resources/lease.js +30 -0
  205. package/dist/resources/otp.d.ts +63 -0
  206. package/dist/resources/otp.d.ts.map +1 -0
  207. package/dist/resources/otp.js +44 -0
  208. package/dist/resources/product.d.ts +23 -0
  209. package/dist/resources/product.d.ts.map +1 -0
  210. package/dist/resources/product.js +19 -0
  211. package/dist/resources/text.d.ts +44 -0
  212. package/dist/resources/text.d.ts.map +1 -0
  213. package/dist/resources/text.js +33 -0
  214. package/dist/resources/voice.d.ts +129 -0
  215. package/dist/resources/voice.d.ts.map +1 -0
  216. package/dist/resources/voice.js +91 -0
  217. package/dist/resources/webhook.d.ts +21 -0
  218. package/dist/resources/webhook.d.ts.map +1 -0
  219. package/dist/resources/webhook.js +43 -0
  220. package/dist/resources/whatsapp.d.ts +33 -0
  221. package/dist/resources/whatsapp.d.ts.map +1 -0
  222. package/dist/resources/whatsapp.js +31 -0
  223. package/dist/schemas/conversations.d.ts +8 -0
  224. package/dist/schemas/conversations.d.ts.map +1 -0
  225. package/dist/schemas/conversations.js +8 -0
  226. package/dist/schemas/domains.d.ts +7 -0
  227. package/dist/schemas/domains.d.ts.map +1 -0
  228. package/dist/schemas/domains.js +7 -0
  229. package/dist/schemas/email.d.ts +16 -0
  230. package/dist/schemas/email.d.ts.map +1 -0
  231. package/dist/schemas/email.js +13 -0
  232. package/dist/schemas/imessage.d.ts +44 -0
  233. package/dist/schemas/imessage.d.ts.map +1 -0
  234. package/dist/schemas/imessage.js +36 -0
  235. package/dist/schemas/index.d.ts +10 -0
  236. package/dist/schemas/index.d.ts.map +1 -0
  237. package/dist/schemas/index.js +9 -0
  238. package/dist/schemas/leases.d.ts +9 -0
  239. package/dist/schemas/leases.d.ts.map +1 -0
  240. package/dist/schemas/leases.js +6 -0
  241. package/dist/schemas/otp.d.ts +25 -0
  242. package/dist/schemas/otp.d.ts.map +1 -0
  243. package/dist/schemas/otp.js +13 -0
  244. package/dist/schemas/product.d.ts +12 -0
  245. package/dist/schemas/product.d.ts.map +1 -0
  246. package/dist/schemas/product.js +9 -0
  247. package/dist/schemas/text.d.ts +24 -0
  248. package/dist/schemas/text.d.ts.map +1 -0
  249. package/dist/schemas/text.js +18 -0
  250. package/dist/schemas/voice.d.ts +5 -0
  251. package/dist/schemas/voice.d.ts.map +1 -0
  252. package/dist/schemas/voice.js +2 -0
  253. package/dist/schemas/whatsapp.d.ts +31 -0
  254. package/dist/schemas/whatsapp.d.ts.map +1 -0
  255. package/dist/schemas/whatsapp.js +29 -0
  256. package/dist/types/index.d.ts +3 -0
  257. package/dist/types/index.d.ts.map +1 -0
  258. package/dist/types/index.js +2 -0
  259. package/dist/types/responses.d.ts +8 -0
  260. package/dist/types/responses.d.ts.map +1 -0
  261. package/dist/types/responses.js +1 -0
  262. package/dist/types/webhooks.d.ts +10 -0
  263. package/dist/types/webhooks.d.ts.map +1 -0
  264. package/dist/types/webhooks.js +1 -0
  265. package/dist/utils/errors.d.ts +6 -0
  266. package/dist/utils/errors.d.ts.map +1 -0
  267. package/dist/utils/errors.js +11 -0
  268. package/dist/utils/request.d.ts +26 -5
  269. package/dist/utils/request.d.ts.map +1 -1
  270. package/dist/utils/request.js +31 -45
  271. package/dist/utils/response.d.ts +12 -0
  272. package/dist/utils/response.d.ts.map +1 -0
  273. package/dist/utils/response.js +9 -0
  274. package/dist/webhook/parse.d.ts +6 -0
  275. package/dist/webhook/parse.d.ts.map +1 -0
  276. package/dist/webhook/parse.js +11 -0
  277. package/dist/webhook/verify.d.ts +6 -0
  278. package/dist/webhook/verify.d.ts.map +1 -0
  279. package/dist/webhook/verify.js +36 -0
  280. package/package.json +30 -33
  281. package/LICENSE.md +0 -8
  282. package/dist/client/fetch.d.ts +0 -25
  283. package/dist/client/fetch.d.ts.map +0 -1
  284. package/dist/client/fetch.js +0 -85
  285. package/dist/contiguity.d.ts +0 -81
  286. package/dist/contiguity.d.ts.map +0 -1
  287. package/dist/contiguity.js +0 -106
  288. package/dist/services/domains/delete.d.ts +0 -28
  289. package/dist/services/domains/delete.d.ts.map +0 -1
  290. package/dist/services/domains/delete.js +0 -37
  291. package/dist/services/domains/get.d.ts +0 -98
  292. package/dist/services/domains/get.d.ts.map +0 -1
  293. package/dist/services/domains/get.js +0 -89
  294. package/dist/services/domains/index.d.ts +0 -34
  295. package/dist/services/domains/index.d.ts.map +0 -1
  296. package/dist/services/domains/index.js +0 -37
  297. package/dist/services/domains/list.d.ts +0 -36
  298. package/dist/services/domains/list.d.ts.map +0 -1
  299. package/dist/services/domains/list.js +0 -42
  300. package/dist/services/domains/register.d.ts +0 -67
  301. package/dist/services/domains/register.d.ts.map +0 -1
  302. package/dist/services/domains/register.js +0 -67
  303. package/dist/services/email/index.d.ts +0 -17
  304. package/dist/services/email/index.d.ts.map +0 -1
  305. package/dist/services/email/index.js +0 -16
  306. package/dist/services/email/send.d.ts +0 -66
  307. package/dist/services/email/send.d.ts.map +0 -1
  308. package/dist/services/email/send.js +0 -78
  309. package/dist/services/imessage/index.d.ts +0 -24
  310. package/dist/services/imessage/index.d.ts.map +0 -1
  311. package/dist/services/imessage/index.js +0 -23
  312. package/dist/services/imessage/send.d.ts +0 -57
  313. package/dist/services/imessage/send.d.ts.map +0 -1
  314. package/dist/services/imessage/send.js +0 -60
  315. package/dist/services/imessage/typing.d.ts +0 -40
  316. package/dist/services/imessage/typing.d.ts.map +0 -1
  317. package/dist/services/imessage/typing.js +0 -49
  318. package/dist/services/lease/available.d.ts +0 -193
  319. package/dist/services/lease/available.d.ts.map +0 -1
  320. package/dist/services/lease/available.js +0 -103
  321. package/dist/services/lease/create.d.ts +0 -108
  322. package/dist/services/lease/create.d.ts.map +0 -1
  323. package/dist/services/lease/create.js +0 -78
  324. package/dist/services/lease/details.d.ts +0 -133
  325. package/dist/services/lease/details.d.ts.map +0 -1
  326. package/dist/services/lease/details.js +0 -65
  327. package/dist/services/lease/get.d.ts +0 -96
  328. package/dist/services/lease/get.d.ts.map +0 -1
  329. package/dist/services/lease/get.js +0 -68
  330. package/dist/services/lease/index.d.ts +0 -50
  331. package/dist/services/lease/index.d.ts.map +0 -1
  332. package/dist/services/lease/index.js +0 -51
  333. package/dist/services/lease/leased.d.ts +0 -228
  334. package/dist/services/lease/leased.d.ts.map +0 -1
  335. package/dist/services/lease/leased.js +0 -108
  336. package/dist/services/lease/terminate.d.ts +0 -71
  337. package/dist/services/lease/terminate.d.ts.map +0 -1
  338. package/dist/services/lease/terminate.js +0 -78
  339. package/dist/services/otp/index.d.ts +0 -33
  340. package/dist/services/otp/index.d.ts.map +0 -1
  341. package/dist/services/otp/index.js +0 -37
  342. package/dist/services/otp/new.d.ts +0 -29
  343. package/dist/services/otp/new.d.ts.map +0 -1
  344. package/dist/services/otp/new.js +0 -44
  345. package/dist/services/otp/resend.d.ts +0 -22
  346. package/dist/services/otp/resend.d.ts.map +0 -1
  347. package/dist/services/otp/resend.js +0 -31
  348. package/dist/services/otp/send.d.ts +0 -26
  349. package/dist/services/otp/send.d.ts.map +0 -1
  350. package/dist/services/otp/send.js +0 -38
  351. package/dist/services/otp/verify.d.ts +0 -24
  352. package/dist/services/otp/verify.d.ts.map +0 -1
  353. package/dist/services/otp/verify.js +0 -34
  354. package/dist/services/text/index.d.ts +0 -17
  355. package/dist/services/text/index.d.ts.map +0 -1
  356. package/dist/services/text/index.js +0 -16
  357. package/dist/services/text/send.d.ts +0 -25
  358. package/dist/services/text/send.d.ts.map +0 -1
  359. package/dist/services/text/send.js +0 -37
  360. package/dist/services/whatsapp/index.d.ts +0 -24
  361. package/dist/services/whatsapp/index.d.ts.map +0 -1
  362. package/dist/services/whatsapp/index.js +0 -23
  363. package/dist/services/whatsapp/send.d.ts +0 -57
  364. package/dist/services/whatsapp/send.d.ts.map +0 -1
  365. package/dist/services/whatsapp/send.js +0 -60
  366. package/dist/services/whatsapp/typing.d.ts +0 -40
  367. package/dist/services/whatsapp/typing.d.ts.map +0 -1
  368. package/dist/services/whatsapp/typing.js +0 -49
  369. package/dist/types/base.d.ts +0 -17
  370. package/dist/types/base.d.ts.map +0 -1
  371. package/dist/types/base.js +0 -20
  372. package/dist/types/common.d.ts +0 -56
  373. package/dist/types/common.d.ts.map +0 -1
  374. package/dist/types/common.js +0 -48
  375. package/dist/types/error.d.ts +0 -37
  376. package/dist/types/error.d.ts.map +0 -1
  377. package/dist/types/error.js +0 -54
  378. package/dist/types/metadata.d.ts +0 -10
  379. package/dist/types/metadata.d.ts.map +0 -1
  380. package/dist/types/response.d.ts +0 -10
  381. package/dist/types/response.d.ts.map +0 -1
  382. package/dist/types/response.js +0 -10
  383. package/dist/utils/parse.d.ts +0 -8
  384. package/dist/utils/parse.d.ts.map +0 -1
  385. package/dist/utils/parse.js +0 -36
  386. /package/dist/{types/metadata.js → esm/types/responses.js} +0 -0
@@ -0,0 +1,25 @@
1
+ import { z } from "zod";
2
+ export declare const otpNewSchema: z.ZodObject<{
3
+ to: z.ZodString;
4
+ language: z.ZodString;
5
+ name: z.ZodString;
6
+ }, z.core.$loose>;
7
+ export declare const otpVerifySchema: z.ZodObject<{
8
+ otp_id: z.ZodString;
9
+ otp: z.ZodString;
10
+ }, z.core.$loose>;
11
+ export declare const otpResendSchema: z.ZodObject<{
12
+ otp_id: z.ZodString;
13
+ }, z.core.$loose>;
14
+ export declare const otpReverseInitiateSchema: z.ZodObject<{
15
+ number: z.ZodString;
16
+ factor: z.ZodOptional<z.ZodString>;
17
+ to: z.ZodOptional<z.ZodString>;
18
+ language: z.ZodOptional<z.ZodString>;
19
+ success_url: z.ZodOptional<z.ZodString>;
20
+ }, z.core.$loose>;
21
+ export type OtpNewParams = z.infer<typeof otpNewSchema>;
22
+ export type OtpVerifyParams = z.infer<typeof otpVerifySchema>;
23
+ export type OtpResendParams = z.infer<typeof otpResendSchema>;
24
+ export type OtpReverseInitiateParams = z.infer<typeof otpReverseInitiateSchema>;
25
+ //# sourceMappingURL=otp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otp.d.ts","sourceRoot":"","sources":["../../src/schemas/otp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;;;;iBAA+E,CAAC;AACzG,eAAO,MAAM,eAAe;;;iBAA4D,CAAC;AACzF,eAAO,MAAM,eAAe;;iBAA2C,CAAC;AACxE,eAAO,MAAM,wBAAwB;;;;;;iBAQzB,CAAC;AAEb,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACxD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC9D,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ export const otpNewSchema = z.object({ to: z.string(), language: z.string(), name: z.string() }).loose();
3
+ export const otpVerifySchema = z.object({ otp_id: z.string(), otp: z.string() }).loose();
4
+ export const otpResendSchema = z.object({ otp_id: z.string() }).loose();
5
+ export const otpReverseInitiateSchema = z
6
+ .object({
7
+ number: z.string(),
8
+ factor: z.string().max(16).optional(),
9
+ to: z.string().optional(),
10
+ language: z.string().optional(),
11
+ success_url: z.string().url().optional(),
12
+ })
13
+ .loose();
@@ -0,0 +1,12 @@
1
+ import { z } from "zod";
2
+ export declare const productHistorySchema: z.ZodObject<{
3
+ to: z.ZodString;
4
+ from: z.ZodString;
5
+ limit: z.ZodOptional<z.ZodNumber>;
6
+ channel: z.ZodEnum<{
7
+ text: "text";
8
+ imessage: "imessage";
9
+ }>;
10
+ }, z.core.$loose>;
11
+ export type ProductHistoryParams = z.infer<typeof productHistorySchema>;
12
+ //# sourceMappingURL=product.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product.d.ts","sourceRoot":"","sources":["../../src/schemas/product.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,oBAAoB;;;;;;;;iBAOvB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+ export const productHistorySchema = z
3
+ .object({
4
+ to: z.string(),
5
+ from: z.string(),
6
+ limit: z.number().optional(),
7
+ channel: z.enum(["text", "imessage"]),
8
+ })
9
+ .loose();
@@ -0,0 +1,24 @@
1
+ import { z } from "zod";
2
+ export declare const textSendSchema: z.ZodObject<{
3
+ to: z.ZodString;
4
+ message: z.ZodString;
5
+ from: z.ZodOptional<z.ZodString>;
6
+ attachments: z.ZodOptional<z.ZodArray<z.ZodString>>;
7
+ }, z.core.$loose>;
8
+ export declare const textReactSchema: z.ZodObject<{
9
+ message_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
10
+ to: z.ZodOptional<z.ZodNullable<z.ZodString>>;
11
+ from: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12
+ message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
13
+ reaction: z.ZodEnum<{
14
+ love: "love";
15
+ thumbsup: "thumbsup";
16
+ thumbsdown: "thumbsdown";
17
+ haha: "haha";
18
+ emphasized: "emphasized";
19
+ questioned: "questioned";
20
+ }>;
21
+ }, z.core.$loose>;
22
+ export type TextSendParams = z.infer<typeof textSendSchema>;
23
+ export type TextReactParams = z.infer<typeof textReactSchema>;
24
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/schemas/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc;;;;;iBAOf,CAAC;AAEb,eAAO,MAAM,eAAe;;;;;;;;;;;;;iBAQlB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC5D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { z } from "zod";
2
+ export const textSendSchema = z
3
+ .object({
4
+ to: z.string(),
5
+ message: z.string(),
6
+ from: z.string().optional(),
7
+ attachments: z.array(z.string()).max(3).optional(),
8
+ })
9
+ .loose();
10
+ export const textReactSchema = z
11
+ .object({
12
+ message_id: z.string().nullable().optional(),
13
+ to: z.string().nullable().optional(),
14
+ from: z.string().nullable().optional(),
15
+ message: z.string().nullable().optional(),
16
+ reaction: z.enum(["love", "thumbsup", "thumbsdown", "haha", "emphasized", "questioned"]),
17
+ })
18
+ .loose();
@@ -0,0 +1,5 @@
1
+ import { z } from "zod";
2
+ export declare const voicePlaySchema: z.ZodObject<{
3
+ audio_url: z.ZodString;
4
+ }, z.core.$loose>;
5
+ //# sourceMappingURL=voice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../src/schemas/voice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;iBAA8C,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { z } from "zod";
2
+ export const voicePlaySchema = z.object({ audio_url: z.string() }).loose();
@@ -0,0 +1,31 @@
1
+ import { z } from "zod";
2
+ export declare const whatsappSendSchema: z.ZodObject<{
3
+ to: z.ZodString;
4
+ message: z.ZodString;
5
+ from: z.ZodOptional<z.ZodString>;
6
+ fallback: z.ZodOptional<z.ZodObject<{
7
+ when: z.ZodArray<z.ZodEnum<{
8
+ whatsapp_unsupported: "whatsapp_unsupported";
9
+ whatsapp_fails: "whatsapp_fails";
10
+ }>>;
11
+ from: z.ZodOptional<z.ZodString>;
12
+ }, z.core.$strip>>;
13
+ attachments: z.ZodOptional<z.ZodArray<z.ZodString>>;
14
+ }, z.core.$loose>;
15
+ export declare const whatsappTypingSchema: z.ZodObject<{
16
+ to: z.ZodString;
17
+ action: z.ZodEnum<{
18
+ start: "start";
19
+ stop: "stop";
20
+ }>;
21
+ from: z.ZodOptional<z.ZodString>;
22
+ }, z.core.$loose>;
23
+ export declare const whatsappReactSchema: z.ZodObject<{
24
+ to: z.ZodString;
25
+ reaction: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26
+ message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
27
+ }, z.core.$loose>;
28
+ export type WhatsappSendParams = z.infer<typeof whatsappSendSchema>;
29
+ export type WhatsappTypingParams = z.infer<typeof whatsappTypingSchema>;
30
+ export type WhatsappReactParams = z.infer<typeof whatsappReactSchema>;
31
+ //# sourceMappingURL=whatsapp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp.d.ts","sourceRoot":"","sources":["../../src/schemas/whatsapp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;iBAarB,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;;;;;iBAMvB,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;iBAMtB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACpE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACxE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { z } from "zod";
2
+ export const whatsappSendSchema = z
3
+ .object({
4
+ to: z.string(),
5
+ message: z.string(),
6
+ from: z.string().optional(),
7
+ fallback: z
8
+ .object({
9
+ when: z.array(z.enum(["whatsapp_unsupported", "whatsapp_fails"])),
10
+ from: z.string().optional(),
11
+ })
12
+ .optional(),
13
+ attachments: z.array(z.string()).optional(),
14
+ })
15
+ .loose();
16
+ export const whatsappTypingSchema = z
17
+ .object({
18
+ to: z.string(),
19
+ action: z.enum(["start", "stop"]),
20
+ from: z.string().optional(),
21
+ })
22
+ .loose();
23
+ export const whatsappReactSchema = z
24
+ .object({
25
+ to: z.string(),
26
+ reaction: z.string().nullable().optional(),
27
+ message: z.string().nullable().optional(),
28
+ })
29
+ .loose();
@@ -0,0 +1,3 @@
1
+ export * from "./responses.js";
2
+ export * from "./webhooks.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./responses.js";
2
+ export * from "./webhooks.js";
@@ -0,0 +1,8 @@
1
+ /** Metadata included with every API response */
2
+ export interface ResponseMetadata {
3
+ id: string;
4
+ timestamp: string;
5
+ api_version: string;
6
+ object: string;
7
+ }
8
+ //# sourceMappingURL=responses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/types/responses.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ /** Webhook event types (v2 format) */
2
+ export type WebhookEventType = "text.incoming.sms" | "text.incoming.mms" | "text.delivery.confirmed" | "text.delivery.failed" | "imessage.incoming" | "numbers.substitution" | "otp.reverse.verified" | "email.incoming" | "identity.verification_session.started" | "identity.verification_session.processing" | "identity.verification_session.verified" | "identity.verification_session.failed" | "identity.verification_session.requires_input" | "identity.verification_session.manually_approved" | "identity.verification_session.manually_denied" | "identity.verification_report.generated";
3
+ export interface WebhookEventBase {
4
+ id: string;
5
+ type: WebhookEventType;
6
+ timestamp: number;
7
+ api_version: string;
8
+ data: Record<string, unknown>;
9
+ }
10
+ //# sourceMappingURL=webhooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/types/webhooks.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,MAAM,MAAM,gBAAgB,GACxB,mBAAmB,GACnB,mBAAmB,GACnB,yBAAyB,GACzB,sBAAsB,GACtB,mBAAmB,GACnB,sBAAsB,GACtB,sBAAsB,GACtB,gBAAgB,GAChB,uCAAuC,GACvC,0CAA0C,GAC1C,wCAAwC,GACxC,sCAAsC,GACtC,8CAA8C,GAC9C,iDAAiD,GACjD,+CAA+C,GAC/C,wCAAwC,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export declare class ContiguityError extends Error {
2
+ readonly status?: number | undefined;
3
+ readonly code?: string | undefined;
4
+ constructor(message: string, status?: number | undefined, code?: string | undefined);
5
+ }
6
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAgB,SAAQ,KAAK;aAGlB,MAAM,CAAC,EAAE,MAAM;aACf,IAAI,CAAC,EAAE,MAAM;gBAF7B,OAAO,EAAE,MAAM,EACC,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,IAAI,CAAC,EAAE,MAAM,YAAA;CAMpC"}
@@ -0,0 +1,11 @@
1
+ export class ContiguityError extends Error {
2
+ status;
3
+ code;
4
+ constructor(message, status, code) {
5
+ super(message);
6
+ this.status = status;
7
+ this.code = code;
8
+ this.name = "ContiguityError";
9
+ Object.setPrototypeOf(this, ContiguityError.prototype);
10
+ }
11
+ }
@@ -1,6 +1,27 @@
1
- import { z } from "zod";
2
- /**
3
- * Standard request function factory - reduces duplication across services
4
- */
5
- export declare function createRequestFunction<TRequest extends z.ZodType, TResponse extends z.ZodType, TRawResponse extends z.ZodType>(requestSchema: TRequest, responseSchema: TResponse, rawResponseSchema: TRawResponse, endpoint: string, method?: 'GET' | 'POST' | 'PUT' | 'DELETE'): (this: any, params?: z.infer<TRequest>) => Promise<any>;
1
+ declare const BASE_URLS: {
2
+ readonly send: "https://api.contiguity.com/send";
3
+ readonly otp: "https://api.contiguity.com/otp";
4
+ readonly domains: "https://api.contiguity.com/domains";
5
+ readonly numbers: "https://api.contiguity.com/numbers";
6
+ readonly conversations: "https://api.contiguity.com/conversations";
7
+ readonly voice: "https://api.contiguity.com/voice";
8
+ };
9
+ export type ApiBase = keyof typeof BASE_URLS;
10
+ export interface RequestConfig {
11
+ token: string;
12
+ base: ApiBase;
13
+ debug?: boolean;
14
+ }
15
+ export declare function request<T = Record<string, unknown>>(config: RequestConfig, path: string, options?: {
16
+ method?: "GET" | "POST" | "DELETE";
17
+ body?: Record<string, unknown>;
18
+ }): Promise<T & {
19
+ metadata: {
20
+ id: string;
21
+ timestamp: string;
22
+ api_version: string;
23
+ object: string;
24
+ };
25
+ }>;
26
+ export {};
6
27
  //# sourceMappingURL=request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/utils/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,SAAS,CAAC,CAAC,OAAO,EAAE,SAAS,SAAS,CAAC,CAAC,OAAO,EAAE,YAAY,SAAS,CAAC,CAAC,OAAO,EACzH,aAAa,EAAE,QAAQ,EACvB,cAAc,EAAE,SAAS,EACzB,iBAAiB,EAAE,YAAY,EAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAiB,IAE5B,MAAM,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAG,OAAO,CAAC,GAAG,CAAC,CA8C7E"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/utils/request.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,SAAS;;;;;;;CAOL,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,SAAS,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrD,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IACL,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7B,GACP,OAAO,CAAC,CAAC,GAAG;IAAE,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,CAwBnG"}
@@ -1,47 +1,33 @@
1
- /**
2
- * Standard request function factory - reduces duplication across services
3
- */
4
- export function createRequestFunction(requestSchema, responseSchema, rawResponseSchema, endpoint, method = 'POST') {
5
- return async function (params) {
6
- let validatedParams;
7
- let url = endpoint;
8
- let body;
9
- if (params !== undefined) {
10
- validatedParams = requestSchema.parse(params);
11
- // Handle path parameters (for endpoints with {param})
12
- if (endpoint.includes('{') && endpoint.includes('}')) {
13
- // Extract path parameter name (e.g., "{number}" -> "number")
14
- const pathParamMatch = endpoint.match(/\{(\w+)\}/);
15
- if (pathParamMatch && pathParamMatch[1] && validatedParams && typeof validatedParams === 'object') {
16
- const pathParam = pathParamMatch[1];
17
- const pathValue = validatedParams[pathParam];
18
- if (pathValue) {
19
- url = endpoint.replace(`{${pathParam}}`, encodeURIComponent(pathValue));
20
- // Remove path param from body
21
- const bodyParams = { ...validatedParams };
22
- delete bodyParams[pathParam];
23
- // Only set body if there are remaining params and not GET/DELETE
24
- if (Object.keys(bodyParams).length > 0 && method !== 'GET' && method !== 'DELETE') {
25
- body = JSON.stringify(bodyParams);
26
- }
27
- }
28
- }
29
- }
30
- else if (method !== 'GET' && method !== 'DELETE') {
31
- // For non-path-param endpoints, use all params as body
32
- body = JSON.stringify(validatedParams);
33
- }
34
- }
35
- const response = await this.request(url, {
36
- method,
37
- ...(body && { body })
38
- });
39
- return this.parse({
40
- response,
41
- schemas: {
42
- sdk: responseSchema,
43
- raw: rawResponseSchema
44
- }
45
- });
1
+ import { transformResponse } from "./response.js";
2
+ import { ContiguityError } from "./errors.js";
3
+ const BASE_URLS = {
4
+ send: "https://api.contiguity.com/send",
5
+ otp: "https://api.contiguity.com/otp",
6
+ domains: "https://api.contiguity.com/domains",
7
+ numbers: "https://api.contiguity.com/numbers",
8
+ conversations: "https://api.contiguity.com/conversations",
9
+ voice: "https://api.contiguity.com/voice",
10
+ };
11
+ export async function request(config, path, options = {}) {
12
+ const { token, base, debug } = config;
13
+ const url = `${BASE_URLS[base]}${path}`;
14
+ const headers = {
15
+ "Content-Type": "application/json",
16
+ Authorization: `Token ${token}`,
46
17
  };
18
+ if (debug) {
19
+ console.debug("[Contiguity]", options.method ?? "GET", url, options.body ?? "");
20
+ }
21
+ const res = await fetch(url, {
22
+ method: options.method ?? "GET",
23
+ headers,
24
+ body: options.body ? JSON.stringify(options.body) : undefined,
25
+ });
26
+ const json = (await res.json());
27
+ if (!res.ok) {
28
+ const errMsg = json.data?.error ?? json.object ?? "Unknown error";
29
+ const status = json.data?.status ?? res.status;
30
+ throw new ContiguityError(errMsg, status);
31
+ }
32
+ return transformResponse(json);
47
33
  }
@@ -0,0 +1,12 @@
1
+ import type { ResponseMetadata } from "../types/responses.js";
2
+ export interface RawApiResponse {
3
+ id: string;
4
+ timestamp: number;
5
+ api_version: string;
6
+ object: string;
7
+ data: Record<string, unknown>;
8
+ }
9
+ export declare function transformResponse(res: RawApiResponse): Record<string, unknown> & {
10
+ metadata: ResponseMetadata;
11
+ };
12
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,QAAQ,EAAE,gBAAgB,CAAA;CAAE,CAQ/G"}
@@ -0,0 +1,9 @@
1
+ export function transformResponse(res) {
2
+ const metadata = {
3
+ id: res.id,
4
+ timestamp: String(res.timestamp),
5
+ api_version: res.api_version,
6
+ object: res.object,
7
+ };
8
+ return { ...res.data, metadata };
9
+ }
@@ -0,0 +1,6 @@
1
+ import type { WebhookEventBase } from "../types/webhooks.js";
2
+ /**
3
+ * Parse raw webhook body (v2 format) into a typed event.
4
+ */
5
+ export declare function parseWebhookPayload(raw_body: string | Buffer): WebhookEventBase;
6
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/webhook/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,sBAAsB,CAAC;AAE/E;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAO/E"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Parse raw webhook body (v2 format) into a typed event.
3
+ */
4
+ export function parseWebhookPayload(raw_body) {
5
+ const str = typeof raw_body === "string" ? raw_body : raw_body.toString("utf-8");
6
+ const event = JSON.parse(str);
7
+ if (typeof event.id !== "string" || typeof event.type !== "string" || typeof event.timestamp !== "number") {
8
+ throw new Error("Invalid webhook payload: missing id, type, or timestamp");
9
+ }
10
+ return event;
11
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Verify webhook signature (HMAC-SHA256, format t=timestamp,v1=hex).
3
+ * Use raw body as received — do not re-serialize JSON.
4
+ */
5
+ export declare function verifyWebhookSignature(raw_body: string | Buffer, signature_header: string | null | undefined, secret: string | null | undefined, tolerance_seconds?: number): boolean;
6
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/webhook/verify.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,sBAAsB,CAClC,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC3C,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,iBAAiB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAsBT"}
@@ -0,0 +1,36 @@
1
+ import { createHmac, timingSafeEqual } from "node:crypto";
2
+ /**
3
+ * Verify webhook signature (HMAC-SHA256, format t=timestamp,v1=hex).
4
+ * Use raw body as received — do not re-serialize JSON.
5
+ */
6
+ export function verifyWebhookSignature(raw_body, signature_header, secret, tolerance_seconds) {
7
+ if (!secret || !signature_header || raw_body == null)
8
+ return false;
9
+ const match = signature_header.match(/t=(\d+),v1=([a-f0-9]+)/);
10
+ if (!match)
11
+ return false;
12
+ const [, t, v1] = match;
13
+ if (!t || !v1)
14
+ return false;
15
+ const body_str = typeof raw_body === "string" ? raw_body : raw_body.toString("utf-8");
16
+ const signed_payload = `${t}.${body_str}`;
17
+ const expected = createHmac("sha256", secret).update(signed_payload).digest("hex");
18
+ if (v1.length !== expected.length)
19
+ return false;
20
+ try {
21
+ if (!timingSafeEqual(Buffer.from(v1, "hex"), Buffer.from(expected, "hex")))
22
+ return false;
23
+ }
24
+ catch {
25
+ return false;
26
+ }
27
+ if (tolerance_seconds != null) {
28
+ const ts = parseInt(t, 10);
29
+ if (Number.isNaN(ts))
30
+ return false;
31
+ const now = Math.floor(Date.now() / 1000);
32
+ if (Math.abs(now - ts) > tolerance_seconds)
33
+ return false;
34
+ }
35
+ return true;
36
+ }
package/package.json CHANGED
@@ -1,49 +1,46 @@
1
1
  {
2
2
  "name": "contiguity",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
+ "description": "Contiguity JavaScript/TypeScript SDK",
4
5
  "type": "module",
5
- "description": "Contiguity's official TypeScript SDK",
6
- "author": "Contiguity",
7
- "license": "MIT",
8
- "main": "./dist/index.js",
9
- "module": "./dist/index.js",
10
- "types": "./dist/index.d.ts",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "default": "./dist/index.js"
13
+ }
14
+ },
11
15
  "files": [
12
- "dist/**/*",
13
- "README.md",
14
- "LICENSE.md"
16
+ "dist"
15
17
  ],
18
+ "scripts": {
19
+ "build": "tsc",
20
+ "test": "bun run build && vitest run",
21
+ "prepublishOnly": "tsc",
22
+ "pack": "bun pm pack",
23
+ "publish:dry": "bun run build && bun publish --dry-run",
24
+ "publish": "bun run build && npm publish"
25
+ },
16
26
  "keywords": [
17
27
  "contiguity",
18
28
  "sms",
19
29
  "email",
20
- "whatsapp",
21
- "imessage",
22
30
  "otp",
23
- "send texts",
24
- "api",
25
- "sdk"
31
+ "imessage",
32
+ "whatsapp"
26
33
  ],
27
- "homepage": "https://contiguity.com",
28
- "bugs": {
29
- "url": "https://github.com/contiguity/javascript/issues"
30
- },
31
- "repository": {
32
- "type": "git",
33
- "url": "https://github.com/contiguity/javascript.git"
34
- },
35
- "documentation": "https://docs.contiguity.com/sdk/js/overview",
36
- "scripts": {
37
- "publish": "bun publish --access public",
38
- "dev": "bun run src/index.ts",
39
- "build": "bunx tsc && bun build src/index.ts --outdir=dist --format=esm --target=node",
40
- "typecheck": "bunx tsc --noEmit",
41
- "update-deps": "npx npm-check-updates"
42
- },
34
+ "license": "MIT",
43
35
  "dependencies": {
44
- "zod": "^4.0.17"
36
+ "zod": "^4.3.6"
45
37
  },
46
38
  "devDependencies": {
47
- "typescript": "^5.9.2"
39
+ "@types/node": "^22.19.11",
40
+ "typescript": "^5.9.3",
41
+ "vitest": "^3.2.4"
42
+ },
43
+ "engines": {
44
+ "node": ">=18"
48
45
  }
49
46
  }
package/LICENSE.md DELETED
@@ -1,8 +0,0 @@
1
- Copyright 2025 Contiguity LLC
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
-
5
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
-
7
- THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8
-
@@ -1,25 +0,0 @@
1
- import { z } from "zod";
2
- export interface ContiguityClientOptions {
3
- debug?: boolean;
4
- }
5
- /**
6
- * Contiguity API client with request functionality
7
- */
8
- export declare class ContiguityClient {
9
- protected readonly token: string;
10
- constructor(token: string, options?: ContiguityClientOptions);
11
- /**
12
- * Make an authenticated request to the Contiguity API
13
- */
14
- request(endpoint: string, options?: RequestInit): Promise<any>;
15
- /**
16
- * Parse and normalize API responses to flattened format with metadata
17
- * This method handles different response formats from the Contiguity API
18
- * and normalizes them to a consistent flattened format.
19
- */
20
- parse<T extends z.ZodType>({ response, schema }: {
21
- response: any;
22
- schema: T;
23
- }): any;
24
- }
25
- //# sourceMappingURL=fetch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/client/fetch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,MAAM,WAAW,uBAAuB;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,gBAAgB;IACzB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAErB,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B;IAYhE;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,GAAG,CAAC;IAiDxE;;;;OAIG;IACH,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EACvB,QAAQ,EACR,MAAM,EACT,EAAE;QACC,QAAQ,EAAE,GAAG,CAAC;QACd,MAAM,EAAE,CAAC,CAAC;KACb,GAAG,GAAG;CAeV"}