meridianjs 0.1.2 → 0.2.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 (571) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +470 -57
  3. package/dist/core/adapter-validator.d.ts.map +1 -1
  4. package/dist/core/adapter-validator.js.map +1 -1
  5. package/dist/core/error-sanitizer.d.ts.map +1 -1
  6. package/dist/core/error-sanitizer.js +5 -11
  7. package/dist/core/error-sanitizer.js.map +1 -1
  8. package/dist/core/header-parser.d.ts.map +1 -1
  9. package/dist/core/header-parser.js +9 -9
  10. package/dist/core/header-parser.js.map +1 -1
  11. package/dist/core/normalizer.d.ts +1 -1
  12. package/dist/core/normalizer.d.ts.map +1 -1
  13. package/dist/core/normalizer.js +1 -1
  14. package/dist/core/normalizer.js.map +1 -1
  15. package/dist/core/observability-sanitizer.d.ts.map +1 -1
  16. package/dist/core/observability-sanitizer.js +5 -12
  17. package/dist/core/observability-sanitizer.js.map +1 -1
  18. package/dist/core/pipeline.d.ts +9 -5
  19. package/dist/core/pipeline.d.ts.map +1 -1
  20. package/dist/core/pipeline.js +45 -8
  21. package/dist/core/pipeline.js.map +1 -1
  22. package/dist/core/request-sanitizer.d.ts +1 -0
  23. package/dist/core/request-sanitizer.d.ts.map +1 -1
  24. package/dist/core/request-sanitizer.js +51 -28
  25. package/dist/core/request-sanitizer.js.map +1 -1
  26. package/dist/core/streaming.d.ts +19 -0
  27. package/dist/core/streaming.d.ts.map +1 -0
  28. package/dist/core/streaming.js +130 -0
  29. package/dist/core/streaming.js.map +1 -0
  30. package/dist/core/types.d.ts +14 -0
  31. package/dist/core/types.d.ts.map +1 -1
  32. package/dist/core/types.js +0 -4
  33. package/dist/core/types.js.map +1 -1
  34. package/dist/index.d.ts +34 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +180 -10
  37. package/dist/index.js.map +1 -1
  38. package/dist/observability/adapter.d.ts.map +1 -1
  39. package/dist/observability/console.d.ts +1 -1
  40. package/dist/observability/console.d.ts.map +1 -1
  41. package/dist/observability/console.js.map +1 -1
  42. package/dist/observability/noop.d.ts +1 -1
  43. package/dist/observability/noop.d.ts.map +1 -1
  44. package/dist/observability/noop.js +5 -10
  45. package/dist/observability/noop.js.map +1 -1
  46. package/dist/observability/otel.d.ts +1 -1
  47. package/dist/observability/otel.d.ts.map +1 -1
  48. package/dist/observability/otel.js.map +1 -1
  49. package/dist/observability/prometheus.d.ts +1 -1
  50. package/dist/observability/prometheus.d.ts.map +1 -1
  51. package/dist/observability/prometheus.js +5 -13
  52. package/dist/observability/prometheus.js.map +1 -1
  53. package/dist/providers/adyen/adapter.d.ts +18 -0
  54. package/dist/providers/adyen/adapter.d.ts.map +1 -0
  55. package/dist/providers/adyen/adapter.js +224 -0
  56. package/dist/providers/adyen/adapter.js.map +1 -0
  57. package/dist/providers/adyen/index.d.ts +3 -0
  58. package/dist/providers/adyen/index.d.ts.map +1 -0
  59. package/dist/providers/adyen/index.js +3 -0
  60. package/dist/providers/adyen/index.js.map +1 -0
  61. package/dist/providers/adyen/pagination.d.ts +11 -0
  62. package/dist/providers/adyen/pagination.d.ts.map +1 -0
  63. package/dist/providers/adyen/pagination.js +50 -0
  64. package/dist/providers/adyen/pagination.js.map +1 -0
  65. package/dist/providers/anthropic/adapter.d.ts +1 -1
  66. package/dist/providers/anthropic/adapter.d.ts.map +1 -1
  67. package/dist/providers/anthropic/adapter.js +8 -8
  68. package/dist/providers/anthropic/adapter.js.map +1 -1
  69. package/dist/providers/anthropic/pagination.d.ts.map +1 -1
  70. package/dist/providers/anthropic/pagination.js +3 -3
  71. package/dist/providers/anthropic/pagination.js.map +1 -1
  72. package/dist/providers/auth0/adapter.d.ts +17 -0
  73. package/dist/providers/auth0/adapter.d.ts.map +1 -0
  74. package/dist/providers/auth0/adapter.js +150 -0
  75. package/dist/providers/auth0/adapter.js.map +1 -0
  76. package/dist/providers/auth0/index.d.ts +3 -0
  77. package/dist/providers/auth0/index.d.ts.map +1 -0
  78. package/dist/providers/auth0/index.js +3 -0
  79. package/dist/providers/auth0/index.js.map +1 -0
  80. package/dist/providers/auth0/pagination.d.ts +11 -0
  81. package/dist/providers/auth0/pagination.d.ts.map +1 -0
  82. package/dist/providers/auth0/pagination.js +42 -0
  83. package/dist/providers/auth0/pagination.js.map +1 -0
  84. package/dist/providers/braintree/adapter.d.ts +18 -0
  85. package/dist/providers/braintree/adapter.d.ts.map +1 -0
  86. package/dist/providers/braintree/adapter.js +203 -0
  87. package/dist/providers/braintree/adapter.js.map +1 -0
  88. package/dist/providers/braintree/index.d.ts +3 -0
  89. package/dist/providers/braintree/index.d.ts.map +1 -0
  90. package/dist/providers/braintree/index.js +3 -0
  91. package/dist/providers/braintree/index.js.map +1 -0
  92. package/dist/providers/braintree/pagination.d.ts +11 -0
  93. package/dist/providers/braintree/pagination.d.ts.map +1 -0
  94. package/dist/providers/braintree/pagination.js +34 -0
  95. package/dist/providers/braintree/pagination.js.map +1 -0
  96. package/dist/providers/cashfree/adapter.d.ts +18 -0
  97. package/dist/providers/cashfree/adapter.d.ts.map +1 -0
  98. package/dist/providers/cashfree/adapter.js +175 -0
  99. package/dist/providers/cashfree/adapter.js.map +1 -0
  100. package/dist/providers/cashfree/index.d.ts +3 -0
  101. package/dist/providers/cashfree/index.d.ts.map +1 -0
  102. package/dist/providers/cashfree/index.js +3 -0
  103. package/dist/providers/cashfree/index.js.map +1 -0
  104. package/dist/providers/cashfree/pagination.d.ts +11 -0
  105. package/dist/providers/cashfree/pagination.d.ts.map +1 -0
  106. package/dist/providers/cashfree/pagination.js +32 -0
  107. package/dist/providers/cashfree/pagination.js.map +1 -0
  108. package/dist/providers/checkout/adapter.d.ts +18 -0
  109. package/dist/providers/checkout/adapter.d.ts.map +1 -0
  110. package/dist/providers/checkout/adapter.js +158 -0
  111. package/dist/providers/checkout/adapter.js.map +1 -0
  112. package/dist/providers/checkout/index.d.ts +3 -0
  113. package/dist/providers/checkout/index.d.ts.map +1 -0
  114. package/dist/providers/checkout/index.js +3 -0
  115. package/dist/providers/checkout/index.js.map +1 -0
  116. package/dist/providers/checkout/pagination.d.ts +11 -0
  117. package/dist/providers/checkout/pagination.d.ts.map +1 -0
  118. package/dist/providers/checkout/pagination.js +32 -0
  119. package/dist/providers/checkout/pagination.js.map +1 -0
  120. package/dist/providers/cleartax/adapter.d.ts +17 -0
  121. package/dist/providers/cleartax/adapter.d.ts.map +1 -0
  122. package/dist/providers/cleartax/adapter.js +135 -0
  123. package/dist/providers/cleartax/adapter.js.map +1 -0
  124. package/dist/providers/cleartax/index.d.ts +3 -0
  125. package/dist/providers/cleartax/index.d.ts.map +1 -0
  126. package/dist/providers/cleartax/index.js +3 -0
  127. package/dist/providers/cleartax/index.js.map +1 -0
  128. package/dist/providers/cleartax/pagination.d.ts +11 -0
  129. package/dist/providers/cleartax/pagination.d.ts.map +1 -0
  130. package/dist/providers/cleartax/pagination.js +62 -0
  131. package/dist/providers/cleartax/pagination.js.map +1 -0
  132. package/dist/providers/cohere/adapter.d.ts +19 -0
  133. package/dist/providers/cohere/adapter.d.ts.map +1 -0
  134. package/dist/providers/cohere/adapter.js +128 -0
  135. package/dist/providers/cohere/adapter.js.map +1 -0
  136. package/dist/providers/cohere/index.d.ts +3 -0
  137. package/dist/providers/cohere/index.d.ts.map +1 -0
  138. package/dist/providers/cohere/index.js +3 -0
  139. package/dist/providers/cohere/index.js.map +1 -0
  140. package/dist/providers/cohere/pagination.d.ts +11 -0
  141. package/dist/providers/cohere/pagination.d.ts.map +1 -0
  142. package/dist/providers/cohere/pagination.js +9 -0
  143. package/dist/providers/cohere/pagination.js.map +1 -0
  144. package/dist/providers/decentro/adapter.d.ts +18 -0
  145. package/dist/providers/decentro/adapter.d.ts.map +1 -0
  146. package/dist/providers/decentro/adapter.js +144 -0
  147. package/dist/providers/decentro/adapter.js.map +1 -0
  148. package/dist/providers/decentro/index.d.ts +3 -0
  149. package/dist/providers/decentro/index.d.ts.map +1 -0
  150. package/dist/providers/decentro/index.js +3 -0
  151. package/dist/providers/decentro/index.js.map +1 -0
  152. package/dist/providers/decentro/pagination.d.ts +11 -0
  153. package/dist/providers/decentro/pagination.d.ts.map +1 -0
  154. package/dist/providers/decentro/pagination.js +45 -0
  155. package/dist/providers/decentro/pagination.js.map +1 -0
  156. package/dist/providers/delhivery/adapter.d.ts +17 -0
  157. package/dist/providers/delhivery/adapter.d.ts.map +1 -0
  158. package/dist/providers/delhivery/adapter.js +119 -0
  159. package/dist/providers/delhivery/adapter.js.map +1 -0
  160. package/dist/providers/delhivery/index.d.ts +3 -0
  161. package/dist/providers/delhivery/index.d.ts.map +1 -0
  162. package/dist/providers/delhivery/index.js +3 -0
  163. package/dist/providers/delhivery/index.js.map +1 -0
  164. package/dist/providers/delhivery/pagination.d.ts +12 -0
  165. package/dist/providers/delhivery/pagination.d.ts.map +1 -0
  166. package/dist/providers/delhivery/pagination.js +47 -0
  167. package/dist/providers/delhivery/pagination.js.map +1 -0
  168. package/dist/providers/digio/adapter.d.ts +17 -0
  169. package/dist/providers/digio/adapter.d.ts.map +1 -0
  170. package/dist/providers/digio/adapter.js +144 -0
  171. package/dist/providers/digio/adapter.js.map +1 -0
  172. package/dist/providers/digio/index.d.ts +3 -0
  173. package/dist/providers/digio/index.d.ts.map +1 -0
  174. package/dist/providers/digio/index.js +3 -0
  175. package/dist/providers/digio/index.js.map +1 -0
  176. package/dist/providers/digio/pagination.d.ts +11 -0
  177. package/dist/providers/digio/pagination.d.ts.map +1 -0
  178. package/dist/providers/digio/pagination.js +48 -0
  179. package/dist/providers/digio/pagination.js.map +1 -0
  180. package/dist/providers/exotel/adapter.d.ts +18 -0
  181. package/dist/providers/exotel/adapter.d.ts.map +1 -0
  182. package/dist/providers/exotel/adapter.js +170 -0
  183. package/dist/providers/exotel/adapter.js.map +1 -0
  184. package/dist/providers/exotel/index.d.ts +3 -0
  185. package/dist/providers/exotel/index.d.ts.map +1 -0
  186. package/dist/providers/exotel/index.js +3 -0
  187. package/dist/providers/exotel/index.js.map +1 -0
  188. package/dist/providers/exotel/pagination.d.ts +11 -0
  189. package/dist/providers/exotel/pagination.d.ts.map +1 -0
  190. package/dist/providers/exotel/pagination.js +54 -0
  191. package/dist/providers/exotel/pagination.js.map +1 -0
  192. package/dist/providers/gemini/adapter.d.ts +18 -0
  193. package/dist/providers/gemini/adapter.d.ts.map +1 -0
  194. package/dist/providers/gemini/adapter.js +171 -0
  195. package/dist/providers/gemini/adapter.js.map +1 -0
  196. package/dist/providers/gemini/index.d.ts +3 -0
  197. package/dist/providers/gemini/index.d.ts.map +1 -0
  198. package/dist/providers/gemini/index.js +3 -0
  199. package/dist/providers/gemini/index.js.map +1 -0
  200. package/dist/providers/gemini/pagination.d.ts +11 -0
  201. package/dist/providers/gemini/pagination.d.ts.map +1 -0
  202. package/dist/providers/gemini/pagination.js +15 -0
  203. package/dist/providers/gemini/pagination.js.map +1 -0
  204. package/dist/providers/github/adapter.d.ts +1 -1
  205. package/dist/providers/github/adapter.d.ts.map +1 -1
  206. package/dist/providers/github/adapter.js +10 -16
  207. package/dist/providers/github/adapter.js.map +1 -1
  208. package/dist/providers/github/pagination.d.ts.map +1 -1
  209. package/dist/providers/github/pagination.js +3 -3
  210. package/dist/providers/github/pagination.js.map +1 -1
  211. package/dist/providers/gupshup/adapter.d.ts +18 -0
  212. package/dist/providers/gupshup/adapter.d.ts.map +1 -0
  213. package/dist/providers/gupshup/adapter.js +138 -0
  214. package/dist/providers/gupshup/adapter.js.map +1 -0
  215. package/dist/providers/gupshup/index.d.ts +3 -0
  216. package/dist/providers/gupshup/index.d.ts.map +1 -0
  217. package/dist/providers/gupshup/index.js +3 -0
  218. package/dist/providers/gupshup/index.js.map +1 -0
  219. package/dist/providers/gupshup/pagination.d.ts +12 -0
  220. package/dist/providers/gupshup/pagination.d.ts.map +1 -0
  221. package/dist/providers/gupshup/pagination.js +55 -0
  222. package/dist/providers/gupshup/pagination.js.map +1 -0
  223. package/dist/providers/hubspot/adapter.d.ts +17 -0
  224. package/dist/providers/hubspot/adapter.d.ts.map +1 -0
  225. package/dist/providers/hubspot/adapter.js +150 -0
  226. package/dist/providers/hubspot/adapter.js.map +1 -0
  227. package/dist/providers/hubspot/index.d.ts +3 -0
  228. package/dist/providers/hubspot/index.d.ts.map +1 -0
  229. package/dist/providers/hubspot/index.js +3 -0
  230. package/dist/providers/hubspot/index.js.map +1 -0
  231. package/dist/providers/hubspot/pagination.d.ts +11 -0
  232. package/dist/providers/hubspot/pagination.d.ts.map +1 -0
  233. package/dist/providers/hubspot/pagination.js +32 -0
  234. package/dist/providers/hubspot/pagination.js.map +1 -0
  235. package/dist/providers/hyperverge/adapter.d.ts +17 -0
  236. package/dist/providers/hyperverge/adapter.d.ts.map +1 -0
  237. package/dist/providers/hyperverge/adapter.js +140 -0
  238. package/dist/providers/hyperverge/adapter.js.map +1 -0
  239. package/dist/providers/hyperverge/index.d.ts +3 -0
  240. package/dist/providers/hyperverge/index.d.ts.map +1 -0
  241. package/dist/providers/hyperverge/index.js +3 -0
  242. package/dist/providers/hyperverge/index.js.map +1 -0
  243. package/dist/providers/hyperverge/pagination.d.ts +11 -0
  244. package/dist/providers/hyperverge/pagination.d.ts.map +1 -0
  245. package/dist/providers/hyperverge/pagination.js +16 -0
  246. package/dist/providers/hyperverge/pagination.js.map +1 -0
  247. package/dist/providers/idfy/adapter.d.ts +17 -0
  248. package/dist/providers/idfy/adapter.d.ts.map +1 -0
  249. package/dist/providers/idfy/adapter.js +148 -0
  250. package/dist/providers/idfy/adapter.js.map +1 -0
  251. package/dist/providers/idfy/index.d.ts +3 -0
  252. package/dist/providers/idfy/index.d.ts.map +1 -0
  253. package/dist/providers/idfy/index.js +3 -0
  254. package/dist/providers/idfy/index.js.map +1 -0
  255. package/dist/providers/idfy/pagination.d.ts +11 -0
  256. package/dist/providers/idfy/pagination.d.ts.map +1 -0
  257. package/dist/providers/idfy/pagination.js +47 -0
  258. package/dist/providers/idfy/pagination.js.map +1 -0
  259. package/dist/providers/juspay/adapter.d.ts +18 -0
  260. package/dist/providers/juspay/adapter.d.ts.map +1 -0
  261. package/dist/providers/juspay/adapter.js +160 -0
  262. package/dist/providers/juspay/adapter.js.map +1 -0
  263. package/dist/providers/juspay/index.d.ts +3 -0
  264. package/dist/providers/juspay/index.d.ts.map +1 -0
  265. package/dist/providers/juspay/index.js +3 -0
  266. package/dist/providers/juspay/index.js.map +1 -0
  267. package/dist/providers/juspay/pagination.d.ts +11 -0
  268. package/dist/providers/juspay/pagination.d.ts.map +1 -0
  269. package/dist/providers/juspay/pagination.js +45 -0
  270. package/dist/providers/juspay/pagination.js.map +1 -0
  271. package/dist/providers/karza/adapter.d.ts +17 -0
  272. package/dist/providers/karza/adapter.d.ts.map +1 -0
  273. package/dist/providers/karza/adapter.js +132 -0
  274. package/dist/providers/karza/adapter.js.map +1 -0
  275. package/dist/providers/karza/index.d.ts +3 -0
  276. package/dist/providers/karza/index.d.ts.map +1 -0
  277. package/dist/providers/karza/index.js +3 -0
  278. package/dist/providers/karza/index.js.map +1 -0
  279. package/dist/providers/karza/pagination.d.ts +11 -0
  280. package/dist/providers/karza/pagination.d.ts.map +1 -0
  281. package/dist/providers/karza/pagination.js +16 -0
  282. package/dist/providers/karza/pagination.js.map +1 -0
  283. package/dist/providers/klarna/adapter.d.ts +18 -0
  284. package/dist/providers/klarna/adapter.d.ts.map +1 -0
  285. package/dist/providers/klarna/adapter.js +150 -0
  286. package/dist/providers/klarna/adapter.js.map +1 -0
  287. package/dist/providers/klarna/index.d.ts +3 -0
  288. package/dist/providers/klarna/index.d.ts.map +1 -0
  289. package/dist/providers/klarna/index.js +3 -0
  290. package/dist/providers/klarna/index.js.map +1 -0
  291. package/dist/providers/klarna/pagination.d.ts +11 -0
  292. package/dist/providers/klarna/pagination.d.ts.map +1 -0
  293. package/dist/providers/klarna/pagination.js +15 -0
  294. package/dist/providers/klarna/pagination.js.map +1 -0
  295. package/dist/providers/mailgun/adapter.d.ts +18 -0
  296. package/dist/providers/mailgun/adapter.d.ts.map +1 -0
  297. package/dist/providers/mailgun/adapter.js +201 -0
  298. package/dist/providers/mailgun/adapter.js.map +1 -0
  299. package/dist/providers/mailgun/index.d.ts +3 -0
  300. package/dist/providers/mailgun/index.d.ts.map +1 -0
  301. package/dist/providers/mailgun/index.js +3 -0
  302. package/dist/providers/mailgun/index.js.map +1 -0
  303. package/dist/providers/mailgun/pagination.d.ts +11 -0
  304. package/dist/providers/mailgun/pagination.d.ts.map +1 -0
  305. package/dist/providers/mailgun/pagination.js +46 -0
  306. package/dist/providers/mailgun/pagination.js.map +1 -0
  307. package/dist/providers/mapmyindia/adapter.d.ts +17 -0
  308. package/dist/providers/mapmyindia/adapter.d.ts.map +1 -0
  309. package/dist/providers/mapmyindia/adapter.js +134 -0
  310. package/dist/providers/mapmyindia/adapter.js.map +1 -0
  311. package/dist/providers/mapmyindia/index.d.ts +3 -0
  312. package/dist/providers/mapmyindia/index.d.ts.map +1 -0
  313. package/dist/providers/mapmyindia/index.js +3 -0
  314. package/dist/providers/mapmyindia/index.js.map +1 -0
  315. package/dist/providers/mapmyindia/pagination.d.ts +11 -0
  316. package/dist/providers/mapmyindia/pagination.d.ts.map +1 -0
  317. package/dist/providers/mapmyindia/pagination.js +78 -0
  318. package/dist/providers/mapmyindia/pagination.js.map +1 -0
  319. package/dist/providers/mistral/adapter.d.ts +19 -0
  320. package/dist/providers/mistral/adapter.d.ts.map +1 -0
  321. package/dist/providers/mistral/adapter.js +114 -0
  322. package/dist/providers/mistral/adapter.js.map +1 -0
  323. package/dist/providers/mistral/index.d.ts +3 -0
  324. package/dist/providers/mistral/index.d.ts.map +1 -0
  325. package/dist/providers/mistral/index.js +3 -0
  326. package/dist/providers/mistral/index.js.map +1 -0
  327. package/dist/providers/mistral/pagination.d.ts +11 -0
  328. package/dist/providers/mistral/pagination.d.ts.map +1 -0
  329. package/dist/providers/mistral/pagination.js +7 -0
  330. package/dist/providers/mistral/pagination.js.map +1 -0
  331. package/dist/providers/mollie/adapter.d.ts +18 -0
  332. package/dist/providers/mollie/adapter.d.ts.map +1 -0
  333. package/dist/providers/mollie/adapter.js +143 -0
  334. package/dist/providers/mollie/adapter.js.map +1 -0
  335. package/dist/providers/mollie/index.d.ts +3 -0
  336. package/dist/providers/mollie/index.d.ts.map +1 -0
  337. package/dist/providers/mollie/index.js +3 -0
  338. package/dist/providers/mollie/index.js.map +1 -0
  339. package/dist/providers/mollie/pagination.d.ts +11 -0
  340. package/dist/providers/mollie/pagination.d.ts.map +1 -0
  341. package/dist/providers/mollie/pagination.js +36 -0
  342. package/dist/providers/mollie/pagination.js.map +1 -0
  343. package/dist/providers/msg91/adapter.d.ts +18 -0
  344. package/dist/providers/msg91/adapter.d.ts.map +1 -0
  345. package/dist/providers/msg91/adapter.js +158 -0
  346. package/dist/providers/msg91/adapter.js.map +1 -0
  347. package/dist/providers/msg91/index.d.ts +3 -0
  348. package/dist/providers/msg91/index.d.ts.map +1 -0
  349. package/dist/providers/msg91/index.js +3 -0
  350. package/dist/providers/msg91/index.js.map +1 -0
  351. package/dist/providers/msg91/pagination.d.ts +11 -0
  352. package/dist/providers/msg91/pagination.d.ts.map +1 -0
  353. package/dist/providers/msg91/pagination.js +46 -0
  354. package/dist/providers/msg91/pagination.js.map +1 -0
  355. package/dist/providers/openai/adapter.d.ts +1 -1
  356. package/dist/providers/openai/adapter.d.ts.map +1 -1
  357. package/dist/providers/openai/adapter.js +12 -12
  358. package/dist/providers/openai/adapter.js.map +1 -1
  359. package/dist/providers/openai/pagination.d.ts.map +1 -1
  360. package/dist/providers/openai/pagination.js +3 -3
  361. package/dist/providers/openai/pagination.js.map +1 -1
  362. package/dist/providers/payu/adapter.d.ts +18 -0
  363. package/dist/providers/payu/adapter.d.ts.map +1 -0
  364. package/dist/providers/payu/adapter.js +149 -0
  365. package/dist/providers/payu/adapter.js.map +1 -0
  366. package/dist/providers/payu/index.d.ts +3 -0
  367. package/dist/providers/payu/index.d.ts.map +1 -0
  368. package/dist/providers/payu/index.js +3 -0
  369. package/dist/providers/payu/index.js.map +1 -0
  370. package/dist/providers/payu/pagination.d.ts +11 -0
  371. package/dist/providers/payu/pagination.d.ts.map +1 -0
  372. package/dist/providers/payu/pagination.js +48 -0
  373. package/dist/providers/payu/pagination.js.map +1 -0
  374. package/dist/providers/perfios/adapter.d.ts +17 -0
  375. package/dist/providers/perfios/adapter.d.ts.map +1 -0
  376. package/dist/providers/perfios/adapter.js +140 -0
  377. package/dist/providers/perfios/adapter.js.map +1 -0
  378. package/dist/providers/perfios/index.d.ts +3 -0
  379. package/dist/providers/perfios/index.d.ts.map +1 -0
  380. package/dist/providers/perfios/index.js +3 -0
  381. package/dist/providers/perfios/index.js.map +1 -0
  382. package/dist/providers/perfios/pagination.d.ts +11 -0
  383. package/dist/providers/perfios/pagination.d.ts.map +1 -0
  384. package/dist/providers/perfios/pagination.js +17 -0
  385. package/dist/providers/perfios/pagination.js.map +1 -0
  386. package/dist/providers/phonepe/adapter.d.ts +18 -0
  387. package/dist/providers/phonepe/adapter.d.ts.map +1 -0
  388. package/dist/providers/phonepe/adapter.js +213 -0
  389. package/dist/providers/phonepe/adapter.js.map +1 -0
  390. package/dist/providers/phonepe/index.d.ts +3 -0
  391. package/dist/providers/phonepe/index.d.ts.map +1 -0
  392. package/dist/providers/phonepe/index.js +3 -0
  393. package/dist/providers/phonepe/index.js.map +1 -0
  394. package/dist/providers/phonepe/pagination.d.ts +11 -0
  395. package/dist/providers/phonepe/pagination.d.ts.map +1 -0
  396. package/dist/providers/phonepe/pagination.js +15 -0
  397. package/dist/providers/phonepe/pagination.js.map +1 -0
  398. package/dist/providers/razorpay/adapter.d.ts +18 -0
  399. package/dist/providers/razorpay/adapter.d.ts.map +1 -0
  400. package/dist/providers/razorpay/adapter.js +184 -0
  401. package/dist/providers/razorpay/adapter.js.map +1 -0
  402. package/dist/providers/razorpay/index.d.ts +3 -0
  403. package/dist/providers/razorpay/index.d.ts.map +1 -0
  404. package/dist/providers/razorpay/index.js +3 -0
  405. package/dist/providers/razorpay/index.js.map +1 -0
  406. package/dist/providers/razorpay/pagination.d.ts +11 -0
  407. package/dist/providers/razorpay/pagination.d.ts.map +1 -0
  408. package/dist/providers/razorpay/pagination.js +39 -0
  409. package/dist/providers/razorpay/pagination.js.map +1 -0
  410. package/dist/providers/sendgrid/adapter.d.ts +25 -0
  411. package/dist/providers/sendgrid/adapter.d.ts.map +1 -0
  412. package/dist/providers/sendgrid/adapter.js +191 -0
  413. package/dist/providers/sendgrid/adapter.js.map +1 -0
  414. package/dist/providers/sendgrid/index.d.ts +3 -0
  415. package/dist/providers/sendgrid/index.d.ts.map +1 -0
  416. package/dist/providers/sendgrid/index.js +3 -0
  417. package/dist/providers/sendgrid/index.js.map +1 -0
  418. package/dist/providers/sendgrid/pagination.d.ts +11 -0
  419. package/dist/providers/sendgrid/pagination.d.ts.map +1 -0
  420. package/dist/providers/sendgrid/pagination.js +69 -0
  421. package/dist/providers/sendgrid/pagination.js.map +1 -0
  422. package/dist/providers/setu/adapter.d.ts +18 -0
  423. package/dist/providers/setu/adapter.d.ts.map +1 -0
  424. package/dist/providers/setu/adapter.js +166 -0
  425. package/dist/providers/setu/adapter.js.map +1 -0
  426. package/dist/providers/setu/index.d.ts +3 -0
  427. package/dist/providers/setu/index.d.ts.map +1 -0
  428. package/dist/providers/setu/index.js +3 -0
  429. package/dist/providers/setu/index.js.map +1 -0
  430. package/dist/providers/setu/pagination.d.ts +11 -0
  431. package/dist/providers/setu/pagination.d.ts.map +1 -0
  432. package/dist/providers/setu/pagination.js +38 -0
  433. package/dist/providers/setu/pagination.js.map +1 -0
  434. package/dist/providers/shiprocket/adapter.d.ts +18 -0
  435. package/dist/providers/shiprocket/adapter.d.ts.map +1 -0
  436. package/dist/providers/shiprocket/adapter.js +133 -0
  437. package/dist/providers/shiprocket/adapter.js.map +1 -0
  438. package/dist/providers/shiprocket/index.d.ts +3 -0
  439. package/dist/providers/shiprocket/index.d.ts.map +1 -0
  440. package/dist/providers/shiprocket/index.js +3 -0
  441. package/dist/providers/shiprocket/index.js.map +1 -0
  442. package/dist/providers/shiprocket/pagination.d.ts +12 -0
  443. package/dist/providers/shiprocket/pagination.d.ts.map +1 -0
  444. package/dist/providers/shiprocket/pagination.js +54 -0
  445. package/dist/providers/shiprocket/pagination.js.map +1 -0
  446. package/dist/providers/stripe/adapter.d.ts +2 -1
  447. package/dist/providers/stripe/adapter.d.ts.map +1 -1
  448. package/dist/providers/stripe/adapter.js +44 -8
  449. package/dist/providers/stripe/adapter.js.map +1 -1
  450. package/dist/providers/stripe/pagination.d.ts.map +1 -1
  451. package/dist/providers/stripe/pagination.js +5 -5
  452. package/dist/providers/stripe/pagination.js.map +1 -1
  453. package/dist/providers/supabase/adapter.d.ts +17 -0
  454. package/dist/providers/supabase/adapter.d.ts.map +1 -0
  455. package/dist/providers/supabase/adapter.js +151 -0
  456. package/dist/providers/supabase/adapter.js.map +1 -0
  457. package/dist/providers/supabase/index.d.ts +3 -0
  458. package/dist/providers/supabase/index.d.ts.map +1 -0
  459. package/dist/providers/supabase/index.js +3 -0
  460. package/dist/providers/supabase/index.js.map +1 -0
  461. package/dist/providers/supabase/pagination.d.ts +11 -0
  462. package/dist/providers/supabase/pagination.d.ts.map +1 -0
  463. package/dist/providers/supabase/pagination.js +56 -0
  464. package/dist/providers/supabase/pagination.js.map +1 -0
  465. package/dist/providers/twilio/adapter.d.ts +26 -0
  466. package/dist/providers/twilio/adapter.d.ts.map +1 -0
  467. package/dist/providers/twilio/adapter.js +200 -0
  468. package/dist/providers/twilio/adapter.js.map +1 -0
  469. package/dist/providers/twilio/index.d.ts +3 -0
  470. package/dist/providers/twilio/index.d.ts.map +1 -0
  471. package/dist/providers/twilio/index.js +3 -0
  472. package/dist/providers/twilio/index.js.map +1 -0
  473. package/dist/providers/twilio/pagination.d.ts +11 -0
  474. package/dist/providers/twilio/pagination.d.ts.map +1 -0
  475. package/dist/providers/twilio/pagination.js +57 -0
  476. package/dist/providers/twilio/pagination.js.map +1 -0
  477. package/dist/providers/vonage/adapter.d.ts +18 -0
  478. package/dist/providers/vonage/adapter.d.ts.map +1 -0
  479. package/dist/providers/vonage/adapter.js +215 -0
  480. package/dist/providers/vonage/adapter.js.map +1 -0
  481. package/dist/providers/vonage/index.d.ts +3 -0
  482. package/dist/providers/vonage/index.d.ts.map +1 -0
  483. package/dist/providers/vonage/index.js +3 -0
  484. package/dist/providers/vonage/index.js.map +1 -0
  485. package/dist/providers/vonage/pagination.d.ts +11 -0
  486. package/dist/providers/vonage/pagination.d.ts.map +1 -0
  487. package/dist/providers/vonage/pagination.js +62 -0
  488. package/dist/providers/vonage/pagination.js.map +1 -0
  489. package/dist/proxy/cli.d.ts +27 -0
  490. package/dist/proxy/cli.d.ts.map +1 -0
  491. package/dist/proxy/cli.js +38 -0
  492. package/dist/proxy/cli.js.map +1 -0
  493. package/dist/proxy/index.d.ts +3 -0
  494. package/dist/proxy/index.d.ts.map +1 -0
  495. package/dist/proxy/index.js +2 -0
  496. package/dist/proxy/index.js.map +1 -0
  497. package/dist/proxy/server.d.ts +28 -0
  498. package/dist/proxy/server.d.ts.map +1 -0
  499. package/dist/proxy/server.js +387 -0
  500. package/dist/proxy/server.js.map +1 -0
  501. package/dist/public.d.ts +40 -1
  502. package/dist/public.d.ts.map +1 -1
  503. package/dist/public.js +39 -0
  504. package/dist/public.js.map +1 -1
  505. package/dist/routers/index.d.ts +3 -0
  506. package/dist/routers/index.d.ts.map +1 -0
  507. package/dist/routers/index.js +2 -0
  508. package/dist/routers/index.js.map +1 -0
  509. package/dist/routers/payment-router.d.ts +27 -0
  510. package/dist/routers/payment-router.d.ts.map +1 -0
  511. package/dist/routers/payment-router.js +53 -0
  512. package/dist/routers/payment-router.js.map +1 -0
  513. package/dist/state/index.d.ts +6 -0
  514. package/dist/state/index.d.ts.map +1 -0
  515. package/dist/state/index.js +4 -0
  516. package/dist/state/index.js.map +1 -0
  517. package/dist/state/memory.d.ts +10 -0
  518. package/dist/state/memory.d.ts.map +1 -0
  519. package/dist/state/memory.js +27 -0
  520. package/dist/state/memory.js.map +1 -0
  521. package/dist/state/redis.d.ts +17 -0
  522. package/dist/state/redis.d.ts.map +1 -0
  523. package/dist/state/redis.js +19 -0
  524. package/dist/state/redis.js.map +1 -0
  525. package/dist/state/upstash.d.ts +17 -0
  526. package/dist/state/upstash.d.ts.map +1 -0
  527. package/dist/state/upstash.js +17 -0
  528. package/dist/state/upstash.js.map +1 -0
  529. package/dist/strategies/circuit-breaker.d.ts.map +1 -1
  530. package/dist/strategies/circuit-breaker.js +5 -7
  531. package/dist/strategies/circuit-breaker.js.map +1 -1
  532. package/dist/strategies/idempotency.d.ts +1 -1
  533. package/dist/strategies/idempotency.d.ts.map +1 -1
  534. package/dist/strategies/idempotency.js +2 -3
  535. package/dist/strategies/idempotency.js.map +1 -1
  536. package/dist/strategies/pagination.d.ts.map +1 -1
  537. package/dist/strategies/pagination.js +11 -21
  538. package/dist/strategies/pagination.js.map +1 -1
  539. package/dist/strategies/rate-limit.d.ts.map +1 -1
  540. package/dist/strategies/rate-limit.js +3 -1
  541. package/dist/strategies/rate-limit.js.map +1 -1
  542. package/dist/strategies/retry.d.ts +1 -1
  543. package/dist/strategies/retry.d.ts.map +1 -1
  544. package/dist/strategies/retry.js +2 -2
  545. package/dist/strategies/retry.js.map +1 -1
  546. package/dist/testing/fixtures.d.ts +22 -0
  547. package/dist/testing/fixtures.d.ts.map +1 -0
  548. package/dist/testing/fixtures.js +70 -0
  549. package/dist/testing/fixtures.js.map +1 -0
  550. package/dist/testing/index.d.ts +4 -0
  551. package/dist/testing/index.d.ts.map +1 -0
  552. package/dist/testing/index.js +3 -0
  553. package/dist/testing/index.js.map +1 -0
  554. package/dist/testing/mock-adapter.d.ts +58 -0
  555. package/dist/testing/mock-adapter.d.ts.map +1 -0
  556. package/dist/testing/mock-adapter.js +108 -0
  557. package/dist/testing/mock-adapter.js.map +1 -0
  558. package/dist/validation/drift-detector.d.ts.map +1 -1
  559. package/dist/validation/drift-detector.js.map +1 -1
  560. package/dist/validation/schema-storage.d.ts.map +1 -1
  561. package/dist/validation/schema-storage.js +4 -8
  562. package/dist/validation/schema-storage.js.map +1 -1
  563. package/dist/webhooks/index.d.ts +2 -0
  564. package/dist/webhooks/index.d.ts.map +1 -0
  565. package/dist/webhooks/index.js +2 -0
  566. package/dist/webhooks/index.js.map +1 -0
  567. package/dist/webhooks/verifier.d.ts +21 -0
  568. package/dist/webhooks/verifier.d.ts.map +1 -0
  569. package/dist/webhooks/verifier.js +41 -0
  570. package/dist/webhooks/verifier.js.map +1 -0
  571. package/package.json +7 -2
