@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,152 @@
1
+ import type { CliConfig } from "../config/config.ts";
2
+
3
+ /**
4
+ * A positional argument for a command
5
+ */
6
+ export interface CommandArg {
7
+ description: string;
8
+ example?: string;
9
+ /**
10
+ * CLI name / placeholder, e.g. "did"
11
+ */
12
+ name: string;
13
+ required: boolean;
14
+ }
15
+
16
+ /**
17
+ * A single command entry in the registry
18
+ */
19
+ export interface CommandDescriptor {
20
+ args: CommandArg[];
21
+ /**
22
+ * Group label for display (first segment, title-cased)
23
+ */
24
+ group: string;
25
+ /**
26
+ * Executes the command.
27
+ * @param args Positional arg values keyed by CommandArg.name
28
+ * @param opts Option values keyed by long flag name (camelCase)
29
+ * @param config Resolved CLI configuration
30
+ * @returns The data to display (passed to formatOutput)
31
+ */
32
+ handler: (
33
+ args: Record<string, string>,
34
+ opts: Record<string, string>,
35
+ config: CliConfig,
36
+ ) => Promise<unknown>;
37
+ /**
38
+ * Unique dotted id, e.g. "did-registry.identifiers.list"
39
+ */
40
+ id: string;
41
+ options: CommandOption[];
42
+ /**
43
+ * Space-separated command path, e.g. ["did-registry", "identifiers", "list"]
44
+ */
45
+ segments: string[];
46
+ /**
47
+ * Short human-readable summary shown as a tip in help / palette
48
+ */
49
+ summary: string;
50
+ }
51
+
52
+ /**
53
+ * An optional flag / option for a command
54
+ */
55
+ interface CommandOption {
56
+ defaultValue?: string;
57
+ description: string;
58
+ /**
59
+ * Commander flags string, e.g. "--page-after <cursor>"
60
+ */
61
+ flags: string;
62
+ }
63
+
64
+ /**
65
+ * Full path string for a descriptor, e.g. "did-registry identifiers list"
66
+ */
67
+ export function commandPath(cmd: CommandDescriptor): string {
68
+ return cmd.segments.join(" ");
69
+ }
70
+
71
+ /**
72
+ * Fuzzy-match: returns true when all words in `query` appear (as
73
+ * substrings, case-insensitive) in the command's segment path or summary.
74
+ */
75
+ export function matchesQuery(cmd: CommandDescriptor, query: string): boolean {
76
+ if (query.trim() === "") return true;
77
+ const haystack = `${commandPath(cmd)} ${cmd.summary}`.toLowerCase();
78
+ const words = query.trim().toLowerCase().split(/\s+/);
79
+ return words.every((word) => haystack.includes(word));
80
+ }
81
+
82
+ /**
83
+ * Ranks a matching command by how many query words appear in the command
84
+ * path (title) vs only in the summary description.
85
+ *
86
+ * - 2: every word found in the command path → title match
87
+ * - 1: some words found in the command path → partial title match
88
+ * - 0: no words found in the path → summary-only match
89
+ *
90
+ * Use as a sort key (descending) after filtering with matchesQuery so that
91
+ * path matches always appear before description-only matches.
92
+ */
93
+ export function queryScore(cmd: CommandDescriptor, query: string): number {
94
+ if (query.trim() === "") return 0;
95
+ const words = query.trim().toLowerCase().split(/\s+/);
96
+ const path = commandPath(cmd).toLowerCase();
97
+ const pathHits = words.filter((word) => path.includes(word)).length;
98
+ if (pathHits === words.length) return 2;
99
+ return pathHits > 0 ? 1 : 0;
100
+ }
101
+
102
+ // ---------------------------------------------------------------------------
103
+ // Command handlers are registered from individual command files.
104
+ // The registry is assembled at the bottom of this file.
105
+ // ---------------------------------------------------------------------------
106
+
107
+ import { authCommands } from "./auth.ts";
108
+ import { configCommands } from "./config-cmd.ts";
109
+ import { contractsRegistryCommands } from "./contracts-registry.ts";
110
+ import { didRegistryCommands } from "./did-registry.ts";
111
+ import { faucetCommands } from "./faucet.ts";
112
+ import { healthCommands } from "./health.ts";
113
+ import { issuersRegistryCommands } from "./issuers-registry.ts";
114
+ import { ledgerCommands } from "./ledger.ts";
115
+ import { onboardingCommands } from "./onboarding.ts";
116
+ import { openapiCommands } from "./openapi.ts";
117
+ import { policiesRegistryCommands } from "./policies-registry.ts";
118
+ import { schemasRegistryCommands } from "./schemas-registry.ts";
119
+ import { timestampCommands } from "./timestamp.ts";
120
+ import { trackAndTraceCommands } from "./track-and-trace.ts";
121
+ import { walletCommands } from "./wallet.ts";
122
+
123
+ /**
124
+ * The full ordered list of CLI commands
125
+ */
126
+ export const COMMANDS: CommandDescriptor[] = [
127
+ ...healthCommands,
128
+ ...openapiCommands,
129
+ ...configCommands,
130
+ ...walletCommands,
131
+ ...faucetCommands,
132
+ ...onboardingCommands,
133
+ ...authCommands,
134
+ ...ledgerCommands,
135
+ ...contractsRegistryCommands,
136
+ ...didRegistryCommands,
137
+ ...issuersRegistryCommands,
138
+ ...policiesRegistryCommands,
139
+ ...schemasRegistryCommands,
140
+ ...timestampCommands,
141
+ ...trackAndTraceCommands,
142
+ {
143
+ args: [],
144
+ group: "exit",
145
+ /* v8 ignore next */
146
+ handler: () => process.exit(0),
147
+ id: "exit",
148
+ options: [],
149
+ segments: ["exit"],
150
+ summary: "Quit the EBSI CLI",
151
+ },
152
+ ];
@@ -0,0 +1,255 @@
1
+ import type { CommandDescriptor } from "./registry.ts";
2
+
3
+ import { getClient, unwrap } from "../api/fetch.ts";
4
+ import { q } from "../api/params.ts";
5
+ import { contractAddressOptionFor } from "../ledger/registries.ts";
6
+ import { requiredArg } from "./shared/args.ts";
7
+
8
+ const PAGINATION_OPTIONS = [
9
+ {
10
+ description: "Cursor for pagination (page[after])",
11
+ flags: "--page-after <cursor>",
12
+ },
13
+ {
14
+ description: "Maximum number of items per page (page[size])",
15
+ flags: "--page-size <n>",
16
+ },
17
+ ];
18
+
19
+ const { option: CONTRACT_ADDRESS_OPTION, resolve: contractAddress } =
20
+ contractAddressOptionFor("schemas-registry");
21
+
22
+ export const schemasRegistryCommands: CommandDescriptor[] = [
23
+ {
24
+ args: [],
25
+ group: "Schemas Registry",
26
+ async handler(_args, opts, config) {
27
+ const client = getClient(config);
28
+ const result = await client.GET("/schemas-registry/schemas", {
29
+ params: {
30
+ query: q({
31
+ contractAddress: contractAddress(opts),
32
+ "page[after]": opts["pageAfter"]
33
+ ? Number(opts["pageAfter"])
34
+ : undefined,
35
+ "page[size]": opts["pageSize"]
36
+ ? Number(opts["pageSize"])
37
+ : undefined,
38
+ }),
39
+ },
40
+ });
41
+ return unwrap(result);
42
+ },
43
+ id: "schemas-registry.schemas.list",
44
+ options: [...PAGINATION_OPTIONS, CONTRACT_ADDRESS_OPTION],
45
+ segments: ["schemas-registry", "schemas", "list"],
46
+ summary: "List all trusted schemas registered on the EBSI ledger",
47
+ },
48
+
49
+ {
50
+ args: [
51
+ {
52
+ description: "Schema ID",
53
+ example: "0x1234...",
54
+ name: "schemaId",
55
+ required: true,
56
+ },
57
+ ],
58
+ group: "Schemas Registry",
59
+ async handler(args, opts, config) {
60
+ const client = getClient(config);
61
+ const result = await client.GET("/schemas-registry/schemas/{schemaId}", {
62
+ params: {
63
+ path: { schemaId: requiredArg(args, "schemaId") },
64
+ query: q({ contractAddress: contractAddress(opts) }),
65
+ },
66
+ });
67
+ return unwrap(result);
68
+ },
69
+ id: "schemas-registry.schemas.get",
70
+ options: [CONTRACT_ADDRESS_OPTION],
71
+ segments: ["schemas-registry", "schemas", "get"],
72
+ summary: "Get a schema by its ID",
73
+ },
74
+
75
+ {
76
+ args: [
77
+ {
78
+ description: "Schema ID",
79
+ example: "0x1234...",
80
+ name: "schemaId",
81
+ required: true,
82
+ },
83
+ ],
84
+ group: "Schemas Registry",
85
+ async handler(args, opts, config) {
86
+ const client = getClient(config);
87
+ const result = await client.GET(
88
+ "/schemas-registry/schemas/{schemaId}/revisions",
89
+ {
90
+ params: {
91
+ path: { schemaId: requiredArg(args, "schemaId") },
92
+ query: q({
93
+ contractAddress: contractAddress(opts),
94
+ "page[after]": opts["pageAfter"]
95
+ ? Number(opts["pageAfter"])
96
+ : undefined,
97
+ "page[size]": opts["pageSize"]
98
+ ? Number(opts["pageSize"])
99
+ : undefined,
100
+ }),
101
+ },
102
+ },
103
+ );
104
+ return unwrap(result);
105
+ },
106
+ id: "schemas-registry.schemas.revisions",
107
+ options: [...PAGINATION_OPTIONS, CONTRACT_ADDRESS_OPTION],
108
+ segments: ["schemas-registry", "schemas", "revisions"],
109
+ summary: "List all revisions of a schema",
110
+ },
111
+
112
+ {
113
+ args: [
114
+ {
115
+ description: "Schema ID",
116
+ example: "0x1234...",
117
+ name: "schemaId",
118
+ required: true,
119
+ },
120
+ {
121
+ description: "Schema revision ID",
122
+ example: "0x5678...",
123
+ name: "schemaRevisionId",
124
+ required: true,
125
+ },
126
+ ],
127
+ group: "Schemas Registry",
128
+ async handler(args, opts, config) {
129
+ const client = getClient(config);
130
+ const result = await client.GET(
131
+ "/schemas-registry/schemas/{schemaId}/revisions/{schemaRevisionId}",
132
+ {
133
+ params: {
134
+ path: {
135
+ schemaId: requiredArg(args, "schemaId"),
136
+ schemaRevisionId: requiredArg(args, "schemaRevisionId"),
137
+ },
138
+ query: q({ contractAddress: contractAddress(opts) }),
139
+ },
140
+ },
141
+ );
142
+ return unwrap(result);
143
+ },
144
+ id: "schemas-registry.schemas.revision",
145
+ options: [CONTRACT_ADDRESS_OPTION],
146
+ segments: ["schemas-registry", "schemas", "revision"],
147
+ summary: "Get a specific revision of a schema",
148
+ },
149
+
150
+ {
151
+ args: [
152
+ {
153
+ description: "Schema ID",
154
+ example: "0x1234...",
155
+ name: "schemaId",
156
+ required: true,
157
+ },
158
+ {
159
+ description: "Schema revision ID",
160
+ example: "0x5678...",
161
+ name: "schemaRevisionId",
162
+ required: true,
163
+ },
164
+ ],
165
+ group: "Schemas Registry",
166
+ async handler(args, opts, config) {
167
+ const client = getClient(config);
168
+ const result = await client.GET(
169
+ "/schemas-registry/schemas/{schemaId}/revisions/{schemaRevisionId}/metadata",
170
+ {
171
+ params: {
172
+ path: {
173
+ schemaId: requiredArg(args, "schemaId"),
174
+ schemaRevisionId: requiredArg(args, "schemaRevisionId"),
175
+ },
176
+ query: q({
177
+ contractAddress: contractAddress(opts),
178
+ "page[after]": opts["pageAfter"]
179
+ ? Number(opts["pageAfter"])
180
+ : undefined,
181
+ "page[size]": opts["pageSize"]
182
+ ? Number(opts["pageSize"])
183
+ : undefined,
184
+ }),
185
+ },
186
+ },
187
+ );
188
+ return unwrap(result);
189
+ },
190
+ id: "schemas-registry.schemas.metadata.list",
191
+ options: [...PAGINATION_OPTIONS, CONTRACT_ADDRESS_OPTION],
192
+ segments: ["schemas-registry", "schemas", "metadata", "list"],
193
+ summary: "List metadata for a schema revision",
194
+ },
195
+
196
+ {
197
+ args: [
198
+ {
199
+ description: "Schema ID",
200
+ example: "0x1234...",
201
+ name: "schemaId",
202
+ required: true,
203
+ },
204
+ {
205
+ description: "Schema revision ID",
206
+ example: "0x5678...",
207
+ name: "schemaRevisionId",
208
+ required: true,
209
+ },
210
+ {
211
+ description: "Schema revision metadata ID",
212
+ example:
213
+ "0x44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
214
+ name: "metadataId",
215
+ required: true,
216
+ },
217
+ ],
218
+ group: "Schemas Registry",
219
+ async handler(args, opts, config) {
220
+ const client = getClient(config);
221
+ const result = await client.GET(
222
+ "/schemas-registry/schemas/{schemaId}/revisions/{schemaRevisionId}/metadata/{metadataId}",
223
+ {
224
+ params: {
225
+ path: {
226
+ metadataId: requiredArg(args, "metadataId"),
227
+ schemaId: requiredArg(args, "schemaId"),
228
+ schemaRevisionId: requiredArg(args, "schemaRevisionId"),
229
+ },
230
+ query: q({ contractAddress: contractAddress(opts) }),
231
+ },
232
+ },
233
+ );
234
+ return unwrap(result);
235
+ },
236
+ id: "schemas-registry.schemas.metadata.get",
237
+ options: [CONTRACT_ADDRESS_OPTION],
238
+ segments: ["schemas-registry", "schemas", "metadata", "get"],
239
+ summary: "Get metadata for a schema revision",
240
+ },
241
+
242
+ {
243
+ args: [],
244
+ group: "Schemas Registry",
245
+ async handler(_args, _opts, config) {
246
+ const client = getClient(config);
247
+ const result = await client.GET("/schemas-registry/abi");
248
+ return unwrap(result);
249
+ },
250
+ id: "schemas-registry.abi",
251
+ options: [],
252
+ segments: ["schemas-registry", "abi"],
253
+ summary: "Get the ABI of the Schemas Registry smart contract",
254
+ },
255
+ ];
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Reads a positional argument that Commander guarantees is present (required
3
+ * args are validated before the handler runs), without needing a per-call-site
4
+ * `v8 ignore` comment — `noUncheckedIndexedAccess` widens every indexed read
5
+ * to `string | undefined` regardless of that guarantee.
6
+ */
7
+ export function requiredArg(
8
+ args: Record<string, string>,
9
+ name: string,
10
+ fallback = "",
11
+ ): string {
12
+ /* v8 ignore next -- required positional guaranteed by commander */
13
+ return args[name] ?? fallback;
14
+ }
@@ -0,0 +1,85 @@
1
+ import type { CliConfig } from "../../config/config.ts";
2
+ import type { KeyAlgorithm, WalletDetails } from "../../crypto/wallet.ts";
3
+
4
+ import { SIGN_ALGS } from "../../config/config.ts";
5
+ import { deriveWallet } from "../../crypto/wallet.ts";
6
+
7
+ /**
8
+ * Resolves `--sign-alg` (flag → config, which is already flag/env/persisted
9
+ * resolved and validated by `resolveConfig`). Re-validates here too, since a
10
+ * command-local `--sign-alg` flag value hasn't gone through that validation.
11
+ */
12
+ export function resolveSignAlg(
13
+ opts: Record<string, string>,
14
+ config: Pick<CliConfig, "signAlg">,
15
+ ): KeyAlgorithm | undefined {
16
+ const raw = opts["signAlg"] ?? config.signAlg;
17
+ if (raw === undefined) return undefined;
18
+ const normalized = raw.toUpperCase();
19
+ if (!SIGN_ALGS.includes(normalized as KeyAlgorithm)) {
20
+ throw new Error(
21
+ `Invalid --sign-alg "${raw}". Valid values: ${SIGN_ALGS.join(", ")}`,
22
+ );
23
+ }
24
+ return normalized as KeyAlgorithm;
25
+ }
26
+
27
+ /**
28
+ * Resolves the currently-configured wallet from `--es256k-key`/`--es256-key`/
29
+ * `--sign-alg`/`--did` (or their env/persisted-config fallbacks, already
30
+ * folded into `config` by `resolveConfig`), throwing the same descriptive
31
+ * error every command that needs a wallet uses when the mandatory secp256k1
32
+ * key is missing.
33
+ */
34
+ export async function resolveWallet(
35
+ opts: Record<string, string>,
36
+ config: Pick<
37
+ CliConfig,
38
+ "did" | "es256kPrivateKey" | "es256PrivateKey" | "signAlg"
39
+ >,
40
+ ): Promise<WalletDetails> {
41
+ const es256kPrivateKey = opts["es256kKey"] ?? config.es256kPrivateKey;
42
+ if (!es256kPrivateKey) {
43
+ throw new Error(
44
+ "No secp256k1 private key found. Provide --es256k-key <hex>, set " +
45
+ "EBSI_ES256K_PRIVATE_KEY, or run `ebsi config set es256kPrivateKey <hex>`.",
46
+ );
47
+ }
48
+ const es256PrivateKey = opts["es256Key"] ?? config.es256PrivateKey;
49
+ const signAlg = resolveSignAlg(opts, config);
50
+ const overrideDid = opts["did"] ?? config.did;
51
+
52
+ return deriveWallet(
53
+ {
54
+ es256kPrivateKey,
55
+ ...(es256PrivateKey !== undefined && { es256PrivateKey }),
56
+ ...(signAlg !== undefined && { signAlg }),
57
+ },
58
+ overrideDid,
59
+ );
60
+ }
61
+
62
+ /**
63
+ * The `--es256k-key`/`--es256-key`/`--sign-alg` options shared by every
64
+ * command that resolves a wallet, for `--help` text on that command (mirrors
65
+ * the global flags of the same name).
66
+ */
67
+ export const WALLET_KEY_OPTIONS = [
68
+ {
69
+ description:
70
+ "secp256k1 private key (0x-prefixed hex) — overrides config/env.",
71
+ flags: "--es256k-key <hex>",
72
+ },
73
+ {
74
+ description:
75
+ "P-256 private key (hex), optional — overrides config/env. " +
76
+ "Enables --sign-alg ES256.",
77
+ flags: "--es256-key <hex>",
78
+ },
79
+ {
80
+ description:
81
+ 'Which key signs VCs/VPs when both are configured: "ES256" or "ES256K" ' +
82
+ "— overrides config/env. Required when both keys are configured.",
83
+ flags: "--sign-alg <alg>",
84
+ },
85
+ ];