@cef-ebsi/cli 1.3.2 → 1.5.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 (202) hide show
  1. package/bin/cli.js +1 -1
  2. package/dist/abi/pilot/DidRegistry.js +568 -0
  3. package/dist/abi/pilot/DidRegistry.js.map +1 -0
  4. package/dist/abi/{test/TirV4.js → pilot/Ptr.js} +255 -299
  5. package/dist/abi/pilot/Ptr.js.map +1 -0
  6. package/dist/abi/pilot/SchemaSCRegistry.js +264 -0
  7. package/dist/abi/pilot/SchemaSCRegistry.js.map +1 -0
  8. package/dist/abi/{test/TprV3.js → pilot/Tcr.js} +269 -261
  9. package/dist/abi/pilot/Tcr.js.map +1 -0
  10. package/dist/abi/pilot/Timestamp.js +658 -0
  11. package/dist/abi/pilot/Timestamp.js.map +1 -0
  12. package/dist/abi/pilot/Tir.js +428 -0
  13. package/dist/abi/pilot/Tir.js.map +1 -0
  14. package/dist/abi/pilot/TnT.js +842 -0
  15. package/dist/abi/pilot/TnT.js.map +1 -0
  16. package/dist/abi/pilot/Tpr.js +492 -0
  17. package/dist/abi/pilot/Tpr.js.map +1 -0
  18. package/dist/abi/test/DidRegistry.js +144 -658
  19. package/dist/abi/test/DidRegistry.js.map +1 -1
  20. package/dist/abi/{pilot/TirV4.js → test/Ptr.js} +255 -299
  21. package/dist/abi/test/Ptr.js.map +1 -0
  22. package/dist/abi/test/SchemaSCRegistry.js +122 -795
  23. package/dist/abi/test/SchemaSCRegistry.js.map +1 -1
  24. package/dist/abi/{pilot/TprV3.js → test/Tcr.js} +269 -261
  25. package/dist/abi/test/Tcr.js.map +1 -0
  26. package/dist/abi/test/Timestamp.js +239 -673
  27. package/dist/abi/test/Timestamp.js.map +1 -1
  28. package/dist/abi/test/Tir.js +167 -636
  29. package/dist/abi/test/Tir.js.map +1 -1
  30. package/dist/abi/test/TnT.js +842 -0
  31. package/dist/abi/test/TnT.js.map +1 -0
  32. package/dist/abi/test/Tpr.js +166 -942
  33. package/dist/abi/test/Tpr.js.map +1 -1
  34. package/dist/app.js +447 -443
  35. package/dist/app.js.map +1 -1
  36. package/dist/buildParam/{didV3.js → didr.js} +210 -204
  37. package/dist/buildParam/didr.js.map +1 -0
  38. package/dist/buildParam/index.js +42 -48
  39. package/dist/buildParam/index.js.map +1 -1
  40. package/dist/buildParam/ptr.js +80 -0
  41. package/dist/buildParam/ptr.js.map +1 -0
  42. package/dist/buildParam/tcr.js +36 -0
  43. package/dist/buildParam/tcr.js.map +1 -0
  44. package/dist/buildParam/{timestampV3.js → timestamp.js} +179 -136
  45. package/dist/buildParam/timestamp.js.map +1 -0
  46. package/dist/buildParam/{tirV3.js → tir.js} +67 -59
  47. package/dist/buildParam/tir.js.map +1 -0
  48. package/dist/buildParam/{tntV1.js → tnt.js} +90 -61
  49. package/dist/buildParam/tnt.js.map +1 -0
  50. package/dist/buildParam/{tprV2.js → tpr.js} +44 -33
  51. package/dist/buildParam/tpr.js.map +1 -0
  52. package/dist/buildParam/{tsrV2.js → tsr.js} +45 -40
  53. package/dist/buildParam/tsr.js.map +1 -0
  54. package/dist/cli.js +1 -0
  55. package/dist/cli.js.map +1 -1
  56. package/dist/commands/{authorisation-v5.js → authorisation.js} +95 -72
  57. package/dist/commands/authorisation.js.map +1 -0
  58. package/dist/commands/compute.js +429 -389
  59. package/dist/commands/compute.js.map +1 -1
  60. package/dist/commands/{conformance-v3.js → conformance.js} +236 -248
  61. package/dist/commands/conformance.js.map +1 -0
  62. package/dist/commands/hardwarewallet.js +5 -5
  63. package/dist/commands/hardwarewallet.js.map +1 -1
  64. package/dist/commands/index.js +4 -4
  65. package/dist/commands/index.js.map +1 -1
  66. package/dist/commands/{ledger-v4.js → ledger.js} +203 -127
  67. package/dist/commands/ledger.js.map +1 -0
  68. package/dist/commands/ptr.js +56 -0
  69. package/dist/commands/ptr.js.map +1 -0
  70. package/dist/commands/tcr.js +51 -0
  71. package/dist/commands/tcr.js.map +1 -0
  72. package/dist/commands/tnl.js +10 -9
  73. package/dist/commands/tnl.js.map +1 -1
  74. package/dist/commands/tsr.js +46 -0
  75. package/dist/commands/tsr.js.map +1 -0
  76. package/dist/commands/view.js +8 -8
  77. package/dist/commands/view.js.map +1 -1
  78. package/dist/config.js +311 -279
  79. package/dist/config.js.map +1 -1
  80. package/dist/index.js +3 -3
  81. package/dist/index.js.map +1 -1
  82. package/dist/interfaces/index.js +1 -1
  83. package/dist/interfaces/index.js.map +1 -1
  84. package/dist/programs/migrateDid.js +33 -33
  85. package/dist/programs/migrateDid.js.map +1 -1
  86. package/dist/programs/migrateDids.js +39 -42
  87. package/dist/programs/migrateDids.js.map +1 -1
  88. package/dist/programs/migrateTsr.js +153 -113
  89. package/dist/programs/migrateTsr.js.map +1 -1
  90. package/dist/scripts/accreditAndAuthorize/conformance/step1 +1 -1
  91. package/dist/scripts/accreditAndAuthorize/test/step1 +1 -1
  92. package/dist/scripts/accreditTI +1 -1
  93. package/dist/scripts/assets/CTRevocableCredential.json +1 -1
  94. package/dist/scripts/assets/CredentialToAttestVerifiableAuthorisationForTrustChain.json +2 -2
  95. package/dist/scripts/assets/TrustedNodesList.json +1 -1
  96. package/dist/scripts/assets/VerifiableAccreditationToAccredit.json +2 -2
  97. package/dist/scripts/assets/VerifiableAccreditationToAttest.json +2 -2
  98. package/dist/scripts/assets/VerifiableAuthorisationForTrustChain.json +1 -1
  99. package/dist/scripts/assets/VerifiableAuthorisationToInvoke.json +24 -0
  100. package/dist/scripts/assets/VerifiableAuthorisationToOnboard.json +1 -1
  101. package/dist/scripts/bootstrap/1-populateTPR +18 -15
  102. package/dist/scripts/bootstrap/6-setupConformanceIssuer +1 -1
  103. package/dist/scripts/issueVcInvoke +10 -0
  104. package/dist/scripts/issueVcOnboard +1 -1
  105. package/dist/scripts/issueVcRootTAO +1 -1
  106. package/dist/scripts/issueVcTAO +2 -2
  107. package/dist/scripts/issueVcTI +2 -2
  108. package/dist/scripts/issueVcTnl +1 -1
  109. package/dist/scripts/issue_CTRevocableCredential +1 -1
  110. package/dist/scripts/issue_SelfAttestationSupportOffice +2 -2
  111. package/dist/scripts/issue_VerifiableAccreditationToAccredit +2 -2
  112. package/dist/scripts/issue_VerifiableAccreditationToAttest +2 -2
  113. package/dist/scripts/issue_VerifiableAuthorisationForTrustChain +1 -1
  114. package/dist/scripts/issue_VerifiableAuthorisationToOnboard +1 -1
  115. package/dist/scripts/updateVcRootTAO +1 -1
  116. package/dist/scripts/updateVcTAO +2 -2
  117. package/dist/scripts/updateVcTI +2 -2
  118. package/dist/scripts/{wctv3 → wct}/accreditAndAuthorize +1 -1
  119. package/dist/tsconfig.build.tsbuildinfo +1 -0
  120. package/dist/utils/Client.js +81 -68
  121. package/dist/utils/Client.js.map +1 -1
  122. package/dist/utils/HardwareWallet.js +169 -165
  123. package/dist/utils/HardwareWallet.js.map +1 -1
  124. package/dist/utils/http.js +24 -27
  125. package/dist/utils/http.js.map +1 -1
  126. package/dist/utils/index.js +3 -3
  127. package/dist/utils/index.js.map +1 -1
  128. package/dist/utils/jsonrpc.js +14 -14
  129. package/dist/utils/jsonrpc.js.map +1 -1
  130. package/dist/utils/print.js +19 -19
  131. package/dist/utils/print.js.map +1 -1
  132. package/dist/utils/utils.js +180 -173
  133. package/dist/utils/utils.js.map +1 -1
  134. package/package.json +70 -46
  135. package/dist/abi/pilot/DidRegistryV3.js +0 -1082
  136. package/dist/abi/pilot/DidRegistryV3.js.map +0 -1
  137. package/dist/abi/pilot/DidRegistryV4.js +0 -942
  138. package/dist/abi/pilot/DidRegistryV4.js.map +0 -1
  139. package/dist/abi/pilot/SchemaSCRegistryV2.js +0 -474
  140. package/dist/abi/pilot/SchemaSCRegistryV2.js.map +0 -1
  141. package/dist/abi/pilot/TimestampV2.js +0 -1128
  142. package/dist/abi/pilot/TimestampV2.js.map +0 -1
  143. package/dist/abi/pilot/TimestampV3.js +0 -995
  144. package/dist/abi/pilot/TimestampV3.js.map +0 -1
  145. package/dist/abi/pilot/TirV3.js +0 -496
  146. package/dist/abi/pilot/TirV3.js.map +0 -1
  147. package/dist/abi/pilot/TirV4.js.map +0 -1
  148. package/dist/abi/pilot/TnTV1.js +0 -1375
  149. package/dist/abi/pilot/TnTV1.js.map +0 -1
  150. package/dist/abi/pilot/TprV2.js +0 -889
  151. package/dist/abi/pilot/TprV2.js.map +0 -1
  152. package/dist/abi/pilot/TprV3.js.map +0 -1
  153. package/dist/abi/pilot/TsrV3.js +0 -571
  154. package/dist/abi/pilot/TsrV3.js.map +0 -1
  155. package/dist/abi/test/DidRegistryV3.js +0 -1089
  156. package/dist/abi/test/DidRegistryV3.js.map +0 -1
  157. package/dist/abi/test/DidRegistryV4.js +0 -960
  158. package/dist/abi/test/DidRegistryV4.js.map +0 -1
  159. package/dist/abi/test/SchemaSCRegistryV2.js +0 -474
  160. package/dist/abi/test/SchemaSCRegistryV2.js.map +0 -1
  161. package/dist/abi/test/TimestampV2.js +0 -1128
  162. package/dist/abi/test/TimestampV2.js.map +0 -1
  163. package/dist/abi/test/TimestampV3.js +0 -995
  164. package/dist/abi/test/TimestampV3.js.map +0 -1
  165. package/dist/abi/test/TirV3.js +0 -496
  166. package/dist/abi/test/TirV3.js.map +0 -1
  167. package/dist/abi/test/TirV4.js.map +0 -1
  168. package/dist/abi/test/TnTV1.js +0 -1375
  169. package/dist/abi/test/TnTV1.js.map +0 -1
  170. package/dist/abi/test/TprV2.js +0 -889
  171. package/dist/abi/test/TprV2.js.map +0 -1
  172. package/dist/abi/test/TprV3.js.map +0 -1
  173. package/dist/abi/test/TsrV3.js +0 -571
  174. package/dist/abi/test/TsrV3.js.map +0 -1
  175. package/dist/buildParam/didV3.js.map +0 -1
  176. package/dist/buildParam/didV4.js +0 -326
  177. package/dist/buildParam/didV4.js.map +0 -1
  178. package/dist/buildParam/timestampV2.js +0 -317
  179. package/dist/buildParam/timestampV2.js.map +0 -1
  180. package/dist/buildParam/timestampV3.js.map +0 -1
  181. package/dist/buildParam/tirV3.js.map +0 -1
  182. package/dist/buildParam/tirV4.js +0 -119
  183. package/dist/buildParam/tirV4.js.map +0 -1
  184. package/dist/buildParam/tntV1.js.map +0 -1
  185. package/dist/buildParam/tntV2.js +0 -185
  186. package/dist/buildParam/tntV2.js.map +0 -1
  187. package/dist/buildParam/tprV2.js.map +0 -1
  188. package/dist/buildParam/tprV3.js +0 -82
  189. package/dist/buildParam/tprV3.js.map +0 -1
  190. package/dist/buildParam/tsrV2.js.map +0 -1
  191. package/dist/buildParam/tsrV3.js +0 -110
  192. package/dist/buildParam/tsrV3.js.map +0 -1
  193. package/dist/commands/authorisation-v4.js +0 -119
  194. package/dist/commands/authorisation-v4.js.map +0 -1
  195. package/dist/commands/authorisation-v5.js.map +0 -1
  196. package/dist/commands/conformance-v3.js.map +0 -1
  197. package/dist/commands/ledger-v4.js.map +0 -1
  198. package/dist/tsconfig.tsbuildinfo +0 -1
  199. /package/dist/scripts/{wctv3 → wct}/holderWallet +0 -0
  200. /package/dist/scripts/{wctv3 → wct}/issueToHolder +0 -0
  201. /package/dist/scripts/{wctv3 → wct}/pda1 +0 -0
  202. /package/dist/scripts/{wctv3 → wct}/verifier +0 -0
