@debridge-finance/borderless-validation-sdk 0.0.0-dev-dee2389

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 (345) hide show
  1. package/dist/cjs/graylists/evm/token-permit-metadata.js +28 -0
  2. package/dist/cjs/graylists/evm/token-permit-metadata.js.map +1 -0
  3. package/dist/cjs/helpers/address.js +75 -0
  4. package/dist/cjs/helpers/address.js.map +1 -0
  5. package/dist/cjs/helpers/caveat-decoder.js +60 -0
  6. package/dist/cjs/helpers/caveat-decoder.js.map +1 -0
  7. package/dist/cjs/helpers/constants.js +6 -0
  8. package/dist/cjs/helpers/constants.js.map +1 -0
  9. package/dist/cjs/helpers/evm-action.js +20 -0
  10. package/dist/cjs/helpers/evm-action.js.map +1 -0
  11. package/dist/cjs/helpers/evm-calldata.js +45 -0
  12. package/dist/cjs/helpers/evm-calldata.js.map +1 -0
  13. package/dist/cjs/helpers/evm-intent-id-abi.js +67 -0
  14. package/dist/cjs/helpers/evm-intent-id-abi.js.map +1 -0
  15. package/dist/cjs/helpers/evm-intent-id.js +70 -0
  16. package/dist/cjs/helpers/evm-intent-id.js.map +1 -0
  17. package/dist/cjs/helpers/evm-token.js +30 -0
  18. package/dist/cjs/helpers/evm-token.js.map +1 -0
  19. package/dist/cjs/helpers/evm-trade-amounts.js +42 -0
  20. package/dist/cjs/helpers/evm-trade-amounts.js.map +1 -0
  21. package/dist/cjs/helpers/solana-instruction.js +160 -0
  22. package/dist/cjs/helpers/solana-instruction.js.map +1 -0
  23. package/dist/cjs/helpers/solana-intent-id.js +460 -0
  24. package/dist/cjs/helpers/solana-intent-id.js.map +1 -0
  25. package/dist/cjs/helpers/solana-transaction-decode.js +58 -0
  26. package/dist/cjs/helpers/solana-transaction-decode.js.map +1 -0
  27. package/dist/cjs/helpers/zod.js +12 -0
  28. package/dist/cjs/helpers/zod.js.map +1 -0
  29. package/dist/cjs/index.js +9 -0
  30. package/dist/cjs/index.js.map +1 -0
  31. package/dist/cjs/package.json +1 -0
  32. package/dist/cjs/types/enums.js +137 -0
  33. package/dist/cjs/types/enums.js.map +1 -0
  34. package/dist/cjs/types/index.js +21 -0
  35. package/dist/cjs/types/index.js.map +1 -0
  36. package/dist/cjs/types/request.js +65 -0
  37. package/dist/cjs/types/request.js.map +1 -0
  38. package/dist/cjs/types/response.js +252 -0
  39. package/dist/cjs/types/response.js.map +1 -0
  40. package/dist/cjs/types/validation.js +242 -0
  41. package/dist/cjs/types/validation.js.map +1 -0
  42. package/dist/cjs/validations/echo-fields.js +67 -0
  43. package/dist/cjs/validations/echo-fields.js.map +1 -0
  44. package/dist/cjs/validations/evm-caveats.js +235 -0
  45. package/dist/cjs/validations/evm-caveats.js.map +1 -0
  46. package/dist/cjs/validations/evm-op-budget.js +261 -0
  47. package/dist/cjs/validations/evm-op-budget.js.map +1 -0
  48. package/dist/cjs/validations/evm-op-gas-compensation.js +152 -0
  49. package/dist/cjs/validations/evm-op-gas-compensation.js.map +1 -0
  50. package/dist/cjs/validations/evm-op-hook.js +8 -0
  51. package/dist/cjs/validations/evm-op-hook.js.map +1 -0
  52. package/dist/cjs/validations/evm-op-wrap.js +112 -0
  53. package/dist/cjs/validations/evm-op-wrap.js.map +1 -0
  54. package/dist/cjs/validations/evm-permit.js +224 -0
  55. package/dist/cjs/validations/evm-permit.js.map +1 -0
  56. package/dist/cjs/validations/evm-permit2.js +361 -0
  57. package/dist/cjs/validations/evm-permit2.js.map +1 -0
  58. package/dist/cjs/validations/evm-required-actions.js +184 -0
  59. package/dist/cjs/validations/evm-required-actions.js.map +1 -0
  60. package/dist/cjs/validations/evm-sign712-metamask.js +147 -0
  61. package/dist/cjs/validations/evm-sign712-metamask.js.map +1 -0
  62. package/dist/cjs/validations/evm-sign712.js +203 -0
  63. package/dist/cjs/validations/evm-sign712.js.map +1 -0
  64. package/dist/cjs/validations/evm-sign7702.js +59 -0
  65. package/dist/cjs/validations/evm-sign7702.js.map +1 -0
  66. package/dist/cjs/validations/evm-transaction.js +38 -0
  67. package/dist/cjs/validations/evm-transaction.js.map +1 -0
  68. package/dist/cjs/validations/hooks-common.js +207 -0
  69. package/dist/cjs/validations/hooks-common.js.map +1 -0
  70. package/dist/cjs/validations/required-actions.js +69 -0
  71. package/dist/cjs/validations/required-actions.js.map +1 -0
  72. package/dist/cjs/validations/solana-hook.js +225 -0
  73. package/dist/cjs/validations/solana-hook.js.map +1 -0
  74. package/dist/cjs/validations/solana-op-budget.js +293 -0
  75. package/dist/cjs/validations/solana-op-budget.js.map +1 -0
  76. package/dist/cjs/validations/solana-op-wrap.js +191 -0
  77. package/dist/cjs/validations/solana-op-wrap.js.map +1 -0
  78. package/dist/cjs/validations/solana-required-actions.js +122 -0
  79. package/dist/cjs/validations/solana-required-actions.js.map +1 -0
  80. package/dist/cjs/validations/solana-sign.js +171 -0
  81. package/dist/cjs/validations/solana-sign.js.map +1 -0
  82. package/dist/cjs/validations/solana-transaction.js +238 -0
  83. package/dist/cjs/validations/solana-transaction.js.map +1 -0
  84. package/dist/cjs/validations/trade-grouping.js +165 -0
  85. package/dist/cjs/validations/trade-grouping.js.map +1 -0
  86. package/dist/cjs/validations/trade-intent-consistency.js +104 -0
  87. package/dist/cjs/validations/trade-intent-consistency.js.map +1 -0
  88. package/dist/cjs/validations/trades.js +517 -0
  89. package/dist/cjs/validations/trades.js.map +1 -0
  90. package/dist/cjs/validator.js +75 -0
  91. package/dist/cjs/validator.js.map +1 -0
  92. package/dist/cjs/whitelists/environment-config.js +118 -0
  93. package/dist/cjs/whitelists/environment-config.js.map +1 -0
  94. package/dist/cjs/whitelists/evm/caveat-enforcers.js +18 -0
  95. package/dist/cjs/whitelists/evm/caveat-enforcers.js.map +1 -0
  96. package/dist/cjs/whitelists/evm/delegation-manager.js +9 -0
  97. package/dist/cjs/whitelists/evm/delegation-manager.js.map +1 -0
  98. package/dist/cjs/whitelists/evm/eip7702-delegation.js +8 -0
  99. package/dist/cjs/whitelists/evm/eip7702-delegation.js.map +1 -0
  100. package/dist/cjs/whitelists/evm/index.js +17 -0
  101. package/dist/cjs/whitelists/evm/index.js.map +1 -0
  102. package/dist/cjs/whitelists/evm/permit2.js +18 -0
  103. package/dist/cjs/whitelists/evm/permit2.js.map +1 -0
  104. package/dist/cjs/whitelists/evm/weth.js +19 -0
  105. package/dist/cjs/whitelists/evm/weth.js.map +1 -0
  106. package/dist/cjs/whitelists/solana/index.js +19 -0
  107. package/dist/cjs/whitelists/solana/index.js.map +1 -0
  108. package/dist/cjs/whitelists/solana/intent-signature.js +25 -0
  109. package/dist/cjs/whitelists/solana/intent-signature.js.map +1 -0
  110. package/dist/cjs/whitelists/solana/programs.js +19 -0
  111. package/dist/cjs/whitelists/solana/programs.js.map +1 -0
  112. package/dist/cjs/whitelists/subscription-to-chain-id.js +36 -0
  113. package/dist/cjs/whitelists/subscription-to-chain-id.js.map +1 -0
  114. package/dist/cjs/whitelists/types.js +29 -0
  115. package/dist/cjs/whitelists/types.js.map +1 -0
  116. package/dist/esm/graylists/evm/token-permit-metadata.js +24 -0
  117. package/dist/esm/graylists/evm/token-permit-metadata.js.map +1 -0
  118. package/dist/esm/helpers/address.js +63 -0
  119. package/dist/esm/helpers/address.js.map +1 -0
  120. package/dist/esm/helpers/caveat-decoder.js +55 -0
  121. package/dist/esm/helpers/caveat-decoder.js.map +1 -0
  122. package/dist/esm/helpers/constants.js +3 -0
  123. package/dist/esm/helpers/constants.js.map +1 -0
  124. package/dist/esm/helpers/evm-action.js +16 -0
  125. package/dist/esm/helpers/evm-action.js.map +1 -0
  126. package/dist/esm/helpers/evm-calldata.js +39 -0
  127. package/dist/esm/helpers/evm-calldata.js.map +1 -0
  128. package/dist/esm/helpers/evm-intent-id-abi.js +64 -0
  129. package/dist/esm/helpers/evm-intent-id-abi.js.map +1 -0
  130. package/dist/esm/helpers/evm-intent-id.js +67 -0
  131. package/dist/esm/helpers/evm-intent-id.js.map +1 -0
  132. package/dist/esm/helpers/evm-token.js +25 -0
  133. package/dist/esm/helpers/evm-token.js.map +1 -0
  134. package/dist/esm/helpers/evm-trade-amounts.js +39 -0
  135. package/dist/esm/helpers/evm-trade-amounts.js.map +1 -0
  136. package/dist/esm/helpers/solana-instruction.js +146 -0
  137. package/dist/esm/helpers/solana-instruction.js.map +1 -0
  138. package/dist/esm/helpers/solana-intent-id.js +457 -0
  139. package/dist/esm/helpers/solana-intent-id.js.map +1 -0
  140. package/dist/esm/helpers/solana-transaction-decode.js +55 -0
  141. package/dist/esm/helpers/solana-transaction-decode.js.map +1 -0
  142. package/dist/esm/helpers/zod.js +9 -0
  143. package/dist/esm/helpers/zod.js.map +1 -0
  144. package/dist/esm/index.js +3 -0
  145. package/dist/esm/index.js.map +1 -0
  146. package/dist/esm/package.json +1 -0
  147. package/dist/esm/types/enums.js +134 -0
  148. package/dist/esm/types/enums.js.map +1 -0
  149. package/dist/esm/types/index.js +5 -0
  150. package/dist/esm/types/index.js.map +1 -0
  151. package/dist/esm/types/request.js +62 -0
  152. package/dist/esm/types/request.js.map +1 -0
  153. package/dist/esm/types/response.js +249 -0
  154. package/dist/esm/types/response.js.map +1 -0
  155. package/dist/esm/types/validation.js +239 -0
  156. package/dist/esm/types/validation.js.map +1 -0
  157. package/dist/esm/validations/echo-fields.js +64 -0
  158. package/dist/esm/validations/echo-fields.js.map +1 -0
  159. package/dist/esm/validations/evm-caveats.js +228 -0
  160. package/dist/esm/validations/evm-caveats.js.map +1 -0
  161. package/dist/esm/validations/evm-op-budget.js +258 -0
  162. package/dist/esm/validations/evm-op-budget.js.map +1 -0
  163. package/dist/esm/validations/evm-op-gas-compensation.js +149 -0
  164. package/dist/esm/validations/evm-op-gas-compensation.js.map +1 -0
  165. package/dist/esm/validations/evm-op-hook.js +5 -0
  166. package/dist/esm/validations/evm-op-hook.js.map +1 -0
  167. package/dist/esm/validations/evm-op-wrap.js +109 -0
  168. package/dist/esm/validations/evm-op-wrap.js.map +1 -0
  169. package/dist/esm/validations/evm-permit.js +221 -0
  170. package/dist/esm/validations/evm-permit.js.map +1 -0
  171. package/dist/esm/validations/evm-permit2.js +358 -0
  172. package/dist/esm/validations/evm-permit2.js.map +1 -0
  173. package/dist/esm/validations/evm-required-actions.js +181 -0
  174. package/dist/esm/validations/evm-required-actions.js.map +1 -0
  175. package/dist/esm/validations/evm-sign712-metamask.js +144 -0
  176. package/dist/esm/validations/evm-sign712-metamask.js.map +1 -0
  177. package/dist/esm/validations/evm-sign712.js +200 -0
  178. package/dist/esm/validations/evm-sign712.js.map +1 -0
  179. package/dist/esm/validations/evm-sign7702.js +56 -0
  180. package/dist/esm/validations/evm-sign7702.js.map +1 -0
  181. package/dist/esm/validations/evm-transaction.js +35 -0
  182. package/dist/esm/validations/evm-transaction.js.map +1 -0
  183. package/dist/esm/validations/hooks-common.js +204 -0
  184. package/dist/esm/validations/hooks-common.js.map +1 -0
  185. package/dist/esm/validations/required-actions.js +66 -0
  186. package/dist/esm/validations/required-actions.js.map +1 -0
  187. package/dist/esm/validations/solana-hook.js +222 -0
  188. package/dist/esm/validations/solana-hook.js.map +1 -0
  189. package/dist/esm/validations/solana-op-budget.js +290 -0
  190. package/dist/esm/validations/solana-op-budget.js.map +1 -0
  191. package/dist/esm/validations/solana-op-wrap.js +188 -0
  192. package/dist/esm/validations/solana-op-wrap.js.map +1 -0
  193. package/dist/esm/validations/solana-required-actions.js +119 -0
  194. package/dist/esm/validations/solana-required-actions.js.map +1 -0
  195. package/dist/esm/validations/solana-sign.js +168 -0
  196. package/dist/esm/validations/solana-sign.js.map +1 -0
  197. package/dist/esm/validations/solana-transaction.js +234 -0
  198. package/dist/esm/validations/solana-transaction.js.map +1 -0
  199. package/dist/esm/validations/trade-grouping.js +161 -0
  200. package/dist/esm/validations/trade-grouping.js.map +1 -0
  201. package/dist/esm/validations/trade-intent-consistency.js +101 -0
  202. package/dist/esm/validations/trade-intent-consistency.js.map +1 -0
  203. package/dist/esm/validations/trades.js +514 -0
  204. package/dist/esm/validations/trades.js.map +1 -0
  205. package/dist/esm/validator.js +72 -0
  206. package/dist/esm/validator.js.map +1 -0
  207. package/dist/esm/whitelists/environment-config.js +115 -0
  208. package/dist/esm/whitelists/environment-config.js.map +1 -0
  209. package/dist/esm/whitelists/evm/caveat-enforcers.js +15 -0
  210. package/dist/esm/whitelists/evm/caveat-enforcers.js.map +1 -0
  211. package/dist/esm/whitelists/evm/delegation-manager.js +6 -0
  212. package/dist/esm/whitelists/evm/delegation-manager.js.map +1 -0
  213. package/dist/esm/whitelists/evm/eip7702-delegation.js +5 -0
  214. package/dist/esm/whitelists/evm/eip7702-delegation.js.map +1 -0
  215. package/dist/esm/whitelists/evm/index.js +6 -0
  216. package/dist/esm/whitelists/evm/index.js.map +1 -0
  217. package/dist/esm/whitelists/evm/permit2.js +15 -0
  218. package/dist/esm/whitelists/evm/permit2.js.map +1 -0
  219. package/dist/esm/whitelists/evm/weth.js +16 -0
  220. package/dist/esm/whitelists/evm/weth.js.map +1 -0
  221. package/dist/esm/whitelists/solana/index.js +3 -0
  222. package/dist/esm/whitelists/solana/index.js.map +1 -0
  223. package/dist/esm/whitelists/solana/intent-signature.js +22 -0
  224. package/dist/esm/whitelists/solana/intent-signature.js.map +1 -0
  225. package/dist/esm/whitelists/solana/programs.js +16 -0
  226. package/dist/esm/whitelists/solana/programs.js.map +1 -0
  227. package/dist/esm/whitelists/subscription-to-chain-id.js +32 -0
  228. package/dist/esm/whitelists/subscription-to-chain-id.js.map +1 -0
  229. package/dist/esm/whitelists/types.js +26 -0
  230. package/dist/esm/whitelists/types.js.map +1 -0
  231. package/dist/types/graylists/evm/token-permit-metadata.d.ts +11 -0
  232. package/dist/types/graylists/evm/token-permit-metadata.d.ts.map +1 -0
  233. package/dist/types/helpers/address.d.ts +13 -0
  234. package/dist/types/helpers/address.d.ts.map +1 -0
  235. package/dist/types/helpers/caveat-decoder.d.ts +13 -0
  236. package/dist/types/helpers/caveat-decoder.d.ts.map +1 -0
  237. package/dist/types/helpers/constants.d.ts +2 -0
  238. package/dist/types/helpers/constants.d.ts.map +1 -0
  239. package/dist/types/helpers/evm-action.d.ts +4 -0
  240. package/dist/types/helpers/evm-action.d.ts.map +1 -0
  241. package/dist/types/helpers/evm-calldata.d.ts +15 -0
  242. package/dist/types/helpers/evm-calldata.d.ts.map +1 -0
  243. package/dist/types/helpers/evm-intent-id-abi.d.ts +106 -0
  244. package/dist/types/helpers/evm-intent-id-abi.d.ts.map +1 -0
  245. package/dist/types/helpers/evm-intent-id.d.ts +3 -0
  246. package/dist/types/helpers/evm-intent-id.d.ts.map +1 -0
  247. package/dist/types/helpers/evm-token.d.ts +4 -0
  248. package/dist/types/helpers/evm-token.d.ts.map +1 -0
  249. package/dist/types/helpers/evm-trade-amounts.d.ts +16 -0
  250. package/dist/types/helpers/evm-trade-amounts.d.ts.map +1 -0
  251. package/dist/types/helpers/solana-instruction.d.ts +44 -0
  252. package/dist/types/helpers/solana-instruction.d.ts.map +1 -0
  253. package/dist/types/helpers/solana-intent-id.d.ts +3 -0
  254. package/dist/types/helpers/solana-intent-id.d.ts.map +1 -0
  255. package/dist/types/helpers/solana-transaction-decode.d.ts +18 -0
  256. package/dist/types/helpers/solana-transaction-decode.d.ts.map +1 -0
  257. package/dist/types/helpers/zod.d.ts +2 -0
  258. package/dist/types/helpers/zod.d.ts.map +1 -0
  259. package/dist/types/index.d.ts +4 -0
  260. package/dist/types/index.d.ts.map +1 -0
  261. package/dist/types/types/enums.d.ts +112 -0
  262. package/dist/types/types/enums.d.ts.map +1 -0
  263. package/dist/types/types/index.d.ts +5 -0
  264. package/dist/types/types/index.d.ts.map +1 -0
  265. package/dist/types/types/request.d.ts +134 -0
  266. package/dist/types/types/request.d.ts.map +1 -0
  267. package/dist/types/types/response.d.ts +1140 -0
  268. package/dist/types/types/response.d.ts.map +1 -0
  269. package/dist/types/types/validation.d.ts +216 -0
  270. package/dist/types/types/validation.d.ts.map +1 -0
  271. package/dist/types/validations/echo-fields.d.ts +3 -0
  272. package/dist/types/validations/echo-fields.d.ts.map +1 -0
  273. package/dist/types/validations/evm-caveats.d.ts +33 -0
  274. package/dist/types/validations/evm-caveats.d.ts.map +1 -0
  275. package/dist/types/validations/evm-op-budget.d.ts +4 -0
  276. package/dist/types/validations/evm-op-budget.d.ts.map +1 -0
  277. package/dist/types/validations/evm-op-gas-compensation.d.ts +3 -0
  278. package/dist/types/validations/evm-op-gas-compensation.d.ts.map +1 -0
  279. package/dist/types/validations/evm-op-hook.d.ts +3 -0
  280. package/dist/types/validations/evm-op-hook.d.ts.map +1 -0
  281. package/dist/types/validations/evm-op-wrap.d.ts +3 -0
  282. package/dist/types/validations/evm-op-wrap.d.ts.map +1 -0
  283. package/dist/types/validations/evm-permit.d.ts +4 -0
  284. package/dist/types/validations/evm-permit.d.ts.map +1 -0
  285. package/dist/types/validations/evm-permit2.d.ts +4 -0
  286. package/dist/types/validations/evm-permit2.d.ts.map +1 -0
  287. package/dist/types/validations/evm-required-actions.d.ts +4 -0
  288. package/dist/types/validations/evm-required-actions.d.ts.map +1 -0
  289. package/dist/types/validations/evm-sign712-metamask.d.ts +3 -0
  290. package/dist/types/validations/evm-sign712-metamask.d.ts.map +1 -0
  291. package/dist/types/validations/evm-sign712.d.ts +4 -0
  292. package/dist/types/validations/evm-sign712.d.ts.map +1 -0
  293. package/dist/types/validations/evm-sign7702.d.ts +3 -0
  294. package/dist/types/validations/evm-sign7702.d.ts.map +1 -0
  295. package/dist/types/validations/evm-transaction.d.ts +3 -0
  296. package/dist/types/validations/evm-transaction.d.ts.map +1 -0
  297. package/dist/types/validations/hooks-common.d.ts +3 -0
  298. package/dist/types/validations/hooks-common.d.ts.map +1 -0
  299. package/dist/types/validations/required-actions.d.ts +4 -0
  300. package/dist/types/validations/required-actions.d.ts.map +1 -0
  301. package/dist/types/validations/solana-hook.d.ts +4 -0
  302. package/dist/types/validations/solana-hook.d.ts.map +1 -0
  303. package/dist/types/validations/solana-op-budget.d.ts +5 -0
  304. package/dist/types/validations/solana-op-budget.d.ts.map +1 -0
  305. package/dist/types/validations/solana-op-wrap.d.ts +4 -0
  306. package/dist/types/validations/solana-op-wrap.d.ts.map +1 -0
  307. package/dist/types/validations/solana-required-actions.d.ts +4 -0
  308. package/dist/types/validations/solana-required-actions.d.ts.map +1 -0
  309. package/dist/types/validations/solana-sign.d.ts +4 -0
  310. package/dist/types/validations/solana-sign.d.ts.map +1 -0
  311. package/dist/types/validations/solana-transaction.d.ts +5 -0
  312. package/dist/types/validations/solana-transaction.d.ts.map +1 -0
  313. package/dist/types/validations/trade-grouping.d.ts +22 -0
  314. package/dist/types/validations/trade-grouping.d.ts.map +1 -0
  315. package/dist/types/validations/trade-intent-consistency.d.ts +3 -0
  316. package/dist/types/validations/trade-intent-consistency.d.ts.map +1 -0
  317. package/dist/types/validations/trades.d.ts +3 -0
  318. package/dist/types/validations/trades.d.ts.map +1 -0
  319. package/dist/types/validator.d.ts +3 -0
  320. package/dist/types/validator.d.ts.map +1 -0
  321. package/dist/types/whitelists/environment-config.d.ts +4 -0
  322. package/dist/types/whitelists/environment-config.d.ts.map +1 -0
  323. package/dist/types/whitelists/evm/caveat-enforcers.d.ts +6 -0
  324. package/dist/types/whitelists/evm/caveat-enforcers.d.ts.map +1 -0
  325. package/dist/types/whitelists/evm/delegation-manager.d.ts +3 -0
  326. package/dist/types/whitelists/evm/delegation-manager.d.ts.map +1 -0
  327. package/dist/types/whitelists/evm/eip7702-delegation.d.ts +3 -0
  328. package/dist/types/whitelists/evm/eip7702-delegation.d.ts.map +1 -0
  329. package/dist/types/whitelists/evm/index.d.ts +6 -0
  330. package/dist/types/whitelists/evm/index.d.ts.map +1 -0
  331. package/dist/types/whitelists/evm/permit2.d.ts +3 -0
  332. package/dist/types/whitelists/evm/permit2.d.ts.map +1 -0
  333. package/dist/types/whitelists/evm/weth.d.ts +3 -0
  334. package/dist/types/whitelists/evm/weth.d.ts.map +1 -0
  335. package/dist/types/whitelists/solana/index.d.ts +3 -0
  336. package/dist/types/whitelists/solana/index.d.ts.map +1 -0
  337. package/dist/types/whitelists/solana/intent-signature.d.ts +9 -0
  338. package/dist/types/whitelists/solana/intent-signature.d.ts.map +1 -0
  339. package/dist/types/whitelists/solana/programs.d.ts +9 -0
  340. package/dist/types/whitelists/solana/programs.d.ts.map +1 -0
  341. package/dist/types/whitelists/subscription-to-chain-id.d.ts +4 -0
  342. package/dist/types/whitelists/subscription-to-chain-id.d.ts.map +1 -0
  343. package/dist/types/whitelists/types.d.ts +18 -0
  344. package/dist/types/whitelists/types.d.ts.map +1 -0
  345. package/package.json +59 -0
