contiguity 0.0.9 → 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 (401) hide show
  1. package/LICENSE.md +8 -0
  2. package/dist/.DS_Store +0 -0
  3. package/dist/client/fetch.d.ts +25 -0
  4. package/dist/client/fetch.d.ts.map +1 -0
  5. package/dist/client/fetch.js +85 -0
  6. package/dist/contiguity.d.ts +81 -0
  7. package/dist/contiguity.d.ts.map +1 -0
  8. package/dist/contiguity.js +106 -0
  9. package/dist/index.d.ts +29 -14
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +12482 -4
  12. package/dist/services/domains/delete.d.ts +28 -0
  13. package/dist/services/domains/delete.d.ts.map +1 -0
  14. package/dist/services/domains/delete.js +37 -0
  15. package/dist/services/domains/get.d.ts +98 -0
  16. package/dist/services/domains/get.d.ts.map +1 -0
  17. package/dist/services/domains/get.js +89 -0
  18. package/dist/services/domains/index.d.ts +34 -0
  19. package/dist/services/domains/index.d.ts.map +1 -0
  20. package/dist/services/domains/index.js +37 -0
  21. package/dist/services/domains/list.d.ts +36 -0
  22. package/dist/services/domains/list.d.ts.map +1 -0
  23. package/dist/services/domains/list.js +42 -0
  24. package/dist/services/domains/register.d.ts +67 -0
  25. package/dist/services/domains/register.d.ts.map +1 -0
  26. package/dist/services/domains/register.js +67 -0
  27. package/dist/services/email/index.d.ts +17 -0
  28. package/dist/services/email/index.d.ts.map +1 -0
  29. package/dist/services/email/index.js +16 -0
  30. package/dist/services/email/send.d.ts +66 -0
  31. package/dist/services/email/send.d.ts.map +1 -0
  32. package/dist/services/email/send.js +78 -0
  33. package/dist/services/imessage/available.d.ts +14 -0
  34. package/dist/services/imessage/available.d.ts.map +1 -0
  35. package/dist/services/imessage/available.js +23 -0
  36. package/dist/services/imessage/index.d.ts +31 -0
  37. package/dist/services/imessage/index.d.ts.map +1 -0
  38. package/dist/services/imessage/index.js +30 -0
  39. package/dist/services/imessage/send.d.ts +57 -0
  40. package/dist/services/imessage/send.d.ts.map +1 -0
  41. package/dist/services/imessage/send.js +60 -0
  42. package/dist/services/imessage/typing.d.ts +40 -0
  43. package/dist/services/imessage/typing.d.ts.map +1 -0
  44. package/dist/services/imessage/typing.js +49 -0
  45. package/dist/services/lease/available.d.ts +193 -0
  46. package/dist/services/lease/available.d.ts.map +1 -0
  47. package/dist/services/lease/available.js +103 -0
  48. package/dist/services/lease/configure.d.ts +38 -0
  49. package/dist/services/lease/configure.d.ts.map +1 -0
  50. package/dist/services/lease/configure.js +40 -0
  51. package/dist/services/lease/create.d.ts +108 -0
  52. package/dist/services/lease/create.d.ts.map +1 -0
  53. package/dist/services/lease/create.js +78 -0
  54. package/dist/services/lease/details.d.ts +133 -0
  55. package/dist/services/lease/details.d.ts.map +1 -0
  56. package/dist/services/lease/details.js +65 -0
  57. package/dist/services/lease/get.d.ts +96 -0
  58. package/dist/services/lease/get.d.ts.map +1 -0
  59. package/dist/services/lease/get.js +68 -0
  60. package/dist/services/lease/index.d.ts +57 -0
  61. package/dist/services/lease/index.d.ts.map +1 -0
  62. package/dist/services/lease/index.js +58 -0
  63. package/dist/services/lease/leased.d.ts +228 -0
  64. package/dist/services/lease/leased.d.ts.map +1 -0
  65. package/dist/services/lease/leased.js +108 -0
  66. package/dist/services/lease/terminate.d.ts +71 -0
  67. package/dist/services/lease/terminate.d.ts.map +1 -0
  68. package/dist/services/lease/terminate.js +78 -0
  69. package/dist/services/otp/index.d.ts +33 -0
  70. package/dist/services/otp/index.d.ts.map +1 -0
  71. package/dist/services/otp/index.js +37 -0
  72. package/dist/services/otp/new.d.ts +29 -0
  73. package/dist/services/otp/new.d.ts.map +1 -0
  74. package/dist/services/otp/new.js +44 -0
  75. package/dist/services/otp/resend.d.ts +22 -0
  76. package/dist/services/otp/resend.d.ts.map +1 -0
  77. package/dist/services/otp/resend.js +31 -0
  78. package/dist/services/otp/send.d.ts +26 -0
  79. package/dist/services/otp/send.d.ts.map +1 -0
  80. package/dist/services/otp/send.js +38 -0
  81. package/dist/services/otp/verify.d.ts +24 -0
  82. package/dist/services/otp/verify.d.ts.map +1 -0
  83. package/dist/services/otp/verify.js +34 -0
  84. package/dist/services/text/index.d.ts +17 -0
  85. package/dist/services/text/index.d.ts.map +1 -0
  86. package/dist/services/text/index.js +16 -0
  87. package/dist/services/text/send.d.ts +25 -0
  88. package/dist/services/text/send.d.ts.map +1 -0
  89. package/dist/services/text/send.js +37 -0
  90. package/dist/services/whatsapp/index.d.ts +24 -0
  91. package/dist/services/whatsapp/index.d.ts.map +1 -0
  92. package/dist/services/whatsapp/index.js +23 -0
  93. package/dist/services/whatsapp/send.d.ts +57 -0
  94. package/dist/services/whatsapp/send.d.ts.map +1 -0
  95. package/dist/services/whatsapp/send.js +60 -0
  96. package/dist/services/whatsapp/typing.d.ts +40 -0
  97. package/dist/services/whatsapp/typing.d.ts.map +1 -0
  98. package/dist/services/whatsapp/typing.js +49 -0
  99. package/dist/types/base.d.ts +17 -0
  100. package/dist/types/base.d.ts.map +1 -0
  101. package/dist/types/base.js +20 -0
  102. package/dist/types/common.d.ts +56 -0
  103. package/dist/types/common.d.ts.map +1 -0
  104. package/dist/types/common.js +48 -0
  105. package/dist/types/error.d.ts +37 -0
  106. package/dist/types/error.d.ts.map +1 -0
  107. package/dist/types/error.js +54 -0
  108. package/dist/types/metadata.d.ts +10 -0
  109. package/dist/types/metadata.d.ts.map +1 -0
  110. package/dist/types/response.d.ts +10 -0
  111. package/dist/types/response.d.ts.map +1 -0
  112. package/dist/types/response.js +10 -0
  113. package/dist/utils/parse.d.ts +8 -0
  114. package/dist/utils/parse.d.ts.map +1 -0
  115. package/dist/utils/parse.js +36 -0
  116. package/dist/utils/request.d.ts +5 -27
  117. package/dist/utils/request.d.ts.map +1 -1
  118. package/dist/utils/request.js +45 -39
  119. package/package.json +33 -30
  120. package/dist/cjs/client.d.ts +0 -27
  121. package/dist/cjs/client.d.ts.map +0 -1
  122. package/dist/cjs/client.js +0 -43
  123. package/dist/cjs/index.d.ts +0 -13
  124. package/dist/cjs/index.d.ts.map +0 -1
  125. package/dist/cjs/index.js +0 -11
  126. package/dist/cjs/resources/conversations.d.ts +0 -30
  127. package/dist/cjs/resources/conversations.d.ts.map +0 -1
  128. package/dist/cjs/resources/conversations.js +0 -24
  129. package/dist/cjs/resources/domains.d.ts +0 -39
  130. package/dist/cjs/resources/domains.d.ts.map +0 -1
  131. package/dist/cjs/resources/domains.js +0 -28
  132. package/dist/cjs/resources/email.d.ts +0 -17
  133. package/dist/cjs/resources/email.d.ts.map +0 -1
  134. package/dist/cjs/resources/email.js +0 -19
  135. package/dist/cjs/resources/imessage.d.ts +0 -49
  136. package/dist/cjs/resources/imessage.d.ts.map +0 -1
  137. package/dist/cjs/resources/imessage.js +0 -42
  138. package/dist/cjs/resources/lease.d.ts +0 -55
  139. package/dist/cjs/resources/lease.d.ts.map +0 -1
  140. package/dist/cjs/resources/lease.js +0 -34
  141. package/dist/cjs/resources/otp.d.ts +0 -63
  142. package/dist/cjs/resources/otp.d.ts.map +0 -1
  143. package/dist/cjs/resources/otp.js +0 -48
  144. package/dist/cjs/resources/text.d.ts +0 -17
  145. package/dist/cjs/resources/text.d.ts.map +0 -1
  146. package/dist/cjs/resources/text.js +0 -19
  147. package/dist/cjs/resources/voice.d.ts +0 -129
  148. package/dist/cjs/resources/voice.d.ts.map +0 -1
  149. package/dist/cjs/resources/voice.js +0 -95
  150. package/dist/cjs/resources/webhook.d.ts +0 -21
  151. package/dist/cjs/resources/webhook.d.ts.map +0 -1
  152. package/dist/cjs/resources/webhook.js +0 -47
  153. package/dist/cjs/resources/whatsapp.d.ts +0 -33
  154. package/dist/cjs/resources/whatsapp.d.ts.map +0 -1
  155. package/dist/cjs/resources/whatsapp.js +0 -32
  156. package/dist/cjs/schemas/conversations.d.ts +0 -5
  157. package/dist/cjs/schemas/conversations.d.ts.map +0 -1
  158. package/dist/cjs/schemas/conversations.js +0 -5
  159. package/dist/cjs/schemas/domains.d.ts +0 -7
  160. package/dist/cjs/schemas/domains.d.ts.map +0 -1
  161. package/dist/cjs/schemas/domains.js +0 -10
  162. package/dist/cjs/schemas/email.d.ts +0 -16
  163. package/dist/cjs/schemas/email.d.ts.map +0 -1
  164. package/dist/cjs/schemas/email.js +0 -16
  165. package/dist/cjs/schemas/imessage.d.ts +0 -25
  166. package/dist/cjs/schemas/imessage.d.ts.map +0 -1
  167. package/dist/cjs/schemas/imessage.js +0 -25
  168. package/dist/cjs/schemas/index.d.ts +0 -10
  169. package/dist/cjs/schemas/index.d.ts.map +0 -1
  170. package/dist/cjs/schemas/index.js +0 -25
  171. package/dist/cjs/schemas/leases.d.ts +0 -9
  172. package/dist/cjs/schemas/leases.d.ts.map +0 -1
  173. package/dist/cjs/schemas/leases.js +0 -9
  174. package/dist/cjs/schemas/otp.d.ts +0 -25
  175. package/dist/cjs/schemas/otp.d.ts.map +0 -1
  176. package/dist/cjs/schemas/otp.js +0 -16
  177. package/dist/cjs/schemas/text.d.ts +0 -9
  178. package/dist/cjs/schemas/text.d.ts.map +0 -1
  179. package/dist/cjs/schemas/text.js +0 -12
  180. package/dist/cjs/schemas/voice.d.ts +0 -5
  181. package/dist/cjs/schemas/voice.d.ts.map +0 -1
  182. package/dist/cjs/schemas/voice.js +0 -5
  183. package/dist/cjs/schemas/whatsapp.d.ts +0 -25
  184. package/dist/cjs/schemas/whatsapp.d.ts.map +0 -1
  185. package/dist/cjs/schemas/whatsapp.js +0 -25
  186. package/dist/cjs/types/index.d.ts +0 -3
  187. package/dist/cjs/types/index.d.ts.map +0 -1
  188. package/dist/cjs/types/index.js +0 -18
  189. package/dist/cjs/types/responses.d.ts +0 -8
  190. package/dist/cjs/types/responses.d.ts.map +0 -1
  191. package/dist/cjs/types/responses.js +0 -2
  192. package/dist/cjs/types/webhooks.d.ts +0 -10
  193. package/dist/cjs/types/webhooks.d.ts.map +0 -1
  194. package/dist/cjs/types/webhooks.js +0 -2
  195. package/dist/cjs/utils/errors.d.ts +0 -6
  196. package/dist/cjs/utils/errors.d.ts.map +0 -1
  197. package/dist/cjs/utils/errors.js +0 -15
  198. package/dist/cjs/utils/request.d.ts +0 -27
  199. package/dist/cjs/utils/request.d.ts.map +0 -1
  200. package/dist/cjs/utils/request.js +0 -36
  201. package/dist/cjs/utils/response.d.ts +0 -12
  202. package/dist/cjs/utils/response.d.ts.map +0 -1
  203. package/dist/cjs/utils/response.js +0 -12
  204. package/dist/cjs/webhook/parse.d.ts +0 -6
  205. package/dist/cjs/webhook/parse.d.ts.map +0 -1
  206. package/dist/cjs/webhook/parse.js +0 -14
  207. package/dist/cjs/webhook/verify.d.ts +0 -6
  208. package/dist/cjs/webhook/verify.d.ts.map +0 -1
  209. package/dist/cjs/webhook/verify.js +0 -39
  210. package/dist/client.d.ts +0 -27
  211. package/dist/client.d.ts.map +0 -1
  212. package/dist/client.js +0 -50
  213. package/dist/esm/client.d.ts +0 -27
  214. package/dist/esm/client.d.ts.map +0 -1
  215. package/dist/esm/client.js +0 -39
  216. package/dist/esm/index.d.ts +0 -13
  217. package/dist/esm/index.d.ts.map +0 -1
  218. package/dist/esm/index.js +0 -4
  219. package/dist/esm/resources/conversations.d.ts +0 -30
  220. package/dist/esm/resources/conversations.d.ts.map +0 -1
  221. package/dist/esm/resources/conversations.js +0 -20
  222. package/dist/esm/resources/domains.d.ts +0 -39
  223. package/dist/esm/resources/domains.d.ts.map +0 -1
  224. package/dist/esm/resources/domains.js +0 -24
  225. package/dist/esm/resources/email.d.ts +0 -17
  226. package/dist/esm/resources/email.d.ts.map +0 -1
  227. package/dist/esm/resources/email.js +0 -15
  228. package/dist/esm/resources/imessage.d.ts +0 -49
  229. package/dist/esm/resources/imessage.d.ts.map +0 -1
  230. package/dist/esm/resources/imessage.js +0 -38
  231. package/dist/esm/resources/lease.d.ts +0 -55
  232. package/dist/esm/resources/lease.d.ts.map +0 -1
  233. package/dist/esm/resources/lease.js +0 -30
  234. package/dist/esm/resources/otp.d.ts +0 -63
  235. package/dist/esm/resources/otp.d.ts.map +0 -1
  236. package/dist/esm/resources/otp.js +0 -44
  237. package/dist/esm/resources/text.d.ts +0 -17
  238. package/dist/esm/resources/text.d.ts.map +0 -1
  239. package/dist/esm/resources/text.js +0 -15
  240. package/dist/esm/resources/voice.d.ts +0 -129
  241. package/dist/esm/resources/voice.d.ts.map +0 -1
  242. package/dist/esm/resources/voice.js +0 -91
  243. package/dist/esm/resources/webhook.d.ts +0 -21
  244. package/dist/esm/resources/webhook.d.ts.map +0 -1
  245. package/dist/esm/resources/webhook.js +0 -43
  246. package/dist/esm/resources/whatsapp.d.ts +0 -33
  247. package/dist/esm/resources/whatsapp.d.ts.map +0 -1
  248. package/dist/esm/resources/whatsapp.js +0 -28
  249. package/dist/esm/schemas/conversations.d.ts +0 -5
  250. package/dist/esm/schemas/conversations.d.ts.map +0 -1
  251. package/dist/esm/schemas/conversations.js +0 -2
  252. package/dist/esm/schemas/domains.d.ts +0 -7
  253. package/dist/esm/schemas/domains.d.ts.map +0 -1
  254. package/dist/esm/schemas/domains.js +0 -7
  255. package/dist/esm/schemas/email.d.ts +0 -16
  256. package/dist/esm/schemas/email.d.ts.map +0 -1
  257. package/dist/esm/schemas/email.js +0 -13
  258. package/dist/esm/schemas/imessage.d.ts +0 -25
  259. package/dist/esm/schemas/imessage.d.ts.map +0 -1
  260. package/dist/esm/schemas/imessage.js +0 -22
  261. package/dist/esm/schemas/index.d.ts +0 -10
  262. package/dist/esm/schemas/index.d.ts.map +0 -1
  263. package/dist/esm/schemas/index.js +0 -9
  264. package/dist/esm/schemas/leases.d.ts +0 -9
  265. package/dist/esm/schemas/leases.d.ts.map +0 -1
  266. package/dist/esm/schemas/leases.js +0 -6
  267. package/dist/esm/schemas/otp.d.ts +0 -25
  268. package/dist/esm/schemas/otp.d.ts.map +0 -1
  269. package/dist/esm/schemas/otp.js +0 -13
  270. package/dist/esm/schemas/text.d.ts +0 -9
  271. package/dist/esm/schemas/text.d.ts.map +0 -1
  272. package/dist/esm/schemas/text.js +0 -9
  273. package/dist/esm/schemas/voice.d.ts +0 -5
  274. package/dist/esm/schemas/voice.d.ts.map +0 -1
  275. package/dist/esm/schemas/voice.js +0 -2
  276. package/dist/esm/schemas/whatsapp.d.ts +0 -25
  277. package/dist/esm/schemas/whatsapp.d.ts.map +0 -1
  278. package/dist/esm/schemas/whatsapp.js +0 -22
  279. package/dist/esm/types/index.d.ts +0 -3
  280. package/dist/esm/types/index.d.ts.map +0 -1
  281. package/dist/esm/types/index.js +0 -2
  282. package/dist/esm/types/responses.d.ts +0 -8
  283. package/dist/esm/types/responses.d.ts.map +0 -1
  284. package/dist/esm/types/webhooks.d.ts +0 -10
  285. package/dist/esm/types/webhooks.d.ts.map +0 -1
  286. package/dist/esm/types/webhooks.js +0 -1
  287. package/dist/esm/utils/errors.d.ts +0 -6
  288. package/dist/esm/utils/errors.d.ts.map +0 -1
  289. package/dist/esm/utils/errors.js +0 -11
  290. package/dist/esm/utils/request.d.ts +0 -27
  291. package/dist/esm/utils/request.d.ts.map +0 -1
  292. package/dist/esm/utils/request.js +0 -33
  293. package/dist/esm/utils/response.d.ts +0 -12
  294. package/dist/esm/utils/response.d.ts.map +0 -1
  295. package/dist/esm/utils/response.js +0 -9
  296. package/dist/esm/webhook/parse.d.ts +0 -6
  297. package/dist/esm/webhook/parse.d.ts.map +0 -1
  298. package/dist/esm/webhook/parse.js +0 -11
  299. package/dist/esm/webhook/verify.d.ts +0 -6
  300. package/dist/esm/webhook/verify.d.ts.map +0 -1
  301. package/dist/esm/webhook/verify.js +0 -36
  302. package/dist/resources/agreements.d.ts +0 -14
  303. package/dist/resources/agreements.d.ts.map +0 -1
  304. package/dist/resources/agreements.js +0 -10
  305. package/dist/resources/conversations.d.ts +0 -31
  306. package/dist/resources/conversations.d.ts.map +0 -1
  307. package/dist/resources/conversations.js +0 -21
  308. package/dist/resources/domains.d.ts +0 -39
  309. package/dist/resources/domains.d.ts.map +0 -1
  310. package/dist/resources/domains.js +0 -24
  311. package/dist/resources/email.d.ts +0 -17
  312. package/dist/resources/email.d.ts.map +0 -1
  313. package/dist/resources/email.js +0 -15
  314. package/dist/resources/entitlements.d.ts +0 -38
  315. package/dist/resources/entitlements.d.ts.map +0 -1
  316. package/dist/resources/entitlements.js +0 -19
  317. package/dist/resources/identity.d.ts +0 -56
  318. package/dist/resources/identity.d.ts.map +0 -1
  319. package/dist/resources/identity.js +0 -43
  320. package/dist/resources/imessage.d.ts +0 -70
  321. package/dist/resources/imessage.d.ts.map +0 -1
  322. package/dist/resources/imessage.js +0 -55
  323. package/dist/resources/lease.d.ts +0 -55
  324. package/dist/resources/lease.d.ts.map +0 -1
  325. package/dist/resources/lease.js +0 -30
  326. package/dist/resources/otp.d.ts +0 -63
  327. package/dist/resources/otp.d.ts.map +0 -1
  328. package/dist/resources/otp.js +0 -44
  329. package/dist/resources/product.d.ts +0 -23
  330. package/dist/resources/product.d.ts.map +0 -1
  331. package/dist/resources/product.js +0 -19
  332. package/dist/resources/text.d.ts +0 -56
  333. package/dist/resources/text.d.ts.map +0 -1
  334. package/dist/resources/text.js +0 -41
  335. package/dist/resources/voice.d.ts +0 -129
  336. package/dist/resources/voice.d.ts.map +0 -1
  337. package/dist/resources/voice.js +0 -91
  338. package/dist/resources/webhook.d.ts +0 -21
  339. package/dist/resources/webhook.d.ts.map +0 -1
  340. package/dist/resources/webhook.js +0 -43
  341. package/dist/resources/whatsapp.d.ts +0 -45
  342. package/dist/resources/whatsapp.d.ts.map +0 -1
  343. package/dist/resources/whatsapp.js +0 -39
  344. package/dist/schemas/conversations.d.ts +0 -8
  345. package/dist/schemas/conversations.d.ts.map +0 -1
  346. package/dist/schemas/conversations.js +0 -8
  347. package/dist/schemas/domains.d.ts +0 -7
  348. package/dist/schemas/domains.d.ts.map +0 -1
  349. package/dist/schemas/domains.js +0 -7
  350. package/dist/schemas/email.d.ts +0 -16
  351. package/dist/schemas/email.d.ts.map +0 -1
  352. package/dist/schemas/email.js +0 -22
  353. package/dist/schemas/imessage.d.ts +0 -45
  354. package/dist/schemas/imessage.d.ts.map +0 -1
  355. package/dist/schemas/imessage.js +0 -37
  356. package/dist/schemas/index.d.ts +0 -10
  357. package/dist/schemas/index.d.ts.map +0 -1
  358. package/dist/schemas/index.js +0 -9
  359. package/dist/schemas/leases.d.ts +0 -9
  360. package/dist/schemas/leases.d.ts.map +0 -1
  361. package/dist/schemas/leases.js +0 -6
  362. package/dist/schemas/otp.d.ts +0 -25
  363. package/dist/schemas/otp.d.ts.map +0 -1
  364. package/dist/schemas/otp.js +0 -13
  365. package/dist/schemas/product.d.ts +0 -12
  366. package/dist/schemas/product.d.ts.map +0 -1
  367. package/dist/schemas/product.js +0 -9
  368. package/dist/schemas/text.d.ts +0 -25
  369. package/dist/schemas/text.d.ts.map +0 -1
  370. package/dist/schemas/text.js +0 -19
  371. package/dist/schemas/voice.d.ts +0 -5
  372. package/dist/schemas/voice.d.ts.map +0 -1
  373. package/dist/schemas/voice.js +0 -2
  374. package/dist/schemas/whatsapp.d.ts +0 -32
  375. package/dist/schemas/whatsapp.d.ts.map +0 -1
  376. package/dist/schemas/whatsapp.js +0 -30
  377. package/dist/types/index.d.ts +0 -3
  378. package/dist/types/index.d.ts.map +0 -1
  379. package/dist/types/index.js +0 -2
  380. package/dist/types/responses.d.ts +0 -8
  381. package/dist/types/responses.d.ts.map +0 -1
  382. package/dist/types/responses.js +0 -1
  383. package/dist/types/webhooks.d.ts +0 -48
  384. package/dist/types/webhooks.d.ts.map +0 -1
  385. package/dist/types/webhooks.js +0 -1
  386. package/dist/utils/errors.d.ts +0 -10
  387. package/dist/utils/errors.d.ts.map +0 -1
  388. package/dist/utils/errors.js +0 -13
  389. package/dist/utils/normalize.d.ts +0 -13
  390. package/dist/utils/normalize.d.ts.map +0 -1
  391. package/dist/utils/normalize.js +0 -25
  392. package/dist/utils/response.d.ts +0 -12
  393. package/dist/utils/response.d.ts.map +0 -1
  394. package/dist/utils/response.js +0 -9
  395. package/dist/webhook/parse.d.ts +0 -6
  396. package/dist/webhook/parse.d.ts.map +0 -1
  397. package/dist/webhook/parse.js +0 -11
  398. package/dist/webhook/verify.d.ts +0 -6
  399. package/dist/webhook/verify.d.ts.map +0 -1
  400. package/dist/webhook/verify.js +0 -36
  401. /package/dist/{esm/types/responses.js → types/metadata.js} +0 -0
