@veramo/cli 5.5.4-next.23 → 5.5.4-next.25
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.
- package/build/createCommand.d.ts.map +1 -1
- package/build/createCommand.js +3 -1
- package/build/createCommand.js.map +1 -1
- package/build/mediate.d.ts +4 -0
- package/build/mediate.d.ts.map +1 -0
- package/build/mediate.js +166 -0
- package/build/mediate.js.map +1 -0
- package/build/setup.d.ts +2 -1
- package/build/setup.d.ts.map +1 -1
- package/build/setup.js.map +1 -1
- package/default/client.yml +1 -0
- package/package.json +28 -26
- package/src/createCommand.ts +2 -0
- package/src/mediate.ts +201 -0
- package/src/setup.ts +6 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCommand.d.ts","sourceRoot":"","sources":["../src/createCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"createCommand.d.ts","sourceRoot":"","sources":["../src/createCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAmBnC,QAAA,MAAM,MAAM,SAcU,CAAA;AAEtB,OAAO,EAAE,MAAM,EAAE,CAAA"}
|
package/build/createCommand.js
CHANGED
|
@@ -11,6 +11,7 @@ import { presentation } from './presentation.js';
|
|
|
11
11
|
import { explore } from './explore/index.js';
|
|
12
12
|
import { sdr } from './sdr.js';
|
|
13
13
|
import { server } from './server.js';
|
|
14
|
+
import { mediate } from './mediate.js';
|
|
14
15
|
const requireCjs = module.createRequire(import.meta.url);
|
|
15
16
|
const { version } = requireCjs('../package.json');
|
|
16
17
|
const veramo = new Command('veramo')
|
|
@@ -26,6 +27,7 @@ const veramo = new Command('veramo')
|
|
|
26
27
|
.addCommand(message)
|
|
27
28
|
.addCommand(presentation)
|
|
28
29
|
.addCommand(sdr)
|
|
29
|
-
.addCommand(server)
|
|
30
|
+
.addCommand(server)
|
|
31
|
+
.addCommand(mediate);
|
|
30
32
|
export { veramo };
|
|
31
33
|
//# sourceMappingURL=createCommand.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCommand.js","sourceRoot":"","sources":["../src/createCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"createCommand.js","sourceRoot":"","sources":["../src/createCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACxD,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAA;AAEjD,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KACjC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC;KACjC,MAAM,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,aAAa,CAAC;KAChE,UAAU,CAAC,MAAM,CAAC;KAClB,UAAU,CAAC,UAAU,CAAC;KACtB,UAAU,CAAC,GAAG,CAAC;KACf,UAAU,CAAC,GAAG,CAAC;KACf,UAAU,CAAC,QAAQ,CAAC;KACpB,UAAU,CAAC,OAAO,CAAC;KACnB,UAAU,CAAC,OAAO,CAAC;KACnB,UAAU,CAAC,OAAO,CAAC;KACnB,UAAU,CAAC,YAAY,CAAC;KACxB,UAAU,CAAC,GAAG,CAAC;KACf,UAAU,CAAC,MAAM,CAAC;KAClB,UAAU,CAAC,OAAO,CAAC,CAAA;AAEtB,OAAO,EAAE,MAAM,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediate.d.ts","sourceRoot":"","sources":["../src/mediate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA4JnC,QAAA,MAAM,OAAO,SAA6E,CAAA;AA4C1F,OAAO,EAAE,OAAO,EAAE,CAAA"}
|
package/build/mediate.js
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import inquirer from 'inquirer';
|
|
3
|
+
import { getAgent } from './setup.js';
|
|
4
|
+
const ALLOW = 'ALLOW';
|
|
5
|
+
const DENY = 'DENY';
|
|
6
|
+
/**
|
|
7
|
+
* private functions
|
|
8
|
+
**/
|
|
9
|
+
const updatePolicies = async (options) => {
|
|
10
|
+
const { dids, agent, policy, remove = false } = options;
|
|
11
|
+
if (remove) {
|
|
12
|
+
return dids.forEach(async (requesterDid) => await agent.mediationManagerRemoveMediationPolicy({ requesterDid }));
|
|
13
|
+
}
|
|
14
|
+
if (!policy)
|
|
15
|
+
throw new Error('No policy provided');
|
|
16
|
+
return dids.forEach(async (requesterDid) => await agent.mediationManagerSaveMediationPolicy({ requesterDid, policy }));
|
|
17
|
+
};
|
|
18
|
+
const promptForDids = async (action) => {
|
|
19
|
+
const { dids } = await inquirer.prompt({
|
|
20
|
+
type: 'input',
|
|
21
|
+
name: 'dids',
|
|
22
|
+
message: `Enter the dids you want to ${action.toLowerCase()} separated by spaces:`,
|
|
23
|
+
});
|
|
24
|
+
return dids.split(' ');
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* cli action functions
|
|
28
|
+
**/
|
|
29
|
+
const policy = (policy) => {
|
|
30
|
+
return async function ({ fileJson, interactive }, cmd) {
|
|
31
|
+
try {
|
|
32
|
+
if (fileJson && interactive)
|
|
33
|
+
throw new Error('Please specify only one input method');
|
|
34
|
+
const agent = await getAgent(cmd.optsWithGlobals().config);
|
|
35
|
+
console.log('AGENT CREATED');
|
|
36
|
+
if (fileJson) {
|
|
37
|
+
const jsonData = await import(fileJson, { assert: { type: 'json' } });
|
|
38
|
+
const dids = jsonData.default;
|
|
39
|
+
await updatePolicies({ dids, agent, policy });
|
|
40
|
+
}
|
|
41
|
+
else if (interactive) {
|
|
42
|
+
const dids = await promptForDids(policy);
|
|
43
|
+
await updatePolicies({ dids, agent, policy });
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
const dids = cmd.args;
|
|
47
|
+
await updatePolicies({ dids, agent, policy });
|
|
48
|
+
}
|
|
49
|
+
console.log('Mediation policies updated');
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
console.error(e.message);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
async function readPolicies(options, cmd) {
|
|
57
|
+
const agent = await getAgent(cmd.optsWithGlobals().config);
|
|
58
|
+
let dids;
|
|
59
|
+
if (options.interactive)
|
|
60
|
+
dids = await promptForDids('read');
|
|
61
|
+
else if (options.fileJson)
|
|
62
|
+
dids = (await import(options.fileJson, { assert: { type: 'json' } })).default;
|
|
63
|
+
else
|
|
64
|
+
dids = cmd.args;
|
|
65
|
+
if (!dids || !dids.length)
|
|
66
|
+
throw new Error('No dids provided');
|
|
67
|
+
const policies = {};
|
|
68
|
+
for await (const requesterDid of dids) {
|
|
69
|
+
policies[requesterDid] = await agent.mediationManagerGetMediationPolicy({ requesterDid });
|
|
70
|
+
}
|
|
71
|
+
console.log('POLICIES');
|
|
72
|
+
console.table(policies);
|
|
73
|
+
}
|
|
74
|
+
async function listPolicies(options, cmd) {
|
|
75
|
+
try {
|
|
76
|
+
const agent = await getAgent(cmd.optsWithGlobals().config);
|
|
77
|
+
const res = await agent.mediationManagerListMediationPolicies();
|
|
78
|
+
console.log('POLICIES');
|
|
79
|
+
if (options.allowFrom)
|
|
80
|
+
return console.table(Object.entries(res).filter(([, policy]) => policy === ALLOW));
|
|
81
|
+
if (options.denyFrom)
|
|
82
|
+
return console.table(Object.entries(res).filter(([, policy]) => policy === DENY));
|
|
83
|
+
else
|
|
84
|
+
console.table(res);
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
console.error(e.message);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async function listResponses({ granted, denied }, cmd) {
|
|
91
|
+
try {
|
|
92
|
+
const agent = await getAgent(cmd.optsWithGlobals().config);
|
|
93
|
+
const res = await agent.mediationManagerGetAllMediations();
|
|
94
|
+
console.log('MEDIATIONS');
|
|
95
|
+
if (granted)
|
|
96
|
+
return console.table(Object.entries(res).filter(([, response]) => response === 'GRANTED'));
|
|
97
|
+
if (denied)
|
|
98
|
+
return console.table(Object.entries(res).filter(([, response]) => response === 'DENIED'));
|
|
99
|
+
else
|
|
100
|
+
console.table(res);
|
|
101
|
+
}
|
|
102
|
+
catch (e) {
|
|
103
|
+
console.error(e.message);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
async function removePolicies({ fileJson, interactive }, cmd) {
|
|
107
|
+
try {
|
|
108
|
+
const agent = await getAgent(cmd.optsWithGlobals().config);
|
|
109
|
+
if (fileJson) {
|
|
110
|
+
const jsonData = await import(fileJson, { assert: { type: 'json' } });
|
|
111
|
+
const dids = jsonData.default;
|
|
112
|
+
await updatePolicies({ dids, remove: true, agent });
|
|
113
|
+
}
|
|
114
|
+
else if (interactive) {
|
|
115
|
+
const dids = await promptForDids('Remove');
|
|
116
|
+
await updatePolicies({ dids, remove: true, agent });
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
const dids = cmd.args;
|
|
120
|
+
await updatePolicies({ dids, remove: true, agent });
|
|
121
|
+
}
|
|
122
|
+
console.log('Mediation policies removed');
|
|
123
|
+
}
|
|
124
|
+
catch (e) {
|
|
125
|
+
console.error(e.message);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const mediate = new Command('mediate').description('Mediate allow or deny policy on dids');
|
|
129
|
+
mediate
|
|
130
|
+
.command('allow-from')
|
|
131
|
+
.description('add dids that should be allowed for mediation')
|
|
132
|
+
.option('-f, --file-json <string>', 'read dids from json file')
|
|
133
|
+
.option('-i, --interactive', 'interactively input dids')
|
|
134
|
+
.action(policy(ALLOW));
|
|
135
|
+
mediate
|
|
136
|
+
.command('deny-from')
|
|
137
|
+
.description('deny dids that should be denied for mediation')
|
|
138
|
+
.option('-f, --file-json <string>', 'read dids from json file')
|
|
139
|
+
.option('-i, --interactive', 'interactively input dids')
|
|
140
|
+
.action(policy(DENY));
|
|
141
|
+
mediate
|
|
142
|
+
.command('read')
|
|
143
|
+
.description('read mediation policy for a specific did')
|
|
144
|
+
.option('-i, --interactive', 'interactively input dids')
|
|
145
|
+
.option('-f, --file-json <string>', 'read dids from json file')
|
|
146
|
+
.action(readPolicies);
|
|
147
|
+
mediate
|
|
148
|
+
.command('list-policies')
|
|
149
|
+
.description('list mediation policies')
|
|
150
|
+
.option('-a, --allow-from', 'list allow policies')
|
|
151
|
+
.option('-d, --deny-from', 'list deny policies')
|
|
152
|
+
.action(listPolicies);
|
|
153
|
+
mediate
|
|
154
|
+
.command('list-responses')
|
|
155
|
+
.description('list mediation responses')
|
|
156
|
+
.option('-a, --granted', 'list granted policies')
|
|
157
|
+
.option('-d, --denied', 'list denied policies')
|
|
158
|
+
.action(listResponses);
|
|
159
|
+
mediate
|
|
160
|
+
.command('remove')
|
|
161
|
+
.description('remove mediation policies')
|
|
162
|
+
.option('-f, --file-json <string>', 'read dids from json file')
|
|
163
|
+
.option('-i, --interactive', 'interactively input dids')
|
|
164
|
+
.action(removePolicies);
|
|
165
|
+
export { mediate };
|
|
166
|
+
//# sourceMappingURL=mediate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediate.js","sourceRoot":"","sources":["../src/mediate.ts"],"names":[],"mappings":"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"}
|
package/build/setup.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ICredentialPlugin, IDataStore, IDataStoreORM, IDIDManager, IKeyManager, IMessageHandler, IResolver, TAgent } from '@veramo/core-types';
|
|
2
|
+
import { IMediationManager } from "@veramo/mediation-manager";
|
|
2
3
|
import { ISelectiveDisclosure } from '@veramo/selective-disclosure';
|
|
3
4
|
import { IDIDComm } from '@veramo/did-comm';
|
|
4
5
|
import { IDIDDiscovery } from '@veramo/did-discovery';
|
|
@@ -11,7 +12,7 @@ export declare const getConfig: (filePath: fs.PathLike) => Promise<{
|
|
|
11
12
|
[x: string]: any;
|
|
12
13
|
version?: number | undefined;
|
|
13
14
|
}>;
|
|
14
|
-
export type EnabledInterfaces = IDIDManager & IKeyManager & IDataStore & IDataStoreORM & IResolver & IMessageHandler & IDIDComm & ICredentialPlugin & ISelectiveDisclosure & IDIDDiscovery;
|
|
15
|
+
export type EnabledInterfaces = IDIDManager & IKeyManager & IDataStore & IDataStoreORM & IResolver & IMessageHandler & IDIDComm & ICredentialPlugin & ISelectiveDisclosure & IDIDDiscovery & IMediationManager;
|
|
15
16
|
export type ConfiguredAgent = TAgent<EnabledInterfaces>;
|
|
16
17
|
export declare function getAgent(fileName: string): Promise<ConfiguredAgent>;
|
|
17
18
|
//# sourceMappingURL=setup.d.ts.map
|
package/build/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,eAAe,EACf,SAAS,EACT,MAAM,EACP,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAGrD,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB;;;GAGG;AACH,eAAO,MAAM,SAAS,aAAoB,GAAG,QAAQ;;;EA0BpD,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,WAAW,GACzC,WAAW,GACX,UAAU,GACV,aAAa,GACb,SAAS,GACT,eAAe,GACf,QAAQ,GACR,iBAAiB,GACjB,oBAAoB,GACpB,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,eAAe,EACf,SAAS,EACT,MAAM,EACP,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,iBAAiB,EAElB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAGrD,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB;;;GAGG;AACH,eAAO,MAAM,SAAS,aAAoB,GAAG,QAAQ;;;EA0BpD,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,WAAW,GACzC,WAAW,GACX,UAAU,GACV,aAAa,GACb,SAAS,GACT,eAAe,GACf,QAAQ,GACR,iBAAiB,GACjB,oBAAoB,GACpB,aAAa,GACb,iBAAiB,CAAA;AAEnB,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAEvD,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAOzE"}
|
package/build/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAkBvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,QAAqB,EAAmD,EAAE;IACxG,IAAI,WAAmB,CAAA;IAEvB,kBAAkB;IAClB,IAAI;QACF,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;KAC3D;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,QAAQ,CAAC,CAAA;QACjD,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;IAED,IAAI,MAAM,CAAA;IAEV,IAAI;QACF,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;KACzD;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;IAED,IAAI,MAAM,EAAE,OAAO,IAAI,CAAC,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAgBD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAAgB;IAC7C,IAAI;QACF,OAAO,MAAM,qBAAqB,CAAoB,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;KACjF;IAAC,OAAO,CAAM,EAAE;QACf,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;AACH,CAAC"}
|
package/default/client.yml
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veramo/cli",
|
|
3
3
|
"description": "Veramo command line application.",
|
|
4
|
-
"version": "5.5.4-next.
|
|
4
|
+
"version": "5.5.4-next.25+462735d13",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
7
7
|
"types": "./build/cli.d.ts",
|
|
@@ -38,30 +38,32 @@
|
|
|
38
38
|
"@transmute/credentials-context": "^0.7.0-unstable.81",
|
|
39
39
|
"@types/blessed": "^0.1.22",
|
|
40
40
|
"@types/swagger-ui-express": "^4.1.3",
|
|
41
|
-
"@veramo/core": "^5.5.4-next.
|
|
42
|
-
"@veramo/core-types": "^5.5.4-next.
|
|
43
|
-
"@veramo/credential-eip712": "^5.5.4-next.
|
|
44
|
-
"@veramo/credential-ld": "^5.5.4-next.
|
|
45
|
-
"@veramo/credential-w3c": "^5.5.4-next.
|
|
46
|
-
"@veramo/data-store": "^5.5.4-next.
|
|
47
|
-
"@veramo/did-comm": "^5.5.4-next.
|
|
48
|
-
"@veramo/did-discovery": "^5.5.4-next.
|
|
49
|
-
"@veramo/did-jwt": "^5.5.4-next.
|
|
50
|
-
"@veramo/did-manager": "^5.5.4-next.
|
|
51
|
-
"@veramo/did-provider-ethr": "^5.5.4-next.
|
|
52
|
-
"@veramo/did-provider-key": "^5.5.4-next.
|
|
53
|
-
"@veramo/did-provider-peer": "^5.5.4-next.
|
|
54
|
-
"@veramo/did-provider-pkh": "^5.5.4-next.
|
|
55
|
-
"@veramo/did-provider-web": "^5.5.4-next.
|
|
56
|
-
"@veramo/did-resolver": "^5.5.4-next.
|
|
57
|
-
"@veramo/key-manager": "^5.5.4-next.
|
|
58
|
-
"@veramo/kms-local": "^5.5.4-next.
|
|
59
|
-
"@veramo/
|
|
60
|
-
"@veramo/
|
|
61
|
-
"@veramo/
|
|
62
|
-
"@veramo/
|
|
63
|
-
"@veramo/
|
|
64
|
-
"@veramo/
|
|
41
|
+
"@veramo/core": "^5.5.4-next.25+462735d13",
|
|
42
|
+
"@veramo/core-types": "^5.5.4-next.25+462735d13",
|
|
43
|
+
"@veramo/credential-eip712": "^5.5.4-next.25+462735d13",
|
|
44
|
+
"@veramo/credential-ld": "^5.5.4-next.25+462735d13",
|
|
45
|
+
"@veramo/credential-w3c": "^5.5.4-next.25+462735d13",
|
|
46
|
+
"@veramo/data-store": "^5.5.4-next.25+462735d13",
|
|
47
|
+
"@veramo/did-comm": "^5.5.4-next.25+462735d13",
|
|
48
|
+
"@veramo/did-discovery": "^5.5.4-next.25+462735d13",
|
|
49
|
+
"@veramo/did-jwt": "^5.5.4-next.25+462735d13",
|
|
50
|
+
"@veramo/did-manager": "^5.5.4-next.25+462735d13",
|
|
51
|
+
"@veramo/did-provider-ethr": "^5.5.4-next.25+462735d13",
|
|
52
|
+
"@veramo/did-provider-key": "^5.5.4-next.25+462735d13",
|
|
53
|
+
"@veramo/did-provider-peer": "^5.5.4-next.25+462735d13",
|
|
54
|
+
"@veramo/did-provider-pkh": "^5.5.4-next.25+462735d13",
|
|
55
|
+
"@veramo/did-provider-web": "^5.5.4-next.25+462735d13",
|
|
56
|
+
"@veramo/did-resolver": "^5.5.4-next.25+462735d13",
|
|
57
|
+
"@veramo/key-manager": "^5.5.4-next.25+462735d13",
|
|
58
|
+
"@veramo/kms-local": "^5.5.4-next.25+462735d13",
|
|
59
|
+
"@veramo/kv-store": "^5.5.4-next.25+462735d13",
|
|
60
|
+
"@veramo/mediation-manager": "^5.5.4-next.25+462735d13",
|
|
61
|
+
"@veramo/message-handler": "^5.5.4-next.25+462735d13",
|
|
62
|
+
"@veramo/remote-client": "^5.5.4-next.25+462735d13",
|
|
63
|
+
"@veramo/remote-server": "^5.5.4-next.25+462735d13",
|
|
64
|
+
"@veramo/selective-disclosure": "^5.5.4-next.25+462735d13",
|
|
65
|
+
"@veramo/url-handler": "^5.5.4-next.25+462735d13",
|
|
66
|
+
"@veramo/utils": "^5.5.4-next.25+462735d13",
|
|
65
67
|
"blessed": "^0.1.81",
|
|
66
68
|
"commander": "^11.0.0",
|
|
67
69
|
"console-table-printer": "^2.11.2",
|
|
@@ -142,5 +144,5 @@
|
|
|
142
144
|
"node_modules",
|
|
143
145
|
"src"
|
|
144
146
|
],
|
|
145
|
-
"gitHead": "
|
|
147
|
+
"gitHead": "462735d138bc4984c0fcf3f72ca7d49e3187ceb7"
|
|
146
148
|
}
|
package/src/createCommand.ts
CHANGED
|
@@ -12,6 +12,7 @@ import { presentation } from './presentation.js'
|
|
|
12
12
|
import { explore } from './explore/index.js'
|
|
13
13
|
import { sdr } from './sdr.js'
|
|
14
14
|
import { server } from './server.js'
|
|
15
|
+
import { mediate } from './mediate.js'
|
|
15
16
|
|
|
16
17
|
const requireCjs = module.createRequire(import.meta.url)
|
|
17
18
|
const { version } = requireCjs('../package.json')
|
|
@@ -30,5 +31,6 @@ const veramo = new Command('veramo')
|
|
|
30
31
|
.addCommand(presentation)
|
|
31
32
|
.addCommand(sdr)
|
|
32
33
|
.addCommand(server)
|
|
34
|
+
.addCommand(mediate)
|
|
33
35
|
|
|
34
36
|
export { veramo }
|
package/src/mediate.ts
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { Command } from 'commander'
|
|
2
|
+
import inquirer from 'inquirer'
|
|
3
|
+
|
|
4
|
+
import { getAgent } from './setup.js'
|
|
5
|
+
import { PreMediationRequestPolicy, RecipientDid, RequesterDid } from '@veramo/mediation-manager'
|
|
6
|
+
|
|
7
|
+
type ConfiguredAgent = Awaited<ReturnType<typeof getAgent>>
|
|
8
|
+
|
|
9
|
+
const ALLOW = 'ALLOW'
|
|
10
|
+
const DENY = 'DENY'
|
|
11
|
+
|
|
12
|
+
type Options = Partial<{
|
|
13
|
+
granted: boolean
|
|
14
|
+
denied: boolean
|
|
15
|
+
allowFrom: boolean
|
|
16
|
+
denyFrom: boolean
|
|
17
|
+
interactive: boolean
|
|
18
|
+
fileJson: string
|
|
19
|
+
}>
|
|
20
|
+
|
|
21
|
+
type UpdatePolicyParams = {
|
|
22
|
+
dids: string[]
|
|
23
|
+
agent: ConfiguredAgent
|
|
24
|
+
policy?: PreMediationRequestPolicy
|
|
25
|
+
remove?: boolean
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* private functions
|
|
30
|
+
**/
|
|
31
|
+
|
|
32
|
+
const updatePolicies = async (options: UpdatePolicyParams): Promise<void> => {
|
|
33
|
+
const { dids, agent, policy, remove = false } = options
|
|
34
|
+
if (remove) {
|
|
35
|
+
return dids.forEach(
|
|
36
|
+
async (requesterDid) => await agent.mediationManagerRemoveMediationPolicy({ requesterDid }),
|
|
37
|
+
)
|
|
38
|
+
}
|
|
39
|
+
if (!policy) throw new Error('No policy provided')
|
|
40
|
+
return dids.forEach(
|
|
41
|
+
async (requesterDid) => await agent.mediationManagerSaveMediationPolicy({ requesterDid, policy }),
|
|
42
|
+
)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const promptForDids = async (action: string): Promise<string[]> => {
|
|
46
|
+
const { dids } = await inquirer.prompt<{ dids: string }>({
|
|
47
|
+
type: 'input',
|
|
48
|
+
name: 'dids',
|
|
49
|
+
message: `Enter the dids you want to ${action.toLowerCase()} separated by spaces:`,
|
|
50
|
+
})
|
|
51
|
+
return dids.split(' ')
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* cli action functions
|
|
56
|
+
**/
|
|
57
|
+
|
|
58
|
+
const policy = (policy: PreMediationRequestPolicy) => {
|
|
59
|
+
return async function (
|
|
60
|
+
{ fileJson, interactive }: Pick<Options, 'fileJson' | 'interactive'>,
|
|
61
|
+
cmd: Command,
|
|
62
|
+
): Promise<void> {
|
|
63
|
+
try {
|
|
64
|
+
if (fileJson && interactive) throw new Error('Please specify only one input method')
|
|
65
|
+
|
|
66
|
+
const agent = await getAgent(cmd.optsWithGlobals().config)
|
|
67
|
+
console.log('AGENT CREATED')
|
|
68
|
+
|
|
69
|
+
if (fileJson) {
|
|
70
|
+
const jsonData = await import(fileJson, { assert: { type: 'json' } })
|
|
71
|
+
const dids = jsonData.default
|
|
72
|
+
await updatePolicies({ dids, agent, policy })
|
|
73
|
+
} else if (interactive) {
|
|
74
|
+
const dids = await promptForDids(policy)
|
|
75
|
+
await updatePolicies({ dids, agent, policy })
|
|
76
|
+
} else {
|
|
77
|
+
const dids = cmd.args
|
|
78
|
+
await updatePolicies({ dids, agent, policy })
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
console.log('Mediation policies updated')
|
|
82
|
+
} catch (e) {
|
|
83
|
+
console.error(e.message)
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
async function readPolicies(options: Pick<Options, 'interactive' | 'fileJson'>, cmd: Command): Promise<void> {
|
|
89
|
+
const agent = await getAgent(cmd.optsWithGlobals().config)
|
|
90
|
+
let dids: string[]
|
|
91
|
+
if (options.interactive) dids = await promptForDids('read')
|
|
92
|
+
else if (options.fileJson) dids = (await import(options.fileJson, { assert: { type: 'json' } })).default
|
|
93
|
+
else dids = cmd.args
|
|
94
|
+
if (!dids || !dids.length) throw new Error('No dids provided')
|
|
95
|
+
const policies: Record<RequesterDid, RecipientDid | null> = {}
|
|
96
|
+
for await (const requesterDid of dids) {
|
|
97
|
+
policies[requesterDid] = await agent.mediationManagerGetMediationPolicy({ requesterDid })
|
|
98
|
+
}
|
|
99
|
+
console.log('POLICIES')
|
|
100
|
+
console.table(policies)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
async function listPolicies(options: Pick<Options, 'allowFrom' | 'denyFrom'>, cmd: Command): Promise<void> {
|
|
104
|
+
try {
|
|
105
|
+
const agent = await getAgent(cmd.optsWithGlobals().config)
|
|
106
|
+
const res = await agent.mediationManagerListMediationPolicies()
|
|
107
|
+
console.log('POLICIES')
|
|
108
|
+
if (options.allowFrom) return console.table(Object.entries(res).filter(([, policy]) => policy === ALLOW))
|
|
109
|
+
if (options.denyFrom) return console.table(Object.entries(res).filter(([, policy]) => policy === DENY))
|
|
110
|
+
else console.table(res)
|
|
111
|
+
} catch (e) {
|
|
112
|
+
console.error(e.message)
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
async function listResponses(
|
|
117
|
+
{ granted, denied }: Pick<Options, 'granted' | 'denied'>,
|
|
118
|
+
cmd: Command,
|
|
119
|
+
): Promise<void> {
|
|
120
|
+
try {
|
|
121
|
+
const agent = await getAgent(cmd.optsWithGlobals().config)
|
|
122
|
+
const res = await agent.mediationManagerGetAllMediations()
|
|
123
|
+
console.log('MEDIATIONS')
|
|
124
|
+
if (granted) return console.table(Object.entries(res).filter(([, response]) => response === 'GRANTED'))
|
|
125
|
+
if (denied) return console.table(Object.entries(res).filter(([, response]) => response === 'DENIED'))
|
|
126
|
+
else console.table(res)
|
|
127
|
+
} catch (e) {
|
|
128
|
+
console.error(e.message)
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
async function removePolicies(
|
|
133
|
+
{ fileJson, interactive }: Pick<Options, 'fileJson' | 'interactive'>,
|
|
134
|
+
cmd: Command,
|
|
135
|
+
): Promise<void> {
|
|
136
|
+
try {
|
|
137
|
+
const agent = await getAgent(cmd.optsWithGlobals().config)
|
|
138
|
+
|
|
139
|
+
if (fileJson) {
|
|
140
|
+
const jsonData = await import(fileJson, { assert: { type: 'json' } })
|
|
141
|
+
const dids = jsonData.default
|
|
142
|
+
await updatePolicies({ dids, remove: true, agent })
|
|
143
|
+
} else if (interactive) {
|
|
144
|
+
const dids = await promptForDids('Remove')
|
|
145
|
+
await updatePolicies({ dids, remove: true, agent })
|
|
146
|
+
} else {
|
|
147
|
+
const dids = cmd.args
|
|
148
|
+
await updatePolicies({ dids, remove: true, agent })
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
console.log('Mediation policies removed')
|
|
152
|
+
} catch (e) {
|
|
153
|
+
console.error(e.message)
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
const mediate = new Command('mediate').description('Mediate allow or deny policy on dids')
|
|
158
|
+
|
|
159
|
+
mediate
|
|
160
|
+
.command('allow-from')
|
|
161
|
+
.description('add dids that should be allowed for mediation')
|
|
162
|
+
.option('-f, --file-json <string>', 'read dids from json file')
|
|
163
|
+
.option('-i, --interactive', 'interactively input dids')
|
|
164
|
+
.action(policy(ALLOW))
|
|
165
|
+
|
|
166
|
+
mediate
|
|
167
|
+
.command('deny-from')
|
|
168
|
+
.description('deny dids that should be denied for mediation')
|
|
169
|
+
.option('-f, --file-json <string>', 'read dids from json file')
|
|
170
|
+
.option('-i, --interactive', 'interactively input dids')
|
|
171
|
+
.action(policy(DENY))
|
|
172
|
+
|
|
173
|
+
mediate
|
|
174
|
+
.command('read')
|
|
175
|
+
.description('read mediation policy for a specific did')
|
|
176
|
+
.option('-i, --interactive', 'interactively input dids')
|
|
177
|
+
.option('-f, --file-json <string>', 'read dids from json file')
|
|
178
|
+
.action(readPolicies)
|
|
179
|
+
|
|
180
|
+
mediate
|
|
181
|
+
.command('list-policies')
|
|
182
|
+
.description('list mediation policies')
|
|
183
|
+
.option('-a, --allow-from', 'list allow policies')
|
|
184
|
+
.option('-d, --deny-from', 'list deny policies')
|
|
185
|
+
.action(listPolicies)
|
|
186
|
+
|
|
187
|
+
mediate
|
|
188
|
+
.command('list-responses')
|
|
189
|
+
.description('list mediation responses')
|
|
190
|
+
.option('-a, --granted', 'list granted policies')
|
|
191
|
+
.option('-d, --denied', 'list denied policies')
|
|
192
|
+
.action(listResponses)
|
|
193
|
+
|
|
194
|
+
mediate
|
|
195
|
+
.command('remove')
|
|
196
|
+
.description('remove mediation policies')
|
|
197
|
+
.option('-f, --file-json <string>', 'read dids from json file')
|
|
198
|
+
.option('-i, --interactive', 'interactively input dids')
|
|
199
|
+
.action(removePolicies)
|
|
200
|
+
|
|
201
|
+
export { mediate }
|
package/src/setup.ts
CHANGED
|
@@ -9,6 +9,10 @@ import {
|
|
|
9
9
|
IResolver,
|
|
10
10
|
TAgent,
|
|
11
11
|
} from '@veramo/core-types'
|
|
12
|
+
import {
|
|
13
|
+
IMediationManager,
|
|
14
|
+
|
|
15
|
+
} from "@veramo/mediation-manager"
|
|
12
16
|
import { ISelectiveDisclosure } from '@veramo/selective-disclosure'
|
|
13
17
|
import { IDIDComm } from '@veramo/did-comm'
|
|
14
18
|
import { IDIDDiscovery } from '@veramo/did-discovery'
|
|
@@ -57,7 +61,8 @@ export type EnabledInterfaces = IDIDManager &
|
|
|
57
61
|
IDIDComm &
|
|
58
62
|
ICredentialPlugin &
|
|
59
63
|
ISelectiveDisclosure &
|
|
60
|
-
IDIDDiscovery
|
|
64
|
+
IDIDDiscovery &
|
|
65
|
+
IMediationManager
|
|
61
66
|
|
|
62
67
|
export type ConfiguredAgent = TAgent<EnabledInterfaces>
|
|
63
68
|
|