@agirails/sdk 2.0.1-beta → 2.0.2

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 (405) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +116 -108
  3. package/bin/actp +10 -0
  4. package/dist/ACTPClient.d.ts +456 -33
  5. package/dist/ACTPClient.d.ts.map +1 -1
  6. package/dist/ACTPClient.js +477 -93
  7. package/dist/ACTPClient.js.map +1 -1
  8. package/dist/abi/AgentRegistry.json +782 -0
  9. package/dist/abi/EscrowVault.json +106 -38
  10. package/dist/abi/IdentityRegistry.json +316 -0
  11. package/dist/adapters/BaseAdapter.d.ts +231 -0
  12. package/dist/adapters/BaseAdapter.d.ts.map +1 -0
  13. package/dist/adapters/BaseAdapter.js +393 -0
  14. package/dist/adapters/BaseAdapter.js.map +1 -0
  15. package/dist/adapters/BeginnerAdapter.d.ts +152 -0
  16. package/dist/adapters/BeginnerAdapter.d.ts.map +1 -0
  17. package/dist/adapters/BeginnerAdapter.js +168 -0
  18. package/dist/adapters/BeginnerAdapter.js.map +1 -0
  19. package/dist/adapters/IntermediateAdapter.d.ts +211 -0
  20. package/dist/adapters/IntermediateAdapter.d.ts.map +1 -0
  21. package/dist/adapters/IntermediateAdapter.js +260 -0
  22. package/dist/adapters/IntermediateAdapter.js.map +1 -0
  23. package/dist/adapters/index.d.ts +15 -0
  24. package/dist/adapters/index.d.ts.map +1 -0
  25. package/dist/adapters/index.js +26 -0
  26. package/dist/adapters/index.js.map +1 -0
  27. package/dist/builders/DeliveryProofBuilder.d.ts +60 -1
  28. package/dist/builders/DeliveryProofBuilder.d.ts.map +1 -1
  29. package/dist/builders/DeliveryProofBuilder.js +81 -5
  30. package/dist/builders/DeliveryProofBuilder.js.map +1 -1
  31. package/dist/builders/QuoteBuilder.d.ts +101 -0
  32. package/dist/builders/QuoteBuilder.d.ts.map +1 -1
  33. package/dist/builders/QuoteBuilder.js +120 -3
  34. package/dist/builders/QuoteBuilder.js.map +1 -1
  35. package/dist/builders/index.d.ts +4 -0
  36. package/dist/builders/index.d.ts.map +1 -1
  37. package/dist/builders/index.js +4 -0
  38. package/dist/builders/index.js.map +1 -1
  39. package/dist/cli/commands/balance.d.ts +13 -0
  40. package/dist/cli/commands/balance.d.ts.map +1 -0
  41. package/dist/cli/commands/balance.js +89 -0
  42. package/dist/cli/commands/balance.js.map +1 -0
  43. package/dist/cli/commands/batch.d.ts +24 -0
  44. package/dist/cli/commands/batch.d.ts.map +1 -0
  45. package/dist/cli/commands/batch.js +424 -0
  46. package/dist/cli/commands/batch.js.map +1 -0
  47. package/dist/cli/commands/config.d.ts +13 -0
  48. package/dist/cli/commands/config.d.ts.map +1 -0
  49. package/dist/cli/commands/config.js +192 -0
  50. package/dist/cli/commands/config.js.map +1 -0
  51. package/dist/cli/commands/init.d.ts +19 -0
  52. package/dist/cli/commands/init.d.ts.map +1 -0
  53. package/dist/cli/commands/init.js +143 -0
  54. package/dist/cli/commands/init.js.map +1 -0
  55. package/dist/cli/commands/mint.d.ts +13 -0
  56. package/dist/cli/commands/mint.d.ts.map +1 -0
  57. package/dist/cli/commands/mint.js +91 -0
  58. package/dist/cli/commands/mint.js.map +1 -0
  59. package/dist/cli/commands/pay.d.ts +18 -0
  60. package/dist/cli/commands/pay.d.ts.map +1 -0
  61. package/dist/cli/commands/pay.js +87 -0
  62. package/dist/cli/commands/pay.js.map +1 -0
  63. package/dist/cli/commands/simulate.d.ts +32 -0
  64. package/dist/cli/commands/simulate.d.ts.map +1 -0
  65. package/dist/cli/commands/simulate.js +290 -0
  66. package/dist/cli/commands/simulate.js.map +1 -0
  67. package/dist/cli/commands/time.d.ts +29 -0
  68. package/dist/cli/commands/time.d.ts.map +1 -0
  69. package/dist/cli/commands/time.js +252 -0
  70. package/dist/cli/commands/time.js.map +1 -0
  71. package/dist/cli/commands/tx.d.ts +16 -0
  72. package/dist/cli/commands/tx.d.ts.map +1 -0
  73. package/dist/cli/commands/tx.js +379 -0
  74. package/dist/cli/commands/tx.js.map +1 -0
  75. package/dist/cli/commands/watch.d.ts +20 -0
  76. package/dist/cli/commands/watch.d.ts.map +1 -0
  77. package/dist/cli/commands/watch.js +160 -0
  78. package/dist/cli/commands/watch.js.map +1 -0
  79. package/dist/cli/index.d.ts +17 -0
  80. package/dist/cli/index.d.ts.map +1 -0
  81. package/dist/cli/index.js +104 -0
  82. package/dist/cli/index.js.map +1 -0
  83. package/dist/cli/utils/client.d.ts +70 -0
  84. package/dist/cli/utils/client.d.ts.map +1 -0
  85. package/dist/cli/utils/client.js +240 -0
  86. package/dist/cli/utils/client.js.map +1 -0
  87. package/dist/cli/utils/config.d.ts +91 -0
  88. package/dist/cli/utils/config.d.ts.map +1 -0
  89. package/dist/cli/utils/config.js +240 -0
  90. package/dist/cli/utils/config.js.map +1 -0
  91. package/dist/cli/utils/output.d.ts +174 -0
  92. package/dist/cli/utils/output.d.ts.map +1 -0
  93. package/dist/cli/utils/output.js +380 -0
  94. package/dist/cli/utils/output.js.map +1 -0
  95. package/dist/config/networks.d.ts +28 -0
  96. package/dist/config/networks.d.ts.map +1 -1
  97. package/dist/config/networks.js +60 -12
  98. package/dist/config/networks.js.map +1 -1
  99. package/dist/errors/index.d.ts +165 -2
  100. package/dist/errors/index.d.ts.map +1 -1
  101. package/dist/errors/index.js +260 -2
  102. package/dist/errors/index.js.map +1 -1
  103. package/dist/index.d.ts +61 -13
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +141 -36
  106. package/dist/index.js.map +1 -1
  107. package/dist/level0/Provider.d.ts +106 -0
  108. package/dist/level0/Provider.d.ts.map +1 -0
  109. package/dist/level0/Provider.js +10 -0
  110. package/dist/level0/Provider.js.map +1 -0
  111. package/dist/level0/ServiceDirectory.d.ts +74 -0
  112. package/dist/level0/ServiceDirectory.d.ts.map +1 -0
  113. package/dist/level0/ServiceDirectory.js +122 -0
  114. package/dist/level0/ServiceDirectory.js.map +1 -0
  115. package/dist/level0/index.d.ts +10 -0
  116. package/dist/level0/index.d.ts.map +1 -0
  117. package/dist/level0/index.js +15 -0
  118. package/dist/level0/index.js.map +1 -0
  119. package/dist/level0/provide.d.ts +51 -0
  120. package/dist/level0/provide.d.ts.map +1 -0
  121. package/dist/level0/provide.js +113 -0
  122. package/dist/level0/provide.js.map +1 -0
  123. package/dist/level0/request.d.ts +53 -0
  124. package/dist/level0/request.d.ts.map +1 -0
  125. package/dist/level0/request.js +462 -0
  126. package/dist/level0/request.js.map +1 -0
  127. package/dist/level1/Agent.d.ts +472 -0
  128. package/dist/level1/Agent.d.ts.map +1 -0
  129. package/dist/level1/Agent.js +1091 -0
  130. package/dist/level1/Agent.js.map +1 -0
  131. package/dist/level1/index.d.ts +10 -0
  132. package/dist/level1/index.d.ts.map +1 -0
  133. package/dist/level1/index.js +30 -0
  134. package/dist/level1/index.js.map +1 -0
  135. package/dist/level1/pricing/PriceCalculator.d.ts +62 -0
  136. package/dist/level1/pricing/PriceCalculator.d.ts.map +1 -0
  137. package/dist/level1/pricing/PriceCalculator.js +237 -0
  138. package/dist/level1/pricing/PriceCalculator.js.map +1 -0
  139. package/dist/level1/pricing/PricingStrategy.d.ts +179 -0
  140. package/dist/level1/pricing/PricingStrategy.d.ts.map +1 -0
  141. package/dist/level1/pricing/PricingStrategy.js +11 -0
  142. package/dist/level1/pricing/PricingStrategy.js.map +1 -0
  143. package/dist/level1/types/Job.d.ts +166 -0
  144. package/dist/level1/types/Job.d.ts.map +1 -0
  145. package/dist/level1/types/Job.js +11 -0
  146. package/dist/level1/types/Job.js.map +1 -0
  147. package/dist/level1/types/Options.d.ts +258 -0
  148. package/dist/level1/types/Options.d.ts.map +1 -0
  149. package/dist/level1/types/Options.js +8 -0
  150. package/dist/level1/types/Options.js.map +1 -0
  151. package/dist/level1/types/index.d.ts +8 -0
  152. package/dist/level1/types/index.d.ts.map +1 -0
  153. package/dist/level1/types/index.js +8 -0
  154. package/dist/level1/types/index.js.map +1 -0
  155. package/dist/protocol/ACTPKernel.d.ts +229 -2
  156. package/dist/protocol/ACTPKernel.d.ts.map +1 -1
  157. package/dist/protocol/ACTPKernel.js +367 -33
  158. package/dist/protocol/ACTPKernel.js.map +1 -1
  159. package/dist/protocol/AgentRegistry.d.ts +177 -0
  160. package/dist/protocol/AgentRegistry.d.ts.map +1 -0
  161. package/dist/protocol/AgentRegistry.js +449 -0
  162. package/dist/protocol/AgentRegistry.js.map +1 -0
  163. package/dist/protocol/DIDManager.d.ts +289 -0
  164. package/dist/protocol/DIDManager.d.ts.map +1 -0
  165. package/dist/protocol/DIDManager.js +481 -0
  166. package/dist/protocol/DIDManager.js.map +1 -0
  167. package/dist/protocol/DIDResolver.d.ts +236 -0
  168. package/dist/protocol/DIDResolver.d.ts.map +1 -0
  169. package/dist/protocol/DIDResolver.js +495 -0
  170. package/dist/protocol/DIDResolver.js.map +1 -0
  171. package/dist/protocol/EASHelper.d.ts +57 -2
  172. package/dist/protocol/EASHelper.d.ts.map +1 -1
  173. package/dist/protocol/EASHelper.js +230 -37
  174. package/dist/protocol/EASHelper.js.map +1 -1
  175. package/dist/protocol/EscrowVault.d.ts +93 -2
  176. package/dist/protocol/EscrowVault.d.ts.map +1 -1
  177. package/dist/protocol/EscrowVault.js +122 -33
  178. package/dist/protocol/EscrowVault.js.map +1 -1
  179. package/dist/protocol/EventMonitor.d.ts +45 -1
  180. package/dist/protocol/EventMonitor.d.ts.map +1 -1
  181. package/dist/protocol/EventMonitor.js +64 -8
  182. package/dist/protocol/EventMonitor.js.map +1 -1
  183. package/dist/protocol/MessageSigner.d.ts +116 -2
  184. package/dist/protocol/MessageSigner.d.ts.map +1 -1
  185. package/dist/protocol/MessageSigner.js +215 -9
  186. package/dist/protocol/MessageSigner.js.map +1 -1
  187. package/dist/protocol/ProofGenerator.d.ts +93 -0
  188. package/dist/protocol/ProofGenerator.d.ts.map +1 -1
  189. package/dist/protocol/ProofGenerator.js +194 -9
  190. package/dist/protocol/ProofGenerator.js.map +1 -1
  191. package/dist/protocol/QuoteBuilder.d.ts +8 -0
  192. package/dist/protocol/QuoteBuilder.d.ts.map +1 -1
  193. package/dist/protocol/QuoteBuilder.js +8 -0
  194. package/dist/protocol/QuoteBuilder.js.map +1 -1
  195. package/dist/runtime/BlockchainRuntime.d.ts +360 -0
  196. package/dist/runtime/BlockchainRuntime.d.ts.map +1 -0
  197. package/dist/runtime/BlockchainRuntime.js +767 -0
  198. package/dist/runtime/BlockchainRuntime.js.map +1 -0
  199. package/dist/runtime/IACTPRuntime.d.ts +271 -0
  200. package/dist/runtime/IACTPRuntime.d.ts.map +1 -0
  201. package/dist/runtime/IACTPRuntime.js +15 -0
  202. package/dist/runtime/IACTPRuntime.js.map +1 -0
  203. package/dist/runtime/MockRuntime.d.ts +445 -0
  204. package/dist/runtime/MockRuntime.d.ts.map +1 -0
  205. package/dist/runtime/MockRuntime.js +1065 -0
  206. package/dist/runtime/MockRuntime.js.map +1 -0
  207. package/dist/runtime/MockStateManager.d.ts +233 -0
  208. package/dist/runtime/MockStateManager.d.ts.map +1 -0
  209. package/dist/runtime/MockStateManager.js +533 -0
  210. package/dist/runtime/MockStateManager.js.map +1 -0
  211. package/dist/runtime/index.d.ts +14 -0
  212. package/dist/runtime/index.d.ts.map +1 -0
  213. package/dist/runtime/index.js +42 -0
  214. package/dist/runtime/index.js.map +1 -0
  215. package/dist/runtime/types/MockState.d.ts +167 -0
  216. package/dist/runtime/types/MockState.d.ts.map +1 -0
  217. package/dist/runtime/types/MockState.js +43 -0
  218. package/dist/runtime/types/MockState.js.map +1 -0
  219. package/dist/types/agent.d.ts +76 -0
  220. package/dist/types/agent.d.ts.map +1 -0
  221. package/dist/types/agent.js +8 -0
  222. package/dist/types/agent.js.map +1 -0
  223. package/dist/types/did.d.ts +192 -0
  224. package/dist/types/did.d.ts.map +1 -0
  225. package/dist/types/did.js +38 -0
  226. package/dist/types/did.js.map +1 -0
  227. package/dist/types/eip712.d.ts +34 -0
  228. package/dist/types/eip712.d.ts.map +1 -1
  229. package/dist/types/eip712.js +31 -5
  230. package/dist/types/eip712.js.map +1 -1
  231. package/dist/types/escrow.d.ts +17 -10
  232. package/dist/types/escrow.d.ts.map +1 -1
  233. package/dist/types/index.d.ts +5 -0
  234. package/dist/types/index.d.ts.map +1 -1
  235. package/dist/types/index.js +8 -0
  236. package/dist/types/index.js.map +1 -1
  237. package/dist/types/message.d.ts +32 -0
  238. package/dist/types/message.d.ts.map +1 -1
  239. package/dist/types/message.js +4 -0
  240. package/dist/types/message.js.map +1 -1
  241. package/dist/types/state.d.ts +28 -0
  242. package/dist/types/state.d.ts.map +1 -1
  243. package/dist/types/state.js +37 -6
  244. package/dist/types/state.js.map +1 -1
  245. package/dist/types/transaction.d.ts +17 -0
  246. package/dist/types/transaction.d.ts.map +1 -1
  247. package/dist/utils/ErrorRecoveryGuide.d.ts +125 -0
  248. package/dist/utils/ErrorRecoveryGuide.d.ts.map +1 -0
  249. package/dist/utils/ErrorRecoveryGuide.js +579 -0
  250. package/dist/utils/ErrorRecoveryGuide.js.map +1 -0
  251. package/dist/utils/Helpers.d.ts +453 -0
  252. package/dist/utils/Helpers.d.ts.map +1 -0
  253. package/dist/utils/Helpers.js +623 -0
  254. package/dist/utils/Helpers.js.map +1 -0
  255. package/dist/utils/IPFSClient.d.ts +113 -0
  256. package/dist/utils/IPFSClient.d.ts.map +1 -1
  257. package/dist/utils/IPFSClient.js +128 -7
  258. package/dist/utils/IPFSClient.js.map +1 -1
  259. package/dist/utils/Logger.d.ts +195 -0
  260. package/dist/utils/Logger.d.ts.map +1 -0
  261. package/dist/utils/Logger.js +382 -0
  262. package/dist/utils/Logger.js.map +1 -0
  263. package/dist/utils/NonceManager.d.ts +234 -1
  264. package/dist/utils/NonceManager.d.ts.map +1 -1
  265. package/dist/utils/NonceManager.js +372 -7
  266. package/dist/utils/NonceManager.js.map +1 -1
  267. package/dist/utils/RateLimiter.d.ts +253 -0
  268. package/dist/utils/RateLimiter.d.ts.map +1 -0
  269. package/dist/utils/RateLimiter.js +424 -0
  270. package/dist/utils/RateLimiter.js.map +1 -0
  271. package/dist/utils/ReceivedNonceTracker.d.ts +175 -0
  272. package/dist/utils/ReceivedNonceTracker.d.ts.map +1 -1
  273. package/dist/utils/ReceivedNonceTracker.js +261 -5
  274. package/dist/utils/ReceivedNonceTracker.js.map +1 -1
  275. package/dist/utils/SDKLifecycle.d.ts +156 -0
  276. package/dist/utils/SDKLifecycle.d.ts.map +1 -0
  277. package/dist/utils/SDKLifecycle.js +347 -0
  278. package/dist/utils/SDKLifecycle.js.map +1 -0
  279. package/dist/utils/SecureNonce.d.ts +57 -0
  280. package/dist/utils/SecureNonce.d.ts.map +1 -0
  281. package/dist/utils/SecureNonce.js +80 -0
  282. package/dist/utils/SecureNonce.js.map +1 -0
  283. package/dist/utils/Semaphore.d.ts +123 -0
  284. package/dist/utils/Semaphore.d.ts.map +1 -0
  285. package/dist/utils/Semaphore.js +247 -0
  286. package/dist/utils/Semaphore.js.map +1 -0
  287. package/dist/utils/UsedAttestationTracker.d.ts +167 -0
  288. package/dist/utils/UsedAttestationTracker.d.ts.map +1 -0
  289. package/dist/utils/UsedAttestationTracker.js +309 -0
  290. package/dist/utils/UsedAttestationTracker.js.map +1 -0
  291. package/dist/utils/canonicalJson.d.ts +22 -0
  292. package/dist/utils/canonicalJson.d.ts.map +1 -1
  293. package/dist/utils/canonicalJson.js +26 -3
  294. package/dist/utils/canonicalJson.js.map +1 -1
  295. package/dist/utils/computeTypeHash.d.ts +14 -0
  296. package/dist/utils/computeTypeHash.d.ts.map +1 -1
  297. package/dist/utils/computeTypeHash.js +19 -2
  298. package/dist/utils/computeTypeHash.js.map +1 -1
  299. package/dist/utils/fsSafe.d.ts +14 -0
  300. package/dist/utils/fsSafe.d.ts.map +1 -0
  301. package/dist/utils/fsSafe.js +89 -0
  302. package/dist/utils/fsSafe.js.map +1 -0
  303. package/dist/utils/index.d.ts +15 -0
  304. package/dist/utils/index.d.ts.map +1 -0
  305. package/dist/utils/index.js +51 -0
  306. package/dist/utils/index.js.map +1 -0
  307. package/dist/utils/security.d.ts +147 -0
  308. package/dist/utils/security.d.ts.map +1 -0
  309. package/dist/utils/security.js +391 -0
  310. package/dist/utils/security.js.map +1 -0
  311. package/dist/utils/validation.d.ts +40 -0
  312. package/dist/utils/validation.d.ts.map +1 -1
  313. package/dist/utils/validation.js +184 -7
  314. package/dist/utils/validation.js.map +1 -1
  315. package/package.json +54 -37
  316. package/src/ACTPClient.ts +692 -178
  317. package/src/abi/AgentRegistry.json +782 -0
  318. package/src/abi/EscrowVault.json +106 -38
  319. package/src/abi/IdentityRegistry.json +316 -0
  320. package/src/adapters/BaseAdapter.ts +473 -0
  321. package/src/adapters/BeginnerAdapter.ts +232 -0
  322. package/src/adapters/IntermediateAdapter.ts +316 -0
  323. package/src/adapters/index.ts +25 -0
  324. package/src/builders/DeliveryProofBuilder.ts +3 -2
  325. package/src/cli/commands/balance.ts +110 -0
  326. package/src/cli/commands/batch.ts +487 -0
  327. package/src/cli/commands/config.ts +231 -0
  328. package/src/cli/commands/init.ts +161 -0
  329. package/src/cli/commands/mint.ts +116 -0
  330. package/src/cli/commands/pay.ts +113 -0
  331. package/src/cli/commands/simulate.ts +345 -0
  332. package/src/cli/commands/time.ts +303 -0
  333. package/src/cli/commands/tx.ts +448 -0
  334. package/src/cli/commands/watch.ts +211 -0
  335. package/src/cli/index.ts +116 -0
  336. package/src/cli/utils/client.ts +249 -0
  337. package/src/cli/utils/config.ts +282 -0
  338. package/src/cli/utils/output.ts +465 -0
  339. package/src/config/networks.ts +32 -9
  340. package/src/errors/index.ts +298 -1
  341. package/src/index.ts +207 -71
  342. package/src/level0/Provider.ts +117 -0
  343. package/src/level0/ServiceDirectory.ts +131 -0
  344. package/src/level0/index.ts +10 -0
  345. package/src/level0/provide.ts +131 -0
  346. package/src/level0/request.ts +494 -0
  347. package/src/level1/Agent.ts +1432 -0
  348. package/src/level1/index.ts +10 -0
  349. package/src/level1/pricing/PriceCalculator.ts +255 -0
  350. package/src/level1/pricing/PricingStrategy.ts +198 -0
  351. package/src/level1/types/Job.ts +179 -0
  352. package/src/level1/types/Options.ts +291 -0
  353. package/src/level1/types/index.ts +8 -0
  354. package/src/protocol/ACTPKernel.ts +175 -23
  355. package/src/protocol/AgentRegistry.ts +559 -0
  356. package/src/protocol/DIDManager.ts +629 -0
  357. package/src/protocol/DIDResolver.ts +554 -0
  358. package/src/protocol/EASHelper.ts +230 -46
  359. package/src/protocol/EscrowVault.ts +68 -50
  360. package/src/protocol/EventMonitor.ts +44 -15
  361. package/src/protocol/MessageSigner.ts +193 -13
  362. package/src/protocol/ProofGenerator.ts +223 -4
  363. package/src/runtime/BlockchainRuntime.ts +993 -0
  364. package/src/runtime/IACTPRuntime.ts +284 -0
  365. package/src/runtime/MockRuntime.ts +1244 -0
  366. package/src/runtime/MockStateManager.ts +576 -0
  367. package/src/runtime/index.ts +25 -0
  368. package/src/runtime/types/MockState.ts +227 -0
  369. package/src/types/agent.ts +79 -0
  370. package/src/types/did.ts +223 -0
  371. package/src/types/escrow.ts +12 -11
  372. package/src/types/index.ts +5 -1
  373. package/src/types/state.ts +12 -3
  374. package/src/types/transaction.ts +4 -1
  375. package/src/utils/ErrorRecoveryGuide.ts +675 -0
  376. package/src/utils/Helpers.ts +688 -0
  377. package/src/utils/IPFSClient.ts +122 -5
  378. package/src/utils/Logger.ts +484 -0
  379. package/src/utils/NonceManager.ts +305 -8
  380. package/src/utils/RateLimiter.ts +534 -0
  381. package/src/utils/ReceivedNonceTracker.ts +170 -0
  382. package/src/utils/SDKLifecycle.ts +416 -0
  383. package/src/utils/SecureNonce.ts +78 -0
  384. package/src/utils/Semaphore.ts +276 -0
  385. package/src/utils/UsedAttestationTracker.ts +387 -0
  386. package/src/utils/fsSafe.ts +75 -0
  387. package/src/utils/index.ts +80 -0
  388. package/src/utils/security.ts +418 -0
  389. package/src/utils/validation.ts +164 -0
  390. package/src/__tests__/ProofGenerator.test.ts +0 -124
  391. package/src/__tests__/QuoteBuilder.test.ts +0 -516
  392. package/src/__tests__/StateMachine.test.ts +0 -82
  393. package/src/__tests__/builders/DeliveryProofBuilder.test.ts +0 -581
  394. package/src/__tests__/integration/ACTPClient.test.ts +0 -263
  395. package/src/__tests__/integration.test.ts +0 -289
  396. package/src/__tests__/protocol/EASHelper.test.ts +0 -472
  397. package/src/__tests__/protocol/EventMonitor.test.ts +0 -382
  398. package/src/__tests__/security/ACTPKernel.security.test.ts +0 -1167
  399. package/src/__tests__/security/EscrowVault.security.test.ts +0 -570
  400. package/src/__tests__/security/MessageSigner.security.test.ts +0 -286
  401. package/src/__tests__/security/NonceReplay.security.test.ts +0 -501
  402. package/src/__tests__/security/validation.security.test.ts +0 -376
  403. package/src/__tests__/utils/IPFSClient.test.ts +0 -262
  404. package/src/__tests__/utils/NonceManager.test.ts +0 -205
  405. package/src/__tests__/utils/canonicalJson.test.ts +0 -153
