@cef-ebsi/cli 0.0.0-alpha.0 → 0.1.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 (201) hide show
  1. package/dist/abi/pilot/DidRegistry.js +1082 -0
  2. package/dist/abi/pilot/DidRegistry.js.map +1 -0
  3. package/dist/abi/pilot/SchemaSCRegistry.js +973 -0
  4. package/dist/abi/pilot/SchemaSCRegistry.js.map +1 -0
  5. package/dist/abi/pilot/Tar.js +1395 -0
  6. package/dist/abi/pilot/Tar.js.map +1 -0
  7. package/dist/abi/pilot/Timestamp.js +1092 -0
  8. package/dist/abi/pilot/Timestamp.js.map +1 -0
  9. package/dist/abi/pilot/Tir.js +897 -0
  10. package/dist/abi/pilot/Tir.js.map +1 -0
  11. package/dist/abi/pilot/Tpr.js +1268 -0
  12. package/dist/abi/pilot/Tpr.js.map +1 -0
  13. package/dist/abi/test/DidRegistry.js +1082 -0
  14. package/dist/abi/test/DidRegistry.js.map +1 -0
  15. package/dist/abi/test/SchemaSCRegistry.js +973 -0
  16. package/dist/abi/test/SchemaSCRegistry.js.map +1 -0
  17. package/dist/abi/test/Tar.js +1395 -0
  18. package/dist/abi/test/Tar.js.map +1 -0
  19. package/dist/abi/test/Timestamp.js +1092 -0
  20. package/dist/abi/test/Timestamp.js.map +1 -0
  21. package/dist/abi/test/Tir.js +897 -0
  22. package/dist/abi/test/Tir.js.map +1 -0
  23. package/dist/abi/test/Tpr.js +1268 -0
  24. package/dist/abi/test/Tpr.js.map +1 -0
  25. package/dist/app.js +34 -714
  26. package/dist/app.js.map +1 -1
  27. package/dist/buildParam/did.js.map +1 -1
  28. package/dist/buildParam/index.js +0 -23
  29. package/dist/buildParam/index.js.map +1 -1
  30. package/dist/buildParam/tar.js.map +1 -1
  31. package/dist/buildParam/timestamp.js.map +1 -1
  32. package/dist/buildParam/tir.js.map +1 -1
  33. package/dist/buildParam/tsr.js.map +1 -1
  34. package/dist/commands/{authorisation-v4.js → authorisation-v2.js} +11 -91
  35. package/dist/commands/authorisation-v2.js.map +1 -0
  36. package/dist/commands/compute.js +13 -49
  37. package/dist/commands/compute.js.map +1 -1
  38. package/dist/commands/index.js +1 -3
  39. package/dist/commands/index.js.map +1 -1
  40. package/dist/commands/ledger-v3.js +1 -16
  41. package/dist/commands/ledger-v3.js.map +1 -1
  42. package/dist/commands/view.js +1 -1
  43. package/dist/commands/view.js.map +1 -1
  44. package/dist/config.js +14 -422
  45. package/dist/config.js.map +1 -1
  46. package/dist/interfaces/index.js +4 -9
  47. package/dist/interfaces/index.js.map +1 -1
  48. package/dist/interfaces/jsonrpc.interface.js.map +1 -0
  49. package/dist/interfaces/paginated-list.interface.js.map +1 -0
  50. package/dist/interfaces/unsigned-transaction.interface.js.map +1 -0
  51. package/dist/interfaces/utils.interface.js.map +1 -0
  52. package/dist/programs/appRegistration.js +4 -4
  53. package/dist/programs/appRegistration.js.map +1 -1
  54. package/dist/scripts/accreditAndAuthorize/conformance/step1 +35 -0
  55. package/dist/scripts/accreditAndAuthorize/conformance/step2 +18 -0
  56. package/dist/scripts/accreditAndAuthorize/conformance/step3 +9 -0
  57. package/dist/scripts/accreditAndAuthorize/conformance/step4 +27 -0
  58. package/dist/scripts/accreditAndAuthorize/conformance/step5 +13 -0
  59. package/dist/scripts/accreditAndAuthorize/conformance/step6 +14 -0
  60. package/dist/scripts/accreditAndAuthorize/conformance/step7 +7 -0
  61. package/dist/scripts/accreditAndAuthorize/test/step1 +35 -0
  62. package/dist/scripts/accreditAndAuthorize/test/step2 +18 -0
  63. package/dist/scripts/accreditAndAuthorize/test/step3 +9 -0
  64. package/dist/scripts/accreditAndAuthorize/test/step4 +27 -0
  65. package/dist/scripts/accreditAndAuthorize/test/step5 +13 -0
  66. package/dist/scripts/accreditAndAuthorize/test/step6 +14 -0
  67. package/dist/scripts/accreditAndAuthorize/test/step7 +7 -0
  68. package/dist/scripts/accreditTI +21 -0
  69. package/dist/scripts/assets/CTRevocableCredential.json +30 -0
  70. package/dist/scripts/assets/CredentialToAttestVerifiableAuthorisationForTrustChain.json +29 -0
  71. package/dist/scripts/assets/VerifiableAccreditationToAccredit.json +35 -0
  72. package/dist/scripts/assets/VerifiableAccreditationToAttest.json +33 -0
  73. package/dist/scripts/assets/VerifiableAuthorisationForTrustChain.json +22 -0
  74. package/dist/scripts/assets/VerifiableAuthorisationToOnboard.json +24 -0
  75. package/dist/scripts/bootstrap/0a-loadTPROperator +5 -0
  76. package/dist/scripts/bootstrap/0b-loadAdmin +6 -0
  77. package/dist/scripts/bootstrap/1-populateTPR +115 -0
  78. package/dist/scripts/bootstrap/2-populateDID +21 -0
  79. package/dist/scripts/bootstrap/3-populateTAR +92 -0
  80. package/dist/scripts/bootstrap/4-populateTimestamp +10 -0
  81. package/dist/scripts/bootstrap/5-populateTIR +9 -0
  82. package/dist/scripts/bootstrap/6-populateTSR +22 -0
  83. package/dist/scripts/bootstrap/7-setupConformanceIssuer +35 -0
  84. package/dist/scripts/initializeContracts +5 -0
  85. package/dist/scripts/issue_CTRevocableCredential +13 -0
  86. package/dist/scripts/issue_SelfAttestationSupportOffice +11 -0
  87. package/dist/scripts/issue_VerifiableAccreditationToAccredit +12 -0
  88. package/dist/scripts/issue_VerifiableAccreditationToAttest +12 -0
  89. package/dist/scripts/issue_VerifiableAuthorisationForTrustChain +11 -0
  90. package/dist/scripts/issue_VerifiableAuthorisationToOnboard +10 -0
  91. package/dist/scripts/registerDidDocument_ES256K_ES256 +13 -0
  92. package/dist/scripts/wctv3/accreditAndAuthorize +106 -0
  93. package/dist/scripts/wctv3/holderWallet +29 -0
  94. package/dist/scripts/wctv3/issueToHolder +27 -0
  95. package/dist/scripts/wctv3/pda1 +2 -0
  96. package/dist/scripts/wctv3/verifier +7 -0
  97. package/dist/tsconfig.tsbuildinfo +1 -1
  98. package/dist/utils/index.js +0 -3
  99. package/dist/utils/index.js.map +1 -1
  100. package/dist/utils/utils.js +3 -7
  101. package/dist/utils/utils.js.map +1 -1
  102. package/package.json +5 -23
  103. package/dist/abi/pilot/DidRegistry-old.json +0 -2192
  104. package/dist/abi/pilot/DidRegistry.json +0 -1081
  105. package/dist/abi/pilot/DidRegistryV3.json +0 -1081
  106. package/dist/abi/pilot/SchemaSCRegistry.json +0 -972
  107. package/dist/abi/pilot/SchemaSCRegistryV2.json +0 -473
  108. package/dist/abi/pilot/Tar.json +0 -1394
  109. package/dist/abi/pilot/TarV3.json +0 -1107
  110. package/dist/abi/pilot/Timestamp.json +0 -1091
  111. package/dist/abi/pilot/TimestampV2.json +0 -1127
  112. package/dist/abi/pilot/Tir.json +0 -896
  113. package/dist/abi/pilot/TirV3.json +0 -495
  114. package/dist/abi/pilot/Tpr.json +0 -1267
  115. package/dist/abi/pilot/TprV2.json +0 -888
  116. package/dist/abi/test/DidRegistry-old.json +0 -2192
  117. package/dist/abi/test/DidRegistry.json +0 -1081
  118. package/dist/abi/test/DidRegistryV3.json +0 -1088
  119. package/dist/abi/test/SchemaSCRegistry.json +0 -972
  120. package/dist/abi/test/SchemaSCRegistryV2.json +0 -473
  121. package/dist/abi/test/Tar.json +0 -1394
  122. package/dist/abi/test/TarV3.json +0 -1107
  123. package/dist/abi/test/Timestamp.json +0 -1091
  124. package/dist/abi/test/TimestampV2.json +0 -1127
  125. package/dist/abi/test/Tir.json +0 -896
  126. package/dist/abi/test/TirV3.json +0 -495
  127. package/dist/abi/test/Tpr.json +0 -1267
  128. package/dist/abi/test/TprV2.json +0 -888
  129. package/dist/buildParam/didOld.js +0 -275
  130. package/dist/buildParam/didOld.js.map +0 -1
  131. package/dist/buildParam/didV3.js +0 -353
  132. package/dist/buildParam/didV3.js.map +0 -1
  133. package/dist/buildParam/tarV3.js +0 -193
  134. package/dist/buildParam/tarV3.js.map +0 -1
  135. package/dist/buildParam/timestampV2.js +0 -317
  136. package/dist/buildParam/timestampV2.js.map +0 -1
  137. package/dist/buildParam/tirV3.js +0 -104
  138. package/dist/buildParam/tirV3.js.map +0 -1
  139. package/dist/buildParam/tprV2.js +0 -82
  140. package/dist/buildParam/tprV2.js.map +0 -1
  141. package/dist/buildParam/tsrV2.js +0 -110
  142. package/dist/buildParam/tsrV2.js.map +0 -1
  143. package/dist/commands/authorisation-v4.js.map +0 -1
  144. package/dist/commands/conformance-v4.js +0 -767
  145. package/dist/commands/conformance-v4.js.map +0 -1
  146. package/dist/commands/ledger-v4.js +0 -188
  147. package/dist/commands/ledger-v4.js.map +0 -1
  148. package/dist/interfaces/authorisation/authorisation.interface.js +0 -2
  149. package/dist/interfaces/authorisation/authorisation.interface.js.map +0 -1
  150. package/dist/interfaces/authorisation/index.js +0 -2
  151. package/dist/interfaces/authorisation/index.js.map +0 -1
  152. package/dist/interfaces/ledger/besu.interface.js +0 -2
  153. package/dist/interfaces/ledger/besu.interface.js.map +0 -1
  154. package/dist/interfaces/ledger/index.js +0 -2
  155. package/dist/interfaces/ledger/index.js.map +0 -1
  156. package/dist/interfaces/notifications/index.js +0 -2
  157. package/dist/interfaces/notifications/index.js.map +0 -1
  158. package/dist/interfaces/notifications/notifications.interface.js +0 -2
  159. package/dist/interfaces/notifications/notifications.interface.js.map +0 -1
  160. package/dist/interfaces/proxy-data-hub/attributes.interface.js +0 -2
  161. package/dist/interfaces/proxy-data-hub/attributes.interface.js.map +0 -1
  162. package/dist/interfaces/proxy-data-hub/index.js +0 -2
  163. package/dist/interfaces/proxy-data-hub/index.js.map +0 -1
  164. package/dist/interfaces/shared/index.js +0 -5
  165. package/dist/interfaces/shared/index.js.map +0 -1
  166. package/dist/interfaces/shared/jsonrpc.interface.js.map +0 -1
  167. package/dist/interfaces/shared/paginated-list.interface.js.map +0 -1
  168. package/dist/interfaces/shared/unsigned-transaction.interface.js.map +0 -1
  169. package/dist/interfaces/shared/utils.interface.js.map +0 -1
  170. package/dist/interfaces/timestamp/hash-algorithms.interface.js +0 -2
  171. package/dist/interfaces/timestamp/hash-algorithms.interface.js.map +0 -1
  172. package/dist/interfaces/timestamp/index.js +0 -4
  173. package/dist/interfaces/timestamp/index.js.map +0 -1
  174. package/dist/interfaces/timestamp/records.interface.js +0 -2
  175. package/dist/interfaces/timestamp/records.interface.js.map +0 -1
  176. package/dist/interfaces/timestamp/timestamps.interface.js +0 -2
  177. package/dist/interfaces/timestamp/timestamps.interface.js.map +0 -1
  178. package/dist/interfaces/trusted-apps-registry/apps.interface.js +0 -2
  179. package/dist/interfaces/trusted-apps-registry/apps.interface.js.map +0 -1
  180. package/dist/interfaces/trusted-apps-registry/index.js +0 -3
  181. package/dist/interfaces/trusted-apps-registry/index.js.map +0 -1
  182. package/dist/interfaces/trusted-apps-registry/policies.interface.js +0 -2
  183. package/dist/interfaces/trusted-apps-registry/policies.interface.js.map +0 -1
  184. package/dist/interfaces/trusted-issuers-registry/index.js +0 -2
  185. package/dist/interfaces/trusted-issuers-registry/index.js.map +0 -1
  186. package/dist/interfaces/trusted-issuers-registry/issuers.interface.js +0 -2
  187. package/dist/interfaces/trusted-issuers-registry/issuers.interface.js.map +0 -1
  188. package/dist/interfaces/users-onboarding/authentication.js +0 -2
  189. package/dist/interfaces/users-onboarding/authentication.js.map +0 -1
  190. package/dist/interfaces/users-onboarding/index.js +0 -2
  191. package/dist/interfaces/users-onboarding/index.js.map +0 -1
  192. package/dist/utils/authorisation.js +0 -118
  193. package/dist/utils/authorisation.js.map +0 -1
  194. package/dist/utils/notification.js +0 -51
  195. package/dist/utils/notification.js.map +0 -1
  196. package/dist/utils/storage.js +0 -97
  197. package/dist/utils/storage.js.map +0 -1
  198. /package/dist/interfaces/{shared/jsonrpc.interface.js → jsonrpc.interface.js} +0 -0
  199. /package/dist/interfaces/{shared/paginated-list.interface.js → paginated-list.interface.js} +0 -0
  200. /package/dist/interfaces/{shared/unsigned-transaction.interface.js → unsigned-transaction.interface.js} +0 -0
  201. /package/dist/interfaces/{shared/utils.interface.js → utils.interface.js} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"notification.js","sourceRoot":"","sources":["../../src/utils/notification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,EAAU,EACV,OAAsB,EACtB,IAAY;IAEZ,MAAM,GAAG,GAAG,IAAI,CAAC;IACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,GAAQ,CAAC;IACb,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM;QAAE,GAAG,GAAG,QAAQ,CAAC;SAClC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK;QAAE,GAAG,GAAG,OAAO,CAAC;SACrC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK;QAAE,GAAG,GAAG,OAAO,CAAC;SACrC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK;QAAE,GAAG,GAAG,OAAO,CAAC;;QACrC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAExC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,EAAE,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;SACnC,kBAAkB,CAAC;QAClB,GAAG;QACH,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;KAC1B,CAAC;SACD,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;SACrB,IAAI,CAAC,UAAU,CAAC,CAAC;IAEpB,OAAO;QACL,QAAQ,EAAE,mBAAmB;QAC7B,IAAI,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC;QAC5B,UAAU,EAAE;YACV,wCAAwC;YACxC,4CAA4C;YAC5C,uDAAuD;SACxD;QACD,IAAI,EAAE,MAAM,CAAC,GAAG;QAChB,EAAE;QACF,YAAY,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;QACzC,cAAc,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;QACxD,OAAO;QACP,KAAK,EAAE;YACL,IAAI,EAAE,6BAA6B;YACnC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;YACpC,YAAY,EAAE,iBAAiB;YAC/B,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;YACxC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC;SACpB;KACF,CAAC;AACJ,CAAC;AAED,eAAe,kBAAkB,CAAC"}