package/CHANGELOG.md CHANGED
@@ -101,6 +101,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
101
101
 
102
102
  4. **Update TypeScript types:** `ProviderClient` methods now use strict `RequestOptions` instead of `any`
103
103
 
104
+ ## [0.1.3] - 2026-05-31
105
+
106
+ ### Added
107
+ - **Razorpay adapter** (`src/providers/razorpay/`) — full `ProviderAdapter` implementation for India's largest payment gateway
108
+ - Basic auth with `key_id:key_secret` (supports `username`/`password` or `apiKey`/`custom.keySecret`)
109
+ - `X-Idempotency-Key` header support on write operations
110
+ - Error mapping: 400/422→validation, 401/403→auth, 404→validation, 429→rate_limit, 5xx→provider (retryable)
111
+ - Offset-based pagination via Razorpay's `items[]`/`count`/`skip` list format
112
+ - Idempotency config for orders, payments, refunds, transfers, payouts, subscriptions, invoices
113
+ - 31 contract tests covering all adapter methods
114
+ - Registered 17 additional Indian provider adapters in the built-in registry (Cashfree, PayU, Juspay, MSG91, Exotel, Gupshup, Setu, Decentro, Shiprocket, Delhivery, HyperVerge, Digio, Karza, IDfy, Cleartax, MapMyIndia, Perfios) — implementations pending
115
+ - `ROADMAP.md` — comprehensive future plan covering Indian and international provider coverage, SDK capabilities (webhook verification, streaming, mock adapter, batch operations, India compliance mode, UPI helpers), and version targets through v1.0
116
+
104
117
  ## [Unreleased]
