@sphereon/ssi-sdk.vc-status-list-issuer-rest-api 0.32.1-next.54 → 0.33.1-feature.jose.vcdm.55

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,194 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.createNewStatusListEndpoint = createNewStatusListEndpoint;
16
- exports.getStatusListCredentialEndpoint = getStatusListCredentialEndpoint;
17
- exports.getStatusListCredentialIndexStatusEndpoint = getStatusListCredentialIndexStatusEndpoint;
18
- exports.updateW3CStatusEndpoint = updateW3CStatusEndpoint;
19
- const ssi_express_support_1 = require("@sphereon/ssi-express-support");
20
- const ssi_sdk_vc_status_list_1 = require("@sphereon/ssi-sdk.vc-status-list");
21
- const ssi_sdk_vc_status_list_issuer_drivers_1 = require("@sphereon/ssi-sdk.vc-status-list-issuer-drivers");
22
- const debug_1 = __importDefault(require("debug"));
23
- const debug = (0, debug_1.default)('sphereon:ssi-sdk:status-list');
24
- function createNewStatusListEndpoint(router, context, opts) {
25
- var _a;
26
- if ((opts === null || opts === void 0 ? void 0 : opts.enabled) === false) {
27
- console.log(`Create new status list endpoint is disabled`);
28
- return;
29
- }
30
- const path = (_a = opts === null || opts === void 0 ? void 0 : opts.path) !== null && _a !== void 0 ? _a : '/status-lists';
31
- router.post(path, (0, ssi_express_support_1.checkAuth)(opts === null || opts === void 0 ? void 0 : opts.endpoint), (request, response) => __awaiter(this, void 0, void 0, function* () {
32
- try {
33
- const statusListArgs = request.body.statusList;
34
- if (!statusListArgs) {
35
- return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'No statusList details supplied');
36
- }
37
- const statusListDetails = yield context.agent.slCreateStatusList(statusListArgs);
38
- return response.send({ statusListDetails });
39
- }
40
- catch (e) {
41
- return (0, ssi_express_support_1.sendErrorResponse)(response, 500, e.message, e);
42
- }
43
- }));
44
- }
45
- const buildStatusListId = (request) => {
46
- var _a, _b, _c, _d, _e;
47
- const protocol = (_b = (_a = request.headers['x-forwarded-proto']) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : request.protocol;
48
- let host = (_d = (_c = request.headers['x-forwarded-host']) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : request.get('host');
49
- const forwardedPort = (_e = request.headers['x-forwarded-port']) === null || _e === void 0 ? void 0 : _e.toString();
50
- if (forwardedPort && !(protocol === 'https' && forwardedPort === '443') && !(protocol === 'http' && forwardedPort === '80')) {
51
- host += `:${forwardedPort}`;
52
- }
53
- return `${protocol}://${host}${request.originalUrl}`;
54
- };
55
- function getStatusListCredentialEndpoint(router, context, opts) {
56
- var _a;
57
- if ((opts === null || opts === void 0 ? void 0 : opts.enabled) === false) {
58
- console.log(`Get statusList credential endpoint is disabled`);
59
- return;
60
- }
61
- const path = (_a = opts === null || opts === void 0 ? void 0 : opts.path) !== null && _a !== void 0 ? _a : '/status-lists/:index';
62
- router.get(path, (0, ssi_express_support_1.checkAuth)(opts === null || opts === void 0 ? void 0 : opts.endpoint), (request, response) => __awaiter(this, void 0, void 0, function* () {
63
- var _a, _b, _c, _d;
64
- try {
65
- //todo: Check index against correlationId first. Then match originalUrl against statusList id
66
- const correlationId = (_d = (_b = (_a = request.query.correlationId) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : (_c = request.params.index) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : request.originalUrl;
67
- const driver = yield (0, ssi_sdk_vc_status_list_issuer_drivers_1.getDriver)({ id: buildStatusListId(request), correlationId, dbName: opts.dbName });
68
- const details = yield driver.getStatusList();
69
- response.statusCode = 200;
70
- return response.send(details.statusListCredential);
71
- }
72
- catch (e) {
73
- return (0, ssi_express_support_1.sendErrorResponse)(response, 500, e.message, e);
74
- }
75
- }));
76
- }
77
- function getStatusListCredentialIndexStatusEndpoint(router, context, opts) {
78
- var _a;
79
- if ((opts === null || opts === void 0 ? void 0 : opts.enabled) === false) {
80
- console.log(`Get statusList credential index status endpoint is disabled`);
81
- return;
82
- }
83
- const path = (_a = opts === null || opts === void 0 ? void 0 : opts.path) !== null && _a !== void 0 ? _a : '/status-lists/:index/status/index/:statusListIndex';
84
- router.get(path, (0, ssi_express_support_1.checkAuth)(opts === null || opts === void 0 ? void 0 : opts.endpoint), (request, response) => __awaiter(this, void 0, void 0, function* () {
85
- var _a, _b, _c, _d;
86
- try {
87
- //todo: Check index against correlationId first. Then match originalUrl against statusList id
88
- const statusListIndexStr = request.params.statusListIndex;
89
- let statusListIndex;
90
- try {
91
- statusListIndex = Number.parseInt(statusListIndexStr);
92
- }
93
- catch (error) {
94
- return (0, ssi_express_support_1.sendErrorResponse)(response, 400, `Please provide a proper statusListIndex`);
95
- }
96
- if (!statusListIndex || statusListIndex < 0) {
97
- return (0, ssi_express_support_1.sendErrorResponse)(response, 400, `Please provide a proper statusListIndex`);
98
- }
99
- const correlationId = (_d = (_b = (_a = request.query.correlationId) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : (_c = request.params.index) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : request.originalUrl;
100
- const driver = yield (0, ssi_sdk_vc_status_list_issuer_drivers_1.getDriver)({
101
- id: `${request.protocol}://${request.get('host')}${request.originalUrl.replace(/\/status\/index\/.*/, '')}`,
102
- correlationId,
103
- dbName: opts.dbName,
104
- });
105
- const details = yield driver.getStatusList();
106
- if (statusListIndex > details.length) {
107
- return (0, ssi_express_support_1.sendErrorResponse)(response, 400, `Please provide a proper statusListIndex`);
108
- }
109
- let entry = yield driver.getStatusListEntryByIndex({
110
- statusListIndex,
111
- statusListId: details.id,
112
- correlationId: details.correlationId,
113
- errorOnNotFound: false,
114
- });
115
- const status = yield (0, ssi_sdk_vc_status_list_1.checkStatusIndexFromStatusListCredential)(Object.assign(Object.assign({}, details), { statusListIndex }));
116
- if (!entry) {
117
- // The fact we have nothing on it means the status is okay
118
- entry = {
119
- statusList: details.id,
120
- value: '0',
121
- statusListIndex,
122
- };
123
- }
124
- response.statusCode = 200;
125
- return response.send(Object.assign(Object.assign({}, entry), { status }));
126
- }
127
- catch (e) {
128
- return (0, ssi_express_support_1.sendErrorResponse)(response, 500, e.message, e);
129
- }
130
- }));
131
- }
132
- function updateW3CStatusEndpoint(router, context, opts) {
133
- var _a;
134
- if ((opts === null || opts === void 0 ? void 0 : opts.enabled) === false) {
135
- console.log(`Update credential status endpoint is disabled`);
136
- return;
137
- }
138
- router.post((_a = opts === null || opts === void 0 ? void 0 : opts.path) !== null && _a !== void 0 ? _a : '/credentials/status', (0, ssi_express_support_1.checkAuth)(opts === null || opts === void 0 ? void 0 : opts.endpoint), (request, response) => __awaiter(this, void 0, void 0, function* () {
139
- var _a, _b, _c, _d, _e, _f, _g, _h;
140
- try {
141
- debug(JSON.stringify(request.body, null, 2));
142
- const updateRequest = request.body;
143
- const statusListId = (_c = (_a = updateRequest.statusListId) !== null && _a !== void 0 ? _a : (_b = request.query.statusListId) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : opts.statusListId;
144
- const statusListCorrelationId = (_f = (_d = updateRequest.statusListCorrelationId) !== null && _d !== void 0 ? _d : (_e = request.query.statusListorrelationId) === null || _e === void 0 ? void 0 : _e.toString()) !== null && _f !== void 0 ? _f : opts.correlationId;
145
- const entryCorrelationId = (_g = updateRequest.entryCorrelationId) !== null && _g !== void 0 ? _g : (_h = request.query.entryCorrelationId) === null || _h === void 0 ? void 0 : _h.toString();
146
- const credentialId = updateRequest.credentialId;
147
- // TODO: Move mostly to driver
148
- if (!credentialId) {
149
- return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'No statusList credentialId supplied');
150
- }
151
- else if (!updateRequest.credentialStatus || updateRequest.credentialStatus.length === 0) {
152
- return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'No statusList updates supplied');
153
- }
154
- else if (!statusListId && !statusListCorrelationId) {
155
- return (0, ssi_express_support_1.sendErrorResponse)(response, 400, 'No statusList id or correlation Id provided or deduced for the API or in the request');
156
- }
157
- const driver = yield (0, ssi_sdk_vc_status_list_issuer_drivers_1.getDriver)({ id: statusListId, correlationId: statusListCorrelationId, dbName: opts.dbName });
158
- // unfortunately the W3C API works by credentialId. Which means you will have to map listIndices during issuance
159
- const statusListEntry = yield driver.getStatusListEntryByCredentialId({
160
- statusListId,
161
- statusListCorrelationId,
162
- entryCorrelationId,
163
- credentialId,
164
- errorOnNotFound: true,
165
- });
166
- if (!statusListEntry) {
167
- return (0, ssi_express_support_1.sendErrorResponse)(response, 404, `status list index for credential id ${credentialId} was never recorded for ${statusListId}. This means the status will be 0`);
168
- }
169
- const statusListIndex = statusListEntry.statusListIndex;
170
- let details = yield driver.getStatusList();
171
- let statusListCredential = details.statusListCredential;
172
- for (const updateItem of updateRequest.credentialStatus) {
173
- if (updateItem.type && updateItem.type !== 'StatusList2021') {
174
- return (0, ssi_express_support_1.sendErrorResponse)(response, 400, `Only the optional type 'StatusList2021' is currently supported`);
175
- }
176
- if (!updateItem.status) {
177
- return (0, ssi_express_support_1.sendErrorResponse)(response, 400, `Required 'status' value was missing in the credentialStatus array for credentialId ${credentialId}`);
178
- }
179
- const value = updateItem.status === '0' || updateItem.status.toLowerCase() === 'false' ? false : true;
180
- const statusList = statusListId !== null && statusListId !== void 0 ? statusListId : statusListEntry.statusList;
181
- yield driver.updateStatusListEntry(Object.assign(Object.assign({}, statusListEntry), { statusListIndex, statusList, credentialId, value: value ? '1' : '0' }));
182
- // todo: optimize. We are now creating a new VC for every item passed in. Probably wise to look at DB as well
183
- details = yield (0, ssi_sdk_vc_status_list_1.updateStatusIndexFromStatusListCredential)({ statusListCredential, statusListIndex, value, keyRef: opts.keyRef }, context);
184
- details = yield driver.updateStatusList({ statusListCredential: details.statusListCredential });
185
- }
186
- response.statusCode = 200;
187
- return response.send(details.statusListCredential);
188
- }
189
- catch (e) {
190
- return (0, ssi_express_support_1.sendErrorResponse)(response, 500, e.message, e);
191
- }
192
- }));
193
- }
194
- //# sourceMappingURL=api-functions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-functions.js","sourceRoot":"","sources":["../src/api-functions.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,oCAAoC,CAAA;AAClD,cAAc,SAAS,CAAA;AACvB,cAAc,iBAAiB,CAAA"}
@@ -1,22 +0,0 @@
1
- import { ExpressSupport } from '@sphereon/ssi-express-support';
2
- import { IStatusListPlugin } from '@sphereon/ssi-sdk.vc-status-list';
3
- import { TAgent } from '@veramo/core';
4
- import express, { Express } from 'express';
5
- import { IStatusListOpts } from './types';
6
- import { IRequiredPlugins } from '@sphereon/ssi-sdk.vc-status-list-issuer-drivers';
7
- export declare class StatuslistManagementApiServer {
8
- get router(): express.Router;
9
- private readonly _express;
10
- private readonly _agent;
11
- private readonly _opts?;
12
- private readonly _router;
13
- constructor(args: {
14
- agent: TAgent<IRequiredPlugins & IStatusListPlugin>;
15
- expressSupport: ExpressSupport;
16
- opts: IStatusListOpts;
17
- });
18
- get agent(): TAgent<IRequiredPlugins>;
19
- get opts(): IStatusListOpts | undefined;
20
- get express(): Express;
21
- }
22
- //# sourceMappingURL=statuslist-management-api-server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"statuslist-management-api-server.d.ts","sourceRoot":"","sources":["../src/statuslist-management-api-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAExF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,OAAO,OAAO,EAAE,EAAE,OAAO,EAAU,MAAM,SAAS,CAAA;AAOlD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAA;AAElF,qBAAa,6BAA6B;IACxC,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,CAE3B;IAED,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;gBAEpB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,CAAC;QAAC,cAAc,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,eAAe,CAAA;KAAE;IAgChI,IAAI,KAAK,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAEpC;IAED,IAAI,IAAI,IAAI,eAAe,GAAG,SAAS,CAEtC;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;CACF"}
@@ -1,67 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.StatuslistManagementApiServer = void 0;
7
- const ssi_express_support_1 = require("@sphereon/ssi-express-support");
8
- const ssi_sdk_core_1 = require("@sphereon/ssi-sdk.core");
9
- const express_1 = __importDefault(require("express"));
10
- const api_functions_1 = require("./api-functions");
11
- class StatuslistManagementApiServer {
12
- get router() {
13
- return this._router;
14
- }
15
- constructor(args) {
16
- var _a, _b, _c, _d;
17
- const { agent, opts } = args;
18
- this._agent = agent;
19
- if ((_a = opts === null || opts === void 0 ? void 0 : opts.endpointOpts) === null || _a === void 0 ? void 0 : _a.globalAuth) {
20
- (0, ssi_express_support_1.copyGlobalAuthToEndpoint)({ opts, key: 'vcApiCredentialStatus' });
21
- (0, ssi_express_support_1.copyGlobalAuthToEndpoint)({ opts, key: 'createStatusList' });
22
- (0, ssi_express_support_1.copyGlobalAuthToEndpoint)({ opts, key: 'getStatusList' });
23
- }
24
- this._opts = opts;
25
- this._express = args.expressSupport.express;
26
- this._router = express_1.default.Router();
27
- const context = (0, ssi_sdk_core_1.agentContext)(agent);
28
- const features = (_b = opts === null || opts === void 0 ? void 0 : opts.enableFeatures) !== null && _b !== void 0 ? _b : ['status-list-management', 'status-list-hosting', 'w3c-vc-api-credential-status'];
29
- console.log(`Status List API enabled, with features: ${JSON.stringify(features)}`);
30
- // Credential Status (List) endpoints
31
- if (features.includes('status-list-management')) {
32
- (0, api_functions_1.createNewStatusListEndpoint)(this.router, context, opts.endpointOpts.createStatusList);
33
- }
34
- if (features.includes('status-list-hosting')) {
35
- (0, api_functions_1.getStatusListCredentialEndpoint)(this.router, context, opts.endpointOpts.getStatusList);
36
- (0, api_functions_1.getStatusListCredentialIndexStatusEndpoint)(this.router, context, opts.endpointOpts.getStatusList);
37
- }
38
- if (features.includes('w3c-vc-api-credential-status')) {
39
- (0, api_functions_1.updateW3CStatusEndpoint)(this.router, context, opts.endpointOpts.vcApiCredentialStatus);
40
- }
41
- this._express.use((_d = (_c = opts === null || opts === void 0 ? void 0 : opts.endpointOpts) === null || _c === void 0 ? void 0 : _c.basePath) !== null && _d !== void 0 ? _d : '', this.router);
42
- }
43
- get agent() {
44
- return this._agent;
45
- }
46
- get opts() {
47
- return this._opts;
48
- }
49
- get express() {
50
- return this._express;
51
- }
52
- }
53
- exports.StatuslistManagementApiServer = StatuslistManagementApiServer;
54
- /*
55
- function copyGlobalAuthToEndpoint(opts: IStatusListOpts, key: string) {
56
- if (opts?.endpointOpts?.globalAuth) {
57
- // @ts-ignore
58
- opts.endpointOpts[key] = {
59
- // @ts-ignore
60
- ...opts.endpointOpts[key],
61
- // @ts-ignore
62
- endpoint: {...opts.endpointOpts.globalAuth, ...opts.endpointOpts[key]?.endpoint},
63
- }
64
- }
65
- }
66
- */
67
- //# sourceMappingURL=statuslist-management-api-server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"statuslist-management-api-server.js","sourceRoot":"","sources":["../src/statuslist-management-api-server.ts"],"names":[],"mappings":";;;;;;AAAA,uEAAwF;AACxF,yDAAqD;AAIrD,sDAAkD;AAClD,mDAKwB;AAIxB,MAAa,6BAA6B;IACxC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAOD,YAAY,IAAoH;;QAC9H,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QAC5B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,0CAAE,UAAU,EAAE,CAAC;YACnC,IAAA,8CAAwB,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,uBAAuB,EAAE,CAAC,CAAA;YAChE,IAAA,8CAAwB,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAA;YAC3D,IAAA,8CAAwB,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAA;QAC1D,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAA;QAC3C,IAAI,CAAC,OAAO,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;QAE/B,MAAM,OAAO,GAAG,IAAA,2BAAY,EAAC,KAAK,CAAC,CAAA;QAEnC,MAAM,QAAQ,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,mCAAI,CAAC,wBAAwB,EAAE,qBAAqB,EAAE,8BAA8B,CAAC,CAAA;QAC1H,OAAO,CAAC,GAAG,CAAC,2CAA2C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAElF,qCAAqC;QACrC,IAAI,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAChD,IAAA,2CAA2B,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAA;QACvF,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC7C,IAAA,+CAA+B,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;YACtF,IAAA,0DAA0C,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;QACnG,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,CAAC;YACtD,IAAA,uCAAuB,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAA;QACxF,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,0CAAE,QAAQ,mCAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACpE,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;CACF;AArDD,sEAqDC;AAED;;;;;;;;;;;;EAYE"}
package/dist/types.d.ts DELETED
@@ -1,38 +0,0 @@
1
- import { GenericAuthArgs, ISingleEndpointOpts } from '@sphereon/ssi-express-support';
2
- import { IStatusListPlugin } from '@sphereon/ssi-sdk.vc-status-list';
3
- import { IRequiredPlugins } from '@sphereon/ssi-sdk.vc-status-list-issuer-drivers';
4
- import { StatusListType } from '@sphereon/ssi-types';
5
- import { IAgentContext } from '@veramo/core';
6
- export type IRequiredContext = IAgentContext<IRequiredPlugins & IStatusListPlugin>;
7
- export interface IStatusListOpts {
8
- endpointOpts: IStatusListEndpointOpts;
9
- enableFeatures?: statusListFeatures[];
10
- }
11
- export interface IStatusListEndpointOpts {
12
- basePath?: string;
13
- globalAuth?: GenericAuthArgs;
14
- vcApiCredentialStatus: IW3CredentialStatusEndpointOpts;
15
- createStatusList: ICredentialStatusListEndpointOpts;
16
- getStatusList: ICredentialStatusListEndpointOpts;
17
- }
18
- export type statusListFeatures = 'w3c-vc-api-credential-status' | 'status-list-management' | 'status-list-hosting';
19
- export interface ICredentialStatusListEndpointOpts extends ISingleEndpointOpts {
20
- dbName: string;
21
- }
22
- export interface IW3CredentialStatusEndpointOpts extends ICredentialStatusListEndpointOpts {
23
- statusListId?: string;
24
- correlationId?: string;
25
- keyRef?: string;
26
- }
27
- export interface UpdateCredentialStatusRequest {
28
- credentialId: string;
29
- credentialStatus: UpdateCredentialStatusItem[];
30
- statusListId?: string;
31
- statusListCorrelationId?: string;
32
- entryCorrelationId?: string;
33
- }
34
- export interface UpdateCredentialStatusItem {
35
- type?: StatusListType;
36
- status: string;
37
- }
38
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,CAAA;AAElF,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,uBAAuB,CAAA;IACrC,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAA;CACtC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,qBAAqB,EAAE,+BAA+B,CAAA;IACtD,gBAAgB,EAAE,iCAAiC,CAAA;IACnD,aAAa,EAAE,iCAAiC,CAAA;CACjD;AAED,MAAM,MAAM,kBAAkB,GAAG,8BAA8B,GAAG,wBAAwB,GAAG,qBAAqB,CAAA;AAElH,MAAM,WAAW,iCAAkC,SAAQ,mBAAmB;IAC5E,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,+BAAgC,SAAQ,iCAAiC;IACxF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,6BAA6B;IAC5C,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,0BAA0B,EAAE,CAAA;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;CACf"}
package/dist/types.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}