@@ -1,17 +1,75 @@
1
+ /**
2
+ * IPFS Client Implementation
3
+ * Wrapper around kubo-rpc-client (formerly ipfs-http-client) for AIP-4 delivery proof uploads
4
+ */
5
+ /// <reference types="node" />
6
+ /**
7
+ * IPFS Client Interface (from DeliveryProofBuilder)
8
+ */
1
9
  export interface IPFSClient {
10
+ /**
11
+ * Upload data to IPFS
12
+ * @param data - JSON string or buffer
13
+ * @returns CIDv1 string (base32, e.g., "bafybeig...")
14
+ */
2
15
  add(data: string | Buffer): Promise<string>;
16
+ /**
17
+ * Pin content to prevent garbage collection
18
+ * @param cid - IPFS CID
19
+ */
3
20
  pin(cid: string): Promise<void>;
21
+ /**
22
+ * Retrieve content from IPFS
23
+ * @param cid - IPFS CID
24
+ * @returns Content as string
25
+ */
4
26
  get(cid: string): Promise<string>;
5
27
  }
28
+ /**
29
+ * IPFS Client Configuration
30
+ */
6
31
  export interface IPFSClientConfig {
32
+ /**
33
+ * IPFS HTTP API endpoint
34
+ * Default: http://localhost:5001 (local IPFS daemon)
35
+ * Production: https://ipfs.infura.io:5001/api/v0 (Infura)
36
+ */
7
37
  url?: string;
38
+ /**
39
+ * API authentication (for Infura, Pinata, etc.)
40
+ */
8
41
  auth?: {
9
42
  username: string;
10
43
  password: string;
11
44
  };
45
+ /**
46
+ * HTTP headers (for API keys)
47
+ */
12
48
  headers?: Record<string, string>;
49
+ /**
50
+ * Request timeout (ms)
51
+ * Default: 60000 (60 seconds)
52
+ */
13
53
  timeout?: number;
54
+ /**
55
+ * SECURITY FIX (MEDIUM-3): Maximum content size in bytes
56
+ * Default: 50MB (50 * 1024 * 1024)
57
+ */
58
+ maxSize?: number;
59
+ /**
60
+ * SECURITY FIX (MEDIUM-3): Allowed URL protocols
61
+ * Default: ['http:', 'https:'] (http for localhost, https for remote)
62
+ */
63
+ allowedProtocols?: string[];
64
+ /**
65
+ * SECURITY FIX (MEDIUM-3): Allow localhost URLs
66
+ * Default: true (required for local IPFS daemon)
67
+ */
68
+ allowLocalhost?: boolean;
14
69
  }