@@ -0,0 +1,40 @@
1
+ import { z } from "zod";
2
+ export declare const WhatsAppTypingRequest: z.ZodObject<{
3
+ to: z.ZodString;
4
+ from: z.ZodOptional<z.ZodString>;
5
+ action: z.ZodEnum<{
6
+ start: "start";
7
+ stop: "stop";
8
+ }>;
9
+ }, z.core.$strip>;
10
+ export declare const WhatsAppTypingResponse: z.ZodObject<{
11
+ status: z.ZodString;
12
+ }, z.core.$strip>;
13
+ export type WhatsAppTypingParams = z.infer<typeof WhatsAppTypingRequest>;
14
+ export type WhatsAppTypingResponseType = z.infer<typeof WhatsAppTypingResponse>;
15
+ /**
16
+ * Start or stop sending typing indicators over WhatsApp
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * // Start typing indicator
21
+ * const response = await contiguity.whatsapp.typing({
22
+ * to: "+1234567890",
23
+ * action: "start"
24
+ * });
25
+ * console.log(`Typing status: ${response.status}`);
26
+ * ```
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * // Stop typing indicator with specific sender number
31
+ * const response = await contiguity.whatsapp.typing({
32
+ * to: "+1234567890",
33
+ * from: "+15555555555",
34
+ * action: "stop"
35
+ * });
36
+ * console.log(`Typing status: ${response.status}`);
37
+ * ```
38
+ */
39
+ export declare function _whatsAppTyping(this: any, params: WhatsAppTypingParams): Promise<any>;
40
+ //# sourceMappingURL=typing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typing.d.ts","sourceRoot":"","sources":["../../../src/services/whatsapp/typing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,qBAAqB;;;;;;;iBAOhC,CAAA;AAEF,eAAO,MAAM,sBAAsB;;iBAGjC,CAAA;AAKF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACzE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,CAW3F"}
@@ -0,0 +1,49 @@
1
+ import { z } from "zod";
2
+ import { E164PhoneNumber, OptionalSenderNumber, TypingAction } from "@/types/common";
3
+ export const WhatsAppTypingRequest = z.object({
4
+ /** Recipient's WhatsApp number. Must be in E.164 format */
5
+ to: E164PhoneNumber,
6
+ /** Your leased WhatsApp number. If none is provided, we will use a random WhatsApp number of yours */
7
+ from: OptionalSenderNumber,
8
+ /** Whether to start or stop sending typing indicators */
9
+ action: TypingAction
10
+ });
11
+ export const WhatsAppTypingResponse = z.object({
12
+ /** Status of the typing indicator */
13
+ status: z.string(),
14
+ });
15
+ /**
16
+ * Start or stop sending typing indicators over WhatsApp
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * // Start typing indicator
21
+ * const response = await contiguity.whatsapp.typing({
22
+ * to: "+1234567890",
23
+ * action: "start"
24
+ * });
25
+ * console.log(`Typing status: ${response.status}`);
26
+ * ```
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * // Stop typing indicator with specific sender number
31
+ * const response = await contiguity.whatsapp.typing({
32
+ * to: "+1234567890",
33
+ * from: "+15555555555",
34
+ * action: "stop"
35
+ * });
36
+ * console.log(`Typing status: ${response.status}`);
37
+ * ```
38
+ */
39
+ export async function _whatsAppTyping(params) {
40
+ const validatedParams = WhatsAppTypingRequest.parse(params);
41
+ const response = await this.request("/send/whatsapp/typing", {
42
+ method: "POST",
43
+ body: JSON.stringify(validatedParams),
44
+ });
45
+ return this.parse({
46
+ response,
47
+ schema: WhatsAppTypingResponse
48
+ });
49
+ }
@@ -0,0 +1,17 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Base response builder that automatically creates typed responses with metadata
4
+ * This creates flattened responses where the data is combined with metadata
5
+ */
6
+ export declare class BaseResponseBuilder<T extends z.ZodObject<any>> {
7
+ readonly schema: T;
8
+ constructor(schema: T);
9
+ get response(): T;
10
+ get flattened(): z.ZodObject<{
11
+ [x: string]: any;
12
+ }, z.core.$strip>;
13
+ }
14
+ export declare function createResponse<T extends z.ZodObject<any>>(schema: T): BaseResponseBuilder<T>;
15
+ export type BaseResponse<T extends BaseResponseBuilder<any>> = z.infer<T['response']>;
16
+ export type FlattenedResponse<T extends BaseResponseBuilder<any>> = z.infer<T['flattened']>;
17
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/types/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;GAGG;AACH,qBAAa,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;aAC3B,MAAM,EAAE,CAAC;gBAAT,MAAM,EAAE,CAAC;IAErC,IAAI,QAAQ,MAEX;IAED,IAAI,SAAS;;sBAEZ;CACJ;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,0BAEnE;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AACtF,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { ContiguityResponse } from "@/types/response";
2
+ /**
3
+ * Base response builder that automatically creates typed responses with metadata
4
+ * This creates flattened responses where the data is combined with metadata
5
+ */
6
+ export class BaseResponseBuilder {
7
+ schema;
8
+ constructor(schema) {
9
+ this.schema = schema;
10
+ }
11
+ get response() {
12
+ return this.schema;
13
+ }
14
+ get flattened() {
15
+ return ContiguityResponse.extend(this.schema.shape);
16
+ }
17
+ }
18
+ export function createResponse(schema) {
19
+ return new BaseResponseBuilder(schema);
20
+ }
@@ -0,0 +1,56 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Common validation schemas used across multiple services
4
+ */
5
+ export declare const E164PhoneNumber: z.ZodString;
6
+ export declare const MessageContent: z.ZodString;
7
+ export declare const OptionalSenderNumber: z.ZodOptional<z.ZodString>;
8
+ export declare const AttachmentList: z.ZodOptional<z.ZodArray<z.ZodString>>;
9
+ export declare const SingleOrMultipleEmails: (maxCount?: number, fieldName?: string) => z.ZodUnion<readonly [z.ZodEmail, z.ZodArray<z.ZodEmail>]>;
10
+ export declare const TypingAction: z.ZodEnum<{
11
+ start: "start";
12
+ stop: "stop";
13
+ }>;
14
+ export declare const NumberStatus: z.ZodEnum<{
15
+ available: "available";
16
+ "g-available": "g-available";
17
+ leased: "leased";
18
+ unavailable: "unavailable";
19
+ }>;
20
+ export declare const LeaseStatus: z.ZodEnum<{
21
+ active: "active";
22
+ expired: "expired";
23
+ terminated: "terminated";
24
+ }>;
25
+ export declare const BillingMethod: z.ZodEnum<{
26
+ monthly: "monthly";
27
+ service_contract: "service_contract";
28
+ goodwill: "goodwill";
29
+ }>;
30
+ export declare const Currency: z.ZodEnum<{
31
+ USD: "USD";
32
+ EUR: "EUR";
33
+ GBP: "GBP";
34
+ CAD: "CAD";
35
+ AUD: "AUD";
36
+ }>;
37
+ export declare const Carrier: z.ZodEnum<{
38
+ "T-Mobile": "T-Mobile";
39
+ "AT&T": "AT&T";
40
+ Verizon: "Verizon";
41
+ Contiguity: "Contiguity";
42
+ "International Partner": "International Partner";
43
+ }>;
44
+ export declare const MessageChannel: z.ZodEnum<{
45
+ sms: "sms";
46
+ mms: "mms";
47
+ rcs: "rcs";
48
+ imessage: "imessage";
49
+ whatsapp: "whatsapp";
50
+ }>;
51
+ export declare const createFallbackSchema: <T extends string>(serviceType: T, fallbackConditions: readonly [T, ...T[]]) => z.ZodOptional<z.ZodObject<{
52
+ when: z.ZodArray<z.ZodEnum<{ [k_1 in T]: k_1; } extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never>>;
53
+ from: z.ZodOptional<z.ZodString>;
54
+ }, z.core.$strip>>;
55
+ export type RequestFunction<TParams, TResponse> = (this: any, params: TParams) => Promise<TResponse>;
56
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AAGH,eAAO,MAAM,eAAe,aAAgF,CAAC;AAG7G,eAAO,MAAM,cAAc,aAA+C,CAAC;AAG3E,eAAO,MAAM,oBAAoB,4BAAwB,CAAC;AAG1D,eAAO,MAAM,cAAc,wCAGZ,CAAC;AAGhB,eAAO,MAAM,sBAAsB,GAAI,WAAU,MAAW,EAAE,YAAW,MAAgB,8DAKnF,CAAC;AAGP,eAAO,MAAM,YAAY;;;EAAgF,CAAC;AAG1G,eAAO,MAAM,YAAY;;;;;EAAgE,CAAC;AAE1F,eAAO,MAAM,WAAW;;;;EAA8C,CAAC;AAEvE,eAAO,MAAM,aAAa;;;;EAAsD,CAAC;AAEjF,eAAO,MAAM,QAAQ;;;;;;EAA8C,CAAC;AAEpE,eAAO,MAAM,OAAO;;;;;;EAMlB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;EAMzB,CAAC;AAEH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,MAAM,EACjD,aAAa,CAAC,EACd,oBAAoB,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;;;kBAM/B,CAAC;AAGd,MAAM,MAAM,eAAe,CAAC,OAAO,EAAE,SAAS,IAAI,CAC9C,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,OAAO,KACd,OAAO,CAAC,SAAS,CAAC,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Common validation schemas used across multiple services
4
+ */
5
+ // Phone number validation - used in text, iMessage, WhatsApp, and lease services
6
+ export const E164PhoneNumber = z.string().regex(/^\+[1-9]\d{1,14}$/, "Phone number must be in E.164 format");
7
+ // Message validation - used across messaging services
8
+ export const MessageContent = z.string().min(1, "Message cannot be empty");
9
+ // Optional sender number - used across messaging services
10
+ export const OptionalSenderNumber = z.string().optional();
11
+ // Attachment validation - used in iMessage and WhatsApp
12
+ export const AttachmentList = z
13
+ .array(z.string().min(1, "Attachment cannot be empty"))
14
+ .max(10, "Maximum 10 attachments allowed")
15
+ .optional();
16
+ // Email validation patterns - used in email service
17
+ export const SingleOrMultipleEmails = (maxCount = 10, fieldName = "email") => z.union([
18
+ z.email(`Must be a valid ${fieldName} address`),
19
+ z.array(z.email(`Must be a valid ${fieldName} address`))
20
+ .max(maxCount, `Maximum ${maxCount} ${fieldName} addresses allowed`)
21
+ ]);
22
+ // Typing action validation - used in iMessage and WhatsApp typing
23
+ export const TypingAction = z.enum(["start", "stop"]).describe("Action must be either 'start' or 'stop'");
24
+ // Common status enums
25
+ export const NumberStatus = z.enum(["available", "g-available", "leased", "unavailable"]);
26
+ export const LeaseStatus = z.enum(["active", "expired", "terminated"]);
27
+ export const BillingMethod = z.enum(["monthly", "service_contract", "goodwill"]);
28
+ export const Currency = z.enum(["USD", "EUR", "GBP", "CAD", "AUD"]);
29
+ export const Carrier = z.enum([
30
+ "T-Mobile",
31
+ "AT&T",
32
+ "Verizon",
33
+ "Contiguity",
34
+ "International Partner"
35
+ ]);
36
+ export const MessageChannel = z.enum([
37
+ "sms",
38
+ "mms",
39
+ "rcs",
40
+ "imessage",
41
+ "whatsapp"
42
+ ]);
43
+ export const createFallbackSchema = (serviceType, fallbackConditions) => z.object({
44
+ /** When to fallback to SMS/RCS */
45
+ when: z.array(z.enum(fallbackConditions)).min(1, "At least one fallback condition must be specified"),
46
+ /** Fallback sender number */
47
+ from: OptionalSenderNumber
48
+ }).optional();
@@ -0,0 +1,37 @@
1
+ import { z } from "zod";
2
+ export declare const ContiguityAPIError: z.ZodObject<{
3
+ id: z.ZodString;
4
+ timestamp: z.ZodNumber;
5
+ api_version: z.ZodString;
6
+ object: z.ZodString;
7
+ data: z.ZodObject<{
8
+ status: z.ZodNumber;
9
+ error: z.ZodString;
10
+ }, z.core.$strip>;
11
+ }, z.core.$strip>;
12
+ export interface ContiguityErrorData {
13
+ data: {
14
+ status: number;
15
+ error: string;
16
+ };
17
+ }
18
+ export declare class ContiguityError extends Error {
19
+ readonly status: number;
20
+ constructor(response: ContiguityErrorData);
21
+ static fromError(error: any): ContiguityError;
22
+ toString(): string;
23
+ toJSON(): {
24
+ message: string;
25
+ status: number;
26
+ };
27
+ }
28
+ export declare class ContiguitySDKError extends Error {
29
+ readonly status: string;
30
+ constructor(message: string, status?: string);
31
+ toString(): string;
32
+ toJSON(): {
33
+ message: string;
34
+ status: string;
35
+ };
36
+ }
37
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/types/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;iBAS7B,CAAC;AAEH,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE;QACF,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACtC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEnB,QAAQ,EAAE,mBAAmB;IAMzC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG;IASlB,QAAQ;IAIjB,MAAM;;;;CAMT;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IACzC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEnB,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAoB;IAOhD,QAAQ;IAIjB,MAAM;;;;CAMT"}
@@ -0,0 +1,54 @@
1
+ import { z } from "zod";
2
+ export const ContiguityAPIError = z.object({
3
+ id: z.string(),
4
+ timestamp: z.number(),
5
+ api_version: z.string(),
6
+ object: z.string(),
7
+ data: z.object({
8
+ status: z.number(),
9
+ error: z.string(),
10
+ }),
11
+ });
12
+ export class ContiguityError extends Error {
13
+ status;
14
+ constructor(response) {
15
+ super(response.data.error);
16
+ this.message = response.data.error;
17
+ this.status = response.data.status;
18
+ }
19
+ static fromError(error) {
20
+ return new ContiguityError({
21
+ data: {
22
+ error: error.message || "Unknown error",
23
+ status: error.status || 500,
24
+ }
25
+ });
26
+ }
27
+ toString() {
28
+ return `[Contiguity Error]: ${this.message} (status: ${this.status})`;
29
+ }
30
+ toJSON() {
31
+ return {
32
+ message: this.message,
33
+ status: this.status,
34
+ };
35
+ }
36
+ }
37
+ export class ContiguitySDKError extends Error {
38
+ status;
39
+ constructor(message, status = 'sdk_error') {
40
+ super(message);
41
+ this.message = message;
42
+ this.status = status;
43
+ this.name = '[Contiguity SDK Error]';
44
+ }
45
+ toString() {
46
+ return `[Contiguity SDK Error]: ${this.message} (status: ${this.status})`;
47
+ }
48
+ toJSON() {
49
+ return {
50
+ message: this.message,
51
+ status: this.status,
52
+ };
53
+ }
54
+ }
@@ -0,0 +1,10 @@
1
+ export interface ContiguityMetadata {
2
+ id: string;
3
+ timestamp: number;
4
+ api_version: string;
5
+ object: string;
6
+ }
7
+ export type WithMetadata<T> = T & {
8
+ metadata: ContiguityMetadata;
9
+ };
10
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/types/metadata.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG;IAC9B,QAAQ,EAAE,kBAAkB,CAAC;CAChC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { z } from "zod";
2
+ export declare const ContiguityResponse: z.ZodObject<{
3
+ metadata: z.ZodObject<{
4
+ id: z.ZodString;
5
+ timestamp: z.ZodNumber;
6
+ api_version: z.ZodString;
7
+ object: z.ZodString;
8
+ }, z.core.$strip>;
9
+ }, z.core.$strip>;
10
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/types/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;iBAQ7B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { z } from "zod";
2
+ export const ContiguityResponse = z.object({
3
+ metadata: z.object({
4
+ id: z.string(),
5
+ timestamp: z.number(),
6
+ api_version: z.string(),
7
+ object: z.string(),
8
+ }),
9
+ // we run zod.extend with data here.
10
+ });
@@ -0,0 +1,8 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Normalizes API responses to either raw or flattened format
4
+ * This utility handles the complex logic of parsing different response formats
5
+ * from the Contiguity API and normalizing them consistently.
6
+ */
7
+ export declare function parseContiguityResponse<T extends z.ZodType, R extends z.ZodType>(response: any, dataSchema: T, rawResponseSchema: R, returnRaw?: boolean): any;
8
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/utils/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,EAC5E,QAAQ,EAAE,GAAG,EACb,UAAU,EAAE,CAAC,EACb,iBAAiB,EAAE,CAAC,EACpB,SAAS,GAAE,OAAe,GAC3B,GAAG,CAiCL"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Normalizes API responses to either raw or flattened format
3
+ * This utility handles the complex logic of parsing different response formats
4
+ * from the Contiguity API and normalizing them consistently.
5
+ */
6
+ export function parseContiguityResponse(response, dataSchema, rawResponseSchema, returnRaw = false) {
7
+ // Handle different response formats:
8
+ // 1. Already wrapped in response format (response.object === "response")
9
+ // 2. Direct data that needs wrapping
10
+ // 3. Fallback to raw parsing
11
+ const validatedResponse = response.object === "response"
12
+ ? rawResponseSchema.parse(response)
13
+ : dataSchema.safeParse(response).success
14
+ ? {
15
+ id: response.id || "unknown",
16
+ timestamp: response.timestamp || Date.now(),
17
+ api_version: response.api_version || "unknown",
18
+ object: response.object || "unknown",
19
+ data: dataSchema.parse(response),
20
+ }
21
+ : rawResponseSchema.parse(response);
22
+ if (returnRaw) {
23
+ return validatedResponse;
24
+ }
25
+ // For flattened responses, we need to handle both formats
26
+ const rawData = rawResponseSchema.parse(validatedResponse);
27
+ return {
28
+ ...rawData.data,
29
+ metadata: {
30
+ id: rawData.id,
31
+ timestamp: rawData.timestamp,
32
+ api_version: rawData.api_version,
33
+ object: rawData.object,
34
+ },
35
+ };
36
+ }
@@ -1,28 +1,6 @@
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
- readonly entitlements: "https://api.contiguity.com/entitlements";
9
- };
10
- export type ApiBase = keyof typeof BASE_URLS;
11
- export interface RequestConfig {
12
- token: string;
13
- base: ApiBase;
14
- debug?: boolean;
15
- }
16
- export declare function request<T = Record<string, unknown>>(config: RequestConfig, path: string, options?: {
17
- method?: "GET" | "POST" | "DELETE";
18
- body?: Record<string, unknown>;
19
- }): Promise<T & {
20
- metadata: {
21
- id: string;
22
- timestamp: string;
23
- api_version: string;
24
- object: string;
25
- };
26
- }>;
27
- export {};
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>;
28
6
  //# sourceMappingURL=request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/utils/request.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,SAAS;;;;;;;;CAQL,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,CAqCnG"}
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,41 +1,47 @@
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
- entitlements: "https://api.contiguity.com/entitlements",
11
- };
12
- export async function request(config, path, options = {}) {
13
- const { token, base, debug } = config;
14
- const url = `${BASE_URLS[base]}${path}`;
15
- const headers = {
16
- "Content-Type": "application/json",
17
- Authorization: `Token ${token}`,
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
+ });
18
46
  };
