@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.
@@ -1 +1 @@
1
- {"version":3,"file":"createCommand.d.ts","sourceRoot":"","sources":["../src/createCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAkBnC,QAAA,MAAM,MAAM,SAaS,CAAA;AAErB,OAAO,EAAE,MAAM,EAAE,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"}
@@ -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;AAEpC,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,CAAA;AAErB,OAAO,EAAE,MAAM,EAAE,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,4 @@
1
+ import { Command } from 'commander';
2
+ declare const mediate: Command;
3
+ export { mediate };
4
+ //# sourceMappingURL=mediate.d.ts.map
@@ -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"}
@@ -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
@@ -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;AAEf,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAEvD,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAOzE"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAcvB,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;AAeD,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"}
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"}
@@ -64,3 +64,4 @@ agent:
64
64
  - createSelectiveDisclosureRequest
65
65
  - getVerifiableCredentialsForSdr
66
66
  - validatePresentationAgainstSdr
67
+
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.23+17a2991ac",
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.23+17a2991ac",
42
- "@veramo/core-types": "^5.5.4-next.23+17a2991ac",
43
- "@veramo/credential-eip712": "^5.5.4-next.23+17a2991ac",
44
- "@veramo/credential-ld": "^5.5.4-next.23+17a2991ac",
45
- "@veramo/credential-w3c": "^5.5.4-next.23+17a2991ac",
46
- "@veramo/data-store": "^5.5.4-next.23+17a2991ac",
47
- "@veramo/did-comm": "^5.5.4-next.23+17a2991ac",
48
- "@veramo/did-discovery": "^5.5.4-next.23+17a2991ac",
49
- "@veramo/did-jwt": "^5.5.4-next.23+17a2991ac",
50
- "@veramo/did-manager": "^5.5.4-next.23+17a2991ac",
51
- "@veramo/did-provider-ethr": "^5.5.4-next.23+17a2991ac",
52
- "@veramo/did-provider-key": "^5.5.4-next.23+17a2991ac",
53
- "@veramo/did-provider-peer": "^5.5.4-next.23+17a2991ac",
54
- "@veramo/did-provider-pkh": "^5.5.4-next.23+17a2991ac",
55
- "@veramo/did-provider-web": "^5.5.4-next.23+17a2991ac",
56
- "@veramo/did-resolver": "^5.5.4-next.23+17a2991ac",
57
- "@veramo/key-manager": "^5.5.4-next.23+17a2991ac",
58
- "@veramo/kms-local": "^5.5.4-next.23+17a2991ac",
59
- "@veramo/message-handler": "^5.5.4-next.23+17a2991ac",
60
- "@veramo/remote-client": "^5.5.4-next.23+17a2991ac",
61
- "@veramo/remote-server": "^5.5.4-next.23+17a2991ac",
62
- "@veramo/selective-disclosure": "^5.5.4-next.23+17a2991ac",
63
- "@veramo/url-handler": "^5.5.4-next.23+17a2991ac",
64
- "@veramo/utils": "^5.5.4-next.23+17a2991ac",
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": "17a2991ac9ad775558078d458a0466ab4ea28254"
147
+ "gitHead": "462735d138bc4984c0fcf3f72ca7d49e3187ceb7"
146
148
  }
@@ -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