@cef-ebsi/cli 0.0.0-alpha.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 (159) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +32 -0
  3. package/bin/cli.js +13 -0
  4. package/dist/abi/pilot/DidRegistry-old.json +2192 -0
  5. package/dist/abi/pilot/DidRegistry.json +1081 -0
  6. package/dist/abi/pilot/DidRegistryV3.json +1081 -0
  7. package/dist/abi/pilot/SchemaSCRegistry.json +972 -0
  8. package/dist/abi/pilot/SchemaSCRegistryV2.json +473 -0
  9. package/dist/abi/pilot/Tar.json +1394 -0
  10. package/dist/abi/pilot/TarV3.json +1107 -0
  11. package/dist/abi/pilot/Timestamp.json +1091 -0
  12. package/dist/abi/pilot/TimestampV2.json +1127 -0
  13. package/dist/abi/pilot/Tir.json +896 -0
  14. package/dist/abi/pilot/TirV3.json +495 -0
  15. package/dist/abi/pilot/Tpr.json +1267 -0
  16. package/dist/abi/pilot/TprV2.json +888 -0
  17. package/dist/abi/test/DidRegistry-old.json +2192 -0
  18. package/dist/abi/test/DidRegistry.json +1081 -0
  19. package/dist/abi/test/DidRegistryV3.json +1088 -0
  20. package/dist/abi/test/SchemaSCRegistry.json +972 -0
  21. package/dist/abi/test/SchemaSCRegistryV2.json +473 -0
  22. package/dist/abi/test/Tar.json +1394 -0
  23. package/dist/abi/test/TarV3.json +1107 -0
  24. package/dist/abi/test/Timestamp.json +1091 -0
  25. package/dist/abi/test/TimestampV2.json +1127 -0
  26. package/dist/abi/test/Tir.json +896 -0
  27. package/dist/abi/test/TirV3.json +495 -0
  28. package/dist/abi/test/Tpr.json +1267 -0
  29. package/dist/abi/test/TprV2.json +888 -0
  30. package/dist/app.js +1205 -0
  31. package/dist/app.js.map +1 -0
  32. package/dist/buildParam/did.js +355 -0
  33. package/dist/buildParam/did.js.map +1 -0
  34. package/dist/buildParam/didOld.js +275 -0
  35. package/dist/buildParam/didOld.js.map +1 -0
  36. package/dist/buildParam/didV3.js +353 -0
  37. package/dist/buildParam/didV3.js.map +1 -0
  38. package/dist/buildParam/index.js +54 -0
  39. package/dist/buildParam/index.js.map +1 -0
  40. package/dist/buildParam/tar.js +240 -0
  41. package/dist/buildParam/tar.js.map +1 -0
  42. package/dist/buildParam/tarV3.js +193 -0
  43. package/dist/buildParam/tarV3.js.map +1 -0
  44. package/dist/buildParam/timestamp.js +323 -0
  45. package/dist/buildParam/timestamp.js.map +1 -0
  46. package/dist/buildParam/timestampV2.js +317 -0
  47. package/dist/buildParam/timestampV2.js.map +1 -0
  48. package/dist/buildParam/tir.js +200 -0
  49. package/dist/buildParam/tir.js.map +1 -0
  50. package/dist/buildParam/tirV3.js +104 -0
  51. package/dist/buildParam/tirV3.js.map +1 -0
  52. package/dist/buildParam/tpr.js +167 -0
  53. package/dist/buildParam/tpr.js.map +1 -0
  54. package/dist/buildParam/tprV2.js +82 -0
  55. package/dist/buildParam/tprV2.js.map +1 -0
  56. package/dist/buildParam/tsr.js +149 -0
  57. package/dist/buildParam/tsr.js.map +1 -0
  58. package/dist/buildParam/tsrV2.js +110 -0
  59. package/dist/buildParam/tsrV2.js.map +1 -0
  60. package/dist/cli.js +10 -0
  61. package/dist/cli.js.map +1 -0
  62. package/dist/commands/authorisation-v3.js +98 -0
  63. package/dist/commands/authorisation-v3.js.map +1 -0
  64. package/dist/commands/authorisation-v4.js +221 -0
  65. package/dist/commands/authorisation-v4.js.map +1 -0
  66. package/dist/commands/compute.js +374 -0
  67. package/dist/commands/compute.js.map +1 -0
  68. package/dist/commands/conformance-v3.js +745 -0
  69. package/dist/commands/conformance-v3.js.map +1 -0
  70. package/dist/commands/conformance-v4.js +767 -0
  71. package/dist/commands/conformance-v4.js.map +1 -0
  72. package/dist/commands/index.js +9 -0
  73. package/dist/commands/index.js.map +1 -0
  74. package/dist/commands/ledger-v3.js +189 -0
  75. package/dist/commands/ledger-v3.js.map +1 -0
  76. package/dist/commands/ledger-v4.js +188 -0
  77. package/dist/commands/ledger-v4.js.map +1 -0
  78. package/dist/commands/view.js +62 -0
  79. package/dist/commands/view.js.map +1 -0
  80. package/dist/config.js +910 -0
  81. package/dist/config.js.map +1 -0
  82. package/dist/index.js +7 -0
  83. package/dist/index.js.map +1 -0
  84. package/dist/interfaces/authorisation/authorisation.interface.js +2 -0
  85. package/dist/interfaces/authorisation/authorisation.interface.js.map +1 -0
  86. package/dist/interfaces/authorisation/index.js +2 -0
  87. package/dist/interfaces/authorisation/index.js.map +1 -0
  88. package/dist/interfaces/context.js +2 -0
  89. package/dist/interfaces/context.js.map +1 -0
  90. package/dist/interfaces/index.js +10 -0
  91. package/dist/interfaces/index.js.map +1 -0
  92. package/dist/interfaces/ledger/besu.interface.js +2 -0
  93. package/dist/interfaces/ledger/besu.interface.js.map +1 -0
  94. package/dist/interfaces/ledger/index.js +2 -0
  95. package/dist/interfaces/ledger/index.js.map +1 -0
  96. package/dist/interfaces/notifications/index.js +2 -0
  97. package/dist/interfaces/notifications/index.js.map +1 -0
  98. package/dist/interfaces/notifications/notifications.interface.js +2 -0
  99. package/dist/interfaces/notifications/notifications.interface.js.map +1 -0
  100. package/dist/interfaces/proxy-data-hub/attributes.interface.js +2 -0
  101. package/dist/interfaces/proxy-data-hub/attributes.interface.js.map +1 -0
  102. package/dist/interfaces/proxy-data-hub/index.js +2 -0
  103. package/dist/interfaces/proxy-data-hub/index.js.map +1 -0
  104. package/dist/interfaces/shared/index.js +5 -0
  105. package/dist/interfaces/shared/index.js.map +1 -0
  106. package/dist/interfaces/shared/jsonrpc.interface.js +2 -0
  107. package/dist/interfaces/shared/jsonrpc.interface.js.map +1 -0
  108. package/dist/interfaces/shared/paginated-list.interface.js +2 -0
  109. package/dist/interfaces/shared/paginated-list.interface.js.map +1 -0
  110. package/dist/interfaces/shared/unsigned-transaction.interface.js +2 -0
  111. package/dist/interfaces/shared/unsigned-transaction.interface.js.map +1 -0
  112. package/dist/interfaces/shared/utils.interface.js +2 -0
  113. package/dist/interfaces/shared/utils.interface.js.map +1 -0
  114. package/dist/interfaces/timestamp/hash-algorithms.interface.js +2 -0
  115. package/dist/interfaces/timestamp/hash-algorithms.interface.js.map +1 -0
  116. package/dist/interfaces/timestamp/index.js +4 -0
  117. package/dist/interfaces/timestamp/index.js.map +1 -0
  118. package/dist/interfaces/timestamp/records.interface.js +2 -0
  119. package/dist/interfaces/timestamp/records.interface.js.map +1 -0
  120. package/dist/interfaces/timestamp/timestamps.interface.js +2 -0
  121. package/dist/interfaces/timestamp/timestamps.interface.js.map +1 -0
  122. package/dist/interfaces/trusted-apps-registry/apps.interface.js +2 -0
  123. package/dist/interfaces/trusted-apps-registry/apps.interface.js.map +1 -0
  124. package/dist/interfaces/trusted-apps-registry/index.js +3 -0
  125. package/dist/interfaces/trusted-apps-registry/index.js.map +1 -0
  126. package/dist/interfaces/trusted-apps-registry/policies.interface.js +2 -0
  127. package/dist/interfaces/trusted-apps-registry/policies.interface.js.map +1 -0
  128. package/dist/interfaces/trusted-issuers-registry/index.js +2 -0
  129. package/dist/interfaces/trusted-issuers-registry/index.js.map +1 -0
  130. package/dist/interfaces/trusted-issuers-registry/issuers.interface.js +2 -0
  131. package/dist/interfaces/trusted-issuers-registry/issuers.interface.js.map +1 -0
  132. package/dist/interfaces/users-onboarding/authentication.js +2 -0
  133. package/dist/interfaces/users-onboarding/authentication.js.map +1 -0
  134. package/dist/interfaces/users-onboarding/index.js +2 -0
  135. package/dist/interfaces/users-onboarding/index.js.map +1 -0
  136. package/dist/programs/appRegistration.js +65 -0
  137. package/dist/programs/appRegistration.js.map +1 -0
  138. package/dist/tsconfig.tsbuildinfo +1 -0
  139. package/dist/utils/Client.js +176 -0
  140. package/dist/utils/Client.js.map +1 -0
  141. package/dist/utils/authorisation.js +118 -0
  142. package/dist/utils/authorisation.js.map +1 -0
  143. package/dist/utils/http.js +128 -0
  144. package/dist/utils/http.js.map +1 -0
  145. package/dist/utils/index.js +10 -0
  146. package/dist/utils/index.js.map +1 -0
  147. package/dist/utils/jsonrpc.js +33 -0
  148. package/dist/utils/jsonrpc.js.map +1 -0
  149. package/dist/utils/notification.js +51 -0
  150. package/dist/utils/notification.js.map +1 -0
  151. package/dist/utils/print.js +57 -0
  152. package/dist/utils/print.js.map +1 -0
  153. package/dist/utils/storage.js +97 -0
  154. package/dist/utils/storage.js.map +1 -0
  155. package/dist/utils/utils.js +161 -0
  156. package/dist/utils/utils.js.map +1 -0
  157. package/dist/utils/verifiablePresentation.js +43 -0
  158. package/dist/utils/verifiablePresentation.js.map +1 -0
  159. package/package.json +113 -0
