@europeum-ebsi/cli 0.0.0 → 1.0.0-rc.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 (384) hide show
  1. package/LICENSE.txt +289 -289
  2. package/LICENSES.txt +538 -0
  3. package/README.md +1140 -98
  4. package/dist/api/client.d.ts +4 -0
  5. package/dist/api/client.d.ts.map +1 -0
  6. package/dist/api/client.js +14 -0
  7. package/dist/api/client.js.map +1 -0
  8. package/dist/api/fetch.d.ts +13 -0
  9. package/dist/api/fetch.d.ts.map +1 -0
  10. package/dist/api/fetch.js +30 -0
  11. package/dist/api/fetch.js.map +1 -0
  12. package/dist/api/params.d.ts +4 -0
  13. package/dist/api/params.d.ts.map +1 -0
  14. package/dist/api/params.js +9 -0
  15. package/dist/api/params.js.map +1 -0
  16. package/dist/auth/dcql.d.ts +5 -0
  17. package/dist/auth/dcql.d.ts.map +1 -0
  18. package/dist/auth/dcql.js +41 -0
  19. package/dist/auth/dcql.js.map +1 -0
  20. package/dist/auth/presentation.d.ts +30 -0
  21. package/dist/auth/presentation.d.ts.map +1 -0
  22. package/dist/auth/presentation.js +99 -0
  23. package/dist/auth/presentation.js.map +1 -0
  24. package/dist/auth/token.d.ts +11 -0
  25. package/dist/auth/token.d.ts.map +1 -0
  26. package/dist/auth/token.js +116 -0
  27. package/dist/auth/token.js.map +1 -0
  28. package/dist/cli.d.ts +3 -0
  29. package/dist/cli.d.ts.map +1 -0
  30. package/dist/cli.js +96 -10
  31. package/dist/cli.js.map +1 -1
  32. package/dist/commands/auth.d.ts +3 -0
  33. package/dist/commands/auth.d.ts.map +1 -0
  34. package/dist/commands/auth.js +99 -0
  35. package/dist/commands/auth.js.map +1 -0
  36. package/dist/commands/config-cmd.d.ts +3 -0
  37. package/dist/commands/config-cmd.d.ts.map +1 -0
  38. package/dist/commands/config-cmd.js +86 -0
  39. package/dist/commands/config-cmd.js.map +1 -0
  40. package/dist/commands/contracts-registry.d.ts +3 -0
  41. package/dist/commands/contracts-registry.d.ts.map +1 -0
  42. package/dist/commands/contracts-registry.js +132 -0
  43. package/dist/commands/contracts-registry.js.map +1 -0
  44. package/dist/commands/did-registry.d.ts +3 -0
  45. package/dist/commands/did-registry.d.ts.map +1 -0
  46. package/dist/commands/did-registry.js +110 -0
  47. package/dist/commands/did-registry.js.map +1 -0
  48. package/dist/commands/faucet.d.ts +3 -0
  49. package/dist/commands/faucet.d.ts.map +1 -0
  50. package/dist/commands/faucet.js +78 -0
  51. package/dist/commands/faucet.js.map +1 -0
  52. package/dist/commands/health.d.ts +3 -0
  53. package/dist/commands/health.d.ts.map +1 -0
  54. package/dist/commands/health.js +20 -0
  55. package/dist/commands/health.js.map +1 -0
  56. package/dist/commands/issuers-registry.d.ts +3 -0
  57. package/dist/commands/issuers-registry.d.ts.map +1 -0
  58. package/dist/commands/issuers-registry.js +340 -0
  59. package/dist/commands/issuers-registry.js.map +1 -0
  60. package/dist/commands/ledger.d.ts +3 -0
  61. package/dist/commands/ledger.d.ts.map +1 -0
  62. package/dist/commands/ledger.js +549 -372
  63. package/dist/commands/ledger.js.map +1 -1
  64. package/dist/commands/onboarding.d.ts +3 -0
  65. package/dist/commands/onboarding.d.ts.map +1 -0
  66. package/dist/commands/onboarding.js +301 -0
  67. package/dist/commands/onboarding.js.map +1 -0
  68. package/dist/commands/openapi.d.ts +3 -0
  69. package/dist/commands/openapi.d.ts.map +1 -0
  70. package/dist/commands/openapi.js +37 -0
  71. package/dist/commands/openapi.js.map +1 -0
  72. package/dist/commands/policies-registry.d.ts +3 -0
  73. package/dist/commands/policies-registry.d.ts.map +1 -0
  74. package/dist/commands/policies-registry.js +198 -0
  75. package/dist/commands/policies-registry.js.map +1 -0
  76. package/dist/commands/registry.d.ts +27 -0
  77. package/dist/commands/registry.d.ts.map +1 -0
  78. package/dist/commands/registry.js +62 -0
  79. package/dist/commands/registry.js.map +1 -0
  80. package/dist/commands/schemas-registry.d.ts +3 -0
  81. package/dist/commands/schemas-registry.d.ts.map +1 -0
  82. package/dist/commands/schemas-registry.js +231 -0
  83. package/dist/commands/schemas-registry.js.map +1 -0
  84. package/dist/commands/shared/args.d.ts +2 -0
  85. package/dist/commands/shared/args.d.ts.map +1 -0
  86. package/dist/commands/shared/args.js +4 -0
  87. package/dist/commands/shared/args.js.map +1 -0
  88. package/dist/commands/shared/wallet-opts.d.ts +9 -0
  89. package/dist/commands/shared/wallet-opts.d.ts.map +1 -0
  90. package/dist/commands/shared/wallet-opts.js +44 -0
  91. package/dist/commands/shared/wallet-opts.js.map +1 -0
  92. package/dist/commands/timestamp.d.ts +3 -0
  93. package/dist/commands/timestamp.d.ts.map +1 -0
  94. package/dist/commands/timestamp.js +250 -0
  95. package/dist/commands/timestamp.js.map +1 -0
  96. package/dist/commands/track-and-trace.d.ts +3 -0
  97. package/dist/commands/track-and-trace.d.ts.map +1 -0
  98. package/dist/commands/track-and-trace.js +235 -0
  99. package/dist/commands/track-and-trace.js.map +1 -0
  100. package/dist/commands/wallet.d.ts +3 -0
  101. package/dist/commands/wallet.d.ts.map +1 -0
  102. package/dist/commands/wallet.js +123 -0
  103. package/dist/commands/wallet.js.map +1 -0
  104. package/dist/config/config.d.ts +45 -0
  105. package/dist/config/config.d.ts.map +1 -0
  106. package/dist/config/config.js +111 -0
  107. package/dist/config/config.js.map +1 -0
  108. package/dist/config/ebsi-env.d.ts +4 -0
  109. package/dist/config/ebsi-env.d.ts.map +1 -0
  110. package/dist/config/ebsi-env.js +37 -0
  111. package/dist/config/ebsi-env.js.map +1 -0
  112. package/dist/crypto/wallet.d.ts +34 -0
  113. package/dist/crypto/wallet.d.ts.map +1 -0
  114. package/dist/crypto/wallet.js +100 -0
  115. package/dist/crypto/wallet.js.map +1 -0
  116. package/dist/index.d.ts +3 -0
  117. package/dist/index.d.ts.map +1 -0
  118. package/dist/index.js +15 -6
  119. package/dist/index.js.map +1 -1
  120. package/dist/ledger/read.d.ts +11 -0
  121. package/dist/ledger/read.d.ts.map +1 -0
  122. package/dist/ledger/read.js +24 -0
  123. package/dist/ledger/read.js.map +1 -0
  124. package/dist/ledger/registries.d.ts +25 -0
  125. package/dist/ledger/registries.d.ts.map +1 -0
  126. package/dist/ledger/registries.js +111 -0
  127. package/dist/ledger/registries.js.map +1 -0
  128. package/dist/ledger/write.d.ts +43 -0
  129. package/dist/ledger/write.d.ts.map +1 -0
  130. package/dist/ledger/write.js +119 -0
  131. package/dist/ledger/write.js.map +1 -0
  132. package/dist/onboarding/vc.d.ts +18 -0
  133. package/dist/onboarding/vc.d.ts.map +1 -0
  134. package/dist/onboarding/vc.js +72 -0
  135. package/dist/onboarding/vc.js.map +1 -0
  136. package/dist/output/format.d.ts +7 -0
  137. package/dist/output/format.d.ts.map +1 -0
  138. package/dist/output/format.js +94 -0
  139. package/dist/output/format.js.map +1 -0
  140. package/dist/tui/App.d.ts +3 -0
  141. package/dist/tui/App.d.ts.map +1 -0
  142. package/dist/tui/App.js +99 -0
  143. package/dist/tui/App.js.map +1 -0
  144. package/dist/tui/CommandPalette.d.ts +8 -0
  145. package/dist/tui/CommandPalette.d.ts.map +1 -0
  146. package/dist/tui/CommandPalette.js +105 -0
  147. package/dist/tui/CommandPalette.js.map +1 -0
  148. package/package.json +66 -108
  149. package/src/api/client.ts +26 -0
  150. package/src/api/fetch.ts +53 -0
  151. package/src/api/params.ts +17 -0
  152. package/src/auth/dcql.ts +84 -0
  153. package/src/auth/presentation.ts +255 -0
  154. package/src/auth/token.ts +244 -0
  155. package/src/cli.ts +164 -0
  156. package/src/commands/auth.ts +119 -0
  157. package/src/commands/config-cmd.ts +122 -0
  158. package/src/commands/contracts-registry.ts +156 -0
  159. package/src/commands/did-registry.ts +126 -0
  160. package/src/commands/faucet.ts +112 -0
  161. package/src/commands/health.ts +21 -0
  162. package/src/commands/issuers-registry.ts +385 -0
  163. package/src/commands/ledger.ts +777 -0
  164. package/src/commands/onboarding.ts +411 -0
  165. package/src/commands/openapi.ts +42 -0
  166. package/src/commands/policies-registry.ts +218 -0
  167. package/src/commands/registry.ts +152 -0
  168. package/src/commands/schemas-registry.ts +255 -0
  169. package/src/commands/shared/args.ts +14 -0
  170. package/src/commands/shared/wallet-opts.ts +85 -0
  171. package/src/commands/timestamp.ts +272 -0
  172. package/src/commands/track-and-trace.ts +263 -0
  173. package/src/commands/wallet.ts +175 -0
  174. package/src/config/config.ts +275 -0
  175. package/src/config/ebsi-env.ts +67 -0
  176. package/src/crypto/wallet.ts +291 -0
  177. package/src/index.ts +24 -0
  178. package/src/ledger/read.ts +70 -0
  179. package/src/ledger/registries.ts +285 -0
  180. package/src/ledger/write.ts +381 -0
  181. package/src/onboarding/vc.ts +205 -0
  182. package/src/output/format.ts +157 -0
  183. package/src/tui/App.tsx +282 -0
  184. package/src/tui/CommandPalette.tsx +223 -0
  185. package/bin/cli.js +0 -13
  186. package/dist/abi/pilot/DidRegistry.js +0 -568
  187. package/dist/abi/pilot/DidRegistry.js.map +0 -1
  188. package/dist/abi/pilot/Ptr.js +0 -666
  189. package/dist/abi/pilot/Ptr.js.map +0 -1
  190. package/dist/abi/pilot/SchemaSCRegistry.js +0 -264
  191. package/dist/abi/pilot/SchemaSCRegistry.js.map +0 -1
  192. package/dist/abi/pilot/Tcr.js +0 -715
  193. package/dist/abi/pilot/Tcr.js.map +0 -1
  194. package/dist/abi/pilot/Timestamp.js +0 -658
  195. package/dist/abi/pilot/Timestamp.js.map +0 -1
  196. package/dist/abi/pilot/Tir.js +0 -428
  197. package/dist/abi/pilot/Tir.js.map +0 -1
  198. package/dist/abi/pilot/TnT.js +0 -842
  199. package/dist/abi/pilot/TnT.js.map +0 -1
  200. package/dist/abi/pilot/Tpr.js +0 -492
  201. package/dist/abi/pilot/Tpr.js.map +0 -1
  202. package/dist/abi/test/DidRegistry.js +0 -568
  203. package/dist/abi/test/DidRegistry.js.map +0 -1
  204. package/dist/abi/test/Ptr.js +0 -666
  205. package/dist/abi/test/Ptr.js.map +0 -1
  206. package/dist/abi/test/SchemaSCRegistry.js +0 -300
  207. package/dist/abi/test/SchemaSCRegistry.js.map +0 -1
  208. package/dist/abi/test/Tcr.js +0 -715
  209. package/dist/abi/test/Tcr.js.map +0 -1
  210. package/dist/abi/test/Timestamp.js +0 -658
  211. package/dist/abi/test/Timestamp.js.map +0 -1
  212. package/dist/abi/test/Tir.js +0 -428
  213. package/dist/abi/test/Tir.js.map +0 -1
  214. package/dist/abi/test/TnT.js +0 -842
  215. package/dist/abi/test/TnT.js.map +0 -1
  216. package/dist/abi/test/Tpr.js +0 -492
  217. package/dist/abi/test/Tpr.js.map +0 -1
  218. package/dist/app.js +0 -659
  219. package/dist/app.js.map +0 -1
  220. package/dist/buildParam/didr.js +0 -374
  221. package/dist/buildParam/didr.js.map +0 -1
  222. package/dist/buildParam/index.js +0 -53
  223. package/dist/buildParam/index.js.map +0 -1
  224. package/dist/buildParam/ptr.js +0 -80
  225. package/dist/buildParam/ptr.js.map +0 -1
  226. package/dist/buildParam/tcr.js +0 -36
  227. package/dist/buildParam/tcr.js.map +0 -1
  228. package/dist/buildParam/timestamp.js +0 -350
  229. package/dist/buildParam/timestamp.js.map +0 -1
  230. package/dist/buildParam/tir.js +0 -110
  231. package/dist/buildParam/tir.js.map +0 -1
  232. package/dist/buildParam/tnt.js +0 -214
  233. package/dist/buildParam/tnt.js.map +0 -1
  234. package/dist/buildParam/tpr.js +0 -91
  235. package/dist/buildParam/tpr.js.map +0 -1
  236. package/dist/buildParam/tsr.js +0 -115
  237. package/dist/buildParam/tsr.js.map +0 -1
  238. package/dist/commands/authorisation.js +0 -144
  239. package/dist/commands/authorisation.js.map +0 -1
  240. package/dist/commands/compute.js +0 -680
  241. package/dist/commands/compute.js.map +0 -1
  242. package/dist/commands/conformance.js +0 -813
  243. package/dist/commands/conformance.js.map +0 -1
  244. package/dist/commands/hardwarewallet.js +0 -41
  245. package/dist/commands/hardwarewallet.js.map +0 -1
  246. package/dist/commands/index.js +0 -8
  247. package/dist/commands/index.js.map +0 -1
  248. package/dist/commands/ptr.js +0 -54
  249. package/dist/commands/ptr.js.map +0 -1
  250. package/dist/commands/tcr.js +0 -50
  251. package/dist/commands/tcr.js.map +0 -1
  252. package/dist/commands/tir.js +0 -64
  253. package/dist/commands/tir.js.map +0 -1
  254. package/dist/commands/tnl.js +0 -81
  255. package/dist/commands/tnl.js.map +0 -1
  256. package/dist/commands/tsr.js +0 -45
  257. package/dist/commands/tsr.js.map +0 -1
  258. package/dist/commands/view.js +0 -53
  259. package/dist/commands/view.js.map +0 -1
  260. package/dist/config.js +0 -497
  261. package/dist/config.js.map +0 -1
  262. package/dist/interfaces/context.js +0 -2
  263. package/dist/interfaces/context.js.map +0 -1
  264. package/dist/interfaces/contracts/ProxyFactory.js +0 -2
  265. package/dist/interfaces/contracts/ProxyFactory.js.map +0 -1
  266. package/dist/interfaces/contracts/ProxyTemplateRegistry.js +0 -2
  267. package/dist/interfaces/contracts/ProxyTemplateRegistry.js.map +0 -1
  268. package/dist/interfaces/contracts/SchemaSCRegistry.js +0 -2
  269. package/dist/interfaces/contracts/SchemaSCRegistry.js.map +0 -1
  270. package/dist/interfaces/contracts/common.js +0 -2
  271. package/dist/interfaces/contracts/common.js.map +0 -1
  272. package/dist/interfaces/index.js +0 -5
  273. package/dist/interfaces/index.js.map +0 -1
  274. package/dist/interfaces/jsonrpc.interface.js +0 -2
  275. package/dist/interfaces/jsonrpc.interface.js.map +0 -1
  276. package/dist/interfaces/paginated-list.interface.js +0 -2
  277. package/dist/interfaces/paginated-list.interface.js.map +0 -1
  278. package/dist/interfaces/unsigned-transaction.interface.js +0 -2
  279. package/dist/interfaces/unsigned-transaction.interface.js.map +0 -1
  280. package/dist/interfaces/utils.interface.js +0 -2
  281. package/dist/interfaces/utils.interface.js.map +0 -1
  282. package/dist/programs/migrateDid.js +0 -159
  283. package/dist/programs/migrateDid.js.map +0 -1
  284. package/dist/programs/migrateDids.js +0 -232
  285. package/dist/programs/migrateDids.js.map +0 -1
  286. package/dist/programs/migrateTsr.js +0 -201
  287. package/dist/programs/migrateTsr.js.map +0 -1
  288. package/dist/scripts/accreditAndAuthorize/conformance/step1 +0 -34
  289. package/dist/scripts/accreditAndAuthorize/conformance/step2 +0 -18
  290. package/dist/scripts/accreditAndAuthorize/conformance/step3 +0 -9
  291. package/dist/scripts/accreditAndAuthorize/conformance/step4 +0 -27
  292. package/dist/scripts/accreditAndAuthorize/conformance/step5 +0 -13
  293. package/dist/scripts/accreditAndAuthorize/conformance/step6 +0 -14
  294. package/dist/scripts/accreditAndAuthorize/conformance/step7 +0 -7
  295. package/dist/scripts/accreditAndAuthorize/test/step1 +0 -34
  296. package/dist/scripts/accreditAndAuthorize/test/step2 +0 -18
  297. package/dist/scripts/accreditAndAuthorize/test/step3 +0 -9
  298. package/dist/scripts/accreditAndAuthorize/test/step4 +0 -27
  299. package/dist/scripts/accreditAndAuthorize/test/step5 +0 -13
  300. package/dist/scripts/accreditAndAuthorize/test/step6 +0 -14
  301. package/dist/scripts/accreditAndAuthorize/test/step7 +0 -7
  302. package/dist/scripts/accreditTI +0 -21
  303. package/dist/scripts/assets/Nodes.json +0 -27
  304. package/dist/scripts/assets/vcdm1.1/CTRevocableCredential.json +0 -30
  305. package/dist/scripts/assets/vcdm1.1/CredentialToAttestVerifiableAuthorisationForTrustChain.json +0 -29
  306. package/dist/scripts/assets/vcdm1.1/Nodes.json +0 -27
  307. package/dist/scripts/assets/vcdm1.1/TrustedNodesList.json +0 -35
  308. package/dist/scripts/assets/vcdm1.1/VerifiableAccreditationToAccredit.json +0 -35
  309. package/dist/scripts/assets/vcdm1.1/VerifiableAccreditationToAttest.json +0 -33
  310. package/dist/scripts/assets/vcdm1.1/VerifiableAuthorisationForTrustChain.json +0 -22
  311. package/dist/scripts/assets/vcdm1.1/VerifiableAuthorisationToInvoke.json +0 -24
  312. package/dist/scripts/assets/vcdm1.1/VerifiableAuthorisationToOnboard.json +0 -24
  313. package/dist/scripts/assets/vcdm2.0/CredentialToAttestVerifiableAuthorisationForTrustChain.json +0 -29
  314. package/dist/scripts/assets/vcdm2.0/TrustedNodesList.json +0 -36
  315. package/dist/scripts/assets/vcdm2.0/VerifiableAccreditationToAccredit.json +0 -40
  316. package/dist/scripts/assets/vcdm2.0/VerifiableAccreditationToAttest.json +0 -38
  317. package/dist/scripts/assets/vcdm2.0/VerifiableAuthorisationForTrustChain.json +0 -30
  318. package/dist/scripts/assets/vcdm2.0/VerifiableAuthorisationToInvoke.json +0 -24
  319. package/dist/scripts/assets/vcdm2.0/VerifiableAuthorisationToOnboard.json +0 -23
  320. package/dist/scripts/bootstrap/0a-loadTPROperator +0 -5
  321. package/dist/scripts/bootstrap/0b-loadAdmin +0 -8
  322. package/dist/scripts/bootstrap/1-populateTPR +0 -92
  323. package/dist/scripts/bootstrap/2-populateDID +0 -6
  324. package/dist/scripts/bootstrap/3-populateTimestamp +0 -9
  325. package/dist/scripts/bootstrap/4-populateTIR +0 -8
  326. package/dist/scripts/bootstrap/5-populateTSR +0 -85
  327. package/dist/scripts/bootstrap/6-setupConformanceIssuer +0 -35
  328. package/dist/scripts/bootstrap/README.md +0 -218
  329. package/dist/scripts/issueVcInvoke +0 -10
  330. package/dist/scripts/issueVcOnboard +0 -9
  331. package/dist/scripts/issueVcRootTAO +0 -11
  332. package/dist/scripts/issueVcTAO +0 -12
  333. package/dist/scripts/issueVcTI +0 -12
  334. package/dist/scripts/issueVcTnl +0 -32
  335. package/dist/scripts/issue_CTRevocableCredential +0 -12
  336. package/dist/scripts/issue_SelfAttestationSupportOffice +0 -10
  337. package/dist/scripts/issue_VerifiableAccreditationToAccredit +0 -11
  338. package/dist/scripts/issue_VerifiableAccreditationToAttest +0 -11
  339. package/dist/scripts/issue_VerifiableAuthorisationForTrustChain +0 -10
  340. package/dist/scripts/issue_VerifiableAuthorisationToOnboard +0 -9
  341. package/dist/scripts/preregisterIssuer +0 -6
  342. package/dist/scripts/registerDidDocument +0 -15
  343. package/dist/scripts/registerIssuer +0 -6
  344. package/dist/scripts/updateVcRootTAO +0 -10
  345. package/dist/scripts/updateVcTAO +0 -11
  346. package/dist/scripts/updateVcTI +0 -11
  347. package/dist/scripts/vcdm2.0/issueSelfAttestationSupportOffice +0 -10
  348. package/dist/scripts/vcdm2.0/issueVcInvoke +0 -12
  349. package/dist/scripts/vcdm2.0/issueVcOnboard +0 -11
  350. package/dist/scripts/vcdm2.0/issueVcRootTAO +0 -14
  351. package/dist/scripts/vcdm2.0/issueVcTAO +0 -15
  352. package/dist/scripts/vcdm2.0/issueVcTI +0 -15
  353. package/dist/scripts/vcdm2.0/issueVcTnl +0 -34
  354. package/dist/scripts/vcdm2.0/registerDidDocument +0 -15
  355. package/dist/scripts/vcdm2.0/updateVcRootTAO +0 -13
  356. package/dist/scripts/vcdm2.0/updateVcTAO +0 -14
  357. package/dist/scripts/vcdm2.0/updateVcTI +0 -14
  358. package/dist/scripts/vcdm2.0/verifyVcTnl +0 -10
  359. package/dist/scripts/verifyVcTnl +0 -10
  360. package/dist/scripts/wct/accreditAndAuthorize +0 -133
  361. package/dist/scripts/wct/accreditAndAuthorize2 +0 -89
  362. package/dist/scripts/wct/holderWallet +0 -39
  363. package/dist/scripts/wct/holderWallet2 +0 -39
  364. package/dist/scripts/wct/issueToHolder +0 -38
  365. package/dist/scripts/wct/issueToHolder2 +0 -38
  366. package/dist/scripts/wct/pda1 +0 -3
  367. package/dist/scripts/wct/verifier +0 -8
  368. package/dist/scripts/wct/verifier2 +0 -7
  369. package/dist/utils/Client.js +0 -155
  370. package/dist/utils/Client.js.map +0 -1
  371. package/dist/utils/HardwareWallet.js +0 -326
  372. package/dist/utils/HardwareWallet.js.map +0 -1
  373. package/dist/utils/http.js +0 -132
  374. package/dist/utils/http.js.map +0 -1
  375. package/dist/utils/index.js +0 -8
  376. package/dist/utils/index.js.map +0 -1
  377. package/dist/utils/jsonrpc.js +0 -38
  378. package/dist/utils/jsonrpc.js.map +0 -1
  379. package/dist/utils/print.js +0 -56
  380. package/dist/utils/print.js.map +0 -1
  381. package/dist/utils/utils.js +0 -427
  382. package/dist/utils/utils.js.map +0 -1
  383. package/dist/utils/vcdm.js +0 -47
  384. package/dist/utils/vcdm.js.map +0 -1