@@ -1,97 +0,0 @@
1
- import crypto from "node:crypto";
2
- import fs from "fs";
3
- import Joi from "joi";
4
- import FormData from "form-data";
5
- import { httpCall } from "./http.js";
6
- import { red } from "./print.js";
7
- export function fileController(httpOpts, url, method, inputs) {
8
- switch (method) {
9
- case "insert": {
10
- const [inputFilename, inputMetadata] = inputs;
11
- Joi.assert(inputFilename, Joi.string().optional());
12
- Joi.assert(inputMetadata, Joi.object().optional());
13
- const filename = inputFilename || `test-${crypto.randomBytes(5).toString("hex")}.bin`;
14
- const filedata = inputFilename
15
- ? fs.readFileSync(filename)
16
- : crypto.randomBytes(50);
17
- const metadata = typeof inputMetadata === "object"
18
- ? inputMetadata
19
- : { test: crypto.randomBytes(12).toString("hex") };
20
- const form = new FormData();
21
- form.append("file", filedata, filename);
22
- form.append("metadata", JSON.stringify(metadata));
23
- const options = {
24
- headers: {
25
- post: form.getHeaders(),
26
- ...httpOpts.headers,
27
- },
28
- };
29
- return httpCall.post(`${url}/stores/distributed/files`, form, options);
30
- }
31
- case "patch": {
32
- const [hash, inputPatchOps] = inputs;
33
- Joi.assert(hash, Joi.string());
34
- Joi.assert(inputPatchOps, Joi.array().optional());
35
- const patchOps = Array.isArray(inputPatchOps)
36
- ? inputPatchOps
37
- : [
38
- {
39
- op: "replace",
40
- path: "/metadata",
41
- value: {
42
- test: crypto.randomBytes(12).toString("hex"),
43
- },
44
- },
45
- ];
46
- return httpCall.patch(`${url}/stores/distributed/files/${hash}`, patchOps, {
47
- headers: {
48
- "Content-Type": "application/json-patch+json",
49
- ...httpOpts.headers,
50
- },
51
- });
52
- }
53
- case "delete": {
54
- const [hash] = inputs;
55
- Joi.assert(hash, Joi.string());
56
- return httpCall.delete(`${url}/stores/distributed/files/${hash}`, httpOpts);
57
- }
58
- default:
59
- red(`Invalid method '${method}'`);
60
- return Promise.resolve(0);
61
- }
62
- }
63
- export function keyValueController(httpOpts, url, method, inputs) {
64
- switch (method) {
65
- case "insert":
66
- case "update": {
67
- const [key, value] = inputs;
68
- Joi.assert(key, Joi.string().optional());
69
- Joi.assert(value, Joi.string().optional());
70
- const options = {
71
- headers: {
72
- "Content-Type": "text/plain",
73
- ...httpOpts.headers,
74
- },
75
- };
76
- return httpCall.put(`${url}/stores/distributed/key-values/${key}`, value, options);
77
- }
78
- case "delete": {
79
- const [hash] = inputs;
80
- Joi.assert(hash, Joi.string());
81
- return httpCall.delete(`${url}/stores/distributed/key-values/${hash}`, httpOpts);
82
- }
83
- default:
84
- red(`Invalid method '${method}'`);
85
- return Promise.resolve(0);
86
- }
87
- }
88
- export function jsonrpcStorage(httpOpts, url, params) {
89
- const body = {
90
- jsonrpc: "2.0",
91
- method: "cassandra_call",
92
- params,
93
- id: Math.ceil(Math.random() * 1000),
94
- };
95
- return httpCall.post(`${url}/stores/distributed/jsonrpc`, body, httpOpts);
96
- }
97
- //# sourceMappingURL=storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/utils/storage.ts"],"names":[],"mappings":"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"}