@@ -1,8 +1,38 @@
1
+ import Joi from "joi";
1
2
  import { randomUUID } from "node:crypto";
2
3
  import { URLSearchParams } from "node:url";
3
- import Joi from "joi";
4
4
  import { httpCall } from "../utils/index.js";
5
5
  import { compute } from "./compute.js";
6
+ export async function authorisation(method, inputs, context) {
7
+ switch (method) {
8
+ case "auth": {
9
+ return authorisationAuth(inputs, context);
10
+ }
11
+ case "get": {
12
+ return authorisationGet(inputs, context);
13
+ }
14
+ case "token": {
15
+ return authorisationToken(inputs, context);
16
+ }
17
+ default: {
18
+ throw new Error(`Invalid method '${method}'`);
19
+ }
20
+ }
21
+ }
22
+ export async function authorisationAuth(inputs, context) {
23
+ const [definitionId, inputAlg, inputVc] = inputs;
24
+ const alg = inputAlg || "ES256";
25
+ const vc = inputVc ?? [];
26
+ const vcString = typeof vc === "string" ? vc : JSON.stringify(vc);
27
+ Joi.assert(alg, Joi.string().valid("ES256K", "ES256", "EdDSA", "RS256"));
28
+ console.log("==> authorisation get /.well-known/openid-configuration");
29
+ const openIdConfig = (await authorisationGet(["/.well-known/openid-configuration"], context));
30
+ const payloadJwt = { aud: openIdConfig.issuer };
31
+ console.log(`==> compute createVpJwt ${vcString} {} ${JSON.stringify(payloadJwt)} ${alg}`);
32
+ const vpJwt = (await compute("createVpJwt", [vc, {}, payloadJwt, alg], context));
33
+ console.log(`==> authorisation token ${definitionId} ${vpJwt}`);
34
+ return authorisationToken([definitionId, vpJwt], context);
35
+ }
6
36
  export async function authorisationGet(inputs, context) {
7
37
  const apiUrl = context.config.api.authorisation.url;
8
38
  const response = await httpCall.get(`${apiUrl}${inputs.join("")}`, context.httpOpts);
@@ -11,13 +41,14 @@ export async function authorisationGet(inputs, context) {
11
41
  export async function authorisationToken(inputs, context) {
12
42
  const apiUrl = context.config.api.authorisation.url;
13
43
  const [definitionId, vpJwt] = inputs;
14
- Joi.assert(definitionId, Joi.string().valid("didr_invite_presentation", "didr_write_presentation", "tir_invite_presentation", "tir_write_presentation", "timestamp_write_presentation", "tnt_authorise_presentation", "tnt_create_presentation", "tnt_write_presentation", "tpr_write_presentation", "tsr_write_presentation"));
44
+ Joi.assert(definitionId, Joi.string().valid("didr_invite_presentation", "didr_write_presentation", "ledger_invoke_presentation", "tir_invite_presentation", "tir_write_presentation", "timestamp_write_presentation", "tnt_authorise_presentation", "tnt_create_presentation", "tnt_write_presentation", "tpr_write_presentation", "tsr_write_presentation"));
15
45
  const scopeByDefinition = {
16
46
  didr_invite_presentation: "openid didr_invite",
17
47
  didr_write_presentation: "openid didr_write",
48
+ ledger_invoke_presentation: "openid ledger_invoke",
49
+ timestamp_write_presentation: "openid timestamp_write",
18
50
  tir_invite_presentation: "openid tir_invite",
19
51
  tir_write_presentation: "openid tir_write",
20
- timestamp_write_presentation: "openid timestamp_write",
21
52
  tnt_authorise_presentation: "openid tnt_authorise",
22
53
  tnt_create_presentation: "openid tnt_create",
23
54
  tnt_write_presentation: "openid tnt_write",
@@ -25,95 +56,87 @@ export async function authorisationToken(inputs, context) {
25
56
  tsr_write_presentation: "openid tsr_write",
26
57
  };
27
58
  let descriptorMap = [];
28
- if (definitionId === "didr_invite_presentation") {
29
- descriptorMap = [
30
- {
31
- id: "didr_invite_credential",
32
- format: "jwt_vp",
33
- path: "$",
34
- path_nested: {
59
+ switch (definitionId) {
60
+ case "didr_invite_presentation": {
61
+ descriptorMap = [
62
+ {
63
+ format: "jwt_vp",
35
64
  id: "didr_invite_credential",
36
- format: "jwt_vc",
37
- path: "$.vp.verifiableCredential[0]",
65
+ path: "$",
66
+ path_nested: {
67
+ format: "jwt_vc",
68
+ id: "didr_invite_credential",
69
+ path: "$.vp.verifiableCredential[0]",
70
+ },
38
71
  },
39
- },
40
- ];
41
- }
42
- else if (definitionId === "tir_invite_presentation") {
43
- descriptorMap = [
44
- {
45
- id: "tir_invite_credential",
46
- format: "jwt_vp",
47
- path: "$",
48
- path_nested: {
72
+ ];
73
+ break;
74
+ }
75
+ case "ledger_invoke_presentation": {
76
+ descriptorMap = [
77
+ {
78
+ format: "jwt_vp",
79
+ id: "ledger_invoke_credential",
80
+ path: "$",
81
+ path_nested: {
82
+ format: "jwt_vc",
83
+ id: "ledger_invoke_credential",
84
+ path: "$.vp.verifiableCredential[0]",
85
+ },
86
+ },
87
+ ];
88
+ break;
89
+ }
90
+ case "tir_invite_presentation": {
91
+ descriptorMap = [
92
+ {
93
+ format: "jwt_vp",
49
94
  id: "tir_invite_credential",
50
- format: "jwt_vc",
51
- path: "$.vp.verifiableCredential[0]",
95
+ path: "$",
96
+ path_nested: {
97
+ format: "jwt_vc",
98
+ id: "tir_invite_credential",
99
+ path: "$.vp.verifiableCredential[0]",
100
+ },
52
101
  },
53
- },
54
- ];
55
- }
56
- else if (definitionId === "tnt_authorise_presentation") {
57
- descriptorMap = [
58
- {
59
- id: "tnt_authorise_credential",
60
- format: "jwt_vp",
61
- path: "$",
62
- path_nested: {
102
+ ];
103
+ break;
104
+ }
105
+ case "tnt_authorise_presentation": {
106
+ descriptorMap = [
107
+ {
108
+ format: "jwt_vp",
63
109
  id: "tnt_authorise_credential",
64
- format: "jwt_vc",
65
- path: "$.vp.verifiableCredential[0]",
110
+ path: "$",
111
+ path_nested: {
112
+ format: "jwt_vc",
113
+ id: "tnt_authorise_credential",
114
+ path: "$.vp.verifiableCredential[0]",
115
+ },
66
116
  },
67
- },
68
- ];
117
+ ];
118
+ break;
119
+ }
120
+ // No default
69
121
  }
70
122
  const presentationSubmission = {
71
- id: randomUUID(),
72
123
  definition_id: definitionId,
73
124
  descriptor_map: descriptorMap,
125
+ id: randomUUID(),
74
126
  };
75
127
  const httpOpts = {
76
128
  headers: {
77
129
  "Content-Type": "application/x-www-form-urlencoded",
78
- ...(context.httpOpts && context.httpOpts.headers),
130
+ ...context.httpOpts?.headers,
79
131
  },
80
132
  };
81
133
  const response = await httpCall.post(`${apiUrl}/token`, new URLSearchParams({
82
134
  grant_type: "vp_token",
135
+ presentation_submission: JSON.stringify(presentationSubmission),
83
136
  scope: scopeByDefinition[definitionId],
84
137
  vp_token: vpJwt,
85
- presentation_submission: JSON.stringify(presentationSubmission),
86
138
  }).toString(), httpOpts);
87
139
  return response.data;
88
140
  }
89
- export async function authorisationAuth(inputs, context) {
90
- const [definitionId, inputAlg, inputVc] = inputs;
91
- const alg = inputAlg || "ES256";
92
- const vc = inputVc ?? [];
93
- const vcString = typeof vc === "string" ? vc : JSON.stringify(vc);
94
- Joi.assert(alg, Joi.string().valid("ES256K", "ES256", "EdDSA", "RS256"));
95
- console.log("==> authorisation get /.well-known/openid-configuration");
96
- const openIdConfig = (await authorisationGet(["/.well-known/openid-configuration"], context));
97
- const payloadJwt = { aud: openIdConfig.issuer };
98
- console.log(`==> compute createVpJwt ${vcString} {} ${JSON.stringify(payloadJwt)} ${alg}`);
99
- const vpJwt = (await compute("createVpJwt", [vc, {}, payloadJwt, alg], context));
100
- console.log(`==> authorisation token ${definitionId} ${vpJwt}`);
101
- return authorisationToken([definitionId, vpJwt], context);
102
- }
103
- export async function authorisationV5(method, inputs, context) {
104
- switch (method) {
105
- case "get": {
106
- return authorisationGet(inputs, context);
107
- }
108
- case "token": {
109
- return authorisationToken(inputs, context);
110
- }
111
- case "auth": {
112
- return authorisationAuth(inputs, context);
113
- }
114
- default:
115
- throw new Error(`Invalid method '${method}'`);
116
- }
117
- }
118
- export default authorisationV5;
119
- //# sourceMappingURL=authorisation-v5.js.map
141
+ export default authorisation;
142
+ //# sourceMappingURL=authorisation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorisation.js","sourceRoot":"","sources":["../../src/commands/authorisation.ts"],"names":[],"mappings":"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"}