pontus-x_cli 0.0.6 → 1.0.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.
- package/README.md +558 -154
- package/bin/dev.js +7 -0
- package/bin/run.js +7 -0
- package/dist/commands/access.d.ts +9 -0
- package/dist/commands/access.js +23 -0
- package/dist/commands/access.js.map +1 -0
- package/dist/commands/change-price.d.ts +13 -0
- package/dist/commands/change-price.js +49 -0
- package/dist/commands/change-price.js.map +1 -0
- package/dist/commands/check-participant-compliance.d.ts +10 -0
- package/dist/commands/check-participant-compliance.js +54 -0
- package/dist/commands/check-participant-compliance.js.map +1 -0
- package/dist/commands/compute-results.d.ts +12 -0
- package/dist/commands/compute-results.js +40 -0
- package/dist/commands/compute-results.js.map +1 -0
- package/dist/commands/compute-status.d.ts +12 -0
- package/dist/commands/compute-status.js +40 -0
- package/dist/commands/compute-status.js.map +1 -0
- package/dist/commands/compute.d.ts +14 -0
- package/dist/commands/compute.js +66 -0
- package/dist/commands/compute.js.map +1 -0
- package/dist/commands/edit-algo.d.ts +16 -0
- package/dist/commands/edit-algo.js +51 -0
- package/dist/commands/edit-algo.js.map +1 -0
- package/dist/commands/edit-asset-url.d.ts +13 -0
- package/dist/commands/edit-asset-url.js +55 -0
- package/dist/commands/edit-asset-url.js.map +1 -0
- package/dist/commands/edit-trusted-algos.d.ts +13 -0
- package/dist/commands/edit-trusted-algos.js +54 -0
- package/dist/commands/edit-trusted-algos.js.map +1 -0
- package/dist/commands/export-private-key.d.ts +11 -0
- package/dist/commands/export-private-key.js +67 -0
- package/dist/commands/export-private-key.js.map +1 -0
- package/dist/commands/generate-asset-credentials.d.ts +15 -0
- package/dist/commands/generate-asset-credentials.js +59 -0
- package/dist/commands/generate-asset-credentials.js.map +1 -0
- package/dist/commands/generate-did-web.d.ts +10 -0
- package/dist/commands/generate-did-web.js +39 -0
- package/dist/commands/generate-did-web.js.map +1 -0
- package/dist/commands/generate-participant-credentials.d.ts +12 -0
- package/dist/commands/generate-participant-credentials.js +51 -0
- package/dist/commands/generate-participant-credentials.js.map +1 -0
- package/dist/commands/get.d.ts +9 -0
- package/dist/commands/get.js +23 -0
- package/dist/commands/get.js.map +1 -0
- package/dist/commands/login.d.ts +14 -0
- package/dist/commands/login.js +51 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +6 -0
- package/dist/commands/logout.js +24 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/publish.d.ts +15 -0
- package/dist/commands/publish.js +107 -0
- package/dist/commands/publish.js.map +1 -0
- package/dist/commands/revoke.d.ts +12 -0
- package/dist/commands/revoke.js +50 -0
- package/dist/commands/revoke.js.map +1 -0
- package/dist/commands/self-description.d.ts +13 -0
- package/dist/commands/self-description.js +53 -0
- package/dist/commands/self-description.js.map +1 -0
- package/dist/config.d.ts +48 -0
- package/dist/config.js +106 -117
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -347
- package/dist/index.js.map +1 -1
- package/dist/lib/gaia-x_compliance/generate-credentials/index.d.ts +1 -0
- package/dist/lib/gaia-x_compliance/generate-credentials/index.js +176 -0
- package/dist/lib/gaia-x_compliance/generate-credentials/index.js.map +1 -0
- package/dist/lib/gaia-x_compliance/generate-credentials/templates/dataset.hbs +75 -0
- package/dist/{gaia-x_compliance/generate-participant-credentials → lib/gaia-x_compliance/generate-credentials}/templates/participant.hbs +5 -1
- package/dist/lib/gaia-x_compliance/generate-credentials/templates/service.hbs +55 -0
- package/dist/lib/publishFromFile.d.ts +2 -0
- package/dist/lib/publishFromFile.js +143 -0
- package/dist/lib/publishFromFile.js.map +1 -0
- package/dist/types/schema.d.ts +2 -0
- package/dist/types/schema.js +8 -0
- package/dist/types/schema.js.map +1 -0
- package/dist/types/schema.json +474 -0
- package/dist/utils/connection.d.ts +13 -0
- package/dist/utils/connection.js +11 -19
- package/dist/utils/connection.js.map +1 -1
- package/oclif.manifest.json +830 -0
- package/package.json +69 -32
- package/dist/aquarius-query/index.js +0 -30
- package/dist/aquarius-query/index.js.map +0 -1
- package/dist/export-key-as-json/index.js +0 -27
- package/dist/export-key-as-json/index.js.map +0 -1
- package/dist/gaia-x_compliance/generate-did-web/index.js +0 -14
- package/dist/gaia-x_compliance/generate-did-web/index.js.map +0 -1
- package/dist/gaia-x_compliance/generate-participant-credentials/index.js +0 -161
- package/dist/gaia-x_compliance/generate-participant-credentials/index.js.map +0 -1
- package/dist/publish/samples/algo/index.js +0 -62
- package/dist/publish/samples/algo/index.js.map +0 -1
- package/dist/publish/samples/basic-predictor/index.js +0 -82
- package/dist/publish/samples/basic-predictor/index.js.map +0 -1
- package/dist/publish/samples/data/index.js +0 -55
- package/dist/publish/samples/data/index.js.map +0 -1
- package/dist/utils/index.js +0 -20
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/package-version.js +0 -22
- package/dist/utils/package-version.js.map +0 -1
- package/dist/utils/publish-script-runner.js +0 -60
- package/dist/utils/publish-script-runner.js.map +0 -1
- /package/dist/{gaia-x_compliance/generate-participant-credentials → lib/gaia-x_compliance/generate-credentials}/templates/lrn-request.hbs +0 -0
- /package/dist/{gaia-x_compliance/generate-participant-credentials → lib/gaia-x_compliance/generate-credentials}/templates/tandc.hbs +0 -0
package/dist/index.js
CHANGED
|
@@ -4,353 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.run = void 0;
|
|
7
8
|
const dotenv_1 = __importDefault(require("dotenv"));
|
|
8
9
|
dotenv_1.default.config();
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const readline_sync_1 = __importDefault(require("readline-sync"));
|
|
12
|
-
const commander_1 = require("commander");
|
|
13
|
-
const export_key_as_json_1 = require("./export-key-as-json");
|
|
14
|
-
const utils_1 = require("./utils");
|
|
15
|
-
const ethereumjs_wallet_1 = __importDefault(require("ethereumjs-wallet"));
|
|
16
|
-
const nautilus_1 = require("@deltadao/nautilus");
|
|
17
|
-
const generate_did_web_1 = require("./gaia-x_compliance/generate-did-web");
|
|
18
|
-
const generate_participant_credentials_1 = require("./gaia-x_compliance/generate-participant-credentials");
|
|
19
|
-
const program = new commander_1.Command();
|
|
20
|
-
program
|
|
21
|
-
.name("pontus-x_cli")
|
|
22
|
-
.version((0, utils_1.packageVersion)())
|
|
23
|
-
.description("CLI for managing the Pontus-X ecosystem");
|
|
24
|
-
program.command("export-private-key")
|
|
25
|
-
.description("Export your private key as a JSON file," +
|
|
26
|
-
" to use latter with the login command or for Pontus-X portals automation")
|
|
27
|
-
.action(() => {
|
|
28
|
-
(0, export_key_as_json_1.exportKeyAsJson)();
|
|
29
|
-
});
|
|
30
|
-
program.command("login <keyFile.json>")
|
|
31
|
-
.description("Login to retrieve your private key from a JSON key store and store it in .env")
|
|
32
|
-
.action((keyFileName) => {
|
|
33
|
-
const keyStore = JSON.parse((0, fs_1.readFileSync)(keyFileName, 'utf8'));
|
|
34
|
-
const password = readline_sync_1.default.question(`Enter the password to decrypt the key file ${keyFileName}: `, { hideEchoBack: true });
|
|
35
|
-
ethereumjs_wallet_1.default.fromV3(keyStore, password).then((wallet) => {
|
|
36
|
-
console.log(`Storing your private key for this session with Pontus-X CLI, do not forget to logout.\n`);
|
|
37
|
-
const envConfig = dotenv_1.default.parse((0, fs_1.readFileSync)('.env', 'utf8'));
|
|
38
|
-
envConfig.PRIVATE_KEY = wallet.getPrivateKeyString();
|
|
39
|
-
const updatedEnvConfig = Object.entries(envConfig)
|
|
40
|
-
.map(([key, value]) => `${key}=${value}`)
|
|
41
|
-
.join('\n');
|
|
42
|
-
(0, fs_1.writeFileSync)('.env', updatedEnvConfig, 'utf8');
|
|
43
|
-
process.exit(0);
|
|
44
|
-
}).catch((error) => {
|
|
45
|
-
console.error(`Error decrypting the key file. ${error}\n`);
|
|
46
|
-
process.exit(1);
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
program.command("logout")
|
|
50
|
-
.description("Logout to remove your private key from .env file")
|
|
51
|
-
.action(() => {
|
|
52
|
-
const envConfig = dotenv_1.default.parse((0, fs_1.readFileSync)('.env', 'utf8'));
|
|
53
|
-
delete envConfig.PRIVATE_KEY;
|
|
54
|
-
const updatedEnvConfig = Object.entries(envConfig)
|
|
55
|
-
.map(([key, value]) => `${key}=${value}`)
|
|
56
|
-
.join('\n');
|
|
57
|
-
(0, fs_1.writeFileSync)('.env', updatedEnvConfig, 'utf8');
|
|
58
|
-
process.exit(0);
|
|
59
|
-
});
|
|
60
|
-
program.command("get <did>")
|
|
61
|
-
.description("Get the available metadata to the asset with the given DID")
|
|
62
|
-
.action(async (did) => {
|
|
63
|
-
console.log(`Retrieving asset metadata for DID: ${did}`);
|
|
64
|
-
const { nautilus } = await utils_1.Connection.connect();
|
|
65
|
-
const aquariusAsset = await nautilus.getAquariusAsset(did);
|
|
66
|
-
console.log(`Asset ${did} metadata: \n\n ${JSON.stringify(aquariusAsset, null, 2)} \n`);
|
|
67
|
-
process.exit(0);
|
|
68
|
-
});
|
|
69
|
-
program.command("access <did>")
|
|
70
|
-
.description("Access an asset that can be downloaded given its DID")
|
|
71
|
-
.action(async (did) => {
|
|
72
|
-
const { nautilus } = await utils_1.Connection.connect();
|
|
73
|
-
console.log(`Getting access to downloadable asset: ${did}`);
|
|
74
|
-
const accessUrl = await nautilus.access({ assetDid: did });
|
|
75
|
-
console.log(`Download URL: ${accessUrl}\n`);
|
|
76
|
-
process.exit(0);
|
|
77
|
-
});
|
|
78
|
-
program.command("revoke <dids...>")
|
|
79
|
-
.description("Publisher revocation of one or more owned DIDs ")
|
|
80
|
-
.action(async (dids) => {
|
|
81
|
-
const connection = await utils_1.Connection.connect();
|
|
82
|
-
if (readline_sync_1.default.keyInYNStrict(`Revoke assets ${dids.join(', ')}? `)) {
|
|
83
|
-
try {
|
|
84
|
-
for (const did of dids) {
|
|
85
|
-
const aquariusAsset = await connection.nautilus.getAquariusAsset(did);
|
|
86
|
-
console.log('Sending transaction to revoke asset...');
|
|
87
|
-
const tx = await connection.nautilus.setAssetLifecycleState(aquariusAsset, nautilus_1.LifecycleStates.REVOKED_BY_PUBLISHER);
|
|
88
|
-
console.log(`Asset revoked, ` +
|
|
89
|
-
`transaction: ${connection.networkConfig.explorerUri}/tx/${tx.transactionHash}\n`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
catch (e) {
|
|
93
|
-
console.error(`Error revoking asset: ${e}`);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
process.exit(0);
|
|
97
|
-
});
|
|
98
|
-
program.command("self-description <did> <sdurl>")
|
|
99
|
-
.description("Associate Gaia-X Self-Description to the asset with the given DID")
|
|
100
|
-
.action(async (did, sdurl) => {
|
|
101
|
-
const connection = await utils_1.Connection.connect();
|
|
102
|
-
if (readline_sync_1.default.keyInYNStrict(`Attach self description at ${sdurl} to asset ${did}? `)) {
|
|
103
|
-
try {
|
|
104
|
-
const aquariusAsset = await connection.nautilus.getAquariusAsset(did);
|
|
105
|
-
const assetBuilder = new nautilus_1.AssetBuilder(aquariusAsset);
|
|
106
|
-
const asset = assetBuilder.addAdditionalInformation({
|
|
107
|
-
"gaiaXInformation": {
|
|
108
|
-
"serviceSD": {
|
|
109
|
-
"url": sdurl,
|
|
110
|
-
"isVerified": true
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}).build();
|
|
114
|
-
const result = await connection.nautilus.edit(asset);
|
|
115
|
-
console.log(`Self-description associated to the asset, ` +
|
|
116
|
-
`transaction: ${connection.networkConfig.explorerUri}/tx/${result.setMetadataTxReceipt.transactionHash}\n`);
|
|
117
|
-
}
|
|
118
|
-
catch (e) {
|
|
119
|
-
console.error(`Error attaching self description: ${e}`);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
process.exit(0);
|
|
123
|
-
});
|
|
124
|
-
program.command("change-price <did> <newPrice>")
|
|
125
|
-
.description("Change the price keeping the existing currency for an asset with the given DID")
|
|
126
|
-
.action(async (did, newPrice) => {
|
|
127
|
-
var _a, _b;
|
|
128
|
-
const connection = await utils_1.Connection.connect();
|
|
129
|
-
const newPriceNumber = parseFloat(newPrice.replace(',', '.'));
|
|
130
|
-
if (readline_sync_1.default.keyInYNStrict(`Set the price to ${newPriceNumber.toString()} for asset ${did}? `)) {
|
|
131
|
-
try {
|
|
132
|
-
const aquariusAsset = await connection.nautilus.getAquariusAsset(did);
|
|
133
|
-
const serviceId = (_b = (_a = aquariusAsset.services) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.id;
|
|
134
|
-
const tx = await connection.nautilus.setServicePrice(aquariusAsset, serviceId, newPriceNumber.toString());
|
|
135
|
-
console.log(`Price updated for asset, ` +
|
|
136
|
-
`transaction: ${connection.networkConfig.explorerUri}/tx/${tx.transactionHash}\n`);
|
|
137
|
-
}
|
|
138
|
-
catch (e) {
|
|
139
|
-
console.error(`Error changing the price: ${e}`);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
process.exit(0);
|
|
143
|
-
});
|
|
144
|
-
program.command("edit-algo <did> <image> <tag> <checksum>")
|
|
145
|
-
.description("Change the container metadata for a given algorithm DID")
|
|
146
|
-
.action(async (did, image, tag, checksum) => {
|
|
147
|
-
const connection = await utils_1.Connection.connect();
|
|
148
|
-
if (readline_sync_1.default.keyInYNStrict(`Change the container metadata for asset ${did}` +
|
|
149
|
-
`to ${image}:${tag} and image checksum ${checksum}? `)) {
|
|
150
|
-
try {
|
|
151
|
-
const aquariusAsset = await connection.nautilus.getAquariusAsset(did);
|
|
152
|
-
const assetBuilder = new nautilus_1.AssetBuilder(aquariusAsset);
|
|
153
|
-
const asset = assetBuilder.setAlgorithm(Object.assign(Object.assign({}, aquariusAsset.metadata.algorithm), { container: Object.assign(Object.assign({}, aquariusAsset.metadata.algorithm.container), { // Start with existing container metadata
|
|
154
|
-
image,
|
|
155
|
-
tag,
|
|
156
|
-
checksum }) })).build();
|
|
157
|
-
const result = await connection.nautilus.edit(asset);
|
|
158
|
-
console.log(`Container metadata updated for the algorithm, ` +
|
|
159
|
-
`transaction: ${connection.networkConfig.explorerUri}/tx/${result.setMetadataTxReceipt.transactionHash}\n`);
|
|
160
|
-
}
|
|
161
|
-
catch (e) {
|
|
162
|
-
console.error(`Error editing container metadata: ${e}`);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
process.exit(0);
|
|
166
|
-
});
|
|
167
|
-
program.command("edit-trusted-algos <did> <algos...>")
|
|
168
|
-
.description("Overwrite the trusted algorithms for a data asset to the provided algorithm DIDs")
|
|
169
|
-
.action(async (did, algos) => {
|
|
170
|
-
const connection = await utils_1.Connection.connect();
|
|
171
|
-
if (readline_sync_1.default.keyInYNStrict(`Changing the trusted algorithms for ${did} ` +
|
|
172
|
-
`to [${algos.join(', ')}]? `)) {
|
|
173
|
-
try {
|
|
174
|
-
const aquariusAsset = await connection.nautilus.getAquariusAsset(did);
|
|
175
|
-
const assetBuilder = new nautilus_1.AssetBuilder(aquariusAsset);
|
|
176
|
-
const serviceBuilder = new nautilus_1.ServiceBuilder({ aquariusAsset, serviceId: aquariusAsset.services[0].id });
|
|
177
|
-
serviceBuilder.addTrustedAlgorithms(algos.map(algo => ({ did: algo })));
|
|
178
|
-
const service = serviceBuilder.build();
|
|
179
|
-
const asset = assetBuilder.addService(service).build();
|
|
180
|
-
const result = await connection.nautilus.edit(asset);
|
|
181
|
-
console.log(`Edited the trusted algorithms, ` +
|
|
182
|
-
`transaction: ${connection.networkConfig.explorerUri}/tx/${result.setMetadataTxReceipt.transactionHash}\n`);
|
|
183
|
-
}
|
|
184
|
-
catch (e) {
|
|
185
|
-
console.error(`Error editing the trusted algorithms: ${e}`);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
process.exit(0);
|
|
189
|
-
});
|
|
190
|
-
program.command("edit-asset-url <did> <url>")
|
|
191
|
-
.description("Change the URL of an asset DID")
|
|
192
|
-
.action(async (did, url) => {
|
|
193
|
-
const connection = await utils_1.Connection.connect();
|
|
194
|
-
if (readline_sync_1.default.keyInYNStrict(`Changing the URL for ${did} ` +
|
|
195
|
-
`to ${url}? `)) {
|
|
196
|
-
try {
|
|
197
|
-
const aquariusAsset = await connection.nautilus.getAquariusAsset(did);
|
|
198
|
-
const assetBuilder = new nautilus_1.AssetBuilder(aquariusAsset);
|
|
199
|
-
const serviceBuilder = new nautilus_1.ServiceBuilder({ aquariusAsset, serviceId: aquariusAsset.services[0].id });
|
|
200
|
-
serviceBuilder.addFile({ type: 'url', url, method: 'GET' });
|
|
201
|
-
const service = serviceBuilder.build();
|
|
202
|
-
const asset = assetBuilder.addService(service).build();
|
|
203
|
-
const result = await connection.nautilus.edit(asset);
|
|
204
|
-
console.log(`Changed asset URL, ` +
|
|
205
|
-
`transaction: ${connection.networkConfig.explorerUri}/tx/${result.setMetadataTxReceipt.transactionHash}\n`);
|
|
206
|
-
}
|
|
207
|
-
catch (e) {
|
|
208
|
-
console.error(`Error changing dataset URL: ${e}`);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
process.exit(0);
|
|
212
|
-
});
|
|
213
|
-
program
|
|
214
|
-
.command("publish <script-folder>")
|
|
215
|
-
.description("Publish the asset as instructed in the provided script, " +
|
|
216
|
-
"for instance the sample scripts in https://github.com/rhizomik/pontus-x_cli/tree/master/src/publish/samples'")
|
|
217
|
-
.requiredOption("-p, --provider <provider>", "The Provider URL")
|
|
218
|
-
.option("--dry-run", "Dry run the publishing process")
|
|
219
|
-
.action(async (scriptFolder, options) => {
|
|
220
|
-
const connection = await utils_1.Connection.connect();
|
|
221
|
-
console.log(`Publishing asset ${scriptFolder} in provider ${options.provider} from wallet ${connection.wallet.address}`);
|
|
222
|
-
try {
|
|
223
|
-
await (0, utils_1.invokeFunctionFromFile)(`${scriptFolder}/index.ts`, 'publish', scriptFolder, connection, options.provider, options.dryRun);
|
|
224
|
-
process.exit(0);
|
|
225
|
-
}
|
|
226
|
-
catch (error) {
|
|
227
|
-
console.error(error);
|
|
228
|
-
process.exit(1);
|
|
229
|
-
}
|
|
230
|
-
});
|
|
231
|
-
program
|
|
232
|
-
.command("compute <algo> <datasets...>")
|
|
233
|
-
.description("Compute the algorith on one or more datasets'")
|
|
234
|
-
.action(async (algo, datasets) => {
|
|
235
|
-
const connection = await utils_1.Connection.connect();
|
|
236
|
-
if (readline_sync_1.default.keyInYNStrict(`Computing algorithm ${algo} ` +
|
|
237
|
-
`on datasets [${datasets.join(', ')}]? `)) {
|
|
238
|
-
try {
|
|
239
|
-
const firstDatasetAsset = await connection.nautilus.getAquariusAsset(datasets[0]);
|
|
240
|
-
const provider = firstDatasetAsset.services[0].serviceEndpoint;
|
|
241
|
-
const dataset = { "did": datasets[0] };
|
|
242
|
-
const algorithm = { "did": algo };
|
|
243
|
-
const additionalDatasets = datasets
|
|
244
|
-
.filter((_, i) => i > 0)
|
|
245
|
-
.map(dataset => ({ "did": dataset }));
|
|
246
|
-
const computeJob = await connection.nautilus.compute({ dataset, algorithm, additionalDatasets });
|
|
247
|
-
console.log(`Compute started, check status using command:\n` +
|
|
248
|
-
`pontus-x_cli compute-status ${computeJob[0].jobId} -p ${provider}\n`);
|
|
249
|
-
}
|
|
250
|
-
catch (e) {
|
|
251
|
-
console.error(`Error starting compute: ${e}`);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
process.exit(0);
|
|
255
|
-
});
|
|
256
|
-
program
|
|
257
|
-
.command("compute-status <jobId>")
|
|
258
|
-
.description("Check compute job status'")
|
|
259
|
-
.requiredOption("-p, --provider <provider>", "The Provider URL")
|
|
260
|
-
.action(async (jobId, options) => {
|
|
261
|
-
const connection = await utils_1.Connection.connect();
|
|
262
|
-
try {
|
|
263
|
-
const computeJobStatus = await connection.nautilus.getComputeStatus({
|
|
264
|
-
jobId, providerUri: options.provider
|
|
265
|
-
});
|
|
266
|
-
console.log(`Compute status: ${computeJobStatus.statusText}\n`);
|
|
267
|
-
if (computeJobStatus.statusText === 'Job finished') {
|
|
268
|
-
console.log(`Get results using command:\n` +
|
|
269
|
-
`pontus-x_cli compute-results ${jobId} -p ${options.provider}\n`);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
catch (e) {
|
|
273
|
-
console.error(`Error starting compute: ${e}`);
|
|
274
|
-
}
|
|
275
|
-
process.exit(0);
|
|
276
|
-
});
|
|
277
|
-
program
|
|
278
|
-
.command("compute-results <jobId>")
|
|
279
|
-
.description("Get the compute job results'")
|
|
280
|
-
.requiredOption("-p, --provider <provider>", "The Provider URL")
|
|
281
|
-
.action(async (jobId, options) => {
|
|
282
|
-
const connection = await utils_1.Connection.connect();
|
|
283
|
-
try {
|
|
284
|
-
const computeResultUrl = await connection.nautilus.getComputeResult({
|
|
285
|
-
jobId, providerUri: options.provider
|
|
286
|
-
});
|
|
287
|
-
if (computeResultUrl)
|
|
288
|
-
console.log(`Compute results available from: ${computeResultUrl}\n`);
|
|
289
|
-
else
|
|
290
|
-
console.log(`No results available yet\n`);
|
|
291
|
-
}
|
|
292
|
-
catch (e) {
|
|
293
|
-
console.error(`Error starting compute: ${e}`);
|
|
294
|
-
}
|
|
295
|
-
process.exit(0);
|
|
296
|
-
});
|
|
297
|
-
program
|
|
298
|
-
.command("generate-did-web")
|
|
299
|
-
.description("Generate a did.json to set up a DID-Web source to publish Gaia-X complaint credentials")
|
|
300
|
-
.requiredOption("-d, --domain <url>", "URL where the DID-Web document will be hosted")
|
|
301
|
-
.requiredOption("-c, --certificate <certificate-chain.crt>", "Path to the file with the certificate chain for the DID domain URL")
|
|
302
|
-
.action(async (options) => {
|
|
303
|
-
try {
|
|
304
|
-
await (0, generate_did_web_1.generateDidWeb)(options.domain, options.certificate);
|
|
305
|
-
process.exit(0);
|
|
306
|
-
}
|
|
307
|
-
catch (error) {
|
|
308
|
-
console.error(error);
|
|
309
|
-
process.exit(1);
|
|
310
|
-
}
|
|
311
|
-
});
|
|
312
|
-
program
|
|
313
|
-
.command("generate-participant-credentials")
|
|
314
|
-
.description("Generate the Gaia-X credentials for the participant including their verifiable presentation and checking its compliance")
|
|
315
|
-
.requiredOption("-p, --participant <participant.data.json>", "Path to the JSON file including the required participant data")
|
|
316
|
-
.requiredOption("-d, --did <did.json>", "Path to the did.json file")
|
|
317
|
-
.requiredOption("-c, --certificate <certificate.key>", "Path to the certificate.key file")
|
|
318
|
-
.action(async (options) => {
|
|
319
|
-
try {
|
|
320
|
-
await (0, generate_participant_credentials_1.generateParticipantCredentials)(options.participant, options.did, options.certificate);
|
|
321
|
-
process.exit(0);
|
|
322
|
-
}
|
|
323
|
-
catch (error) {
|
|
324
|
-
console.error(error);
|
|
325
|
-
process.exit(1);
|
|
326
|
-
}
|
|
327
|
-
});
|
|
328
|
-
program
|
|
329
|
-
.command("check-compliance")
|
|
330
|
-
.description("Use Gaia-X Compliance to check a participant Verifiable Presentation")
|
|
331
|
-
.requiredOption("-p, --participant <participant.data.json>", "Path to the JSON file including the required participant data")
|
|
332
|
-
.requiredOption("--vp <participant.vp.json>", "Path to the participant Verifiable Presentation file")
|
|
333
|
-
.action(async (options) => {
|
|
334
|
-
try {
|
|
335
|
-
await (0, generate_participant_credentials_1.checkCompliance)(options.participant, options.vp);
|
|
336
|
-
process.exit(0);
|
|
337
|
-
}
|
|
338
|
-
catch (error) {
|
|
339
|
-
console.error(error);
|
|
340
|
-
process.exit(1);
|
|
341
|
-
}
|
|
342
|
-
});
|
|
343
|
-
try {
|
|
344
|
-
program.addHelpText('beforeAll', (0, figlet_1.textSync)("Pontus-X CLI", 'Doom'));
|
|
345
|
-
program.parse(process.argv);
|
|
346
|
-
}
|
|
347
|
-
catch (e) {
|
|
348
|
-
if (e instanceof Error) {
|
|
349
|
-
console.error(e.message + '\n');
|
|
350
|
-
}
|
|
351
|
-
else {
|
|
352
|
-
console.error(e);
|
|
353
|
-
}
|
|
354
|
-
process.exit(1);
|
|
355
|
-
}
|
|
10
|
+
var core_1 = require("@oclif/core");
|
|
11
|
+
Object.defineProperty(exports, "run", { enumerable: true, get: function () { return core_1.run; } });
|
|
356
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,oDAA4B;AAC5B,gBAAM,CAAC,MAAM,EAAE,CAAA;AACf,2BAAiD;AACjD,mCAAkC;AAClC,kEAAyC;AACzC,yCAAoC;AACpC,6DAAuD;AACvD,mCAA6E;AAC7E,0EAAuC;AACvC,iDAAmF;AACnF,2EAAsE;AACtE,2GAAuH;AAGvH,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,cAAc,CAAC;KACpB,OAAO,CAAC,IAAA,sBAAc,GAAE,CAAC;KACzB,WAAW,CAAC,yCAAyC,CAAC,CAAC;AAE5D,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC;KAChC,WAAW,CAAC,yCAAyC;IAClD,0EAA0E,CAAC;KAC9E,MAAM,CAAC,GAAG,EAAE;IACT,IAAA,oCAAe,GAAE,CAAC;AACtB,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC;KAClC,WAAW,CAAC,+EAA+E,CAAC;KAC5F,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE;IACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,uBAAY,CAAC,QAAQ,CAAC,8CAA8C,WAAW,IAAI,EAChG,EAAC,YAAY,EAAE,IAAI,EAAC,CAAC,CAAC;IAC1B,2BAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QAC9C,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC;QACvG,MAAM,SAAS,GAAG,gBAAM,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7D,SAAS,CAAC,WAAW,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACrD,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;aAC7C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;aACxC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,IAAA,kBAAa,EAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,KAAK,IAAI,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;KACpB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,GAAG,EAAE;IACT,MAAM,SAAS,GAAG,gBAAM,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,OAAO,SAAS,CAAC,WAAW,CAAC;IAC7B,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;SAC7C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;SACxC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,IAAA,kBAAa,EAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;KACvB,WAAW,CAAC,4DAA4D,CAAC;KACzE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAClB,OAAO,CAAC,GAAG,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;IACzD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kBAAU,CAAC,OAAO,EAAE,CAAC;IAChD,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,mBAAmB,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;KAC1B,WAAW,CAAC,sDAAsD,CAAC;KACnE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAClB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kBAAU,CAAC,OAAO,EAAE,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,yCAAyC,GAAG,EAAE,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,iBAAiB,SAAS,IAAI,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC;KAC9B,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,KAAK,EAAE,IAAc,EAAE,EAAE;IAC7B,MAAM,UAAU,GAAG,MAAM,kBAAU,CAAC,OAAO,EAAE,CAAC;IAC9C,IAAI,uBAAY,CAAC,aAAa,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,IAAI,CAAC;YACD,KAAI,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACpB,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACtE,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;gBACtD,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC,aAAa,EACrE,0BAAe,CAAC,oBAAoB,CAAC,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,iBAAiB;oBACzB,gBAAgB,UAAU,CAAC,aAAa,CAAC,WAAW,OAAO,EAAE,CAAC,eAAe,IAAI,CAAC,CAAC;YAC3F,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,OAAO,CAAC,gCAAgC,CAAC;KAC5C,WAAW,CAAC,mEAAmE,CAAC;KAChF,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACzB,MAAM,UAAU,GAAG,MAAM,kBAAU,CAAC,OAAO,EAAE,CAAC;IAC9C,IAAI,uBAAY,CAAC,aAAa,CAAC,8BAA8B,KAAK,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC;QACtF,IAAI,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACtE,MAAM,YAAY,GAAG,IAAI,uBAAY,CAAC,aAAa,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,YAAY,CAAC,wBAAwB,CAAC;gBAChD,kBAAkB,EAAE;oBAChB,WAAW,EAAE;wBACT,KAAK,EAAE,KAAK;wBACZ,YAAY,EAAE,IAAI;qBACrB;iBACJ;aACJ,CAAC,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,4CAA4C;gBACpD,gBAAgB,UAAU,CAAC,aAAa,CAAC,WAAW,OAAO,MAAM,CAAC,oBAAoB,CAAC,eAAe,IAAI,CAAC,CAAC;QACpH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,OAAO,CAAC,+BAA+B,CAAC;KAC3C,WAAW,CAAC,gFAAgF,CAAC;KAC7F,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;;IAC5B,MAAM,UAAU,GAAG,MAAM,kBAAU,CAAC,OAAO,EAAE,CAAC;IAC9C,MAAM,cAAc,GAAW,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACtE,IAAI,uBAAY,CAAC,aAAa,CAAC,oBAAoB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC;QACjG,IAAI,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,MAAA,MAAA,aAAa,CAAC,QAAQ,0CAAG,CAAC,CAAC,0CAAE,EAAE,CAAA;YACjD,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa,EAAE,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1G,OAAO,CAAC,GAAG,CAAC,2BAA2B;gBACnC,gBAAgB,UAAU,CAAC,aAAa,CAAC,WAAW,OAAO,EAAE,CAAC,eAAe,IAAI,CAAC,CAAC;QAC3F,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,OAAO,CAAC,0CAA0C,CAAC;KACtD,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;IACxC,MAAM,UAAU,GAAG,MAAM,kBAAU,CAAC,OAAO,EAAE,CAAC;IAC9C,IAAI,uBAAY,CAAC,aAAa,CAAC,2CAA2C,GAAG,EAAE;QAC3E,MAAM,KAAK,IAAI,GAAG,uBAAuB,QAAQ,IAAI,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACtE,MAAM,YAAY,GAAG,IAAI,uBAAY,CAAC,aAAa,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,iCAChC,aAAa,CAAC,QAAQ,CAAC,SAAS,KACnC,SAAS,kCAEF,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,KAAE,yCAAyC;oBACxF,KAAK;oBACL,GAAG;oBACH,QAAQ,OAEd,CAAC,KAAK,EAAE,CAAA;YACV,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,gDAAgD;gBACxD,gBAAgB,UAAU,CAAC,aAAa,CAAC,WAAW,OAAO,MAAM,CAAC,oBAAoB,CAAC,eAAe,IAAI,CAAC,CAAC;QACpH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC;KACjD,WAAW,CAAC,kFAAkF,CAAC;KAC/F,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAe,EAAE,EAAE;IACnC,MAAM,UAAU,GAAG,MAAM,kBAAU,CAAC,OAAO,EAAE,CAAC;IAC9C,IAAI,uBAAY,CAAC,aAAa,CAAC,uCAAuC,GAAG,GAAG;QACxE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACtE,MAAM,YAAY,GAAG,IAAI,uBAAY,CAAC,aAAa,CAAC,CAAC;YACrD,MAAM,cAAc,GAChB,IAAI,yBAAc,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnF,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACxE,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,iCAAiC;gBACzC,gBAAgB,UAAU,CAAC,aAAa,CAAC,WAAW,OAAO,MAAM,CAAC,oBAAoB,CAAC,eAAe,IAAI,CAAC,CAAC;QACpH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;IACL,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC;KACxC,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IACvB,MAAM,UAAU,GAAG,MAAM,kBAAU,CAAC,OAAO,EAAE,CAAC;IAC9C,IAAI,uBAAY,CAAC,aAAa,CAAC,wBAAwB,GAAG,GAAG;QACzD,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QACjB,IAAI,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACtE,MAAM,YAAY,GAAG,IAAI,uBAAY,CAAC,aAAa,CAAC,CAAC;YACrD,MAAM,cAAc,GAChB,IAAI,yBAAc,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnF,cAAc,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,qBAAqB;gBAC7B,gBAAgB,UAAU,CAAC,aAAa,CAAC,WAAW,OAAO,MAAM,CAAC,oBAAoB,CAAC,eAAe,IAAI,CAAC,CAAC;QACpH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,yBAAyB,CAAC;KAClC,WAAW,CAAC,0DAA0D;IACnE,8GAA8G,CAAC;KAClH,cAAc,CAAC,2BAA2B,EAAE,kBAAkB,CAAC;KAC/D,MAAM,CAAC,WAAW,EAAE,gCAAgC,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE;IACpC,MAAM,UAAU,GAAG,MAAM,kBAAU,CAAC,OAAO,EAAE,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,oBAAoB,YAAY,gBAAgB,OAAO,CAAC,QAAQ,gBAAgB,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACzH,IAAI,CAAC;QACD,MAAM,IAAA,8BAAsB,EAAC,GAAG,YAAY,WAAW,EAAE,SAAS,EAC9D,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,8BAA8B,CAAC;KACvC,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,QAAkB,EAAE,EAAE;IAC/C,MAAM,UAAU,GAAG,MAAM,kBAAU,CAAC,OAAO,EAAE,CAAC;IAC9C,IAAI,uBAAY,CAAC,aAAa,CAAC,uBAAuB,IAAI,GAAG;QACzD,gBAAgB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC;YACD,MAAM,iBAAiB,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAClF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YAC/D,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAClC,MAAM,kBAAkB,GAAG,QAAQ;iBAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;iBACvB,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAE,CAAC;YAC3C,MAAM,UAAU,GACZ,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAiB,CAAC;YAClG,OAAO,CAAC,GAAG,CAAC,gDAAgD;gBACxD,+BAA+B,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,QAAQ,IAAI,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,wBAAwB,CAAC;KACjC,WAAW,CAAC,2BAA2B,CAAC;KACxC,cAAc,CAAC,2BAA2B,EAAE,kBAAkB,CAAC;KAC/D,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAO,EAAE,EAAE;IACrC,MAAM,UAAU,GAAG,MAAM,kBAAU,CAAC,OAAO,EAAE,CAAC;IAC9C,IAAI,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAChE,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,QAAQ;SACvC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,mBAAmB,gBAAgB,CAAC,UAAU,IAAI,CAAC,CAAC;QAChE,IAAI,gBAAgB,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,8BAA8B;gBACtC,gCAAgC,KAAK,OAAO,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;QAC1E,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,yBAAyB,CAAC;KAClC,WAAW,CAAC,8BAA8B,CAAC;KAC3C,cAAc,CAAC,2BAA2B,EAAE,kBAAkB,CAAC;KAC/D,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAO,EAAE,EAAE;IACrC,MAAM,UAAU,GAAG,MAAM,kBAAU,CAAC,OAAO,EAAE,CAAC;IAC9C,IAAI,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAChE,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,QAAQ;SACvC,CAAC,CAAC;QACH,IAAI,gBAAgB;YACjB,OAAO,CAAC,GAAG,CAAC,mCAAmC,gBAAgB,IAAI,CAAC,CAAC;;YAEpE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,wFAAwF,CAAC;KACrG,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;KACrF,cAAc,CAAC,2CAA2C,EAAE,oEAAoE,CAAC;KACjI,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,IAAI,CAAC;QACD,MAAM,IAAA,iCAAc,EAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,kCAAkC,CAAC;KAC3C,WAAW,CAAC,yHAAyH,CAAC;KACtI,cAAc,CAAC,2CAA2C,EAAE,+DAA+D,CAAC;KAC5H,cAAc,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;KACnE,cAAc,CAAC,qCAAqC,EAAE,kCAAkC,CAAC;KACzF,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,IAAI,CAAC;QACD,MAAM,IAAA,iEAA8B,EAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAC5F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,sEAAsE,CAAC;KACnF,cAAc,CAAC,2CAA2C,EAAE,+DAA+D,CAAC;KAC5H,cAAc,CAAC,4BAA4B,EAAE,sDAAsD,CAAC;KACpG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,IAAI,CAAC;QACD,MAAM,IAAA,kDAAe,EAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,IAAI,CAAC;IACD,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,IAAA,iBAAQ,EAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACT,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACpB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;AACA,oDAA2B;AAE3B,gBAAM,CAAC,MAAM,EAAE,CAAA;AAEf,oCAA+B;AAAvB,2FAAA,GAAG,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function generateCredentials(participantDataFile: string, didjsonFile: string, certificateKeyFile: string, password: string, ddo?: any): Promise<void>;
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.generateCredentials = generateCredentials;
|
|
40
|
+
const json_web_signature_2020_1 = require("@gaia-x/json-web-signature-2020");
|
|
41
|
+
const axios_1 = __importDefault(require("axios"));
|
|
42
|
+
const Handlebars = __importStar(require("handlebars"));
|
|
43
|
+
const node_crypto_1 = require("node:crypto");
|
|
44
|
+
const node_fs_1 = require("node:fs");
|
|
45
|
+
const node_path_1 = require("node:path");
|
|
46
|
+
function generateSignedDocument(data, templateFile, signer) {
|
|
47
|
+
const fileContent = (0, node_fs_1.readFileSync)((0, node_path_1.resolve)(__dirname, 'templates', templateFile), 'utf8');
|
|
48
|
+
const template = Handlebars.compile(fileContent, { noEscape: true });
|
|
49
|
+
const document = JSON.parse(template(data));
|
|
50
|
+
return signer.sign(document);
|
|
51
|
+
}
|
|
52
|
+
async function generateParticipantVC(data, signer) {
|
|
53
|
+
console.log(__dirname);
|
|
54
|
+
const participantVCSigned = await generateSignedDocument(data, 'participant.hbs', signer);
|
|
55
|
+
console.log(`Verifiable Credential for participant ${data.participant_legal_name} successfully generated`);
|
|
56
|
+
return participantVCSigned;
|
|
57
|
+
}
|
|
58
|
+
async function generateParticipantTandCVC(data, signer) {
|
|
59
|
+
const tandcVCSigned = await generateSignedDocument(data, 'tandc.hbs', signer);
|
|
60
|
+
console.log(`Signed Terms and Conditions for ${data.participant_legal_name} successfully generated`);
|
|
61
|
+
return tandcVCSigned;
|
|
62
|
+
}
|
|
63
|
+
async function generateParticipantLNRVC(data) {
|
|
64
|
+
var _a;
|
|
65
|
+
const notaryService = 'https://gx-notary.arsys.es/v1/registrationNumberVC';
|
|
66
|
+
const fileContent = (0, node_fs_1.readFileSync)((0, node_path_1.resolve)(__dirname, 'templates', 'lrn-request.hbs'), 'utf8');
|
|
67
|
+
const lnrRequestTemplate = Handlebars.compile(fileContent);
|
|
68
|
+
const lnrRequest = lnrRequestTemplate(data);
|
|
69
|
+
try {
|
|
70
|
+
const response = await axios_1.default.post(`${notaryService}?vcid=https://${data.issuer_domain}/.well-known/${data.participant_name}.vp.json%23lrn`, JSON.parse(lnrRequest));
|
|
71
|
+
if (response.status === 200) {
|
|
72
|
+
console.log(`Verifiable Credential for ${data.participant_legal_name} Legal Registration Number` +
|
|
73
|
+
` successfully generated`);
|
|
74
|
+
return response.data;
|
|
75
|
+
}
|
|
76
|
+
console.error(`Error generating Legal Registration Number for ${data.participant_legal_name}`);
|
|
77
|
+
console.error(response === null || response === void 0 ? void 0 : response.data);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
console.error(`Error generating Legal Registration Number for ${data.participant_legal_name}`);
|
|
81
|
+
console.error((_a = error.response) === null || _a === void 0 ? void 0 : _a.data);
|
|
82
|
+
}
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
function generateParticipantVP(participantVC, tandcVC, lrnVC, folder, data) {
|
|
86
|
+
const vp = {
|
|
87
|
+
'@context': 'https://www.w3.org/2018/credentials/v1',
|
|
88
|
+
type: 'VerifiablePresentation',
|
|
89
|
+
verifiableCredential: [participantVC, lrnVC, tandcVC],
|
|
90
|
+
};
|
|
91
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.resolve)(folder, data.participant_name + '.vp.json'), JSON.stringify(vp, null, 2), 'utf8');
|
|
92
|
+
console.log(`Verifiable Presentation of the credentials for ${data.participant_legal_name} ` +
|
|
93
|
+
`generated and stored in ${data.participant_name}.vp.json`);
|
|
94
|
+
}
|
|
95
|
+
function generateAssetVP(participantVC, tandcVC, lrnVC, assetVC, folder, data, ddo) {
|
|
96
|
+
const assetData = extractAssetFromDDO(ddo);
|
|
97
|
+
const vp = {
|
|
98
|
+
'@context': 'https://www.w3.org/2018/credentials/v1',
|
|
99
|
+
type: 'VerifiablePresentation',
|
|
100
|
+
verifiableCredential: [participantVC, lrnVC, tandcVC, assetVC],
|
|
101
|
+
};
|
|
102
|
+
const dirPath = folder + '/' + data.participant_name;
|
|
103
|
+
if (!(0, node_fs_1.existsSync)(dirPath)) {
|
|
104
|
+
(0, node_fs_1.mkdirSync)(dirPath, { recursive: true });
|
|
105
|
+
}
|
|
106
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.resolve)(dirPath, `${ddo.datatokens[0].symbol}_${assetData.network}.vp.json`), JSON.stringify(vp, null, 2), 'utf8');
|
|
107
|
+
console.log(`Verifiable Presentation of the credentials for ${ddo.metadata.name} ` +
|
|
108
|
+
`generated and stored in ${data.participant_name}/${ddo.datatokens[0].symbol}_${assetData.network}.vp.json`);
|
|
109
|
+
}
|
|
110
|
+
function extractAssetFromDDO(ddo) {
|
|
111
|
+
var _a;
|
|
112
|
+
return {
|
|
113
|
+
chainId: ddo.chainId,
|
|
114
|
+
containsPII: ((_a = ddo.metadata.additionalInformation) === null || _a === void 0 ? void 0 : _a.containsPII) || false,
|
|
115
|
+
did: ddo.id,
|
|
116
|
+
license: ddo.metadata.license,
|
|
117
|
+
network: ddo.chainId === 32456 ? 'devnet' : 'testnet',
|
|
118
|
+
nftAddress: ddo.nftAddress,
|
|
119
|
+
ownerAccount: ddo.nft.owner,
|
|
120
|
+
serviceDescription: JSON.stringify(ddo.metadata.description).slice(1, -1),
|
|
121
|
+
serviceEndpoint: ddo.services[0].serviceEndpoint,
|
|
122
|
+
serviceName: ddo.metadata.name,
|
|
123
|
+
servicePrice: ddo.stats.price.value,
|
|
124
|
+
serviceTimeout: ddo.services[0].timeout === 0 ? 'unlimited' : ddo.services[0].timeout,
|
|
125
|
+
serviceType: ddo.services[0].type,
|
|
126
|
+
tokenAddress: ddo.datatokens[0].address,
|
|
127
|
+
tokenName: ddo.datatokens[0].name,
|
|
128
|
+
tokenSymbol: ddo.datatokens[0].symbol,
|
|
129
|
+
type: ddo.metadata.type,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
async function generateAssetVC(ddo, participantData, signer) {
|
|
133
|
+
if (!ddo)
|
|
134
|
+
return null;
|
|
135
|
+
const assetData = extractAssetFromDDO(ddo);
|
|
136
|
+
const templateFile = assetData.type === 'dataset' ? 'dataset.hbs' : 'service.hbs';
|
|
137
|
+
const assetVCSigned = await generateSignedDocument(Object.assign(Object.assign({}, assetData), participantData), templateFile, signer);
|
|
138
|
+
console.log(`Verifiable Credential for asset ${assetData.serviceName} successfully generated`);
|
|
139
|
+
return assetVCSigned;
|
|
140
|
+
}
|
|
141
|
+
async function generateCredentials(participantDataFile, didjsonFile, certificateKeyFile, password, ddo) {
|
|
142
|
+
var _a;
|
|
143
|
+
const folder = (0, node_path_1.dirname)(participantDataFile);
|
|
144
|
+
const participantData = JSON.parse((0, node_fs_1.readFileSync)(participantDataFile, 'utf8'));
|
|
145
|
+
participantData.issuance_date = new Date().toISOString();
|
|
146
|
+
const didJson = JSON.parse((0, node_fs_1.readFileSync)(didjsonFile, 'utf8'));
|
|
147
|
+
participantData.issuer_domain = didJson.id.slice(Math.max(0, didJson.id.lastIndexOf(':') + 1));
|
|
148
|
+
console.log(`Asset DDO: ${ddo ? JSON.stringify(ddo, null, 2) : 'N/A'}`);
|
|
149
|
+
console.log(`Generating Gaia-X credentials for ` + ddo
|
|
150
|
+
? `asset ${(_a = ddo === null || ddo === void 0 ? void 0 : ddo.metadata) === null || _a === void 0 ? void 0 : _a.name}`
|
|
151
|
+
: `participant ${participantData.participant_legal_name} with issuer ${participantData.issuer_domain}`);
|
|
152
|
+
const pkcs1 = (0, node_fs_1.readFileSync)(certificateKeyFile, 'utf8');
|
|
153
|
+
const key = (0, node_crypto_1.createPrivateKey)({ key: pkcs1, passphrase: password });
|
|
154
|
+
const signer = new json_web_signature_2020_1.GaiaXSignatureSigner({
|
|
155
|
+
privateKey: key,
|
|
156
|
+
privateKeyAlg: didJson.verificationMethod[0].publicKeyJwk.alg,
|
|
157
|
+
verificationMethod: didJson.verificationMethod[0].id,
|
|
158
|
+
});
|
|
159
|
+
await Promise.all([
|
|
160
|
+
generateParticipantVC(participantData, signer),
|
|
161
|
+
generateParticipantTandCVC(participantData, signer),
|
|
162
|
+
generateParticipantLNRVC(participantData),
|
|
163
|
+
generateAssetVC(ddo, participantData, signer),
|
|
164
|
+
]).then(([participantVC, tandcVC, lrnVC, assetVC]) => {
|
|
165
|
+
if (participantVC && tandcVC && lrnVC && assetVC) {
|
|
166
|
+
generateAssetVP(participantVC, tandcVC, lrnVC, assetVC, folder, participantData, ddo);
|
|
167
|
+
}
|
|
168
|
+
else if (participantVC && tandcVC && lrnVC) {
|
|
169
|
+
generateParticipantVP(participantVC, tandcVC, lrnVC, folder, participantData);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
console.error('Error with one of the credentials, therefore the Verifiable Presentation was not generated');
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/gaia-x_compliance/generate-credentials/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@context": [
|
|
3
|
+
"https://www.w3.org/2018/credentials/v1",
|
|
4
|
+
"https://w3id.org/security/suites/jws-2020/v1",
|
|
5
|
+
"https://registry.lab.gaia-x.eu/development/api/trusted-shape-registry/v1/shapes/jsonld/trustframework#",
|
|
6
|
+
{
|
|
7
|
+
"pontus-x": "https://pontus-x.eu/vocabulary/"
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
"id": "https://{{ issuer_domain }}/.well-known/{{ participant_name }}/{{ token_symbol }}_{{ network }}.vp.json",
|
|
11
|
+
"type": "VerifiableCredential",
|
|
12
|
+
"issuer": "did:web:{{ issuer_domain }}",
|
|
13
|
+
"issuanceDate": "{{ issuance_date }}",
|
|
14
|
+
"credentialSubject": {
|
|
15
|
+
"id": "{{ did }}",
|
|
16
|
+
"type": "gx:ServiceOffering",
|
|
17
|
+
"gx:providedBy": {
|
|
18
|
+
"id": "{{ participant_uri }}"
|
|
19
|
+
},
|
|
20
|
+
"gx:name": "{{ service_name }}",
|
|
21
|
+
"gx:description": "{{ service_description }}",
|
|
22
|
+
"gx:dataProtectionRegime": ["GDPR2016"],
|
|
23
|
+
"gx:termsAndConditions": {
|
|
24
|
+
"gx:URL": "https://portal.agrospai.udl.cat/privacy/en",
|
|
25
|
+
"gx:hash": "2277e2ce08030a6ba9c106be999dbec8f4fe7cd8073ee0bd9811c7a7c035fe2b"
|
|
26
|
+
},
|
|
27
|
+
"gx:dataAccountExport": {
|
|
28
|
+
"gx:requestType": "email",
|
|
29
|
+
"gx:accessType": "digital",
|
|
30
|
+
"gx:formatType": "text/html"
|
|
31
|
+
},
|
|
32
|
+
"gx:policy": "{'@type':'odrl:Policy','odrl:permission':{'odrl:action':'pontus-x:{{ service_type }}','odrl:constraint':{'odrl:leftOperand':'odrl:elapsedTime','odrl:operator':'odrl:eq','odrl:rightOperand':'{{ service_timeout }}'},'odrl:duty':{'odrl:action':'odrl:compensate','odrl:constraint':{'odrl:leftOperand':'odrl:amount','odrl:operator':'odrl:eq','odrl:rightOperand':{{ service_price }},'odrl:unit':'currency:EUR'}},'odrl:target':'{{ did }}'} }",
|
|
33
|
+
{{!-- "gx:aggregationOf": [ --}}
|
|
34
|
+
{{!-- { --}}
|
|
35
|
+
{{!-- "id": "{{ did }}#dataset", --}}
|
|
36
|
+
{{!-- "type": "gx:DataResource", --}}
|
|
37
|
+
{{!-- "gx:producedBy": { --}}
|
|
38
|
+
{{!-- "id": "{{ participant_uri }}" --}}
|
|
39
|
+
{{!-- }, --}}
|
|
40
|
+
{{!-- "gx:copyrightOwnedBy": { --}}
|
|
41
|
+
{{!-- "id": "{{ participant_uri }}" --}}
|
|
42
|
+
{{!-- }, --}}
|
|
43
|
+
{{!-- "gx:name": "{{ service_name }} (Data Resource)", --}}
|
|
44
|
+
{{!-- "gx:description": "Data resource for {{ service_name }}", --}}
|
|
45
|
+
{{!-- "gx:exposedThrough": { --}}
|
|
46
|
+
{{!-- "id": "{{ did }}" --}}
|
|
47
|
+
{{!-- }, --}}
|
|
48
|
+
{{!-- "gx:policy": "{'@type':'odrl:Policy','odrl:permission':{'odrl:action':'pontus-x:{{ service_type }}','odrl:constraint':{'odrl:leftOperand':'odrl:elapsedTime','odrl:operator':'odrl:eq','odrl:rightOperand':'{{ service_timeout }}'},'odrl:duty':{'odrl:action':'odrl:compensate','odrl:constraint':{'odrl:leftOperand':'odrl:amount','odrl:operator':'odrl:eq','odrl:rightOperand':{{ service_price }},'odrl:unit':'currency:EUR'}},'odrl:target':'{{ did }}'} }", --}}
|
|
49
|
+
{{!-- "gx:license": "{{ license }}", --}}
|
|
50
|
+
{{!-- "gx:containsPII": {{ contains_PII }} --}}
|
|
51
|
+
{{!-- } --}}
|
|
52
|
+
{{!-- ], --}}
|
|
53
|
+
"pontus-x:ownerBlockchainAccountId": "{{ owner_account }}",
|
|
54
|
+
"pontus-x:type": "{{ service_type }}",
|
|
55
|
+
"pontus-x:webAddress": "https://portal.agrospai.udl.cat/asset/{{ did }}",
|
|
56
|
+
"pontus-x:blockchainNetwork": [
|
|
57
|
+
{
|
|
58
|
+
"gx:blockchainName": "{{ network }}",
|
|
59
|
+
"gx:blockchainId": "{{ chain_id }}"
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"pontus-x:serviceModel": "subscription",
|
|
63
|
+
"pontus-x:subscriptionDuration": "{{ service_timeout }}",
|
|
64
|
+
"pontus-x:settlement": [
|
|
65
|
+
{
|
|
66
|
+
"pontus-x:currencyAmount": "{{ service_price }}"
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"pontus-x:nftAddress": "{{ nft_address }}",
|
|
70
|
+
"pontus-x:accessTokenName": "{{ token_name}}",
|
|
71
|
+
"pontus-x:accessTokenSymbol": "{{ token_symbol }}",
|
|
72
|
+
"pontus-x:accessTokenAddress": "{{ token_address }}",
|
|
73
|
+
"pontus-x:serviceEndpoint": "{{ service_endpoint }}"
|
|
74
|
+
}
|
|
75
|
+
}
|