@@ -0,0 +1,457 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ import { keccak256 as viemKeccak256 } from "viem";
3
+ // Marker bytes used in the custom serialization format
4
+ const NONE_MARKER = new Uint8Array([0]);
5
+ const SOME_MARKER = new Uint8Array([1]);
6
+ const ANY_MARKER = new Uint8Array([1]);
7
+ const NOT_ANY_MARKER = new Uint8Array([0]);
8
+ // =============================================
9
+ // Public API
10
+ // =============================================
11
+ // Computes the Solana intentId from the response intent structure.
12
+ // Returns the intentId as a hex string with "0x" prefix.
13
+ //
14
+ // Algorithm:
15
+ // 1. Convert ResponseIntent to IntentData
16
+ // 2. Serialize IntentData using custom binary format (matching @debridge-finance/intents-client)
17
+ // 3. Keccak256 hash the serialized buffer
18
+ // 4. Derive PDA: seeds = ["intent_id", owner, keccak256_hash], program = intentProgram
19
+ // 5. Return PDA as hex string
20
+ export function computeSolanaIntentId(intent, realChainId, programIdBase58) {
21
+ const data = convertResponseToIntentData(intent, realChainId);
22
+ const serialized = serializeIntent(data);
23
+ const hash = keccak256(serialized);
24
+ const programId = new PublicKey(programIdBase58);
25
+ const owner = new PublicKey(addressToBytes(intent.intentOwner));
26
+ const [pda] = PublicKey.findProgramAddressSync([new TextEncoder().encode("intent_id"), owner.toBytes(), hash], programId);
27
+ return "0x" + bytesToHex(pda.toBytes());
28
+ }
29
+ // =============================================
30
+ // ResponseIntent → IntentData conversion
31
+ // =============================================
32
+ function convertResponseToIntentData(intent, realChainId) {
33
+ return {
34
+ chainId: realChainId,
35
+ authority: intent.intentAuthority
36
+ ? addressToBytes(intent.intentAuthority) : undefined,
37
+ timestamp: BigInt(intent.intentTimestamp),
38
+ expirationTimestamp: BigInt(intent.expirationTimestamp),
39
+ inputTokens: (intent.inputToken ?? []).map(t => ({
40
+ token: addressToBytes(t.address),
41
+ minPartialAmount: BigInt(t.minPartialAmount),
42
+ maxPartialAmount: BigInt(t.maxPartialAmount),
43
+ constraintBudget: BigInt(t.constraintBudget),
44
+ })),
45
+ giveTokens: intent.giveToken?.map(t => ({
46
+ input: addressToBytes(t.inputTokenAddress),
47
+ output: addressToBytes(t.giveTokenAddress),
48
+ price: BigInt(t.numerator),
49
+ })),
50
+ takeTokens: groupTakeTokens(intent.takeToken),
51
+ receiverDetails: (intent.receiverDetails ?? []).map(d => ({
52
+ chainIds: d.destinationChainIds,
53
+ address: addressToBytes(d.address),
54
+ })),
55
+ allowedSenders: intent.srcAllowedSender
56
+ ? intent.srcAllowedSender.map(addressToBytes) : "any",
57
+ preInteractions: undefined,
58
+ postInteractions: undefined,
59
+ validationRules: undefined,
60
+ executionMetadata: intent.executionMetadata
61
+ ? hexToUint8Array(intent.executionMetadata) : undefined,
62
+ srcAllowedCancelBeneficiary: intent.allowedCancelBeneficiary
63
+ ? [addressToBytes(intent.allowedCancelBeneficiary)] : undefined,
64
+ dstAuthorityAddress: (intent.dstAuthorityAddress ?? []).map(d => ({
65
+ chainIds: d.destinationChainIds,
66
+ address: addressToBytes(d.address),
67
+ })),
68
+ externalCallHash: "any",
69
+ dlnMetadata: "any",
70
+ };
71
+ }
72
+ // Groups takeTokens by fromTokenAddress (giveToken), matching @debridge-finance/intents-client groupBy logic
73
+ function groupTakeTokens(tokens) {
74
+ const groups = new Map();
75
+ for (const token of tokens) {
76
+ let group = groups.get(token.fromTokenAddress);
77
+ if (!group) {
78
+ group = {
79
+ input: addressToBytes(token.fromTokenAddress),
80
+ output: [],
81
+ };
82
+ groups.set(token.fromTokenAddress, group);
83
+ }
84
+ group.output.push({
85
+ chainId: token.takeTokenChainId,
86
+ token: addressToBytes(token.takeTokenAddress),
87
+ price: BigInt(token.numerator),
88
+ });
89
+ }
90
+ return Array.from(groups.values());
91
+ }
92
+ // =============================================
93
+ // Serialization (mirrors @debridge-finance/intents-client ce.serialize())
94
+ // =============================================
95
+ function serializeIntent(data) {
96
+ const addressesList = buildAddressesList(data);
97
+ const serializedList = serializeAddressesList(addressesList);
98
+ const parts = [];
99
+ // chainId (u32 LE)
100
+ parts.push(writeU32LE(data.chainId));
101
+ // authority (optional pubkey)
102
+ parts.push(serializeOptionalPubkey(data.authority));
103
+ // timestamp + expirationTimestamp (two u64 LE in 16 bytes)
104
+ const timestamps = new Uint8Array(16);
105
+ writeU64LEInto(timestamps, 0, data.timestamp);
106
+ writeU64LEInto(timestamps, 8, data.expirationTimestamp);
107
+ parts.push(timestamps);
108
+ // addresses list
109
+ parts.push(serializedList.bytes);
110
+ // inputTokens
111
+ parts.push(serializeInputTokens(data.inputTokens, serializedList.lookup));
112
+ // giveTokens
113
+ parts.push(serializeGiveTokens(data.giveTokens, serializedList.lookup));
114
+ // takeTokens
115
+ parts.push(serializeTakeTokens(data.takeTokens, serializedList.lookup));
116
+ // receiverDetails
117
+ parts.push(serializeReceiversInfo(data.receiverDetails, serializedList.lookup));
118
+ // allowedSenders
119
+ parts.push(serializeAllowedSenders(data.allowedSenders));
120
+ // preInteractions (optional pubkey)
121
+ parts.push(serializeOptionalPubkey(data.preInteractions));
122
+ // postInteractions (optional pubkey)
123
+ parts.push(serializeOptionalPubkey(data.postInteractions));
124
+ // validationRules (optional short array)
125
+ parts.push(serializeShortArray(data.validationRules));
126
+ // executionMetadata (optional bytes)
127
+ parts.push(serializeOptionalBytes(data.executionMetadata));
128
+ // srcAllowedCancelBeneficiary (address array)
129
+ parts.push(serializeAddressArray(data.srcAllowedCancelBeneficiary));
130
+ // dstAuthorityAddress
131
+ parts.push(serializeReceiversInfo(data.dstAuthorityAddress, serializedList.lookup));
132
+ // externalCallHash
133
+ parts.push(serializeExternalCallHash(data.externalCallHash));
134
+ // dlnMetadata
135
+ parts.push(serializeDlnMetadata(data.dlnMetadata));
136
+ return concatBytes(parts);
137
+ }
138
+ function buildAddressesList(data) {
139
+ const seen = new Set();
140
+ const entries = [];
141
+ function addAddr(bytes) {
142
+ const hex = bytesToHex(bytes);
143
+ if (!seen.has(hex)) {
144
+ seen.add(hex);
145
+ entries.push({ hex, bytes });
146
+ }
147
+ }
148
+ // inputTokens
149
+ for (const t of data.inputTokens) {
150
+ addAddr(t.token);
151
+ }
152
+ // giveTokens
153
+ if (data.giveTokens) {
154
+ for (const g of data.giveTokens) {
155
+ addAddr(g.input);
156
+ addAddr(g.output);
157
+ }
158
+ }
159
+ // takeTokens
160
+ for (const t of data.takeTokens) {
161
+ addAddr(t.input);
162
+ if (t.output !== "any") {
163
+ for (const out of t.output) {
164
+ if (out.token !== "any") {
165
+ addAddr(out.token);
166
+ }
167
+ }
168
+ }
169
+ }
170
+ // receiverDetails
171
+ for (const r of data.receiverDetails) {
172
+ addAddr(r.address);
173
+ }
174
+ // dstAuthorityAddress
175
+ for (const d of data.dstAuthorityAddress) {
176
+ addAddr(d.address);
177
+ }
178
+ return entries;
179
+ }
180
+ // Serializes the addresses list and builds the index lookup map.
181
+ // Format matches @debridge-finance/intents-client V.serialize():
182
+ // [numGroups(1)] + [groupLen(1) + groupCount(1)]... + [addresses]
183
+ // Addresses are grouped by byte length, sorted within each group.
184
+ function serializeAddressesList(entries) {
185
+ // Group by address byte length
186
+ const groups = new Map();
187
+ for (const entry of entries) {
188
+ let group = groups.get(entry.bytes.length);
189
+ if (!group) {
190
+ group = [];
191
+ groups.set(entry.bytes.length, group);
192
+ }
193
+ group.push(entry.bytes);
194
+ }
195
+ // Sort group keys, sort addresses within each group
196
+ const sortedLengths = Array.from(groups.keys()).sort((a, b) => a - b);
197
+ // Calculate total size
198
+ let dataSize = 0;
199
+ for (const len of sortedLengths) {
200
+ dataSize += groups.get(len).length * len;
201
+ }
202
+ const totalSize = 1 + sortedLengths.length * 2 + dataSize;
203
+ const buf = new Uint8Array(totalSize);
204
+ buf[0] = sortedLengths.length;
205
+ let headerOffset = 1;
206
+ let dataOffset = 1 + sortedLengths.length * 2;
207
+ const lookup = new Map();
208
+ let globalIndex = 0;
209
+ for (const len of sortedLengths) {
210
+ const addrs = groups.get(len);
211
+ // Sort addresses lexicographically
212
+ addrs.sort(compareBytes);
213
+ buf[headerOffset] = len;
214
+ headerOffset++;
215
+ buf[headerOffset] = addrs.length;
216
+ headerOffset++;
217
+ for (const addr of addrs) {
218
+ lookup.set(bytesToHex(addr), globalIndex);
219
+ globalIndex++;
220
+ buf.set(addr, dataOffset);
221
+ dataOffset += addr.length;
222
+ }
223
+ }
224
+ return { bytes: buf, lookup };
225
+ }
226
+ // =============================================
227
+ // Serialization helpers (mirror @debridge-finance/intents-client methods)
228
+ // =============================================
229
+ function serializeInputTokens(tokens, lookup) {
230
+ const items = tokens.map(t => {
231
+ const buf = new Uint8Array(25);
232
+ buf[0] = lookupIndex(lookup, t.token);
233
+ writeU64LEInto(buf, 1, t.minPartialAmount);
234
+ writeU64LEInto(buf, 9, t.maxPartialAmount);
235
+ writeU64LEInto(buf, 17, t.constraintBudget);
236
+ return buf;
237
+ });
238
+ const count = new Uint8Array(1);
239
+ count[0] = items.length;
240
+ return concatBytes([count, ...items]);
241
+ }
242
+ function serializeGiveTokens(tokens, lookup) {
243
+ if (!tokens || tokens.length === 0)
244
+ return NONE_MARKER;
245
+ const items = tokens.map(g => {
246
+ // Not-any path: output(1) + not-any(1) + input(1) + price(32BE) = 35 bytes
247
+ const buf = new Uint8Array(35);
248
+ buf[0] = lookupIndex(lookup, g.output);
249
+ buf[1] = 0; // not any
250
+ buf[2] = lookupIndex(lookup, g.input);
251
+ // Price as big-endian 256-bit
252
+ writeBigInt256BE(buf, 3, g.price);
253
+ return buf;
254
+ });
255
+ const count = new Uint8Array(1);
256
+ count[0] = items.length;
257
+ return concatBytes([count, ...items]);
258
+ }
259
+ function serializeTakeTokens(tokens, lookup) {
260
+ let totalOutputCount = 0;
261
+ const items = tokens.map(t => {
262
+ if (t.output === "any") {
263
+ totalOutputCount = 1;
264
+ const buf = new Uint8Array(2);
265
+ buf[0] = lookupIndex(lookup, t.input);
266
+ buf[1] = 1; // any
267
+ return buf;
268
+ }
269
+ totalOutputCount += t.output.length;
270
+ const outputParts = t.output.map(out => {
271
+ const inputIdx = lookupIndex(lookup, t.input);
272
+ if (out.token === "any") {
273
+ // inputIdx(1) + [0, chainId(u8), 0, 0, 0, 1(any)] = 7 bytes
274
+ const buf = new Uint8Array(7);
275
+ buf[0] = inputIdx;
276
+ buf[1] = 0;
277
+ buf[2] = out.chainId;
278
+ buf[6] = 1; // token is any
279
+ return buf;
280
+ }
281
+ if (out.price === "any") {
282
+ // inputIdx(1) + [0, chainId(u32LE), 0, tokenIdx, 1(any)] = 9 bytes
283
+ const buf = new Uint8Array(9);
284
+ buf[0] = inputIdx;
285
+ buf[1] = 0;
286
+ new DataView(buf.buffer, buf.byteOffset).setUint32(2, out.chainId, true);
287
+ buf[6] = 0;
288
+ buf[7] = lookupIndex(lookup, out.token);
289
+ buf[8] = 1; // price is any
290
+ return buf;
291
+ }
292
+ // Normal: inputIdx(1) + [0, chainId(u32LE), 0, tokenIdx, 0, price(32BE)] = 41
293
+ const buf = new Uint8Array(41);
294
+ buf[0] = inputIdx;
295
+ buf[1] = 0;
296
+ new DataView(buf.buffer, buf.byteOffset).setUint32(2, out.chainId, true);
297
+ buf[6] = 0;
298
+ buf[7] = lookupIndex(lookup, out.token);
299
+ buf[8] = 0;
300
+ writeBigInt256BE(buf, 9, out.price);
301
+ return buf;
302
+ });
303
+ return concatBytes(outputParts);
304
+ });
305
+ const count = new Uint8Array(1);
306
+ count[0] = totalOutputCount;
307
+ return concatBytes([count, ...items]);
308
+ }
309
+ function serializeReceiversInfo(receivers, lookup) {
310
+ if (!receivers || receivers.length === 0)
311
+ return NONE_MARKER;
312
+ const items = receivers.map(r => {
313
+ if (r.chainIds === "any") {
314
+ const buf = new Uint8Array(2);
315
+ buf[0] = lookupIndex(lookup, r.address);
316
+ buf[1] = 1; // any
317
+ return buf;
318
+ }
319
+ const buf = new Uint8Array(3 + r.chainIds.length * 4);
320
+ buf[0] = lookupIndex(lookup, r.address);
321
+ buf[1] = 0; // not any
322
+ buf[2] = r.chainIds.length;
323
+ for (let i = 0; i < r.chainIds.length; i++) {
324
+ new DataView(buf.buffer, buf.byteOffset).setUint32(3 + i * 4, r.chainIds[i], true);
325
+ }
326
+ return buf;
327
+ });
328
+ const count = new Uint8Array(1);
329
+ count[0] = items.length;
330
+ return concatBytes([count, ...items]);
331
+ }
332
+ function serializeAllowedSenders(senders) {
333
+ if (senders === "any")
334
+ return ANY_MARKER;
335
+ const count = new Uint8Array(1);
336
+ count[0] = senders.length;
337
+ return concatBytes([NOT_ANY_MARKER, count, ...senders]);
338
+ }
339
+ function serializeOptionalPubkey(pubkey) {
340
+ if (!pubkey)
341
+ return NONE_MARKER;
342
+ return concatBytes([SOME_MARKER, pubkey]);
343
+ }
344
+ function serializeShortArray(data) {
345
+ if (!data)
346
+ return NONE_MARKER;
347
+ const lenBuf = new Uint8Array(2);
348
+ new DataView(lenBuf.buffer).setInt16(0, data.length, true);
349
+ return concatBytes([SOME_MARKER, lenBuf, data]);
350
+ }
351
+ function serializeOptionalBytes(data) {
352
+ if (!data)
353
+ return NONE_MARKER;
354
+ const lenBuf = new Uint8Array(2);
355
+ new DataView(lenBuf.buffer).setInt16(0, data.length, true);
356
+ return concatBytes([SOME_MARKER, lenBuf, data]);
357
+ }
358
+ function serializeAddressArray(addresses) {
359
+ if (!addresses || addresses.length === 0)
360
+ return NONE_MARKER;
361
+ const count = new Uint8Array(1);
362
+ count[0] = addresses.length;
363
+ return concatBytes([count, ...addresses]);
364
+ }
365
+ function serializeExternalCallHash(hash) {
366
+ if (!hash)
367
+ return NONE_MARKER;
368
+ if (hash === "any")
369
+ return concatBytes([SOME_MARKER, ANY_MARKER]);
370
+ return concatBytes([SOME_MARKER, NOT_ANY_MARKER, hash]);
371
+ }
372
+ function serializeDlnMetadata(metadata) {
373
+ if (!metadata)
374
+ return NONE_MARKER;
375
+ if (metadata === "any")
376
+ return concatBytes([SOME_MARKER, ANY_MARKER]);
377
+ const lenBuf = new Uint8Array(2);
378
+ new DataView(lenBuf.buffer).setInt16(0, metadata.length, true);
379
+ return concatBytes([SOME_MARKER, NOT_ANY_MARKER, lenBuf, metadata]);
380
+ }
381
+ // =============================================
382
+ // Low-level helpers
383
+ // =============================================
384
+ function lookupIndex(lookup, addr) {
385
+ const hex = bytesToHex(addr);
386
+ const idx = lookup.get(hex);
387
+ if (idx === undefined) {
388
+ throw new Error(`Address ${hex} not found in addresses list`);
389
+ }
390
+ return idx;
391
+ }
392
+ function keccak256(data) {
393
+ // viem's keccak256 expects hex input and returns hex output
394
+ const hexInput = ("0x" + bytesToHex(data));
395
+ const hexOutput = viemKeccak256(hexInput);
396
+ return hexToUint8Array(hexOutput);
397
+ }
398
+ function writeU32LE(value) {
399
+ const buf = new Uint8Array(4);
400
+ new DataView(buf.buffer).setUint32(0, value, true);
401
+ return buf;
402
+ }
403
+ function writeU64LEInto(buf, offset, value) {
404
+ for (let i = 0; i < 8; i++) {
405
+ buf[offset + i] = Number((value >> BigInt(i * 8)) & 0xffn);
406
+ }
407
+ }
408
+ function writeBigInt256BE(buf, offset, value) {
409
+ const hex = value.toString(16).padStart(64, "0");
410
+ for (let i = 0; i < 32; i++) {
411
+ buf[offset + i] = parseInt(hex.substring(i * 2, i * 2 + 2), 16);
412
+ }
413
+ }
414
+ function concatBytes(arrays) {
415
+ let totalLength = 0;
416
+ for (const arr of arrays)
417
+ totalLength += arr.length;
418
+ const result = new Uint8Array(totalLength);
419
+ let offset = 0;
420
+ for (const arr of arrays) {
421
+ result.set(arr, offset);
422
+ offset += arr.length;
423
+ }
424
+ return result;
425
+ }
426
+ function compareBytes(a, b) {
427
+ const minLen = Math.min(a.length, b.length);
428
+ for (let i = 0; i < minLen; i++) {
429
+ if (a[i] !== b[i])
430
+ return a[i] - b[i];
431
+ }
432
+ return a.length - b.length;
433
+ }
434
+ function bytesToHex(bytes) {
435
+ let hex = "";
436
+ for (let i = 0; i < bytes.length; i++) {
437
+ hex += bytes[i].toString(16).padStart(2, "0");
438
+ }
439
+ return hex;
440
+ }
441
+ function hexToUint8Array(hex) {
442
+ const clean = hex.startsWith("0x") ? hex.slice(2) : hex;
443
+ const bytes = new Uint8Array(clean.length / 2);
444
+ for (let i = 0; i < bytes.length; i++) {
445
+ bytes[i] = parseInt(clean.substring(i * 2, i * 2 + 2), 16);
446
+ }
447
+ return bytes;
448
+ }
449
+ // Convert an address string to raw bytes.
450
+ // Handles both EVM hex (0x-prefixed, 20 bytes) and Solana base58 (32 bytes).
451
+ function addressToBytes(address) {
452
+ if (address.startsWith("0x")) {
453
+ return hexToUint8Array(address);
454
+ }
455
+ return new PublicKey(address).toBytes();
456
+ }
457
+ //# sourceMappingURL=solana-intent-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana-intent-id.js","sourceRoot":"","sources":["../../../src/helpers/solana-intent-id.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { VersionedTransaction } from "@solana/web3.js";
2
+ import { hexToBytes } from "viem";
3
+ /**
4
+ * CRITICAL: Decode hex-encoded Solana VersionedTransaction(MessageV0).
5
+ *
6
+ * Steps: hex → bytes → VersionedTransaction.deserialize → version === 0.
7
+ */
8
+ export function decodeSolanaVersionedTransaction(dataHex, path, decodeErrorCode, versionErrorCode) {
9
+ let bytes;
10
+ try {
11
+ const prefixed = dataHex.startsWith("0x") ? dataHex : `0x${dataHex}`;
12
+ bytes = hexToBytes(prefixed);
13
+ }
14
+ catch (error) {
15
+ return {
16
+ ok: false,
17
+ violations: [{
18
+ code: decodeErrorCode,
19
+ message: "action.data.data is not a valid hex string",
20
+ path,
21
+ details: error,
22
+ }],
23
+ };
24
+ }
25
+ let transaction;
26
+ try {
27
+ transaction = VersionedTransaction.deserialize(bytes);
28
+ }
29
+ catch (error) {
30
+ return {
31
+ ok: false,
32
+ violations: [{
33
+ code: decodeErrorCode,
34
+ message: "action.data.data could not be deserialized"
35
+ + " as VersionedTransaction",
36
+ path,
37
+ details: error,
38
+ }],
39
+ };
40
+ }
41
+ if (transaction.message.version !== 0) {
42
+ return {
43
+ ok: false,
44
+ violations: [{
45
+ code: versionErrorCode,
46
+ message: "transaction message version must be 0 (MessageV0)",
47
+ path,
48
+ expected: 0,
49
+ actual: transaction.message.version,
50
+ }],
51
+ };
52
+ }
53
+ return { ok: true, transaction };
54
+ }
55
+ //# sourceMappingURL=solana-transaction-decode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana-transaction-decode.js","sourceRoot":"","sources":["../../../src/helpers/solana-transaction-decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAOlC;;;;GAIG;AACH,MAAM,UAAU,gCAAgC,CAC5C,OAAe,EACf,IAAY,EACZ,eAA8B,EAC9B,gBAA+B;IAE/B,IAAI,KAAiB,CAAC;IACtB,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QACrE,KAAK,GAAG,UAAU,CAAC,QAAyB,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO;YACH,EAAE,EAAE,KAAK;YACT,UAAU,EAAE,CAAC;oBACT,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,4CAA4C;oBACrD,IAAI;oBACJ,OAAO,EAAE,KAAK;iBACjB,CAAC;SACL,CAAC;IACN,CAAC;IAED,IAAI,WAAiC,CAAC;IACtC,IAAI,CAAC;QACD,WAAW,GAAG,oBAAoB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO;YACH,EAAE,EAAE,KAAK;YACT,UAAU,EAAE,CAAC;oBACT,IAAI,EAAE,eAAe;oBACrB,OAAO,EACH,4CAA4C;0BAC1C,0BAA0B;oBAChC,IAAI;oBACJ,OAAO,EAAE,KAAK;iBACjB,CAAC;SACL,CAAC;IACN,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO;YACH,EAAE,EAAE,KAAK;YACT,UAAU,EAAE,CAAC;oBACT,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EACH,mDAAmD;oBACvD,IAAI;oBACJ,QAAQ,EAAE,CAAC;oBACX,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO;iBACtC,CAAC;SACL,CAAC;IACN,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AACrC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export function formatPath(segments) {
2
+ return segments.reduce((result, segment) => {
3
+ if (typeof segment === "number")
4
+ return `${result}[${segment}]`;
5
+ const key = String(segment);
6
+ return result ? `${result}.${key}` : key;
7
+ }, "");
8
+ }
9
+ //# sourceMappingURL=zod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../../src/helpers/zod.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,QAAuB;IAC9C,OAAO,QAAQ,CAAC,MAAM,CAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QAC/C,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,GAAG,MAAM,IAAI,OAAO,GAAG,CAAC;QAChE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7C,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { createValidator } from "./validator.js";
2
+ export { Environment, ViolationCode, } from "./types/validation.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EACH,WAAW,EACX,aAAa,GAChB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1 @@
1
+ {"type":"module"}