19
- if (debug) {
20
- console.debug("[Contiguity]", options.method ?? "GET", url, options.body ?? "");
21
- }
22
- const res = await fetch(url, {
23
- method: options.method ?? "GET",
24
- headers,
25
- body: options.body ? JSON.stringify(options.body) : undefined,
26
- });
27
- const json = (await res.json());
28
- if (!res.ok) {
29
- // Default API shape: data: { error, status }. Occasional: { message, status } at top level.
30
- const errMsg = json.data?.error ??
31
- json.message ??
32
- json.object ??
33
- "Unknown error";
34
- const status = json.data?.status ?? json.status ?? res.status;
35
- const data = json.data?.agreement_url != null
36
- ? { agreement_url: String(json.data.agreement_url) }
37
- : undefined;
38
- throw new ContiguityError(errMsg, status, undefined, data);
39
- }
40
- return transformResponse(json);
41
47
  }
package/package.json CHANGED
@@ -1,46 +1,49 @@
1
1
  {
2
2
  "name": "contiguity",
3
- "version": "0.0.9",
4
- "description": "Contiguity JavaScript/TypeScript SDK",
3
+ "version": "0.1.0",
5
4
  "type": "module",
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
- },
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",
15
11
  "files": [
16
- "dist"
12
+ "dist/**/*",
13
+ "README.md",
14
+ "LICENSE.md"
17
15
  ],
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
- },
26
16
  "keywords": [
27
17
  "contiguity",
28
18
  "sms",
29
19
  "email",
30
- "otp",
20
+ "whatsapp",
31
21
  "imessage",
32
- "whatsapp"
22
+ "otp",
23
+ "send texts",
24
+ "api",
25
+ "sdk"
33
26
  ],
34
- "license": "MIT",
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
+ },
35
43
  "dependencies": {
36
- "zod": "^4.3.6"
44
+ "zod": "^4.0.17"
37
45
  },
38
46
  "devDependencies": {
39
- "@types/node": "^22.19.11",
40
- "typescript": "^5.9.3",
41
- "vitest": "^3.2.4"
42
- },
43
- "engines": {
44
- "node": ">=18"
47
+ "typescript": "^5.9.2"
45
48
  }
46
49
  }