70
+ /**
71
+ * Default IPFS configurations
72
+ */
15
73
  export declare const IPFS_CONFIGS: {
16
74
  local: {
17
75
  url: string;
@@ -23,15 +81,70 @@ export declare const IPFS_CONFIGS: {
23
81
  url: string;
24
82
  };
25
83
  };
84
+ /**
85
+ * IPFS HTTP Client Implementation
86
+ * Uses ipfs-http-client library
87
+ *
88
+ * SECURITY FIX (MEDIUM-3): Now includes URL and size validation
89
+ */
26
90
  export declare class IPFSHTTPClientImpl implements IPFSClient {
27
91
  private client;
28
92
  private config;
93
+ private static readonly DEFAULT_MAX_SIZE;
94
+ private static readonly DEFAULT_ALLOWED_PROTOCOLS;
95
+ private static readonly BLOCKED_HOSTS;
96
+ /**
97
+ * Create IPFS client
98
+ *
99
+ * SECURITY FIX (MEDIUM-3): Validates URL and adds size limits
100
+ *
101
+ * @param config - IPFS client configuration
102
+ * @throws Error if URL is invalid or blocked
103
+ */
29
104
  constructor(config?: IPFSClientConfig);
105
+ /**
106
+ * SECURITY FIX (MEDIUM-3): Validate IPFS endpoint URL
107
+ */
108
+ private validateUrl;
109
+ /**
110
+ * Upload data to IPFS
111
+ *
112
+ * SECURITY FIX (MEDIUM-3): Validates size before upload
113
+ *
114
+ * @param data - JSON string or buffer
115
+ * @returns CIDv1 string (base32)
116
+ * @throws Error if data exceeds maxSize
117
+ */
30
118
  add(data: string | Buffer): Promise<string>;
119
+ /**
120
+ * Pin content to prevent garbage collection
121
+ * @param cid - IPFS CID
122
+ */
31
123
  pin(cid: string): Promise<void>;
124
+ /**
125
+ * Retrieve content from IPFS
126
+ *
127
+ * SECURITY FIX (MEDIUM-3): Validates size during retrieval
128
+ *
129
+ * @param cid - IPFS CID
130
+ * @returns Content as string
131
+ * @throws Error if content exceeds maxSize
132
+ */
32
133
  get(cid: string): Promise<string>;
134
+ /**
135
+ * Check if IPFS daemon is reachable
136
+ * @returns true if connected, false otherwise
137
+ */
33
138
  isOnline(): Promise<boolean>;
139
+ /**
140
+ * Get IPFS node ID
141
+ * @returns IPFS node ID
142
+ */
34
143
  getNodeId(): Promise<string>;
35
144
  }
145
+ /**
146
+ * Create IPFS client with environment-based configuration
147
+ * Checks for IPFS_URL, INFURA_PROJECT_ID, PINATA_API_KEY env vars
148
+ */
36
149
  export declare function createIPFSClient(): IPFSClient;
37
150
  //# sourceMappingURL=IPFSClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IPFSClient.d.ts","sourceRoot":"","sources":["../../src/utils/IPFSClient.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,UAAU;IAMzB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAM5C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAOhC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnC;AAKD,MAAM,WAAW,gBAAgB;IAM/B,GAAG,CAAC,EAAE,MAAM,CAAC;IAKb,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAKF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAMjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,eAAO,MAAM,YAAY;;;;;;;;;;CAYxB,CAAC;AAMF,qBAAa,kBAAmB,YAAW,UAAU;IACnD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAmB;gBAMrB,MAAM,GAAE,gBAAqB;IAgCnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqB3C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BjC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAa5B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;CAQnC;AAMD,wBAAgB,gBAAgB,IAAI,UAAU,CAkC7C"}
1
+ {"version":3,"file":"IPFSClient.d.ts","sourceRoot":"","sources":["../../src/utils/IPFSClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAIH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;CAYxB,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,UAAU;IACnD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAA6B;IAG3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAuB;IACxE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAInC;IAEF;;;;;;;OAOG;gBACS,MAAM,GAAE,gBAAqB;IAoCzC;;OAEG;IACH,OAAO,CAAC,WAAW;IA+CnB;;;;;;;;OAQG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBjD;;;OAGG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrC;;;;;;;;OAQG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkCvC;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IASlC;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;CAQnC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAkC7C"}
@@ -1,30 +1,60 @@
1
1
  "use strict";
2
+ /**
3
+ * IPFS Client Implementation
4
+ * Wrapper around kubo-rpc-client (formerly ipfs-http-client) for AIP-4 delivery proof uploads
5
+ */
2
6
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IPFSHTTPClientImpl = exports.IPFS_CONFIGS = void 0;
4
- exports.createIPFSClient = createIPFSClient;
7
+ exports.createIPFSClient = exports.IPFSHTTPClientImpl = exports.IPFS_CONFIGS = void 0;
5
8
  const kubo_rpc_client_1 = require("kubo-rpc-client");
9
+ /**
10
+ * Default IPFS configurations
11
+ */
6
12
  exports.IPFS_CONFIGS = {
7
13
  local: {
8
14
  url: 'http://localhost:5001'
9
15
  },
10
16
  infura: {
11
17
  url: 'https://ipfs.infura.io:5001/api/v0'
18
+ // Auth required: Set INFURA_PROJECT_ID and INFURA_PROJECT_SECRET
12
19
  },
13
20
  pinata: {
14
21
  url: 'https://api.pinata.cloud'
22
+ // Headers required: Set pinata_api_key and pinata_secret_api_key
15
23
  }
16
24
  };
25
+ /**
26
+ * IPFS HTTP Client Implementation
27
+ * Uses ipfs-http-client library
28
+ *
29
+ * SECURITY FIX (MEDIUM-3): Now includes URL and size validation
30
+ */
17
31
  class IPFSHTTPClientImpl {
32
+ /**
33
+ * Create IPFS client
34
+ *
35
+ * SECURITY FIX (MEDIUM-3): Validates URL and adds size limits
36
+ *
37
+ * @param config - IPFS client configuration
38
+ * @throws Error if URL is invalid or blocked
39
+ */
18
40
  constructor(config = {}) {
41
+ const url = config.url || 'http://localhost:5001';
42
+ // SECURITY FIX (MEDIUM-3): Validate URL
43
+ this.validateUrl(url, config.allowLocalhost ?? true, config.allowedProtocols);
19
44
  this.config = {
20
- url: config.url || 'http://localhost:5001',
45
+ url,
21
46
  timeout: config.timeout || 60000,
22
- ...config
47
+ maxSize: config.maxSize || IPFSHTTPClientImpl.DEFAULT_MAX_SIZE,
48
+ allowedProtocols: config.allowedProtocols || IPFSHTTPClientImpl.DEFAULT_ALLOWED_PROTOCOLS,
49
+ allowLocalhost: config.allowLocalhost ?? true,
50
+ auth: config.auth,
51
+ headers: config.headers,
23
52
  };
24
53
  const options = {
25
54
  url: this.config.url,
26
55
  timeout: this.config.timeout
27
56
  };
57
+ // Add authentication if provided
28
58
  if (this.config.auth) {
29
59
  options.headers = {
30
60
  ...this.config.headers,
@@ -36,20 +66,70 @@ class IPFSHTTPClientImpl {
36
66
  }
37
67
  this.client = (0, kubo_rpc_client_1.create)(options);
38
68
  }
69
+ /**
70
+ * SECURITY FIX (MEDIUM-3): Validate IPFS endpoint URL
71
+ */
72
+ validateUrl(url, allowLocalhost, allowedProtocols) {
73
+ let parsed;
74
+ try {
75
+ parsed = new URL(url);
76
+ }
77
+ catch {
78
+ throw new Error(`Invalid IPFS endpoint URL: ${url}`);
79
+ }
80
+ const protocols = allowedProtocols || IPFSHTTPClientImpl.DEFAULT_ALLOWED_PROTOCOLS;
81
+ if (!protocols.includes(parsed.protocol)) {
82
+ throw new Error(`IPFS endpoint protocol "${parsed.protocol}" not allowed. ` +
83
+ `Allowed protocols: ${protocols.join(', ')}`);
84
+ }
85
+ const hostname = parsed.hostname.toLowerCase();
86
+ // Check blocked hosts (cloud metadata endpoints)
87
+ if (IPFSHTTPClientImpl.BLOCKED_HOSTS.includes(hostname)) {
88
+ throw new Error(`IPFS endpoint hostname "${hostname}" is blocked for security reasons.`);
89
+ }
90
+ // Check localhost
91
+ const isLocalhost = ['localhost', '127.0.0.1', '0.0.0.0', '[::1]'].includes(hostname);
92
+ if (isLocalhost && !allowLocalhost) {
93
+ throw new Error(`Localhost IPFS endpoints are disabled. Set allowLocalhost: true to enable.`);
94
+ }
95
+ // For remote hosts, require HTTPS
96
+ if (!isLocalhost && parsed.protocol !== 'https:') {
97
+ console.warn(`[SECURITY WARNING] Using non-HTTPS protocol "${parsed.protocol}" for remote IPFS endpoint "${hostname}". ` +
98
+ `This may expose data in transit. Consider using HTTPS.`);
99
+ }
100
+ }
101
+ /**
102
+ * Upload data to IPFS
103
+ *
104
+ * SECURITY FIX (MEDIUM-3): Validates size before upload
105
+ *
106
+ * @param data - JSON string or buffer
107
+ * @returns CIDv1 string (base32)
108
+ * @throws Error if data exceeds maxSize
109
+ */
39
110
  async add(data) {
40
111
  try {
41
112
  const content = typeof data === 'string' ? Buffer.from(data, 'utf-8') : data;
113
+ // SECURITY FIX (MEDIUM-3): Check size before upload
114
+ if (content.length > this.config.maxSize) {
115
+ throw new Error(`Content too large: ${content.length} bytes exceeds maximum of ${this.config.maxSize} bytes`);
116
+ }
42
117
  const result = await this.client.add(content, {
43
- cidVersion: 1,
118
+ cidVersion: 1, // Use CIDv1 (base32)
44
119
  hashAlg: 'sha2-256',
45
- pin: true
120
+ pin: true // Auto-pin on upload
46
121
  });
122
+ // Convert CID to base32 string (e.g., "bafybeig...")
47
123
  return result.cid.toString();
48
124
  }
49
125
  catch (error) {
50
126
  throw new Error(`IPFS upload failed: ${error instanceof Error ? error.message : String(error)}`);
51
127
  }
52
128
  }
129
+ /**
130
+ * Pin content to prevent garbage collection
131
+ * @param cid - IPFS CID
132
+ */
53
133
  async pin(cid) {
54
134
  try {
55
135
  await this.client.pin.add(cid);
@@ -58,13 +138,29 @@ class IPFSHTTPClientImpl {
58
138
  throw new Error(`IPFS pin failed: ${error instanceof Error ? error.message : String(error)}`);
59
139
  }
60
140
  }
141
+ /**
142
+ * Retrieve content from IPFS
143
+ *
144
+ * SECURITY FIX (MEDIUM-3): Validates size during retrieval
145
+ *
146
+ * @param cid - IPFS CID
147
+ * @returns Content as string
148
+ * @throws Error if content exceeds maxSize
149
+ */
61
150
  async get(cid) {
62
151
  try {
63
152
  const chunks = [];
153
+ let totalLength = 0;
64
154
  for await (const chunk of this.client.cat(cid)) {
155
+ totalLength += chunk.length;
156
+ // SECURITY FIX (MEDIUM-3): Check size during streaming to prevent DoS
157
+ if (totalLength > this.config.maxSize) {
158
+ throw new Error(`Content too large: ${totalLength}+ bytes exceeds maximum of ${this.config.maxSize} bytes. ` +
159
+ `Consider increasing maxSize in IPFSClientConfig if this is expected.`);
160
+ }
65
161
  chunks.push(chunk);
66
162
  }
67
- const totalLength = chunks.reduce((acc, chunk) => acc + chunk.length, 0);
163
+ // Concatenate all chunks
68
164
  const result = new Uint8Array(totalLength);
69
165
  let offset = 0;
70
166
  for (const chunk of chunks) {
@@ -77,6 +173,10 @@ class IPFSHTTPClientImpl {
77
173
  throw new Error(`IPFS retrieval failed: ${error instanceof Error ? error.message : String(error)}`);
78
174
  }
79
175
  }
176
+ /**
177
+ * Check if IPFS daemon is reachable
178
+ * @returns true if connected, false otherwise
179
+ */
80
180
  async isOnline() {
81
181
  try {
82
182
  await this.client.id();
@@ -86,6 +186,10 @@ class IPFSHTTPClientImpl {
86
186
  return false;
87
187
  }
88
188
  }
189
+ /**
190
+ * Get IPFS node ID
191
+ * @returns IPFS node ID
192
+ */
89
193
  async getNodeId() {
90
194
  try {
91
195
  const id = await this.client.id();
@@ -97,7 +201,20 @@ class IPFSHTTPClientImpl {
97
201
  }
98
202
  }
99
203
  exports.IPFSHTTPClientImpl = IPFSHTTPClientImpl;
204
+ // SECURITY FIX (MEDIUM-3): Default security settings
205
+ IPFSHTTPClientImpl.DEFAULT_MAX_SIZE = 50 * 1024 * 1024; // 50MB
206
+ IPFSHTTPClientImpl.DEFAULT_ALLOWED_PROTOCOLS = ['http:', 'https:'];
207
+ IPFSHTTPClientImpl.BLOCKED_HOSTS = [
208
+ 'metadata.google.internal',
209
+ '169.254.169.254',
210
+ 'metadata.aws.internal',
211
+ ];
212
+ /**
213
+ * Create IPFS client with environment-based configuration
214
+ * Checks for IPFS_URL, INFURA_PROJECT_ID, PINATA_API_KEY env vars
215
+ */
100
216
  function createIPFSClient() {
217
+ // Check for Infura credentials
101
218
  if (process.env.INFURA_PROJECT_ID && process.env.INFURA_PROJECT_SECRET) {
102
219
  return new IPFSHTTPClientImpl({
103
220
  url: 'https://ipfs.infura.io:5001/api/v0',
@@ -107,6 +224,7 @@ function createIPFSClient() {
107
224
  }
108
225
  });
109
226
  }
227
+ // Check for Pinata credentials
110
228
  if (process.env.PINATA_API_KEY && process.env.PINATA_SECRET_API_KEY) {
111
229
  return new IPFSHTTPClientImpl({
112
230
  url: 'https://api.pinata.cloud',
@@ -116,13 +234,16 @@ function createIPFSClient() {
116
234
  }
117
235
  });
118
236
  }
237
+ // Check for custom IPFS URL
119
238
  if (process.env.IPFS_URL) {
120
239
  return new IPFSHTTPClientImpl({
121
240
  url: process.env.IPFS_URL
122
241
  });
123
242
  }
243
+ // Default to local IPFS daemon
124
244
  return new IPFSHTTPClientImpl({
125
245
  url: 'http://localhost:5001'
126
246
  });
127
247
  }
248
+ exports.createIPFSClient = createIPFSClient;
128
249
  //# sourceMappingURL=IPFSClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IPFSClient.js","sourceRoot":"","sources":["../../src/utils/IPFSClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IPFSClient.js","sourceRoot":"","sources":["../../src/utils/IPFSClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Logger - Structured Logging Framework for ACTP SDK
3
+ *
4
+ * SECURITY FIX (M-6): Comprehensive logging with:
5
+ * - Log levels (debug, info, warn, error)
6
+ * - Structured metadata
7
+ * - Sensitive data filtering
8
+ * - Configurable output
9
+ *
10
+ * @module utils/Logger
11
+ */
12
+ /**
13
+ * Log levels in order of severity
14
+ */
15
+ export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
16
+ /**
17
+ * Log entry structure
18
+ */
19
+ export interface LogEntry {
20
+ /** Timestamp */
21
+ timestamp: string;
22
+ /** Log level */
23
+ level: LogLevel;
24
+ /** Log message */
25
+ message: string;
26
+ /** Source module/component */
27
+ source?: string;
28
+ /** Additional metadata */
29
+ metadata?: Record<string, unknown>;
30
+ /** Error details (if applicable) */
31
+ error?: {
32
+ name: string;
33
+ message: string;
34
+ stack?: string;
35
+ };
36
+ }
37
+ /**
38
+ * Logger configuration
39
+ */
40
+ export interface LoggerConfig {
41
+ /** Minimum log level to output */
42
+ minLevel?: LogLevel;
43
+ /** Source identifier for this logger */
44
+ source?: string;
45
+ /** Whether to include timestamps */
46
+ timestamps?: boolean;
47
+ /** Whether to filter sensitive data */
48
+ filterSensitive?: boolean;
49
+ /** Custom output handler */
50
+ output?: (entry: LogEntry) => void;
51
+ /** Whether logging is enabled */
52
+ enabled?: boolean;
53
+ }
54
+ /**
55
+ * Structured Logger for ACTP SDK
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const logger = new Logger({ source: 'BlockchainRuntime', minLevel: 'info' });
60
+ *
61
+ * logger.info('Transaction created', { txId: '0x...' });
62
+ * logger.error('Transaction failed', { txId: '0x...' }, error);
63
+ * ```
64
+ */
65
+ export declare class Logger {
66
+ private config;
67
+ constructor(config?: LoggerConfig);
68
+ /**
69
+ * Create child logger with inherited config
70
+ */
71
+ child(source: string): Logger;
72
+ /**
73
+ * Log debug message
74
+ */
75
+ debug(message: string, metadata?: Record<string, unknown>): void;
76
+ /**
77
+ * Log info message
78
+ */
79
+ info(message: string, metadata?: Record<string, unknown>): void;
80
+ /**
81
+ * Log warning message
82
+ */
83
+ warn(message: string, metadata?: Record<string, unknown>): void;
84
+ /**
85
+ * Log error message
86
+ */
87
+ error(message: string, metadata?: Record<string, unknown>, error?: Error): void;
88
+ /**
89
+ * Core logging method
90
+ */
91
+ private log;
92
+ /**
93
+ * Filter sensitive data from metadata
94
+ *
95
+ * SECURITY FIX (NEW-HIGH-3): Uses separate pattern arrays for keys and values.
96
+ * Key patterns have no /g flag (used with .test()).
97
+ * Value patterns are strings converted to fresh RegExp instances per call.
98
+ */
99
+ private filterSensitiveData;
100
+ /**
101
+ * Redact sensitive patterns from a string value
102
+ *
103
+ * SECURITY FIX (NEW-HIGH-3): Creates fresh RegExp instances with /gi flag
104
+ * for each call, avoiding lastIndex state pollution.
105
+ */
106
+ private redactSensitiveValues;
107
+ /**
108
+ * Default console output handler
109
+ */
110
+ private defaultOutput;
111
+ /**
112
+ * Enable logging
113
+ */
114
+ enable(): void;
115
+ /**
116
+ * Disable logging
117
+ */
118
+ disable(): void;
119
+ /**
120
+ * Set minimum log level
121
+ */
122
+ setLevel(level: LogLevel): void;
123
+ }
124
+ /**
125
+ * Global SDK logger instance
126
+ */
127
+ export declare const sdkLogger: Logger;
128
+ /**
129
+ * Metrics/monitoring hook interface
130
+ *
131
+ * SECURITY FIX (M-7): Metrics and monitoring hooks
132
+ */
133
+ export interface MetricsHook {
134
+ /** Called when a transaction is created */
135
+ onTransactionCreated?: (txId: string, metadata: Record<string, unknown>) => void;
136
+ /** Called when escrow is linked */
137
+ onEscrowLinked?: (txId: string, escrowId: string, amount: string) => void;
138
+ /** Called when state transitions */
139
+ onStateTransition?: (txId: string, fromState: string, toState: string) => void;
140
+ /** Called when escrow is released */
141
+ onEscrowReleased?: (escrowId: string, amount: string) => void;
142
+ /** Called on errors */
143
+ onError?: (error: Error, context: Record<string, unknown>) => void;
144
+ /** Called for performance metrics */
145
+ onPerformance?: (operation: string, durationMs: number, metadata?: Record<string, unknown>) => void;
146
+ }
147
+ /**
148
+ * Metrics collector for SDK operations
149
+ */
150
+ export declare class MetricsCollector {
151
+ private hooks;
152
+ private readonly logger;
153
+ constructor(logger?: Logger);
154
+ /**
155
+ * Register a metrics hook
156
+ */
157
+ addHook(hook: MetricsHook): void;
158
+ /**
159
+ * Remove a metrics hook
160
+ */
161
+ removeHook(hook: MetricsHook): void;
162
+ /**
163
+ * Emit transaction created event
164
+ */
165
+ transactionCreated(txId: string, metadata: Record<string, unknown>): void;
166
+ /**
167
+ * Emit escrow linked event
168
+ */
169
+ escrowLinked(txId: string, escrowId: string, amount: string): void;
170
+ /**
171
+ * Emit state transition event
172
+ */
173
+ stateTransition(txId: string, fromState: string, toState: string): void;
174
+ /**
175
+ * Emit escrow released event
176
+ */
177
+ escrowReleased(escrowId: string, amount: string): void;
178
+ /**
179
+ * Emit error event
180
+ */
181
+ recordError(error: Error, context: Record<string, unknown>): void;
182
+ /**
183
+ * Emit performance metric
184
+ */
185
+ recordPerformance(operation: string, durationMs: number, metadata?: Record<string, unknown>): void;
186
+ /**
187
+ * Helper to time an operation
188
+ */
189
+ timeOperation<T>(operation: string, fn: () => Promise<T>, metadata?: Record<string, unknown>): Promise<T>;
190
+ }
191
+ /**
192
+ * Global metrics collector instance
193
+ */
194
+ export declare const sdkMetrics: MetricsCollector;
195
+ //# sourceMappingURL=Logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"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"}