105
118
 
106
119
  ### Added
package/README.md CHANGED
@@ -1,6 +1,22 @@
1
- # Meridian
2
1
 
3
- A TypeScript SDK that normalizes third-party API interactions through a unified request pipeline, enforcing consistent error handling, rate limiting, and response shapes across providers.
2
+ <div align="center">
3
+ Meridian
4
+
5
+ **One SDK. Every API. Zero inconsistency.**
6
+
7
+ A TypeScript-first SDK that enforces a single stable contract across all third-party API providers — normalizing error handling, rate limiting, pagination, and response shapes so your application code never changes when providers do. Deep coverage of the Indian tech ecosystem alongside global providers.
8
+
9
+ [![npm version](https://img.shields.io/npm/v/meridianjs?color=0070f3&label=npm)](https://www.npmjs.com/package/meridianjs)
10
+ [![npm downloads](https://img.shields.io/npm/dm/meridianjs?color=0070f3)](https://www.npmjs.com/package/meridianjs)
11
+ [![License: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE.md)
12
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.5-blue?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
13
+ [![Node.js](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen?logo=node.js&logoColor=white)](https://nodejs.org)
14
+ [![Tests](https://img.shields.io/badge/tests-661%20passing-brightgreen)](https://vitest.dev)
15
+ [![Adapters](https://img.shields.io/badge/adapters-31-blueviolet)](#provider-coverage)
16
+
17
+ [Installation](#installation) · [Quick Start](#quick-start) · [Providers](#provider-coverage) · [Architecture](#architecture) · [API](#public-api) · [Roadmap](ROADMAP.md) · [Contributing](CONTRIBUTING.md)
18
+
19
+ </div>
4
20
 
5
21
  ## Problem Statement
6
22
 
@@ -8,15 +24,16 @@ Applications integrating multiple third-party APIs face inconsistent response fo
8
24
 
9
25
  Meridian provides a single abstraction layer that normalizes these differences, allowing applications to interact with any provider through a consistent interface while maintaining type safety and resilience patterns.
10
26
 
11
- ## Non-Goals
27
+ ```typescript
28
+ // Same interface. Every provider. Always.
29
+ const { data, meta } = await meridian.provider("razorpay").get("/v1/payments/pay_123");
30
+ console.log(meta.rateLimit.remaining); // normalized from any provider
31
+ console.log(meta.provider); // "razorpay"
32
+ ```
12
33
 
13
- - UI components or dashboards
14
- - API mocking or stubbing frameworks
15
- - Request recording or replay functionality
16
- - GraphQL support (v1)
17
- - Webhook handling (v1)
18
- - Multi-region routing
19
- - Built-in caching (applications can layer caching on top)
34
+ If Razorpay changes their error format tomorrow, you don't change a line of your code.
35
+
36
+ ---
20
37
 
21
38
  ## Installation
22
39
 
@@ -24,101 +41,497 @@ Meridian provides a single abstraction layer that normalizes these differences,
24
41
  npm install meridianjs
25
42
  ```
26
43
 
27
- ## Requirements
28
-
29
- - **Node.js ≥18.0.0** (required for `fetch`, `Headers`, `AbortController`, `crypto.randomUUID`)
44
+ **Requires Node.js ≥ 18.0.0** (`fetch`, `Headers`, `AbortController`, `crypto.randomUUID` used natively — no polyfills needed).
30
45
 
31
- ## Usage
46
+ ---
32
47
 
33
- **IMPORTANT**: Meridian requires async initialization. Always use `Meridian.create()`:
48
+ ## Quick Start
34
49
 
35
50
  ```typescript
36
51
  import { Meridian } from "meridianjs";
37
52
 
38
- // ✅ CORRECT: Async initialization
39
53
  const meridian = await Meridian.create({
54
+ localUnsafe: true, // for local dev — see State Management for production
55
+ razorpay: {
56
+ auth: {
57
+ username: process.env.RAZORPAY_KEY_ID,
58
+ password: process.env.RAZORPAY_KEY_SECRET,
59
+ },
60
+ },
40
61
  github: {
41
62
  auth: { token: process.env.GITHUB_TOKEN },
42
63
  },
43
- localUnsafe: true, // Required for local development without StateStorage
44
64
  });
45
65
 
46
- const { data, meta } = await meridian.github.get("/users/octocat");
47
- console.log(meta.rateLimit.remaining);
66
+ // Payments
67
+ const order = await meridian.provider("razorpay").post("/v1/orders", {
68
+ body: { amount: 50000, currency: "INR" },
69
+ });
70
+
71
+ // Paginate automatically — cursors handled for you
72
+ for await (const page of meridian.provider("razorpay").paginate("/v1/payments")) {
73
+ console.log(page.data.items);
74
+ }
48
75
  ```
49
76
 
50
- **❌ NEVER use `new Meridian()`** - the constructor is private and will fail.
77
+ Every response has the same shape, regardless of provider:
51
78
 
52
- ### Production Deployment
79
+ ```typescript
80
+ {
81
+ data: T,
82
+ meta: {
83
+ provider: string,
84
+ requestId: string,
85
+ rateLimit: { limit: number, remaining: number, reset: Date },
86
+ pagination?: { hasNext: boolean, cursor?: string },
87
+ warnings: string[],
88
+ }
89
+ }
90
+ ```
53
91
 
54
- For distributed deployments (serverless, multiple instances), you **must** provide a `StateStorage` implementation:
92
+ ---
55
93
 
56
- ```typescript
57
- import { Meridian } from "meridianjs";
58
- import { RedisStateStorage } from "./your-redis-storage.js";
94
+ ## Provider Coverage
95
+
96
+ 31 adapters, fully implemented and contract-tested (661 tests).
97
+
98
+ ### Global
99
+
100
+ | Provider | Category | Auth |
101
+ | --- | --- | --- |
102
+ | **GitHub** | Developer Tools | Bearer token |
103
+ | **Anthropic** | AI / LLM | `x-api-key` header |
104
+ | **OpenAI** | AI / LLM | Bearer token |
105
+ | **Stripe** | Payments | Basic (`key:`) · ✅ webhook |
106
+ | **Twilio** | Communications | Basic (`SID:AuthToken`) · ✅ webhook |
107
+ | **SendGrid** | Communications | Bearer token · ✅ webhook |
108
+ | **Mailgun** | Communications | Basic (`api:key`) · ✅ webhook |
109
+ | **Vonage** | Communications | Query parameter (`api_key:api_secret`) · ✅ webhook |
110
+ | **Adyen** | Payments | Basic (`apiKey:`) · ✅ webhook |
111
+ | **Google Gemini** | AI / LLM | Bearer token / `x-goog-api-key` |
112
+ | **Auth0** | Auth / Identity | Bearer token |
113
+ | **HubSpot** | CRM | Bearer token |
114
+ | **Supabase** | Databases | Bearer token / `apikey` |
115
+
116
+ ### India — Payments
117
+
118
+ | Provider | Auth | Webhook |
119
+ | --- | --- | --- |
120
+ | **Razorpay** | Basic (`key_id:key_secret`) | ✅ HMAC-SHA256 |
121
+ | **Cashfree** | `x-client-id` + `x-client-secret` | ✅ HMAC-SHA256 |
122
+ | **PayU** | Basic (`key:salt`) | ✅ HMAC-SHA512 |
123
+ | **Juspay** | Basic (`apiKey:`) | ✅ HMAC-SHA256 |
124
+
125
+ ### India — Communications
126
+
127
+ | Provider | Auth | Key Endpoints |
128
+ | --- | --- | --- |
129
+ | **MSG91** | `authkey` header | SMS, OTP, WhatsApp, Email · ✅ webhook |
130
+ | **Exotel** | Basic (`SID:APIKey`) | Calls, SMS, Virtual Numbers · ✅ webhook |
131
+ | **Gupshup** | `apikey` header | WhatsApp Business, SMS · ✅ webhook |
132
+
133
+ ### India — Banking / Fintech
134
+
135
+ | Provider | Auth | Key Endpoints |
136
+ | --- | --- | --- |
137
+ | **Setu** | Bearer token | AA consent, UPI, BBPS |
138
+ | **Decentro** | `clientId\|clientSecret\|moduleSecret` | KYC, UPI, Virtual Accounts |
139
+ | **Perfios** | `x-api-key` header | Bank statement analysis, ITR |
140
+
141
+ ### India — Logistics
142
+
143
+ | Provider | Auth | Key Endpoints |
144
+ | --- | --- | --- |
145
+ | **Shiprocket** | Bearer JWT | Orders, Shipments, Tracking, NDR |
146
+ | **Delhivery** | Bearer token | Waybills, Tracking, COD |
147
+
148
+ ### India — KYC / Identity / eSign
149
+
150
+ | Provider | Auth | Key Endpoints |
151
+ | --- | --- | --- |
152
+ | **HyperVerge** | `appId\|appKey` headers | Face match, Liveness, OCR |
153
+ | **Digio** | Basic (`clientId:clientSecret`) | eSign, eStamp, Documents |
154
+ | **Karza** | `x-karza-key` header | PAN, GST, Bank verify, ITR |
155
+ | **IDfy** | `api-key` + `account-id` headers | Identity checks, Background verify |
156
+
157
+ ### India — Tax / Compliance / Maps
158
+
159
+ | Provider | Auth | Key Endpoints |
160
+ | --- | --- | --- |
161
+ | **Cleartax** | `x-cleartax-auth-token` | GST filing, e-invoicing, IRN |
162
+ | **MapMyIndia** | Bearer token | Geocode, Directions, Places |
163
+
164
+ > **Planned next:** BillDesk, Freshworks, Signzy — see [ROADMAP.md](ROADMAP.md)
165
+
166
+ ---
167
+
168
+ ## Architecture
169
+
170
+ ### Request Flow
171
+
172
+ ```mermaid
173
+ flowchart TD
174
+ App(["🖥️ Your Application\nmeridian.provider('x').post(...)"])
175
+
176
+ subgraph SDK["Meridian SDK"]
177
+ direction TB
178
+
179
+ subgraph Pipeline["Request Pipeline"]
180
+ direction LR
181
+ RL["🪣 Rate Limiter\nToken bucket + adaptive backoff"]
182
+ CB["⚡ Circuit Breaker\nClosed / Open / Half-open"]
183
+ IK["🔑 Idempotency Resolver\nSAFE / CONDITIONAL / IDEMPOTENT"]
184
+ RT["🔄 Retry Strategy\nExp. backoff + jitter"]
185
+ AU["🔐 Auth Strategy\nauthStrategy(config)"]
186
+ BQ["🔧 Build Request\nbuildRequest(input)"]
187
+ RL --> CB --> IK --> RT --> AU --> BQ
188
+ end
189
+
190
+ subgraph Adapters["Provider Adapters (22)"]
191
+ direction LR
192
+ PAY["💳 Payments\nRazorpay · Cashfree · PayU · Juspay · Stripe"]
193
+ COM["📱 Communications\nMSG91 · Exotel · Gupshup"]
194
+ FIN["🏦 Banking / Fintech\nSetu · Decentro · Perfios"]
195
+ LOG["📦 Logistics\nShiprocket · Delhivery"]
196
+ KYC["🪪 KYC / Identity\nHyperVerge · Digio · Karza · IDfy"]
197
+ TAX["🧾 Tax / Maps\nCleartax · MapMyIndia"]
198
+ GLB["🌐 Global\nGitHub · OpenAI · Anthropic"]
199
+ end
200
+
201
+ OBS["📊 Observability\nlogRequest · logResponse · logError · recordMetric"]
202
+ STATE[("💾 State Storage\nCircuit breaker · Rate limiter\nRedis / In-memory")]
203
+ end
204
+
205
+ EXT[["🌍 External APIs"]]
206
+ RES(["✅ NormalizedResponse&lt;T&gt;\n{ data, meta: { provider, rateLimit, pagination } }"])
207
+ ERR(["❌ MeridianError\n{ category, retryable, status, provider }"])
208
+
209
+ App --> RL
210
+ BQ --> Adapters
211
+ Adapters -->|fetch| EXT
212
+ EXT -->|raw response| Adapters
213
+ Adapters -->|parseResponse| RES
214
+ Adapters -->|parseError| ERR
215
+ Pipeline <-->|log + metrics| OBS
216
+ CB <-->|read/write| STATE
217
+ RL <-->|read/write| STATE
218
+ ```
219
+
220
+ ### Pipeline Stages
221
+
222
+ ```text
223
+ Your Code
224
+
225
+
226
+ ┌───────────────────────────────────────────────────────────────────┐
227
+ │ Request Pipeline │
228
+ │ │
229
+ │ ① Rate Limiter ② Circuit Breaker ③ Idempotency │
230
+ │ ┌─────────────┐ ┌───────────────┐ ┌─────────────┐ │
231
+ │ │ Token bucket│ │ CLOSED │ │ Resolve or │ │
232
+ │ │ Adaptive │────────►│ OPEN │─────►│ generate │ │
233
+ │ │ backoff │ │ HALF_OPEN │ │ key │ │
234
+ │ └─────────────┘ └───────────────┘ └─────────────┘ │
235
+ │ │ │
236
+ │ ④ Retry Strategy ⑤ Auth Strategy ⑥ Build Request │
237
+ │ ┌─────────────┐ ┌───────────────┐ ┌──────────────────┐ │
238
+ │ │ Exp backoff │ │ authStrategy()│ │ buildRequest() │ │
239
+ │ │ + jitter │◄────────│ → AuthToken │ │ URL · headers │ │
240
+ │ │ retryable? │ └───────────────┘ │ body · auth │ │
241
+ │ └─────────────┘ └──────────────────┘ │
242
+ └──────────────────────────────────────────────────┬────────────────┘
243
+
244
+ ┌──────────▼───────────┐
245
+ │ Provider Adapter │
246
+ │ buildRequest() │
247
+ │ parseResponse() │
248
+ │ parseError() │
249
+ │ rateLimitPolicy() │
250
+ │ paginationStrategy()│
251
+ └──────────┬───────────┘
252
+ │ fetch()
253
+
254
+ External API
255
+
256
+ ┌────────────────┴────────────────┐
257
+ ▼ ▼
258
+ NormalizedResponse<T> MeridianError
259
+ { data, meta: { { category,
260
+ provider, requestId, retryable,
261
+ rateLimit, pagination } } provider, status }
262
+ ```
263
+
264
+ ### Multi-Provider Isolation
265
+
266
+ ```text
267
+ ┌──────────────────────────────────────────────────────────────────┐
268
+ │ Meridian Instance │
269
+ │ │
270
+ │ provider("razorpay") ──► [ CB ] [ RL ] ──► RazorpayAdapter │
271
+ │ provider("cashfree") ──► [ CB ] [ RL ] ──► CashfreeAdapter │
272
+ │ provider("karza") ──► [ CB ] [ RL ] ──► KarzaAdapter │
273
+ │ provider("shiprocket") ──► [ CB ] [ RL ] ──► ShiprocketAdapter │
274
+ │ provider("github") ──► [ CB ] [ RL ] ──► GitHubAdapter │
275
+ │ │
276
+ │ CB = Circuit Breaker (independent per provider) │
277
+ │ RL = Rate Limiter (independent per provider) │
278
+ │ │
279
+ │ One provider tripping its circuit breaker never affects others. │
280
+ └──────────────────────────────────────────────────────────────────┘
281
+ │ │
282
+ ▼ ▼
283
+ StateStorage (Redis) Observability Adapters
284
+ circuit breaker state Console / OTel / Prometheus
285
+ rate limiter state logs · metrics · traces
286
+ ```
287
+
288
+ ---
59
289
 
290
+ ## Usage Examples
291
+
292
+ ### Cashfree Payment Order
293
+
294
+ ```typescript
60
295
  const meridian = await Meridian.create({
61
- mode: "distributed",
62
- stateStorage: new RedisStateStorage(redisClient), // Required in distributed mode
63
- github: {
64
- auth: { token: process.env.GITHUB_TOKEN },
296
+ localUnsafe: true,
297
+ cashfree: {
298
+ auth: {
299
+ custom: {
300
+ clientId: process.env.CASHFREE_CLIENT_ID,
301
+ clientSecret: process.env.CASHFREE_CLIENT_SECRET,
302
+ },
303
+ },
65
304
  },
66
305
  });
306
+
307
+ const order = await meridian.provider("cashfree").post("/pg/orders", {
308
+ body: {
309
+ order_amount: 100.00,
310
+ order_currency: "INR",
311
+ customer_details: { customer_id: "user_123", customer_phone: "9999999999" },
312
+ },
313
+ idempotencyKey: "order-xyz-123",
314
+ });
67
315
  ```
68
316
 
69
- **Without `stateStorage` in distributed mode, startup will fail.** This is intentional - in-memory state cannot be shared across instances.
317
+ ### Karza PAN Verification
70
318
 
71
- ### Local Development
319
+ ```typescript
320
+ const result = await meridian.provider("karza").post("/v3/pan/verify", {
321
+ body: { pan: "ABCDE1234F", consent: "Y" },
322
+ });
323
+ ```
72
324
 
73
- For local development, explicitly opt-in to unsafe in-memory state:
325
+ ### Webhook Verification
326
+
327
+ ```typescript
328
+ import { CashfreeAdapter, PayuAdapter } from "meridianjs";
329
+
330
+ // Cashfree — HMAC-SHA256, base64
331
+ const cfAdapter = new CashfreeAdapter();
332
+ const isValid = cfAdapter.verifyWebhook(
333
+ req.rawBody,
334
+ req.headers["x-webhook-signature"],
335
+ process.env.CASHFREE_WEBHOOK_SECRET
336
+ );
337
+
338
+ // PayU — HMAC-SHA512, hex
339
+ const payuAdapter = new PayuAdapter();
340
+ const isValid = payuAdapter.verifyWebhook(
341
+ req.rawBody,
342
+ req.headers["x-verify"],
343
+ process.env.PAYU_SALT
344
+ );
345
+ ```
346
+
347
+ ### Unified Error Handling
348
+
349
+ ```typescript
350
+ import { MeridianError } from "meridianjs";
351
+
352
+ try {
353
+ const result = await meridian.provider("razorpay").post("/v1/orders", { body: { ... } });
354
+ } catch (err) {
355
+ if (err instanceof MeridianError) {
356
+ switch (err.category) {
357
+ case "auth": // bad credentials — do not retry
358
+ break;
359
+ case "rate_limit": // check err.retryAfter for when to retry
360
+ break;
361
+ case "validation": // bad request — fix the payload
362
+ break;
363
+ case "provider": // upstream 5xx — safe to retry (err.retryable === true)
364
+ break;
365
+ case "network": // connection issue — safe to retry
366
+ break;
367
+ }
368
+ }
369
+ }
370
+ ```
371
+
372
+ ---
373
+
374
+ ## State Management
375
+
376
+ ### Local Development
74
377
 
75
378
  ```typescript
76
379
  const meridian = await Meridian.create({
77
- mode: "local", // or omit mode
78
- localUnsafe: true, // Explicitly acknowledge unsafe state
79
- github: {
80
- auth: { token: process.env.GITHUB_TOKEN },
81
- },
380
+ localUnsafe: true, // in-memory fine for dev, never for production
381
+ razorpay: { auth: { ... } },
82
382
  });
83
383
  ```
84
384
 
85
- **Warning**: `localUnsafe: true` means circuit breaker and rate limiter state will be lost on process restart. This is acceptable for development but **must not be used in production**.
385
+ ### Production (Serverless / Distributed)
86
386
 
87
- ## Safety Guarantees
387
+ ```typescript
388
+ import { RedisStateStorage } from "./your-redis-storage.js";
88
389
 
89
- Meridian enforces safety by default:
390
+ const meridian = await Meridian.create({
391
+ mode: "distributed",
392
+ stateStorage: new RedisStateStorage(redisClient), // required — startup fails without it
393
+ razorpay: { auth: { ... } },
394
+ });
395
+ ```
396
+
397
+ **Without `stateStorage` in distributed mode, startup will fail.** Circuit breaker and rate limiter state reset on every cold start without it — acceptable for dev, a bug in production.
90
398
 
91
- 1. **Fail-Fast Initialization**: SDK cannot be used before initialization completes. All methods throw if called before `Meridian.create()` resolves.
399
+ ---
92
400
 
93
- 2. **Fail-Closed State Management**: Distributed mode requires `StateStorage`. In-memory state is opt-in only via `localUnsafe: true`.
401
+ ## Safety Guarantees
94
402
 
95
- 3. **Guaranteed Secret Redaction**: All observability paths (logs, errors, metrics) automatically redact sensitive fields: `authorization`, `cookie`, `token`, `apiKey`, `api_key`, `body`.
403
+ | Guarantee | Behaviour |
404
+ | --- | --- |
405
+ | **Fail-fast init** | All methods throw if called before `Meridian.create()` resolves |
406
+ | **Fail-closed state** | `distributed` mode requires `StateStorage` — startup fails without it |
407
+ | **Secret redaction** | `authorization`, `cookie`, `token`, `apiKey` auto-redacted in all logs, errors, and metrics |
408
+ | **No silent degradation** | Invalid configs fail at startup; adapter validation failures are explicit |
409
+ | **Pagination safety** | Cycle detection + 1000-page hard limit prevent infinite loops |
96
410
 
97
- 4. **No Silent Degradation**: Runtime failures are explicit. Invalid configurations fail at startup. Adapter validation failures stop initialization.
411
+ ---
98
412
 
99
413
  ## Public API
100
414
 
101
- ### Meridian Class
415
+ ### `Meridian.create(config)`
102
416
 
103
- - `static create(config: MeridianConfig, adapters?: Map<string, ProviderAdapter>): Promise<Meridian>` - **Use this to create instances**
104
- - `getCircuitStatus(provider: string): CircuitBreakerStatus | null`
105
- - `registerProvider(name: string, adapter: ProviderAdapter, config: ProviderConfig): Promise<void>`
417
+ ```typescript
418
+ const meridian = await Meridian.create({
419
+ razorpay: { auth: { username: "...", password: "..." } },
420
+ github: { auth: { token: "..." } },
421
+
422
+ defaults: {
423
+ retry: { maxRetries: 3, baseDelay: 100, maxDelay: 5000, jitter: true },
424
+ circuitBreaker: { failureThreshold: 5, timeout: 30000 },
425
+ rateLimit: { tokensPerSecond: 10, maxTokens: 100 },
426
+ timeout: 10000,
427
+ },
428
+
429
+ observability: new ConsoleObservability(),
430
+ compliance: { piiRedaction: true, auditLog: true },
431
+ mode: "distributed",
432
+ stateStorage: new RedisStateStorage(client),
433
+ });
434
+ ```
106
435
 
107
436
  ### Provider Client
108
437
 
109
- Each configured provider exposes a client with:
438
+ ```typescript
439
+ const client = meridian.provider("razorpay");
440
+
441
+ client.get<T>(endpoint, options?) // GET
442
+ client.post<T>(endpoint, options?) // POST
443
+ client.put<T>(endpoint, options?) // PUT
444
+ client.patch<T>(endpoint, options?) // PATCH
445
+ client.delete<T>(endpoint, options?) // DELETE
446
+ client.paginate<T>(endpoint, options?) // AsyncGenerator — auto-follows cursors
447
+ ```
448
+
449
+ ### `MeridianError`
450
+
451
+ ```typescript
452
+ error.category // "auth" | "rate_limit" | "network" | "validation" | "provider"
453
+ error.code // "AUTH_FAILED" | "RATE_LIMITED" | "NOT_FOUND" | "BAD_REQUEST" | "UPSTREAM_5XX" | "NETWORK_ERROR" | "UNKNOWN"
454
+ error.retryable // boolean
455
+ error.provider // "razorpay" | "cashfree" | "github" | ...
456
+ error.status // HTTP status if applicable
457
+ error.retryAfter // Date — present on rate_limit errors
458
+ error.metadata // sanitized provider context
459
+ ```
460
+
461
+ ---
462
+
463
+ ## Agent Proxy
110
464
 
111
- - `get<T>(endpoint: string, options?: RequestOptions): Promise<NormalizedResponse<T>>`
112
- - `post<T>(endpoint: string, options?: RequestOptions): Promise<NormalizedResponse<T>>`
113
- - `put<T>(endpoint: string, options?: RequestOptions): Promise<NormalizedResponse<T>>`
114
- - `patch<T>(endpoint: string, options?: RequestOptions): Promise<NormalizedResponse<T>>`
115
- - `delete<T>(endpoint: string, options?: RequestOptions): Promise<NormalizedResponse<T>>`
116
- - `paginate<T>(endpoint: string, options?: RequestOptions): AsyncGenerator<NormalizedResponse<T>>`
465
+ Meridian ships a built-in HTTP proxy for AI agents and LLM runtimes — rate limiting, circuit breaking, and secret redaction apply automatically to every request.
466
+
467
+ ```bash
468
+ export RAZORPAY_KEY_ID="rzp_live_..." RAZORPAY_KEY_SECRET="..."
469
+ export GITHUB_TOKEN="ghp_..."
470
+ export STRIPE_SECRET_KEY="sk_live_..."
471
+
472
+ npx boundary-proxy # http://127.0.0.1:4242
473
+ npx boundary-proxy 8080 # custom port
474
+ ```
475
+
476
+ Route pattern: `http://localhost:4242/<provider>/<endpoint>`
477
+
478
+ ```text
479
+ GET /github/repos/octocat/Hello-World → api.github.com
480
+ POST /razorpay/v1/orders → api.razorpay.com
481
+ GET /anthropic/v1/messages → api.anthropic.com
482
+ ```
483
+
484
+ ---
117
485
 
118
486
  ## Project Status
119
487
 
120
- **v0.1.0** - Early release. Core functionality is stable and tested. Provider support includes Anthropic, OpenAI, Stripe, and GitHub out of the box. API may evolve based on real-world feedback before v1.0.
488
+ **v0.1.3** 22 adapters, 565 tests, zero TypeScript errors. Core pipeline stable. API surface settled all additions are additive and non-breaking.
489
+
490
+ | Milestone | Status |
491
+ | --- | --- |
492
+ | Core pipeline (rate limit, circuit breaker, retry, idempotency) | ✅ Stable |
493
+ | 22 provider adapters (global + Indian ecosystem) | ✅ Stable |
494
+ | Contract test coverage for all adapters | ✅ 565 tests |
495
+ | Webhook verification (Cashfree, PayU, Decentro, Shiprocket) | ✅ Partial |
496
+ | Webhook verification on all remaining adapters | 🔄 Next |
497
+ | Twilio + SendGrid | 📋 v0.2 |
498
+ | Streaming support (OpenAI / Anthropic SSE) | 📋 v0.4 |
499
+ | Mock adapter for testing | 📋 v0.4 |
500
+ | India Compliance Mode (DPDPA) | 📋 v0.5 |
501
+
502
+ See [ROADMAP.md](ROADMAP.md) for the full plan and version targets.
503
+
504
+ ---
505
+
506
+ ## Non-Goals
507
+
508
+ - UI components or dashboards
509
+ - API mocking / stubbing (planned v0.4)
510
+ - Request recording or replay
511
+ - GraphQL (planned v1)
512
+ - Multi-region routing
513
+ - Built-in caching (layer it on top)
514
+
515
+ ---
516
+
517
+ ## Contributing
518
+
519
+ ```bash
520
+ git clone https://github.com/Raghaverma/meridianjs
521
+ npm install
522
+ npm test # 565 tests
523
+ npm run typecheck # zero errors
524
+ npm run lint
525
+ ```
526
+
527
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for the adapter-building guide, error mapping rules, and PR checklist.
528
+
529
+ ---
121
530
 
122
531
  ## License
123
532
 
124
- MIT. See [LICENSE.md](LICENSE.md) for details.
533
+ MIT see [LICENSE.md](LICENSE.md).
534
+
535
+ ---
536
+
537
+ Built for the Indian and global developer ecosystem · TypeScript-first · Zero runtime dependencies
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-validator.d.ts","sourceRoot":"","sources":["../../src/core/adapter-validator.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,eAAe,EAKrB,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAGD,wBAAsB,eAAe,CACnC,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC,CA+R3B;AAGD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAaf;AAGD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,eAAe,CAkBtE"}
1
+ {"version":3,"file":"adapter-validator.d.ts","sourceRoot":"","sources":["../../src/core/adapter-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,eAAe,EAErB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC,CA+Q3B;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,eAAe,CAgBtE"}
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-validator.js","sourceRoot":"","sources":["../../src/core/adapter-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter-validator.js","sourceRoot":"","sources":["../../src/core/adapter-validator.ts"],"names":[],"mappings":"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"}