@@ -0,0 +1,99 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { KNOWN_SCOPES, validateScope } from "../auth/presentation.js";
3
+ import { getAccessToken } from "../auth/token.js";
4
+ import { setPersistedConfigValue } from "../config/config.js";
5
+ import { resolveWallet, WALLET_KEY_OPTIONS } from "./shared/wallet-opts.js";
6
+ export const authCommands = [
7
+ {
8
+ args: [],
9
+ group: "Auth",
10
+ async handler(_args, opts, config) {
11
+ const scope = opts["scope"];
12
+ if (!scope) {
13
+ throw new Error("Missing --scope. Provide one of: " + KNOWN_SCOPES.join(", "));
14
+ }
15
+ validateScope(scope);
16
+ const wallet = await resolveWallet(opts, config);
17
+ let vcJwt;
18
+ const vcFile = opts["vc"];
19
+ if (vcFile) {
20
+ try {
21
+ vcJwt = readFileSync(vcFile, "utf8").trim();
22
+ }
23
+ catch (error) {
24
+ const message = error instanceof Error ? error.message : String(error);
25
+ throw new Error(`Failed to read VC file "${vcFile}": ${message}`, {
26
+ cause: error,
27
+ });
28
+ }
29
+ }
30
+ const specOpt = opts["spec"];
31
+ if (specOpt !== undefined && specOpt !== "draft14" && specOpt !== "1.0") {
32
+ throw new Error('Invalid --spec value. Must be "draft14" or "1.0".');
33
+ }
34
+ const accessToken = await getAccessToken({
35
+ config,
36
+ scope,
37
+ wallet,
38
+ ...(specOpt !== undefined && { spec: specOpt }),
39
+ ...(vcJwt !== undefined && { vcJwt }),
40
+ });
41
+ const save = Boolean(opts["save"]);
42
+ if (save) {
43
+ setPersistedConfigValue("token", accessToken);
44
+ }
45
+ return {
46
+ access_token: accessToken,
47
+ did: wallet.did,
48
+ saved: save,
49
+ scope,
50
+ signedWith: wallet.signingKey().alg,
51
+ };
52
+ },
53
+ id: "auth.token",
54
+ options: [
55
+ {
56
+ description: "EBSI authorisation scope. Required. Either a single scope " +
57
+ '(e.g. "did-registry:write", "did-registry:invite"), or a space-separated combination of ' +
58
+ 'write scopes for a multi-scope token (e.g. "did-registry:write issuers-registry:write"). ' +
59
+ "Only did-registry:write, issuers-registry:write, timestamp:write, track-and-trace:create, track-and-trace:write, policies-registry:write, " +
60
+ "and schemas-registry:write can be combined — invite/invoke scopes must be requested alone. " +
61
+ "Scopes that need a VC (did-registry:invite, ledger:invoke, issuers-registry:invite, track-and-trace:authorise) " +
62
+ "also require --vc and cannot be combined. Any scope may be suffixed with " +
63
+ '":<0x-address>" (e.g. "track-and-trace:write:0x61c36a8d610163660E21a8b7359e1Cac0C9133e1") ' +
64
+ "to target a specific deployed contract instance instead of the environment default.",
65
+ flags: "--scope <scope>",
66
+ },
67
+ {
68
+ description: "Path to a VC JWT file. Required for invite/invoke scopes " +
69
+ "(did-registry:invite, ledger:invoke, issuers-registry:invite, track-and-trace:authorise).",
70
+ flags: "--vc <file>",
71
+ },
72
+ {
73
+ description: "Persist the obtained access token to config (equivalent to `ebsi config set token <jwt>`).",
74
+ flags: "--save",
75
+ },
76
+ ...WALLET_KEY_OPTIONS,
77
+ {
78
+ description: "EBSI DID — overrides config/env.",
79
+ flags: "--did <did>",
80
+ },
81
+ {
82
+ description: 'Which OpenID4VP grant to speak: "draft14" (default, legacy Presentation ' +
83
+ 'Exchange) or "1.0" (final, DCQL). Both are accepted by the Authorisation ' +
84
+ "service side by side.",
85
+ flags: "--spec <draft14|1.0>",
86
+ },
87
+ ],
88
+ segments: ["auth", "token"],
89
+ summary: "Obtain an EBSI access token via the OIDC4VP `vp_token` grant flow. " +
90
+ "Requires a configured secp256k1 key (--es256k-key, EBSI_ES256K_PRIVATE_KEY, " +
91
+ "or `ebsi config set es256kPrivateKey`); when a P-256 key is also configured, " +
92
+ "--sign-alg picks which one signs the VP. " +
93
+ 'Pass several space-separated write scopes (e.g. --scope "did-registry:write issuers-registry:write") ' +
94
+ "to mint a single multi-scope token. " +
95
+ "Use --vc <file> for scopes that require a Verifiable Credential. " +
96
+ "Use --save to persist the token for subsequent commands.",
97
+ },
98
+ ];
99
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CommandDescriptor } from "./registry.ts";
2
+ export declare const configCommands: CommandDescriptor[];
3
+ //# sourceMappingURL=config-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-cmd.d.ts","sourceRoot":"","sources":["../../src/commands/config-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAuBvD,eAAO,MAAM,cAAc,EAAE,iBAAiB,EAkG7C,CAAC"}
@@ -0,0 +1,86 @@
1
+ import { EBSI_ENVS, getConfigFilePath, getPersistedConfigValue, OUTPUT_FORMATS, setPersistedConfigValue, SIGN_ALGS, } from "../config/config.js";
2
+ import { requiredArg } from "./shared/args.js";
3
+ const SETTABLE_KEYS = [
4
+ "did",
5
+ "env",
6
+ "es256PrivateKey",
7
+ "es256kPrivateKey",
8
+ "output",
9
+ "signAlg",
10
+ "token",
11
+ ];
12
+ export const configCommands = [
13
+ {
14
+ args: [
15
+ {
16
+ description: `Config key to read (${SETTABLE_KEYS.join(", ")})`,
17
+ example: "env",
18
+ name: "key",
19
+ required: true,
20
+ },
21
+ ],
22
+ group: "Config",
23
+ async handler(args) {
24
+ const key = args["key"];
25
+ if (!SETTABLE_KEYS.includes(key)) {
26
+ throw new Error(`Unknown config key "${key}". Valid keys: ${SETTABLE_KEYS.join(", ")}`);
27
+ }
28
+ const value = getPersistedConfigValue(key);
29
+ return {
30
+ configFile: getConfigFilePath(),
31
+ key,
32
+ value: value ?? undefined,
33
+ };
34
+ },
35
+ id: "config.get",
36
+ options: [],
37
+ segments: ["config", "get"],
38
+ summary: "Show the current persisted config value for a key " +
39
+ "(did, env, es256PrivateKey, es256kPrivateKey, output, signAlg, token)",
40
+ },
41
+ {
42
+ args: [
43
+ {
44
+ description: `Config key (${SETTABLE_KEYS.join(", ")})`,
45
+ example: "env",
46
+ name: "key",
47
+ required: true,
48
+ },
49
+ {
50
+ description: "Value to set",
51
+ example: "test",
52
+ name: "value",
53
+ required: true,
54
+ },
55
+ ],
56
+ group: "Config",
57
+ async handler(args) {
58
+ const key = args["key"];
59
+ if (!SETTABLE_KEYS.includes(key)) {
60
+ throw new Error(`Unknown config key "${key}". Valid keys: ${SETTABLE_KEYS.join(", ")}`);
61
+ }
62
+ const value = requiredArg(args, "value");
63
+ if (key === "env" &&
64
+ !EBSI_ENVS.includes(value)) {
65
+ throw new Error(`Invalid env "${value}". Valid values: ${EBSI_ENVS.join(", ")}`);
66
+ }
67
+ if (key === "output" &&
68
+ !OUTPUT_FORMATS.includes(value)) {
69
+ throw new Error(`Invalid output "${value}". Valid values: ${OUTPUT_FORMATS.join(", ")}`);
70
+ }
71
+ if (key === "signAlg" &&
72
+ !SIGN_ALGS.includes(value.toUpperCase())) {
73
+ throw new Error(`Invalid signAlg "${value}". Valid values: ${SIGN_ALGS.join(", ")}`);
74
+ }
75
+ setPersistedConfigValue(key, value);
76
+ return { configFile: getConfigFilePath(), key, value };
77
+ },
78
+ id: "config.set",
79
+ options: [],
80
+ segments: ["config", "set"],
81
+ summary: "Persist a config value (key=did|env|es256PrivateKey|es256kPrivateKey|output|signAlg|token, " +
82
+ "value=...). WARNING: storing es256PrivateKey/es256kPrivateKey persists the key(s) as " +
83
+ "plaintext in the config file.",
84
+ },
85
+ ];
86
+ //# sourceMappingURL=config-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-cmd.js","sourceRoot":"","sources":["../../src/commands/config-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CommandDescriptor } from "./registry.ts";
2
+ export declare const contractsRegistryCommands: CommandDescriptor[];
3
+ //# sourceMappingURL=contracts-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts-registry.d.ts","sourceRoot":"","sources":["../../src/commands/contracts-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAkCvD,eAAO,MAAM,yBAAyB,EAAE,iBAAiB,EAyHxD,CAAC"}
@@ -0,0 +1,132 @@
1
+ import { getClient, unwrap } from "../api/fetch.js";
2
+ import { q } from "../api/params.js";
3
+ import { contractAddressOption } from "../ledger/registries.js";
4
+ import { requiredArg } from "./shared/args.js";
5
+ const PAGINATION_OPTIONS = [
6
+ {
7
+ description: "Cursor for pagination (page[after])",
8
+ flags: "--page-after <cursor>",
9
+ },
10
+ {
11
+ description: "Maximum number of items per page (page[size])",
12
+ flags: "--page-size <n>",
13
+ },
14
+ ];
15
+ const { option: CONTRACTS_ADDRESS_OPTION, resolve: contractsContractAddress } = contractAddressOption("PROXY_FACTORY_CONTRACT_ADDRESS", `Contract address to query. Defaults to $PROXY_FACTORY_CONTRACT_ADDRESS if set, otherwise the API's configured default.`);
16
+ const { option: TEMPLATES_ADDRESS_OPTION, resolve: templatesContractAddress } = contractAddressOption("PROXY_TEMPLATES_REGISTRY_CONTRACT_ADDRESS", `Contract address to query. Defaults to $PROXY_TEMPLATES_REGISTRY_CONTRACT_ADDRESS if set, otherwise the API's configured default.`);
17
+ export const contractsRegistryCommands = [
18
+ {
19
+ args: [],
20
+ group: "Contracts Registry",
21
+ async handler(_args, opts, config) {
22
+ const client = getClient(config);
23
+ const result = await client.GET("/contracts-registry/contracts", {
24
+ params: {
25
+ query: q({
26
+ contractAddress: contractsContractAddress(opts),
27
+ "page[after]": opts["pageAfter"]
28
+ ? Number(opts["pageAfter"])
29
+ : undefined,
30
+ "page[size]": opts["pageSize"]
31
+ ? Number(opts["pageSize"])
32
+ : undefined,
33
+ }),
34
+ },
35
+ });
36
+ return unwrap(result);
37
+ },
38
+ id: "contracts-registry.contracts.list",
39
+ options: [...PAGINATION_OPTIONS, CONTRACTS_ADDRESS_OPTION],
40
+ segments: ["contracts-registry", "contracts", "list"],
41
+ summary: "List smart contracts registered in the EBSI Contracts Registry",
42
+ },
43
+ {
44
+ args: [
45
+ {
46
+ description: "Contract address (hex)",
47
+ example: "0x1234abcd...",
48
+ name: "address",
49
+ required: true,
50
+ },
51
+ ],
52
+ group: "Contracts Registry",
53
+ async handler(args, opts, config) {
54
+ const client = getClient(config);
55
+ const result = await client.GET("/contracts-registry/contracts/{address}", {
56
+ params: {
57
+ path: { address: requiredArg(args, "address") },
58
+ query: q({ contractAddress: contractsContractAddress(opts) }),
59
+ },
60
+ });
61
+ return unwrap(result);
62
+ },
63
+ id: "contracts-registry.contracts.get",
64
+ options: [CONTRACTS_ADDRESS_OPTION],
65
+ segments: ["contracts-registry", "contracts", "get"],
66
+ summary: "Get a smart contract by address",
67
+ },
68
+ {
69
+ args: [],
70
+ group: "Contracts Registry",
71
+ async handler(_args, opts, config) {
72
+ const client = getClient(config);
73
+ const result = await client.GET("/contracts-registry/templates", {
74
+ params: {
75
+ query: q({
76
+ contractAddress: templatesContractAddress(opts),
77
+ "page[after]": opts["pageAfter"]
78
+ ? Number(opts["pageAfter"])
79
+ : undefined,
80
+ "page[size]": opts["pageSize"]
81
+ ? Number(opts["pageSize"])
82
+ : undefined,
83
+ }),
84
+ },
85
+ });
86
+ return unwrap(result);
87
+ },
88
+ id: "contracts-registry.templates.list",
89
+ options: [...PAGINATION_OPTIONS, TEMPLATES_ADDRESS_OPTION],
90
+ segments: ["contracts-registry", "templates", "list"],
91
+ summary: "List contract templates",
92
+ },
93
+ {
94
+ args: [
95
+ {
96
+ description: "Template ID",
97
+ example: "0x1234...",
98
+ name: "id",
99
+ required: true,
100
+ },
101
+ ],
102
+ group: "Contracts Registry",
103
+ async handler(args, opts, config) {
104
+ const client = getClient(config);
105
+ const result = await client.GET("/contracts-registry/templates/{id}", {
106
+ params: {
107
+ path: { id: requiredArg(args, "id") },
108
+ query: q({ contractAddress: templatesContractAddress(opts) }),
109
+ },
110
+ });
111
+ return unwrap(result);
112
+ },
113
+ id: "contracts-registry.templates.get",
114
+ options: [TEMPLATES_ADDRESS_OPTION],
115
+ segments: ["contracts-registry", "templates", "get"],
116
+ summary: "Get a contract template by ID",
117
+ },
118
+ {
119
+ args: [],
120
+ group: "Contracts Registry",
121
+ async handler(_args, _opts, config) {
122
+ const client = getClient(config);
123
+ const result = await client.GET("/contracts-registry/abi");
124
+ return unwrap(result);
125
+ },
126
+ id: "contracts-registry.abi",
127
+ options: [],
128
+ segments: ["contracts-registry", "abi"],
129
+ summary: "Get the ABI of the Contracts Registry smart contract",
130
+ },
131
+ ];
132
+ //# sourceMappingURL=contracts-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts-registry.js","sourceRoot":"","sources":["../../src/commands/contracts-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CommandDescriptor } from "./registry.ts";
2
+ export declare const didRegistryCommands: CommandDescriptor[];
3
+ //# sourceMappingURL=did-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did-registry.d.ts","sourceRoot":"","sources":["../../src/commands/did-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAqBvD,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,EAwGlD,CAAC"}
@@ -0,0 +1,110 @@
1
+ import { getClient, unwrap } from "../api/fetch.js";
2
+ import { q } from "../api/params.js";
3
+ import { contractAddressOptionFor } from "../ledger/registries.js";
4
+ import { requiredArg } from "./shared/args.js";
5
+ const PAGINATION_OPTIONS = [
6
+ {
7
+ description: "Cursor for pagination (page[after])",
8
+ flags: "--page-after <cursor>",
9
+ },
10
+ {
11
+ description: "Maximum number of items per page (page[size])",
12
+ flags: "--page-size <n>",
13
+ },
14
+ ];
15
+ const { option: CONTRACT_ADDRESS_OPTION, resolve: contractAddress } = contractAddressOptionFor("did-registry");
16
+ export const didRegistryCommands = [
17
+ {
18
+ args: [],
19
+ group: "DID Registry",
20
+ async handler(_args, opts, config) {
21
+ const client = getClient(config);
22
+ const result = await client.GET("/did-registry/identifiers", {
23
+ params: {
24
+ query: q({
25
+ contractAddress: contractAddress(opts),
26
+ controller: opts["controller"],
27
+ "page[after]": opts["pageAfter"]
28
+ ? Number(opts["pageAfter"])
29
+ : undefined,
30
+ "page[size]": opts["pageSize"]
31
+ ? Number(opts["pageSize"])
32
+ : undefined,
33
+ "verification-method-id": opts["verificationMethodId"],
34
+ "verification-relationship": opts["verificationRelationship"],
35
+ }),
36
+ },
37
+ });
38
+ return unwrap(result);
39
+ },
40
+ id: "did-registry.identifiers.list",
41
+ options: [
42
+ ...PAGINATION_OPTIONS,
43
+ CONTRACT_ADDRESS_OPTION,
44
+ {
45
+ description: "Filter by controller DID",
46
+ flags: "--controller <did>",
47
+ },
48
+ {
49
+ description: "Filter by verification method id (e.g. did:ebsi:z...#key-1)",
50
+ flags: "--verification-method-id <id>",
51
+ },
52
+ {
53
+ description: "Filter by verification relationship " +
54
+ "(authentication, assertionMethod, keyAgreement, capabilityInvocation, capabilityDelegation)",
55
+ flags: "--verification-relationship <rel>",
56
+ },
57
+ ],
58
+ segments: ["did-registry", "identifiers", "list"],
59
+ summary: "List all EBSI DIDs. Supports pagination and filtering by controller.",
60
+ },
61
+ {
62
+ args: [
63
+ {
64
+ description: "The DID to resolve (e.g. did:ebsi:ziDnioxYYLW1a3FDD...)",
65
+ example: "did:ebsi:ziDnioxYYLW1a3FDD",
66
+ name: "did",
67
+ required: true,
68
+ },
69
+ ],
70
+ group: "DID Registry",
71
+ async handler(args, opts, config) {
72
+ const client = getClient(config);
73
+ const did = requiredArg(args, "did");
74
+ const result = await client.GET("/did-registry/identifiers/{did}", {
75
+ params: {
76
+ path: { did },
77
+ query: q({
78
+ contractAddress: contractAddress(opts),
79
+ "valid-at": opts["validAt"],
80
+ }),
81
+ },
82
+ });
83
+ return unwrap(result);
84
+ },
85
+ id: "did-registry.identifiers.get",
86
+ options: [
87
+ CONTRACT_ADDRESS_OPTION,
88
+ {
89
+ description: "Retrieve DID document as of this ISO-8601 date",
90
+ flags: "--valid-at <date>",
91
+ },
92
+ ],
93
+ segments: ["did-registry", "identifiers", "get"],
94
+ summary: "Resolve a DID document by DID",
95
+ },
96
+ {
97
+ args: [],
98
+ group: "DID Registry",
99
+ async handler(_args, _opts, config) {
100
+ const client = getClient(config);
101
+ const result = await client.GET("/did-registry/abi");
102
+ return unwrap(result);
103
+ },
104
+ id: "did-registry.abi",
105
+ options: [],
106
+ segments: ["did-registry", "abi"],
107
+ summary: "Get the ABI of the DID Registry smart contract",
108
+ },
109
+ ];
110
+ //# sourceMappingURL=did-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did-registry.js","sourceRoot":"","sources":["../../src/commands/did-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CommandDescriptor } from "./registry.ts";
2
+ export declare const faucetCommands: CommandDescriptor[];
3
+ //# sourceMappingURL=faucet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faucet.d.ts","sourceRoot":"","sources":["../../src/commands/faucet.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAwBvD,eAAO,MAAM,cAAc,EAAE,iBAAiB,EAqF7C,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { ethers } from "ethers";
2
+ const HARDHAT_ACCOUNT_2_PRIVATE_KEY = "0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a";
3
+ const DEFAULT_RPC_URL = "http://127.0.0.1:8545";
4
+ const DEFAULT_AMOUNT_IN_ETH = "1";
5
+ export const faucetCommands = [
6
+ {
7
+ args: [
8
+ {
9
+ description: "Address to fund (0x-prefixed).",
10
+ example: "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC",
11
+ name: "to",
12
+ required: true,
13
+ },
14
+ ],
15
+ group: "Faucet",
16
+ async handler(args, opts) {
17
+ const to = args["to"] ?? "";
18
+ if (!ethers.isAddress(to)) {
19
+ throw new Error(`Invalid "to" address: ${to === "" ? "(missing)" : to}. ` +
20
+ "Expected a 0x-prefixed 20-byte Ethereum address.");
21
+ }
22
+ const amountInEth = opts["amountInEth"] ?? DEFAULT_AMOUNT_IN_ETH;
23
+ let value;
24
+ try {
25
+ value = ethers.parseEther(amountInEth);
26
+ }
27
+ catch {
28
+ throw new Error(`Invalid --amount-in-eth value: ${amountInEth}. Expected a decimal amount of ETH, e.g. "0.5".`);
29
+ }
30
+ if (value <= 0n) {
31
+ throw new Error(`Invalid --amount-in-eth value: ${amountInEth}. Expected a positive amount.`);
32
+ }
33
+ const rpcUrl = opts["rpcUrl"] ?? DEFAULT_RPC_URL;
34
+ const provider = new ethers.JsonRpcProvider(rpcUrl);
35
+ const privateKey = opts["privateKey"] ?? HARDHAT_ACCOUNT_2_PRIVATE_KEY;
36
+ let funder;
37
+ try {
38
+ funder = new ethers.Wallet(privateKey, provider);
39
+ }
40
+ catch {
41
+ throw new Error("Invalid --private-key: expected a 0x-prefixed secp256k1 private key hex.");
42
+ }
43
+ const transaction = await funder.sendTransaction({ to, value });
44
+ const receipt = await transaction.wait();
45
+ return {
46
+ amountInEth: ethers.formatEther(value),
47
+ blockNumber: receipt?.blockNumber ?? undefined,
48
+ from: funder.address,
49
+ hash: transaction.hash,
50
+ newBalanceInEth: ethers.formatEther(await provider.getBalance(to)),
51
+ to,
52
+ };
53
+ },
54
+ id: "faucet",
55
+ options: [
56
+ {
57
+ description: "Private key funding the transfer (0x-prefixed hex). " +
58
+ "Defaults to Hardhat's pre-funded account #0.",
59
+ flags: "--private-key <hex>",
60
+ },
61
+ {
62
+ defaultValue: DEFAULT_AMOUNT_IN_ETH,
63
+ description: 'Amount of ETH to send, e.g. "0.5".',
64
+ flags: "--amount-in-eth <eth>",
65
+ },
66
+ {
67
+ defaultValue: DEFAULT_RPC_URL,
68
+ description: "JSON-RPC endpoint of the node to send the transfer to. " +
69
+ "The faucet bypasses the API's /ledger proxy, so this is a node URL, not an API base URL.",
70
+ flags: "--rpc-url <url>",
71
+ },
72
+ ],
73
+ segments: ["faucet"],
74
+ summary: "Fund an address with ETH from a local development chain. " +
75
+ "Defaults to sending 1 ETH from Hardhat's account #0 via http://127.0.0.1:8545.",
76
+ },
77
+ ];
78
+ //# sourceMappingURL=faucet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faucet.js","sourceRoot":"","sources":["../../src/commands/faucet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CommandDescriptor } from "./registry.ts";
2
+ export declare const healthCommands: CommandDescriptor[];
3
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/commands/health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,eAAO,MAAM,cAAc,EAAE,iBAAiB,EAkB7C,CAAC"}
@@ -0,0 +1,20 @@
1
+ export const healthCommands = [
2
+ {
3
+ args: [],
4
+ group: "Health",
5
+ async handler(_args, _opts, config) {
6
+ const response = await fetch(`${config.baseUrl}/health`, {
7
+ headers: { Accept: "application/json" },
8
+ });
9
+ if (!response.ok) {
10
+ throw new Error(`Health check failed: HTTP ${String(response.status)}`);
11
+ }
12
+ return response.json();
13
+ },
14
+ id: "health.check",
15
+ options: [],
16
+ segments: ["health"],
17
+ summary: "Check the health of the EBSI API and its blockchain node",
18
+ },
19
+ ];
20
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/commands/health.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAwB;IACjD;QACE,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,QAAQ;QACf,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM;YAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,SAAS,EAAE;gBACvD,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;aACxC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;QACD,EAAE,EAAE,cAAc;QAClB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,OAAO,EAAE,0DAA0D;KACpE;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CommandDescriptor } from "./registry.ts";
2
+ export declare const issuersRegistryCommands: CommandDescriptor[];
3
+ //# sourceMappingURL=issuers-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issuers-registry.d.ts","sourceRoot":"","sources":["../../src/commands/issuers-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAqBvD,eAAO,MAAM,uBAAuB,EAAE,iBAAiB,EA2WtD,CAAC"}