@affinidi/cli 2.9.0 → 2.10.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.
@@ -12,7 +12,7 @@ export class DeleteIotaConfig extends BaseCommand {
12
12
  id: z.string().max(INPUT_LIMIT),
13
13
  });
14
14
  const validatedFlags = schema.parse(promptFlags);
15
- ux.action.start('Deleting Affinidi Iota Framework configurations');
15
+ ux.action.start('Deleting Affinidi Iota Framework configuration');
16
16
  await iotaService.deleteIotaConfigById(validatedFlags.id);
17
17
  ux.action.stop('Deleted successfully!');
18
18
  if (!this.jsonEnabled())
@@ -1 +1 @@
1
- {"version":3,"file":"delete-config.js","sourceRoot":"","sources":["../../../src/commands/iota/delete-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAA;AAErE,MAAM,OAAO,gBAAiB,SAAQ,WAAoC;IAajE,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACpD,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;QAEjE,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YACtB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;SAChC,CAAC,CAAA;QACF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAEhD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAA;QAClE,MAAM,WAAW,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;QACzD,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAEvC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAA;QAChE,OAAO,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,CAAA;IAClC,CAAC;;AA3BM,wBAAO,GAAG,wEAAwE,CAAA;AAClF,yBAAQ,GAAG;IAChB,gDAAgD;IAChD,kDAAkD;CACnD,CAAA;AACM,sBAAK,GAAG;IACb,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,iDAAiD;KAC3D,CAAC;CACH,CAAA"}
1
+ {"version":3,"file":"delete-config.js","sourceRoot":"","sources":["../../../src/commands/iota/delete-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAA;AAErE,MAAM,OAAO,gBAAiB,SAAQ,WAAoC;IAajE,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACpD,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;QAEjE,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YACtB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;SAChC,CAAC,CAAA;QACF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAEhD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAA;QACjE,MAAM,WAAW,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;QACzD,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAEvC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAA;QAChE,OAAO,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,CAAA;IAClC,CAAC;;AA3BM,wBAAO,GAAG,wEAAwE,CAAA;AAClF,yBAAQ,GAAG;IAChB,gDAAgD;IAChD,kDAAkD;CACnD,CAAA;AACM,sBAAK,GAAG;IACb,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,iDAAiD;KAC3D,CAAC;CACH,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { IssuanceConfigDto } from '@affinidi-tdk/credential-issuance-client';
2
+ import { BaseCommand } from '../../common/base-command.js';
3
+ export declare class CreateIssuanceConfig extends BaseCommand<typeof CreateIssuanceConfig> {
4
+ static summary: string;
5
+ static examples: string[];
6
+ static flags: {
7
+ name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ 'wallet-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
+ 'credential-offer-duration': import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ file: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ };
13
+ run(): Promise<IssuanceConfigDto>;
14
+ }
@@ -0,0 +1,146 @@
1
+ import { readFile } from 'fs/promises';
2
+ import { input, select } from '@inquirer/prompts';
3
+ import { ux, Flags } from '@oclif/core';
4
+ import { CLIError } from '@oclif/core/errors';
5
+ import z from 'zod';
6
+ import { BaseCommand } from '../../common/base-command.js';
7
+ import { DidMethods } from '../../common/constants.js';
8
+ import { promptRequiredParameters } from '../../common/prompts.js';
9
+ import { INPUT_LIMIT, validateInputLength } from '../../common/validators.js';
10
+ import { issuanceService } from '../../services/affinidi/cis/service.js';
11
+ import { cweService } from '../../services/affinidi/cwe/service.js';
12
+ export class CreateIssuanceConfig extends BaseCommand {
13
+ async run() {
14
+ const { flags } = await this.parse(CreateIssuanceConfig);
15
+ const promptFlags = await promptRequiredParameters(['wallet-id', 'name', 'file'], flags);
16
+ const flagsSchema = z.object({
17
+ 'wallet-id': z.string().max(INPUT_LIMIT),
18
+ name: z.string().min(3).max(INPUT_LIMIT),
19
+ description: z.string().max(INPUT_LIMIT).optional(),
20
+ 'credential-offer-duration': z.number().optional(),
21
+ file: z.string(),
22
+ });
23
+ const validatedFlags = flagsSchema.parse(promptFlags);
24
+ ux.action.start('Fetching wallets');
25
+ const { wallets } = await cweService.listWallets();
26
+ ux.action.stop('Fetched successfully!');
27
+ let issuerWalletId = validatedFlags['wallet-id'];
28
+ const walletIds = wallets?.map((wallet) => wallet.id) || [];
29
+ const wrongAriProvided = !walletIds.includes(issuerWalletId);
30
+ if (!issuerWalletId || wallets?.length === 0 || wrongAriProvided) {
31
+ const walletChoices = wallets?.map((wallet) => ({
32
+ name: wallet.name || wallet.id,
33
+ value: wallet.id,
34
+ })) || [];
35
+ const CREATE_NEW_WALLET = 'Create new wallet';
36
+ walletChoices.push({ name: CREATE_NEW_WALLET, value: CREATE_NEW_WALLET });
37
+ const selectedWallet = await select({
38
+ message: 'Select the wallet used for signing credentials that will be issued',
39
+ choices: walletChoices,
40
+ });
41
+ if (selectedWallet === CREATE_NEW_WALLET) {
42
+ const walletDidMethodChoices = Object.values(DidMethods).map((method) => ({
43
+ name: method,
44
+ value: method,
45
+ default: DidMethods.KEY,
46
+ }));
47
+ const name = validateInputLength(await input({ message: 'Enter wallet name' }), INPUT_LIMIT);
48
+ const description = validateInputLength(await input({ message: 'Enter wallet description (optional)' }), INPUT_LIMIT);
49
+ const didMethod = await select({ message: 'Select DID method of wallet', choices: walletDidMethodChoices });
50
+ const isDidWeb = didMethod === DidMethods.WEB;
51
+ const didWebUrl = isDidWeb
52
+ ? validateInputLength(await input({ message: 'Enter did:web URL (your applications domain)' }), INPUT_LIMIT)
53
+ : undefined;
54
+ const newWalletData = {
55
+ name,
56
+ description,
57
+ didMethod,
58
+ ...(isDidWeb && { didWebUrl }),
59
+ };
60
+ const walletSchema = z
61
+ .object({
62
+ name: z.string().min(3).max(INPUT_LIMIT).optional(),
63
+ description: z.string().max(INPUT_LIMIT).optional(),
64
+ didMethod: z.nativeEnum(DidMethods).optional(),
65
+ didWebUrl: z.string().min(3).max(INPUT_LIMIT).optional(),
66
+ })
67
+ .refine((wallet) => {
68
+ if (wallet.didMethod === DidMethods.WEB && !wallet.didWebUrl) {
69
+ return false;
70
+ }
71
+ return true;
72
+ });
73
+ const createWalletInput = walletSchema.parse(newWalletData);
74
+ ux.action.start('Creating wallet');
75
+ const output = await cweService.createWallet(createWalletInput);
76
+ ux.action.stop('Created successfully!');
77
+ issuerWalletId = output.wallet?.id || '';
78
+ }
79
+ else {
80
+ issuerWalletId = selectedWallet || '';
81
+ }
82
+ }
83
+ let credentialSupported;
84
+ try {
85
+ const rawData = await readFile(validatedFlags.file, 'utf8');
86
+ credentialSupported = JSON.parse(rawData);
87
+ }
88
+ catch (error) {
89
+ throw new CLIError(`Provided file is not a valid JSON\n${error.message}`);
90
+ }
91
+ const data = {
92
+ name: flags.name ??
93
+ validateInputLength(await input({ message: 'Enter credential issuance configuration name' }), INPUT_LIMIT),
94
+ description: flags.description ?? '',
95
+ issuerWalletId,
96
+ credentialOfferDuration: flags['credential-offer-duration'] ?? undefined,
97
+ credentialSupported: credentialSupported ?? [],
98
+ };
99
+ const credentialSupportedSchema = z.object({
100
+ credentialTypeId: z.string(),
101
+ jsonSchemaUrl: z.string(),
102
+ jsonLdContextUrl: z.string(),
103
+ });
104
+ const schema = z.object({
105
+ name: z.string().min(3).max(INPUT_LIMIT),
106
+ issuerWalletId: z.string().min(1).max(INPUT_LIMIT),
107
+ description: z.string().max(INPUT_LIMIT).optional(),
108
+ credentialOfferDuration: z.number().min(1).optional(),
109
+ credentialSupported: z.array(credentialSupportedSchema),
110
+ });
111
+ const configInput = schema.parse(data);
112
+ ux.action.start('Creating credential issuance configuration');
113
+ const output = await issuanceService.createIssuanceConfig(configInput);
114
+ ux.action.stop('Created successfully!');
115
+ if (!this.jsonEnabled())
116
+ this.logJson(output);
117
+ return output;
118
+ }
119
+ }
120
+ CreateIssuanceConfig.summary = 'Creates credential issuance configuration in your active project';
121
+ CreateIssuanceConfig.examples = [
122
+ '<%= config.bin %> <%= command.id %> -n <value> -w <value> -f credentialSchemas.json',
123
+ '<%= config.bin %> <%= command.id %> --name <value> --wallet-id <value> --description <value> --credential-offer-duration <value> --file credentialSchemas.json',
124
+ ];
125
+ CreateIssuanceConfig.flags = {
126
+ name: Flags.string({
127
+ char: 'n',
128
+ summary: 'Name of the credential issuance configuration',
129
+ }),
130
+ description: Flags.string({
131
+ char: 'd',
132
+ summary: 'Description of the credential issuance configuration',
133
+ }),
134
+ 'wallet-id': Flags.string({
135
+ char: 'w',
136
+ summary: 'ID of the wallet',
137
+ }),
138
+ 'credential-offer-duration': Flags.integer({
139
+ summary: 'Credential offer duration in seconds',
140
+ }),
141
+ file: Flags.string({
142
+ char: 'f',
143
+ summary: 'Location of a json file containing the list of allowed schemas for creating a credential offer. One or more schemas can be added to the issuance. The credential type ID must be unique',
144
+ }),
145
+ };
146
+ //# sourceMappingURL=create-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-config.js","sourceRoot":"","sources":["../../../src/commands/issuance/create-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAOtC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAA;AAEnE,MAAM,OAAO,oBAAqB,SAAQ,WAAwC;IA6BzE,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAExD,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAA;QAExF,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;YAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;YACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;YACxC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;YACnD,2BAA2B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAClD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;SACjB,CAAC,CAAA;QACF,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAErD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;QACnC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAA;QAClD,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAEvC,IAAI,cAAc,GAAG,cAAc,CAAC,WAAW,CAAC,CAAA;QAEhD,MAAM,SAAS,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,MAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;QACtE,MAAM,gBAAgB,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;QAE5D,IAAI,CAAC,cAAc,IAAI,OAAO,EAAE,MAAM,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC;YACjE,MAAM,aAAa,GACjB,OAAO,EAAE,GAAG,CAAC,CAAC,MAAiB,EAAE,EAAE,CAAC,CAAC;gBACnC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE;gBAC9B,KAAK,EAAE,MAAM,CAAC,EAAE;aACjB,CAAC,CAAC,IAAI,EAAE,CAAA;YAEX,MAAM,iBAAiB,GAAG,mBAAmB,CAAA;YAC7C,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAA;YAEzE,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC;gBAClC,OAAO,EAAE,oEAAoE;gBAC7E,OAAO,EAAE,aAAa;aACvB,CAAC,CAAA;YAEF,IAAI,cAAc,KAAK,iBAAiB,EAAE,CAAC;gBACzC,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;oBAChF,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,UAAU,CAAC,GAAG;iBACxB,CAAC,CAAC,CAAA;gBAEH,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,EAAE,WAAW,CAAC,CAAA;gBAC5F,MAAM,WAAW,GAAG,mBAAmB,CACrC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC,EAC/D,WAAW,CACZ,CAAA;gBACD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,6BAA6B,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAA;gBAE3G,MAAM,QAAQ,GAAG,SAAS,KAAK,UAAU,CAAC,GAAG,CAAA;gBAC7C,MAAM,SAAS,GAAG,QAAQ;oBACxB,CAAC,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,EAAE,WAAW,CAAC;oBAC5G,CAAC,CAAC,SAAS,CAAA;gBAEb,MAAM,aAAa,GAAG;oBACpB,IAAI;oBACJ,WAAW;oBACX,SAAS;oBACT,GAAG,CAAC,QAAQ,IAAI,EAAE,SAAS,EAAE,CAAC;iBAC/B,CAAA;gBAED,MAAM,YAAY,GAAG,CAAC;qBACnB,MAAM,CAAC;oBACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;oBACnD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;oBACnD,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;oBAC9C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;iBACzD,CAAC;qBACD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;oBACjB,IAAI,MAAM,CAAC,SAAS,KAAK,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;wBAC7D,OAAO,KAAK,CAAA;oBACd,CAAC;oBACD,OAAO,IAAI,CAAA;gBACb,CAAC,CAAC,CAAA;gBAEJ,MAAM,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;gBAE3D,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;gBAClC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,iBAAsC,CAAC,CAAA;gBACpF,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;gBAEvC,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAA;YAC1C,CAAC;iBAAM,CAAC;gBACN,cAAc,GAAG,cAAc,IAAI,EAAE,CAAA;YACvC,CAAC;QACH,CAAC;QAED,IAAI,mBAAgD,CAAA;QAEpD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YAC3D,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,QAAQ,CAAC,sCAAuC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;QACtF,CAAC;QAED,MAAM,IAAI,GAA8B;YACtC,IAAI,EACF,KAAK,CAAC,IAAI;gBACV,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,EAAE,WAAW,CAAC;YAC5G,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;YACpC,cAAc;YACd,uBAAuB,EAAE,KAAK,CAAC,2BAA2B,CAAC,IAAI,SAAS;YACxE,mBAAmB,EAAE,mBAAmB,IAAI,EAAE;SAC/C,CAAA;QAED,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;YACzC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;YAC5B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;YACzB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;SAC7B,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;YACxC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;YAClD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;YACnD,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YACrD,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC;SACxD,CAAC,CAAA;QACF,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEtC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAA;QAC7D,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAA;QACtE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAEvC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC7C,OAAO,MAAM,CAAA;IACf,CAAC;;AA9JM,4BAAO,GAAG,kEAAkE,CAAA;AAC5E,6BAAQ,GAAG;IAChB,qFAAqF;IACrF,gKAAgK;CACjK,CAAA;AACM,0BAAK,GAAG;IACb,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,+CAA+C;KACzD,CAAC;IACF,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;QACxB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,sDAAsD;KAChE,CAAC;IACF,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;QACxB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,kBAAkB;KAC5B,CAAC;IACF,2BAA2B,EAAE,KAAK,CAAC,OAAO,CAAC;QACzC,OAAO,EAAE,sCAAsC;KAChD,CAAC;IACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,GAAG;QACT,OAAO,EACL,yLAAyL;KAC5L,CAAC;CACH,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { BaseCommand } from '../../common/base-command.js';
2
+ export declare class DeleteIssuanceConfig extends BaseCommand<typeof DeleteIssuanceConfig> {
3
+ static summary: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ id: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
+ };
8
+ run(): Promise<{
9
+ id: string;
10
+ }>;
11
+ }
@@ -0,0 +1,34 @@
1
+ import { ux, Flags } from '@oclif/core';
2
+ import z from 'zod';
3
+ import { BaseCommand } from '../../common/base-command.js';
4
+ import { promptRequiredParameters } from '../../common/prompts.js';
5
+ import { INPUT_LIMIT } from '../../common/validators.js';
6
+ import { issuanceService } from '../../services/affinidi/cis/service.js';
7
+ export class DeleteIssuanceConfig extends BaseCommand {
8
+ async run() {
9
+ const { flags } = await this.parse(DeleteIssuanceConfig);
10
+ const promptFlags = await promptRequiredParameters(['id'], flags);
11
+ const schema = z.object({
12
+ id: z.string().max(INPUT_LIMIT),
13
+ });
14
+ const validatedFlags = schema.parse(promptFlags);
15
+ ux.action.start('Deleting credential issuance configuration');
16
+ await issuanceService.deleteIssuanceConfigById(validatedFlags.id);
17
+ ux.action.stop('Deleted successfully!');
18
+ if (!this.jsonEnabled())
19
+ this.logJson({ id: validatedFlags.id });
20
+ return { id: validatedFlags.id };
21
+ }
22
+ }
23
+ DeleteIssuanceConfig.summary = 'Deletes credential issuance configuration from your active project';
24
+ DeleteIssuanceConfig.examples = [
25
+ '<%= config.bin %> <%= command.id %> -i <value>',
26
+ '<%= config.bin %> <%= command.id %> --id <value>',
27
+ ];
28
+ DeleteIssuanceConfig.flags = {
29
+ id: Flags.string({
30
+ char: 'i',
31
+ summary: 'ID of the credential issuance configuration',
32
+ }),
33
+ };
34
+ //# sourceMappingURL=delete-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-config.js","sourceRoot":"","sources":["../../../src/commands/issuance/delete-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAExE,MAAM,OAAO,oBAAqB,SAAQ,WAAwC;IAazE,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACxD,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;QAEjE,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YACtB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;SAChC,CAAC,CAAA;QACF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAEhD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAA;QAC7D,MAAM,eAAe,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;QACjE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAEvC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAA;QAChE,OAAO,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,CAAA;IAClC,CAAC;;AA3BM,4BAAO,GAAG,oEAAoE,CAAA;AAC9E,6BAAQ,GAAG;IAChB,gDAAgD;IAChD,kDAAkD;CACnD,CAAA;AACM,0BAAK,GAAG;IACb,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,6CAA6C;KACvD,CAAC;CACH,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { IssuanceConfigDto } from '@affinidi-tdk/credential-issuance-client';
2
+ import { BaseCommand } from '../../common/base-command.js';
3
+ export declare class GetIssuanceConfig extends BaseCommand<typeof GetIssuanceConfig> {
4
+ static summary: string;
5
+ static examples: string[];
6
+ static flags: {
7
+ id: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ };
9
+ run(): Promise<IssuanceConfigDto>;
10
+ }
@@ -0,0 +1,34 @@
1
+ import { ux, Flags } from '@oclif/core';
2
+ import z from 'zod';
3
+ import { BaseCommand } from '../../common/base-command.js';
4
+ import { promptRequiredParameters } from '../../common/prompts.js';
5
+ import { INPUT_LIMIT } from '../../common/validators.js';
6
+ import { issuanceService } from '../../services/affinidi/cis/service.js';
7
+ export class GetIssuanceConfig extends BaseCommand {
8
+ async run() {
9
+ const { flags } = await this.parse(GetIssuanceConfig);
10
+ const promptFlags = await promptRequiredParameters(['id'], flags);
11
+ const schema = z.object({
12
+ id: z.string().max(INPUT_LIMIT),
13
+ });
14
+ const validatedFlags = schema.parse(promptFlags);
15
+ ux.action.start('Fetching credential issuance configuration');
16
+ const output = await issuanceService.getIssuanceConfigById(validatedFlags.id);
17
+ ux.action.stop('Fetched successfully!');
18
+ if (!this.jsonEnabled())
19
+ this.logJson(output);
20
+ return output;
21
+ }
22
+ }
23
+ GetIssuanceConfig.summary = 'Gets the details of the credential issuance configuration in your active project';
24
+ GetIssuanceConfig.examples = [
25
+ '<%= config.bin %> <%= command.id %> -i <value>',
26
+ '<%= config.bin %> <%= command.id %> --id <value>',
27
+ ];
28
+ GetIssuanceConfig.flags = {
29
+ id: Flags.string({
30
+ char: 'i',
31
+ summary: 'ID of the credential issuance configuration',
32
+ }),
33
+ };
34
+ //# sourceMappingURL=get-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-config.js","sourceRoot":"","sources":["../../../src/commands/issuance/get-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAExE,MAAM,OAAO,iBAAkB,SAAQ,WAAqC;IAanE,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACrD,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;QAEjE,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YACtB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;SAChC,CAAC,CAAA;QACF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAEhD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAA;QAC7D,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,qBAAqB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;QAC7E,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAEvC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC7C,OAAO,MAAM,CAAA;IACf,CAAC;;AA3BM,yBAAO,GAAG,kFAAkF,CAAA;AAC5F,0BAAQ,GAAG;IAChB,gDAAgD;IAChD,kDAAkD;CACnD,CAAA;AACM,uBAAK,GAAG;IACb,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,6CAA6C;KACvD,CAAC;CACH,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { IssuanceConfigListResponse } from '@affinidi-tdk/credential-issuance-client';
2
+ import { BaseCommand } from '../../common/base-command.js';
3
+ export declare class ListIssuanceConfigs extends BaseCommand<typeof ListIssuanceConfigs> {
4
+ static summary: string;
5
+ static examples: string[];
6
+ run(): Promise<IssuanceConfigListResponse>;
7
+ }
@@ -0,0 +1,16 @@
1
+ import { ux } from '@oclif/core';
2
+ import { BaseCommand } from '../../common/base-command.js';
3
+ import { issuanceService } from '../../services/affinidi/cis/service.js';
4
+ export class ListIssuanceConfigs extends BaseCommand {
5
+ async run() {
6
+ ux.action.start('Fetching credential issuance configurations');
7
+ const output = await issuanceService.listIssuanceConfigs();
8
+ ux.action.stop('Fetched successfully!');
9
+ if (!this.jsonEnabled())
10
+ this.logJson(output);
11
+ return output;
12
+ }
13
+ }
14
+ ListIssuanceConfigs.summary = 'Lists credential issuance configurations in your active project';
15
+ ListIssuanceConfigs.examples = ['<%= config.bin %> <%= command.id %>'];
16
+ //# sourceMappingURL=list-configs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-configs.js","sourceRoot":"","sources":["../../../src/commands/issuance/list-configs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAExE,MAAM,OAAO,mBAAoB,SAAQ,WAAuC;IAIvE,KAAK,CAAC,GAAG;QACd,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAC9D,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,mBAAmB,EAAE,CAAA;QAC1D,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAEvC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC7C,OAAO,MAAM,CAAA;IACf,CAAC;;AAVM,2BAAO,GAAG,iEAAiE,CAAA;AAC3E,4BAAQ,GAAG,CAAC,qCAAqC,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { IssuanceConfigDto } from '@affinidi-tdk/credential-issuance-client';
2
+ import { BaseCommand } from '../../common/base-command.js';
3
+ export declare class UpdateIssuanceConfig extends BaseCommand<typeof UpdateIssuanceConfig> {
4
+ static summary: string;
5
+ static examples: string[];
6
+ static flags: {
7
+ id: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
+ 'wallet-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ 'credential-offer-duration': import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ file: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ };
14
+ run(): Promise<IssuanceConfigDto>;
15
+ }
@@ -0,0 +1,90 @@
1
+ import { readFile } from 'fs/promises';
2
+ import { ux, Flags } from '@oclif/core';
3
+ import { CLIError } from '@oclif/core/errors';
4
+ import z from 'zod';
5
+ import { BaseCommand } from '../../common/base-command.js';
6
+ import { promptRequiredParameters } from '../../common/prompts.js';
7
+ import { INPUT_LIMIT } from '../../common/validators.js';
8
+ import { issuanceService } from '../../services/affinidi/cis/service.js';
9
+ export class UpdateIssuanceConfig extends BaseCommand {
10
+ async run() {
11
+ const { flags } = await this.parse(UpdateIssuanceConfig);
12
+ const promptFlags = await promptRequiredParameters(['id'], flags);
13
+ const flagsSchema = z.object({
14
+ id: z.string().max(INPUT_LIMIT).uuid(),
15
+ 'wallet-id': z.string().max(INPUT_LIMIT).optional(),
16
+ name: z.string().max(INPUT_LIMIT).optional(),
17
+ description: z.string().max(INPUT_LIMIT).optional(),
18
+ 'credential-offer-duration': z.number().optional(),
19
+ file: z.string().optional(),
20
+ });
21
+ const validatedFlags = flagsSchema.parse(promptFlags);
22
+ let credentialSupported = [];
23
+ if (validatedFlags.file) {
24
+ try {
25
+ const rawData = await readFile(validatedFlags.file, 'utf8');
26
+ credentialSupported = JSON.parse(rawData);
27
+ }
28
+ catch (error) {
29
+ throw new CLIError(`Provided file is not a valid JSON\n${error.message}`);
30
+ }
31
+ }
32
+ const data = {
33
+ name: validatedFlags.name,
34
+ description: validatedFlags.description,
35
+ issuerWalletId: validatedFlags['wallet-id'],
36
+ credentialOfferDuration: validatedFlags['credential-offer-duration'],
37
+ credentialSupported: validatedFlags.file ? credentialSupported : undefined,
38
+ };
39
+ const credentialSupportedSchema = z.object({
40
+ credentialTypeId: z.string(),
41
+ jsonSchemaUrl: z.string(),
42
+ jsonLdContextUrl: z.string(),
43
+ });
44
+ const schema = z.object({
45
+ name: z.string().max(INPUT_LIMIT).optional(),
46
+ issuerWalletId: z.string().max(INPUT_LIMIT).optional(),
47
+ description: z.string().max(INPUT_LIMIT).optional().optional(),
48
+ credentialOfferDuration: z.number().optional(),
49
+ credentialSupported: z.array(credentialSupportedSchema).optional(),
50
+ });
51
+ const configInput = schema.parse(data);
52
+ ux.action.start('Updating credential issuance configuration');
53
+ const output = await issuanceService.updateIssuanceConfigById(validatedFlags.id, configInput);
54
+ ux.action.stop('Updated successfully!');
55
+ if (!this.jsonEnabled())
56
+ this.logJson(output);
57
+ return output;
58
+ }
59
+ }
60
+ UpdateIssuanceConfig.summary = 'Updates credential issuance configuration in your active project';
61
+ UpdateIssuanceConfig.examples = [
62
+ '<%= config.bin %> <%= command.id %> -i <value> -f credentialSchemas.json',
63
+ '<%= config.bin %> <%= command.id %> --id <value> --name <value> --wallet-id <value> --description <value> --credential-offer-duration <value> --file credentialSchemas.json',
64
+ ];
65
+ UpdateIssuanceConfig.flags = {
66
+ id: Flags.string({
67
+ char: 'i',
68
+ summary: 'ID of the credential issuance configuration',
69
+ }),
70
+ name: Flags.string({
71
+ char: 'n',
72
+ summary: 'Name of the credential issuance configuration',
73
+ }),
74
+ description: Flags.string({
75
+ char: 'd',
76
+ summary: 'Description of the credential issuance configuration',
77
+ }),
78
+ 'wallet-id': Flags.string({
79
+ char: 'w',
80
+ summary: 'ID of the wallet',
81
+ }),
82
+ 'credential-offer-duration': Flags.integer({
83
+ summary: 'Credential offer duration in seconds',
84
+ }),
85
+ file: Flags.string({
86
+ char: 'f',
87
+ summary: 'Location of a json file containing the list of allowed schemas for creating a credential offer. One or more schemas can be added to the issuance. The credential type ID must be unique',
88
+ }),
89
+ };
90
+ //# sourceMappingURL=update-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-config.js","sourceRoot":"","sources":["../../../src/commands/issuance/update-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { ConfigurationApi, IssuanceConfigListResponse, IssuanceConfigDto, CreateIssuanceConfigInput, UpdateIssuanceConfigInput } from '@affinidi-tdk/credential-issuance-client';
2
+ declare class IssuanceService {
3
+ private readonly client;
4
+ constructor(client?: ConfigurationApi);
5
+ listIssuanceConfigs: () => Promise<IssuanceConfigListResponse>;
6
+ getIssuanceConfigById: (configId: string) => Promise<IssuanceConfigDto>;
7
+ updateIssuanceConfigById: (configId: string, input: UpdateIssuanceConfigInput) => Promise<IssuanceConfigDto>;
8
+ deleteIssuanceConfigById: (configId: string) => Promise<void>;
9
+ createIssuanceConfig: (input: CreateIssuanceConfigInput) => Promise<IssuanceConfigDto>;
10
+ }
11
+ declare const issuanceService: IssuanceService;
12
+ export { issuanceService };
@@ -0,0 +1,59 @@
1
+ import { Configuration, ConfigurationApi, } from '@affinidi-tdk/credential-issuance-client';
2
+ import { config } from '../../env-config.js';
3
+ import { getBFFHeaders } from '../bff-service.js';
4
+ import { handleServiceError } from '../errors.js';
5
+ const headers = await getBFFHeaders();
6
+ const baseOptions = { headers };
7
+ const basePath = `${config.bffHost}/cis`;
8
+ class IssuanceService {
9
+ constructor(client = new ConfigurationApi(new Configuration({ basePath, baseOptions }))) {
10
+ this.client = client;
11
+ this.listIssuanceConfigs = async () => {
12
+ try {
13
+ const response = await this.client.getIssuanceConfigList();
14
+ return response.data;
15
+ }
16
+ catch (error) {
17
+ handleServiceError(error);
18
+ }
19
+ };
20
+ this.getIssuanceConfigById = async (configId) => {
21
+ try {
22
+ const response = await this.client.getIssuanceConfigById(configId);
23
+ return response.data;
24
+ }
25
+ catch (error) {
26
+ handleServiceError(error);
27
+ }
28
+ };
29
+ this.updateIssuanceConfigById = async (configId, input) => {
30
+ try {
31
+ const response = await this.client.updateIssuanceConfigById(configId, input);
32
+ return response.data;
33
+ }
34
+ catch (error) {
35
+ handleServiceError(error);
36
+ }
37
+ };
38
+ this.deleteIssuanceConfigById = async (configId) => {
39
+ try {
40
+ await this.client.deleteIssuanceConfigById(configId);
41
+ }
42
+ catch (error) {
43
+ handleServiceError(error);
44
+ }
45
+ };
46
+ this.createIssuanceConfig = async (input) => {
47
+ try {
48
+ const response = await this.client.createIssuanceConfig(input);
49
+ return response.data;
50
+ }
51
+ catch (error) {
52
+ handleServiceError(error);
53
+ }
54
+ };
55
+ }
56
+ }
57
+ const issuanceService = new IssuanceService();
58
+ export { issuanceService };
59
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../../src/services/affinidi/cis/service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,gBAAgB,GAKjB,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAA;AACrC,MAAM,WAAW,GAAG,EAAE,OAAO,EAAE,CAAA;AAC/B,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,OAAO,MAAM,CAAA;AAExC,MAAM,eAAe;IACnB,YAA6B,SAAS,IAAI,gBAAgB,CAAC,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;QAA3E,WAAM,GAAN,MAAM,CAAqE;QAEjG,wBAAmB,GAAG,KAAK,IAAyC,EAAE;YAC3E,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAA;gBAE1D,OAAO,QAAQ,CAAC,IAAI,CAAA;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,kBAAkB,CAAC,KAAK,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC,CAAA;QAEM,0BAAqB,GAAG,KAAK,EAAE,QAAgB,EAA8B,EAAE;YACpF,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAA;gBAElE,OAAO,QAAQ,CAAC,IAAI,CAAA;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,kBAAkB,CAAC,KAAK,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC,CAAA;QAEM,6BAAwB,GAAG,KAAK,EACrC,QAAgB,EAChB,KAAgC,EACJ,EAAE;YAC9B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;gBAE5E,OAAO,QAAQ,CAAC,IAAI,CAAA;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,kBAAkB,CAAC,KAAK,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC,CAAA;QAEM,6BAAwB,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;YAC1E,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAA;YACtD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,kBAAkB,CAAC,KAAK,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC,CAAA;QAEM,yBAAoB,GAAG,KAAK,EAAE,KAAgC,EAA8B,EAAE;YACnG,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;gBAE9D,OAAO,QAAQ,CAAC,IAAI,CAAA;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,kBAAkB,CAAC,KAAK,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC,CAAA;IAnD0G,CAAC;CAoD7G;AAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;AAE7C,OAAO,EAAE,eAAe,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@affinidi/cli",
3
- "version": "2.9.0",
3
+ "version": "2.10.0",
4
4
  "description": "Affinidi CLI",
5
5
  "author": "affinidi.com",
6
6
  "license": "Apache-2.0",
@@ -43,6 +43,7 @@
43
43
  "oclif"
44
44
  ],
45
45
  "dependencies": {
46
+ "@affinidi-tdk/credential-issuance-client": "^1.21.0",
46
47
  "@affinidi-tdk/iota-client": "^1.11.0",
47
48
  "@affinidi-tdk/wallets-client": "^1.14.0",
48
49
  "@inquirer/prompts": "^5.3.4",
@@ -136,6 +137,9 @@
136
137
  },
137
138
  "wallet": {
138
139
  "description": "Use these commands to manage your wallets"
140
+ },
141
+ "issuance": {
142
+ "description": "Use these commands to manage credential issuance configurations"
139
143
  }
140
144
  },
141
145
  "warn-if-update-available": {