@@ -0,0 +1,275 @@
1
+ import { ethers } from "ethers";
2
+ import crypto from "node:crypto";
3
+ import Joi from "joi";
4
+ const { sha256 } = ethers.utils;
5
+ function createMetadata() {
6
+ return {
7
+ meta: crypto.randomBytes(32).toString("hex"),
8
+ };
9
+ }
10
+ function createTimestamp() {
11
+ return {
12
+ data: crypto.randomBytes(32).toString("hex"),
13
+ };
14
+ }
15
+ function computeIdentifier(did) {
16
+ return `0x${Buffer.from(did).toString("hex")}`;
17
+ }
18
+ export function randomOid() {
19
+ return `1.3.6.1.4.1.${Math.ceil(Math.random() * 2020)}.${Math.ceil(Math.random() * 10)}.${Math.ceil(Math.random() * 250)}.${Math.ceil(Math.random() * 3)}.${Math.ceil(Math.random() * 3)}.${Math.ceil(Math.random() * 3)}.${Math.ceil(Math.random() * 100)}`;
20
+ }
21
+ export function buildParamDidOld(method, client, inputs) {
22
+ switch (method) {
23
+ case "setTrustedPoliciesRegistryAddress": {
24
+ return {
25
+ info: { title: "initialization", data: method },
26
+ param: {},
27
+ };
28
+ }
29
+ case "insertPolicy": {
30
+ const [inputPolicyId, inputPolicy] = inputs;
31
+ Joi.assert(inputPolicyId, Joi.string().optional());
32
+ Joi.assert(inputPolicy, Joi.object().optional());
33
+ const policyId = inputPolicyId || `policy-${crypto.randomBytes(5).toString("hex")}`;
34
+ const policy = typeof inputPolicy === "object"
35
+ ? inputPolicy
36
+ : { policy: crypto.randomBytes(12).toString("hex") };
37
+ const buffer = Buffer.from(JSON.stringify(policy));
38
+ return {
39
+ info: { title: `Insert policy ${policyId}`, data: policy },
40
+ param: {
41
+ policyId,
42
+ policyData: `0x${buffer.toString("hex")}`,
43
+ },
44
+ };
45
+ }
46
+ case "updatePolicy": {
47
+ const [policyId, inputPolicy] = inputs;
48
+ Joi.assert(policyId, Joi.string());
49
+ Joi.assert(inputPolicy, Joi.object().optional());
50
+ const policy = typeof inputPolicy === "object"
51
+ ? inputPolicy
52
+ : { policy: crypto.randomBytes(12).toString("hex") };
53
+ const buffer = Buffer.from(JSON.stringify(policy));
54
+ return {
55
+ info: { title: `Update policy ${policyId}`, data: policy },
56
+ param: {
57
+ policyId,
58
+ policyData: `0x${buffer.toString("hex")}`,
59
+ },
60
+ };
61
+ }
62
+ case "insertHashAlgorithm": {
63
+ const [inputOutputLength, inputIanaName, inputOid, inputStatus, inputMultihash,] = inputs;
64
+ Joi.assert(inputOutputLength, Joi.string().optional());
65
+ Joi.assert(inputIanaName, Joi.string().optional());
66
+ Joi.assert(inputOid, Joi.string().optional());
67
+ Joi.assert(inputStatus, Joi.string().optional());
68
+ Joi.assert(inputMultihash, Joi.string().optional());
69
+ const outputLength = Number(inputOutputLength) || 1;
70
+ const ianaName = inputIanaName || "undefined";
71
+ const oid = inputOid || "undefined";
72
+ const status = Number(inputStatus) || 1;
73
+ const multihash = inputMultihash || ianaName;
74
+ return {
75
+ info: {
76
+ title: "Hash Algorithm",
77
+ data: ianaName,
78
+ },
79
+ param: {
80
+ outputLength,
81
+ ianaName,
82
+ oid,
83
+ status,
84
+ multihash,
85
+ },
86
+ };
87
+ }
88
+ case "updateHashAlgorithm": {
89
+ const [inputHashAlgorithmId, inputOutputLength, inputIanaName, inputOid, inputStatus, inputMultihash,] = inputs;
90
+ Joi.assert(inputHashAlgorithmId, Joi.string());
91
+ Joi.assert(inputOutputLength, Joi.string().optional());
92
+ Joi.assert(inputIanaName, Joi.string().optional());
93
+ Joi.assert(inputOid, Joi.string().optional());
94
+ Joi.assert(inputStatus, Joi.string().optional());
95
+ Joi.assert(inputMultihash, Joi.string().optional());
96
+ const hashAlgorithmId = Number(inputHashAlgorithmId);
97
+ const outputLength = Number(inputOutputLength) || 1;
98
+ const ianaName = inputIanaName || "undefined";
99
+ const oid = inputOid || "undefined";
100
+ const status = Number(inputStatus) || 1;
101
+ const multihash = inputMultihash || ianaName;
102
+ return {
103
+ info: {
104
+ title: "Hash Algorithm",
105
+ data: ianaName,
106
+ },
107
+ param: {
108
+ hashAlgorithmId,
109
+ outputLength,
110
+ ianaName,
111
+ oid,
112
+ status,
113
+ multihash,
114
+ },
115
+ };
116
+ }
117
+ case "insertDidDocument":
118
+ case "updateDidDocument": {
119
+ const [inputControllerDid, inputDocument, inputMetadata, inputTimestamp] = inputs;
120
+ Joi.assert(inputControllerDid, Joi.string().optional());
121
+ Joi.assert(inputDocument, Joi.object().optional());
122
+ Joi.assert(inputMetadata, Joi.object().optional());
123
+ Joi.assert(inputTimestamp, Joi.object().optional());
124
+ const controllerDid = inputControllerDid || client.did;
125
+ const document = typeof inputDocument === "object"
126
+ ? inputDocument
127
+ : client.generateDidDocument();
128
+ const metadata = typeof inputMetadata === "object" ? inputMetadata : createMetadata();
129
+ const timestamp = typeof inputTimestamp === "object" ? inputTimestamp : createTimestamp();
130
+ const bufferDocument = Buffer.from(JSON.stringify(document));
131
+ const bufferTimestamp = Buffer.from(JSON.stringify(timestamp));
132
+ const bufferMetadata = Buffer.from(JSON.stringify(metadata));
133
+ const documentHash = sha256(bufferDocument);
134
+ return {
135
+ info: {
136
+ title: "Did document",
137
+ data: document,
138
+ },
139
+ param: {
140
+ identifier: computeIdentifier(controllerDid),
141
+ hashAlgorithmId: 1,
142
+ hashValue: documentHash,
143
+ didVersionInfo: `0x${bufferDocument.toString("hex")}`,
144
+ timestampData: `0x${bufferTimestamp.toString("hex")}`,
145
+ didVersionMetadata: `0x${bufferMetadata.toString("hex")}`,
146
+ },
147
+ };
148
+ }
149
+ case "insertDidController":
150
+ case "updateDidController": {
151
+ const [did, newControllerId, inputNotBefore, inputNotAfter] = inputs;
152
+ Joi.assert(did, Joi.string());
153
+ Joi.assert(newControllerId, Joi.string());
154
+ Joi.assert(inputNotBefore, Joi.string().optional());
155
+ Joi.assert(inputNotAfter, Joi.string().optional());
156
+ const now = Math.round(Date.now() / 1000);
157
+ const notBefore = Number(inputNotBefore) || now;
158
+ const notAfter = Number(inputNotAfter) || 0;
159
+ return {
160
+ info: {
161
+ title: "Did controller",
162
+ data: newControllerId,
163
+ },
164
+ param: {
165
+ identifier: computeIdentifier(did),
166
+ newControllerId,
167
+ notBefore,
168
+ notAfter,
169
+ },
170
+ };
171
+ }
172
+ case "revokeDidController": {
173
+ const [did, oldControllerId] = inputs;
174
+ Joi.assert(did, Joi.string());
175
+ Joi.assert(oldControllerId, Joi.string());
176
+ return {
177
+ info: {
178
+ title: "Did controller",
179
+ data: oldControllerId,
180
+ },
181
+ param: {
182
+ identifier: computeIdentifier(did),
183
+ oldControllerId,
184
+ },
185
+ };
186
+ }
187
+ case "appendDidDocumentVersionHash": {
188
+ const [inputControllerDid, inputDocument, inputTimestamp] = inputs;
189
+ Joi.assert(inputControllerDid, Joi.string().optional());
190
+ Joi.assert(inputDocument, Joi.object().optional());
191
+ Joi.assert(inputTimestamp, Joi.object().optional());
192
+ const controllerDid = inputControllerDid || client.did;
193
+ const document = typeof inputDocument === "object"
194
+ ? inputDocument
195
+ : client.generateDidDocument();
196
+ const timestamp = typeof inputTimestamp === "object" ? inputTimestamp : createTimestamp();
197
+ const bufferDocument = Buffer.from(JSON.stringify(document));
198
+ const bufferTimestamp = Buffer.from(JSON.stringify(timestamp));
199
+ const documentHash = sha256(bufferDocument);
200
+ return {
201
+ info: {
202
+ title: "Did document version hash",
203
+ data: {
204
+ document,
205
+ timestamp,
206
+ },
207
+ },
208
+ param: {
209
+ identifier: computeIdentifier(controllerDid),
210
+ hashAlgorithmId: 1,
211
+ hashValue: documentHash,
212
+ timestampData: `0x${bufferTimestamp.toString("hex")}`,
213
+ didVersionInfo: `0x${bufferDocument.toString("hex")}`,
214
+ },
215
+ };
216
+ }
217
+ case "detachDidDocumentVersionHash": {
218
+ const [inputControllerDid, inputDocument] = inputs;
219
+ Joi.assert(inputControllerDid, Joi.string().optional());
220
+ Joi.assert(inputDocument, Joi.object().optional());
221
+ const controllerDid = inputControllerDid || client.did;
222
+ const document = typeof inputDocument === "object"
223
+ ? inputDocument
224
+ : client.generateDidDocument();
225
+ const bufferDocument = Buffer.from(JSON.stringify(document));
226
+ const documentHash = sha256(bufferDocument);
227
+ return {
228
+ info: {
229
+ title: "Detach did document version hash",
230
+ data: {
231
+ document,
232
+ },
233
+ },
234
+ param: {
235
+ identifier: computeIdentifier(controllerDid),
236
+ hashAlgorithmId: 1,
237
+ hashValue: documentHash,
238
+ didVersionInfo: `0x${bufferDocument.toString("hex")}`,
239
+ },
240
+ };
241
+ }
242
+ case "appendDidDocumentVersionMetadata":
243
+ case "detachDidDocumentVersionMetadata": {
244
+ const [inputControllerDid, inputDocument, inputMetadata] = inputs;
245
+ Joi.assert(inputControllerDid, Joi.string().optional());
246
+ Joi.assert(inputDocument, Joi.object().optional());
247
+ Joi.assert(inputMetadata, Joi.object().optional());
248
+ const controllerDid = inputControllerDid || client.did;
249
+ const document = typeof inputDocument === "object"
250
+ ? inputDocument
251
+ : client.generateDidDocument();
252
+ const metadata = typeof inputMetadata === "object" ? inputMetadata : createMetadata();
253
+ const bufferDocument = Buffer.from(JSON.stringify(document));
254
+ const bufferMetadata = Buffer.from(JSON.stringify(metadata));
255
+ return {
256
+ info: {
257
+ title: "Append did document version metadata",
258
+ data: {
259
+ document,
260
+ metadata,
261
+ },
262
+ },
263
+ param: {
264
+ identifier: computeIdentifier(controllerDid),
265
+ didVersionInfo: `0x${bufferDocument.toString("hex")}`,
266
+ didVersionMetadata: `0x${bufferMetadata.toString("hex")}`,
267
+ },
268
+ };
269
+ }
270
+ default:
271
+ throw new Error(`Invalid method '${method}'`);
272
+ }
273
+ }
274
+ export default buildParamDidOld;
275
+ //# sourceMappingURL=didOld.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"didOld.js","sourceRoot":"","sources":["../../src/buildParam/didOld.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,353 @@
1
+ import { calculateJwkThumbprint } from "jose";
2
+ import Joi from "joi";
3
+ import { getPublicKeyHex, getPublicKeyJwk } from "../utils/utils.js";
4
+ export async function buildParamDidV3(method, client, inputs) {
5
+ switch (method) {
6
+ case "insertDidDocument": {
7
+ const [inputDid, inputBaseDocument, inputPublicKey, inputNotBefore, inputNotAfter, inputVMethodId,] = inputs;
8
+ Joi.assert(inputDid, Joi.string().optional());
9
+ Joi.assert(inputNotBefore, Joi.string().optional());
10
+ Joi.assert(inputNotAfter, Joi.string().optional());
11
+ Joi.assert(inputVMethodId, Joi.string().optional());
12
+ const did = inputDid || client.did;
13
+ let baseDocument;
14
+ let notBefore;
15
+ let notAfter;
16
+ let publicKey;
17
+ let vMethodId;
18
+ if (inputBaseDocument) {
19
+ baseDocument = JSON.stringify(inputBaseDocument);
20
+ }
21
+ else {
22
+ const didDocument = client.generateDidDocument();
23
+ baseDocument = JSON.stringify({ "@context": didDocument["@context"] });
24
+ }
25
+ if (inputPublicKey) {
26
+ if (typeof inputPublicKey !== "string") {
27
+ throw new Error("the public key must be an hex string for secp256k1");
28
+ }
29
+ publicKey = inputPublicKey;
30
+ const publicKeyJwk = getPublicKeyJwk(publicKey);
31
+ vMethodId =
32
+ inputVMethodId ||
33
+ (await calculateJwkThumbprint(publicKeyJwk, "sha256"));
34
+ }
35
+ else {
36
+ publicKey = client.ethWallet.publicKey;
37
+ vMethodId = client.keys.ES256K.id;
38
+ }
39
+ const isSecp256k1 = true;
40
+ if (inputNotBefore) {
41
+ notBefore = Math.floor(new Date(inputNotBefore).getTime() / 1000);
42
+ }
43
+ else {
44
+ notBefore = Math.floor(Date.now() / 1000);
45
+ }
46
+ if (inputNotAfter) {
47
+ notAfter = Math.floor(new Date(inputNotAfter).getTime() / 1000);
48
+ }
49
+ else {
50
+ notAfter = notBefore + 84600 * 365 * 5;
51
+ }
52
+ return {
53
+ info: {
54
+ title: "Did document",
55
+ data: did,
56
+ },
57
+ param: {
58
+ did,
59
+ baseDocument,
60
+ vMethodId,
61
+ publicKey,
62
+ isSecp256k1,
63
+ notBefore,
64
+ notAfter,
65
+ },
66
+ };
67
+ }
68
+ case "updateBaseDocument": {
69
+ const [did, inputBaseDocument] = inputs;
70
+ Joi.assert(did, Joi.string());
71
+ let baseDocument;
72
+ if (inputBaseDocument) {
73
+ baseDocument = JSON.stringify(inputBaseDocument);
74
+ }
75
+ else {
76
+ const didDocument = client.generateDidDocument();
77
+ baseDocument = JSON.stringify({ "@context": didDocument["@context"] });
78
+ }
79
+ return {
80
+ info: {
81
+ title: "Update base document",
82
+ data: {
83
+ did,
84
+ baseDocument,
85
+ },
86
+ },
87
+ param: {
88
+ did,
89
+ baseDocument,
90
+ },
91
+ };
92
+ }
93
+ case "addController": {
94
+ const [did, controller] = inputs;
95
+ Joi.assert(did, Joi.string());
96
+ Joi.assert(controller, Joi.string());
97
+ return {
98
+ info: {
99
+ title: "Add controller",
100
+ data: { did, controller },
101
+ },
102
+ param: {
103
+ did,
104
+ controller,
105
+ },
106
+ };
107
+ }
108
+ case "revokeController": {
109
+ const [did, controller] = inputs;
110
+ Joi.assert(did, Joi.string());
111
+ Joi.assert(controller, Joi.string());
112
+ return {
113
+ info: {
114
+ title: "Revoke controller",
115
+ data: { did, controller },
116
+ },
117
+ param: {
118
+ did,
119
+ controller,
120
+ },
121
+ };
122
+ }
123
+ case "addVerificationMethod": {
124
+ const [did, inputPublicKeyOrAlg, inputVMethodId] = inputs;
125
+ Joi.assert(did, Joi.string());
126
+ Joi.assert(inputVMethodId, Joi.string().optional());
127
+ let inputPublicKey = inputPublicKeyOrAlg;
128
+ if (typeof inputPublicKeyOrAlg === "string" &&
129
+ ["ES256K", "ES256", "RS256", "EdDSA"].includes(inputPublicKeyOrAlg)) {
130
+ const alg = inputPublicKeyOrAlg;
131
+ inputPublicKey = client.keys[alg].publicKeyJwk;
132
+ }
133
+ let publicKey;
134
+ let publicKeyJwk;
135
+ let vMethodId;
136
+ if (inputPublicKey) {
137
+ if (typeof inputPublicKey === "string") {
138
+ publicKey = inputPublicKey;
139
+ publicKeyJwk = getPublicKeyJwk(publicKey);
140
+ }
141
+ else {
142
+ publicKeyJwk = inputPublicKey;
143
+ publicKey = getPublicKeyHex(publicKeyJwk);
144
+ }
145
+ vMethodId =
146
+ inputVMethodId ||
147
+ (await calculateJwkThumbprint(publicKeyJwk, "sha256"));
148
+ }
149
+ else {
150
+ publicKey = client.ethWallet.publicKey;
151
+ publicKeyJwk = getPublicKeyJwk(publicKey);
152
+ vMethodId = client.keys.ES256K.id;
153
+ }
154
+ const isSecp256k1 = publicKeyJwk.crv === "secp256k1";
155
+ return {
156
+ info: {
157
+ title: "Add verification method",
158
+ data: {
159
+ did,
160
+ vMethodId,
161
+ publicKey,
162
+ isSecp256k1,
163
+ },
164
+ },
165
+ param: {
166
+ did,
167
+ vMethodId,
168
+ publicKey,
169
+ isSecp256k1,
170
+ },
171
+ };
172
+ }
173
+ case "addVerificationRelationship": {
174
+ const [did, name, vMethodIdOrAlg, inputNotBefore, inputNotAfter] = inputs;
175
+ Joi.assert(did, Joi.string());
176
+ Joi.assert(name, Joi.string().valid("authentication", "assertionMethod", "keyAgreement", "capabilityInvocation", "capabilityDelegation"));
177
+ Joi.assert(vMethodIdOrAlg, Joi.string());
178
+ Joi.assert(inputNotBefore, Joi.string().optional());
179
+ Joi.assert(inputNotAfter, Joi.string().optional());
180
+ let notBefore;
181
+ let notAfter;
182
+ let vMethodId = vMethodIdOrAlg;
183
+ if (["ES256K", "ES256", "RS256", "EdDSA"].includes(vMethodIdOrAlg)) {
184
+ const alg = vMethodIdOrAlg;
185
+ vMethodId = client.keys[alg].id;
186
+ }
187
+ if (inputNotBefore) {
188
+ notBefore = Math.floor(new Date(inputNotBefore).getTime() / 1000);
189
+ }
190
+ else {
191
+ notBefore = Math.floor(Date.now() / 1000);
192
+ }
193
+ if (inputNotAfter) {
194
+ notAfter = Math.floor(new Date(inputNotAfter).getTime() / 1000);
195
+ }
196
+ else {
197
+ notAfter = notBefore + 84600 * 365 * 5;
198
+ }
199
+ return {
200
+ info: {
201
+ title: "Add verification relationship",
202
+ data: {
203
+ did,
204
+ name,
205
+ vMethodId,
206
+ notBefore,
207
+ notAfter,
208
+ },
209
+ },
210
+ param: {
211
+ did,
212
+ name,
213
+ vMethodId,
214
+ notBefore,
215
+ notAfter,
216
+ },
217
+ };
218
+ }
219
+ case "revokeVerificationMethod": {
220
+ const [did, vMethodIdOrAlg, inputNotAfter] = inputs;
221
+ Joi.assert(did, Joi.string());
222
+ Joi.assert(vMethodIdOrAlg, Joi.string());
223
+ Joi.assert(inputNotAfter, Joi.string());
224
+ let notAfter;
225
+ let vMethodId = vMethodIdOrAlg;
226
+ if (["ES256K", "ES256", "RS256", "EdDSA"].includes(vMethodIdOrAlg)) {
227
+ const alg = vMethodIdOrAlg;
228
+ vMethodId = client.keys[alg].id;
229
+ }
230
+ if (inputNotAfter) {
231
+ notAfter = Math.floor(new Date(inputNotAfter).getTime() / 1000);
232
+ }
233
+ else {
234
+ notAfter = Math.floor(Date.now() / 1000);
235
+ }
236
+ return {
237
+ info: {
238
+ title: "Revoke verification method",
239
+ data: {
240
+ did,
241
+ vMethodId,
242
+ notAfter,
243
+ },
244
+ },
245
+ param: {
246
+ did,
247
+ vMethodId,
248
+ notAfter,
249
+ },
250
+ };
251
+ }
252
+ case "expireVerificationMethod": {
253
+ const [did, vMethodIdOrAlg, inputNotAfter] = inputs;
254
+ Joi.assert(did, Joi.string());
255
+ Joi.assert(vMethodIdOrAlg, Joi.string());
256
+ Joi.assert(inputNotAfter, Joi.string());
257
+ const notAfter = Math.floor(new Date(inputNotAfter).getTime() / 1000);
258
+ let vMethodId = vMethodIdOrAlg;
259
+ if (["ES256K", "ES256", "RS256", "EdDSA"].includes(vMethodIdOrAlg)) {
260
+ const alg = vMethodIdOrAlg;
261
+ vMethodId = client.keys[alg].id;
262
+ }
263
+ return {
264
+ info: {
265
+ title: "Expire verification method",
266
+ data: {
267
+ did,
268
+ vMethodId,
269
+ notAfter,
270
+ },
271
+ },
272
+ param: {
273
+ did,
274
+ vMethodId,
275
+ notAfter,
276
+ },
277
+ };
278
+ }
279
+ case "rollVerificationMethod": {
280
+ const [did, inputPublicKeyOrAlg, inputNotBefore, inputNotAfter, oldVMethodId, inputDuration, inputVMethodId,] = inputs;
281
+ Joi.assert(did, Joi.string());
282
+ Joi.assert(inputNotBefore, Joi.string());
283
+ Joi.assert(inputNotAfter, Joi.string());
284
+ Joi.assert(oldVMethodId, Joi.string());
285
+ Joi.assert(inputDuration, Joi.string());
286
+ Joi.assert(inputVMethodId, Joi.string().optional());
287
+ let inputPublicKey = inputPublicKeyOrAlg;
288
+ if (typeof inputPublicKeyOrAlg === "string" &&
289
+ ["ES256K", "ES256", "RS256", "EdDSA"].includes(inputPublicKeyOrAlg)) {
290
+ const alg = inputPublicKeyOrAlg;
291
+ inputPublicKey = client.keys[alg].publicKeyJwk;
292
+ }
293
+ const notBefore = Math.floor(new Date(inputNotBefore).getTime() / 1000);
294
+ const notAfter = Math.floor(new Date(inputNotAfter).getTime() / 1000);
295
+ const duration = Number(inputDuration);
296
+ let publicKey;
297
+ let publicKeyJwk;
298
+ let vMethodId;
299
+ if (inputPublicKey) {
300
+ if (typeof inputPublicKey === "string") {
301
+ publicKey = inputPublicKey;
302
+ publicKeyJwk = getPublicKeyJwk(publicKey);
303
+ }
304
+ else {
305
+ publicKeyJwk = inputPublicKey;
306
+ publicKey = getPublicKeyHex(publicKeyJwk);
307
+ }
308
+ vMethodId =
309
+ inputVMethodId ||
310
+ (await calculateJwkThumbprint(publicKeyJwk, "sha256"));
311
+ }
312
+ else {
313
+ publicKey = client.ethWallet.publicKey;
314
+ publicKeyJwk = getPublicKeyJwk(publicKey);
315
+ vMethodId = client.keys.ES256K.id;
316
+ }
317
+ const isSecp256k1 = publicKeyJwk.crv === "secp256k1";
318
+ return {
319
+ info: {
320
+ title: "Add verification method",
321
+ data: {
322
+ rollArgs: {
323
+ did,
324
+ vMethodId,
325
+ publicKey,
326
+ isSecp256k1,
327
+ notBefore,
328
+ notAfter,
329
+ oldVMethodId,
330
+ duration,
331
+ },
332
+ },
333
+ },
334
+ param: {
335
+ rollArgs: {
336
+ did,
337
+ vMethodId,
338
+ publicKey,
339
+ isSecp256k1,
340
+ notBefore,
341
+ notAfter,
342
+ oldVMethodId,
343
+ duration,
344
+ },
345
+ },
346
+ };
347
+ }
348
+ default:
349
+ throw new Error(`Invalid method '${method}'`);
350
+ }
351
+ }
352
+ export default buildParamDidV3;
353
+ //# sourceMappingURL=didV3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"didV3.js","sourceRoot":"","sources":["../../src/buildParam/didV3.ts"],"names":[],"mappings":"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"}