@sphereon/ssi-sdk.vc-status-list-issuer-drivers 0.32.1-fix.160 → 0.32.1-next.113
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/dist/drivers.d.ts +8 -11
- package/dist/drivers.d.ts.map +1 -1
- package/dist/drivers.js +24 -38
- package/dist/drivers.js.map +1 -1
- package/dist/types.d.ts +8 -8
- package/dist/types.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/drivers.ts +32 -58
- package/src/types.ts +6 -11
- package/dist/status-list-adapters.d.ts +0 -4
- package/dist/status-list-adapters.d.ts.map +0 -1
- package/dist/status-list-adapters.js +0 -32
- package/dist/status-list-adapters.js.map +0 -1
- package/src/status-list-adapters.ts +0 -38
package/dist/drivers.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DataSources } from '@sphereon/ssi-sdk.agent-config';
|
|
2
2
|
import { IAddStatusListEntryArgs, IGetStatusListEntryByCredentialIdArgs, IGetStatusListEntryByIndexArgs, IStatusListEntryEntity, StatusListStore } from '@sphereon/ssi-sdk.data-store';
|
|
3
|
-
import { StatusList2021EntryCredentialStatus,
|
|
4
|
-
import { StatusListCredentialIdMode, StatusListDriverType
|
|
3
|
+
import { StatusList2021EntryCredentialStatus, StatusListDetails } from '@sphereon/ssi-sdk.vc-status-list';
|
|
4
|
+
import { OriginalVerifiableCredential, StatusListCredentialIdMode, StatusListDriverType } from '@sphereon/ssi-types';
|
|
5
5
|
import { DataSource } from 'typeorm';
|
|
6
6
|
import { IStatusListDriver } from './types';
|
|
7
7
|
export interface StatusListManagementOptions {
|
|
@@ -44,20 +44,17 @@ export declare class AgentDataSourceStatusListDriver implements IStatusListDrive
|
|
|
44
44
|
getOptions(): DriverOptions;
|
|
45
45
|
getType(): StatusListDriverType;
|
|
46
46
|
createStatusList(args: {
|
|
47
|
-
statusListCredential:
|
|
47
|
+
statusListCredential: OriginalVerifiableCredential;
|
|
48
48
|
correlationId?: string;
|
|
49
49
|
credentialIdMode?: StatusListCredentialIdMode;
|
|
50
|
-
}): Promise<
|
|
50
|
+
}): Promise<StatusListDetails>;
|
|
51
51
|
updateStatusList(args: {
|
|
52
|
-
statusListCredential:
|
|
52
|
+
statusListCredential: OriginalVerifiableCredential;
|
|
53
53
|
correlationId: string;
|
|
54
|
-
|
|
55
|
-
}): Promise<StatusListResult>;
|
|
54
|
+
}): Promise<StatusListDetails>;
|
|
56
55
|
deleteStatusList(): Promise<boolean>;
|
|
57
|
-
private isStatusList2021Entity;
|
|
58
|
-
private isOAuthStatusListEntity;
|
|
59
56
|
updateStatusListEntry(args: IAddStatusListEntryArgs): Promise<{
|
|
60
|
-
credentialStatus: StatusList2021EntryCredentialStatus
|
|
57
|
+
credentialStatus: StatusList2021EntryCredentialStatus;
|
|
61
58
|
statusListEntry: IStatusListEntryEntity;
|
|
62
59
|
}>;
|
|
63
60
|
getStatusListEntryByCredentialId(args: IGetStatusListEntryByCredentialIdArgs): Promise<IStatusListEntryEntity | undefined>;
|
|
@@ -71,7 +68,7 @@ export declare class AgentDataSourceStatusListDriver implements IStatusListDrive
|
|
|
71
68
|
}): Promise<number>;
|
|
72
69
|
getStatusList(args?: {
|
|
73
70
|
correlationId?: string;
|
|
74
|
-
}): Promise<
|
|
71
|
+
}): Promise<StatusListDetails>;
|
|
75
72
|
isStatusListIndexInUse(): Promise<boolean>;
|
|
76
73
|
}
|
|
77
74
|
//# sourceMappingURL=drivers.d.ts.map
|
package/dist/drivers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drivers.d.ts","sourceRoot":"","sources":["../src/drivers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EACL,uBAAuB,EACvB,qCAAqC,EACrC,8BAA8B,EAE9B,sBAAsB,
|
|
1
|
+
{"version":3,"file":"drivers.d.ts","sourceRoot":"","sources":["../src/drivers.ts"],"names":[],"mappings":"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"}
|
package/dist/drivers.js
CHANGED
|
@@ -16,8 +16,6 @@ const ssi_sdk_agent_config_1 = require("@sphereon/ssi-sdk.agent-config");
|
|
|
16
16
|
const ssi_sdk_data_store_1 = require("@sphereon/ssi-sdk.data-store");
|
|
17
17
|
const ssi_sdk_vc_status_list_1 = require("@sphereon/ssi-sdk.vc-status-list");
|
|
18
18
|
const ssi_types_1 = require("@sphereon/ssi-types");
|
|
19
|
-
const status_list_adapters_1 = require("./status-list-adapters");
|
|
20
|
-
const StatusListEntities_1 = require("@sphereon/ssi-sdk.data-store/dist/entities/statusList/StatusListEntities");
|
|
21
19
|
function getOptions(args) {
|
|
22
20
|
return {
|
|
23
21
|
id: args.id,
|
|
@@ -100,10 +98,22 @@ class AgentDataSourceStatusListDriver {
|
|
|
100
98
|
}
|
|
101
99
|
const credentialIdMode = (_b = args.credentialIdMode) !== null && _b !== void 0 ? _b : ssi_types_1.StatusListCredentialIdMode.ISSUANCE;
|
|
102
100
|
const details = yield (0, ssi_sdk_vc_status_list_1.statusListCredentialToDetails)(Object.assign(Object.assign({}, args), { correlationId, driverType: this.getType() }));
|
|
103
|
-
|
|
101
|
+
const entity = yield (yield this.statusListStore.getStatusListRepo()).findOne({
|
|
102
|
+
where: [
|
|
103
|
+
{
|
|
104
|
+
id: details.id,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
correlationId,
|
|
108
|
+
},
|
|
109
|
+
],
|
|
110
|
+
});
|
|
111
|
+
if (entity) {
|
|
112
|
+
throw Error(`Status list ${details.id}, correlationId ${args.correlationId} already exists`);
|
|
113
|
+
}
|
|
114
|
+
this._statusListLength = details.length;
|
|
104
115
|
yield this.statusListStore.addStatusList(Object.assign(Object.assign({}, details), { credentialIdMode,
|
|
105
116
|
correlationId, driverType: this.getType() }));
|
|
106
|
-
this._statusListLength = details.length;
|
|
107
117
|
return details;
|
|
108
118
|
});
|
|
109
119
|
}
|
|
@@ -112,7 +122,7 @@ class AgentDataSourceStatusListDriver {
|
|
|
112
122
|
var _a;
|
|
113
123
|
const correlationId = (_a = args.correlationId) !== null && _a !== void 0 ? _a : this.options.correlationId;
|
|
114
124
|
const details = yield (0, ssi_sdk_vc_status_list_1.statusListCredentialToDetails)(Object.assign(Object.assign({}, args), { correlationId, driverType: this.getType() }));
|
|
115
|
-
const entity = yield (yield this.statusListStore.getStatusListRepo(
|
|
125
|
+
const entity = yield (yield this.statusListStore.getStatusListRepo()).findOne({
|
|
116
126
|
where: [
|
|
117
127
|
{
|
|
118
128
|
id: details.id,
|
|
@@ -136,43 +146,19 @@ class AgentDataSourceStatusListDriver {
|
|
|
136
146
|
return Promise.resolve(true);
|
|
137
147
|
});
|
|
138
148
|
}
|
|
139
|
-
isStatusList2021Entity(statusList) {
|
|
140
|
-
return statusList instanceof StatusListEntities_1.StatusList2021Entity;
|
|
141
|
-
}
|
|
142
|
-
isOAuthStatusListEntity(statusList) {
|
|
143
|
-
return statusList instanceof StatusListEntities_1.OAuthStatusListEntity;
|
|
144
|
-
}
|
|
145
149
|
updateStatusListEntry(args) {
|
|
146
150
|
return __awaiter(this, void 0, void 0, function* () {
|
|
147
151
|
var _a;
|
|
148
|
-
const statusList = typeof args.statusList === 'string' ?
|
|
152
|
+
const statusList = typeof args.statusList === 'string' ? yield this.getStatusList() : args.statusList;
|
|
149
153
|
const statusListEntry = yield this.statusListStore.updateStatusListEntry(Object.assign(Object.assign({}, args), { statusList: statusList.id }));
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
},
|
|
159
|
-
statusListEntry,
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
else if (this.isOAuthStatusListEntity(statusList)) {
|
|
163
|
-
return {
|
|
164
|
-
credentialStatus: {
|
|
165
|
-
id: `${statusList.id}#${statusListEntry.statusListIndex}`,
|
|
166
|
-
type: 'OAuthStatusListEntry',
|
|
167
|
-
bitsPerStatus: statusList.bitsPerStatus,
|
|
168
|
-
statusListIndex: '' + statusListEntry.statusListIndex,
|
|
169
|
-
statusListCredential: statusList.id,
|
|
170
|
-
expiresAt: statusList.expiresAt,
|
|
171
|
-
},
|
|
172
|
-
statusListEntry,
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
throw new Error(`Unsupported status list type: ${typeof statusList}`);
|
|
154
|
+
const credentialStatus = {
|
|
155
|
+
id: `${statusList.id}#${statusListEntry.statusListIndex}`,
|
|
156
|
+
type: 'StatusList2021Entry',
|
|
157
|
+
statusPurpose: (_a = statusList.statusPurpose) !== null && _a !== void 0 ? _a : 'revocation',
|
|
158
|
+
statusListIndex: '' + statusListEntry.statusListIndex,
|
|
159
|
+
statusListCredential: statusList.id,
|
|
160
|
+
};
|
|
161
|
+
return { credentialStatus, statusListEntry };
|
|
176
162
|
});
|
|
177
163
|
}
|
|
178
164
|
getStatusListEntryByCredentialId(args) {
|
package/dist/drivers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drivers.js","sourceRoot":"","sources":["../src/drivers.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"drivers.js","sourceRoot":"","sources":["../src/drivers.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IIdentifierResolution } from '@sphereon/ssi-sdk-ext.identifier-resolution';
|
|
2
2
|
import { IAddStatusListEntryArgs, IGetStatusListEntryByCredentialIdArgs, IGetStatusListEntryByIndexArgs, IStatusListEntryEntity, StatusListStore } from '@sphereon/ssi-sdk.data-store';
|
|
3
|
-
import { IStatusListPlugin, StatusList2021EntryCredentialStatus,
|
|
4
|
-
import {
|
|
3
|
+
import { IStatusListPlugin, StatusList2021EntryCredentialStatus, StatusListDetails } from '@sphereon/ssi-sdk.vc-status-list';
|
|
4
|
+
import { OriginalVerifiableCredential, StatusListDriverType } from '@sphereon/ssi-types';
|
|
5
5
|
import { IAgentContext, ICredentialIssuer, ICredentialPlugin, ICredentialVerifier, IDataStoreORM, IDIDManager, IKeyManager, IResolver } from '@veramo/core';
|
|
6
6
|
import { DriverOptions } from './drivers';
|
|
7
7
|
export type IRequiredPlugins = IDataStoreORM & IDIDManager & IKeyManager & IIdentifierResolution & ICredentialIssuer & ICredentialVerifier & ICredentialPlugin & IStatusListPlugin & IResolver;
|
|
@@ -14,21 +14,21 @@ export interface IStatusListDriver {
|
|
|
14
14
|
correlationId?: string;
|
|
15
15
|
}): Promise<number>;
|
|
16
16
|
createStatusList(args: {
|
|
17
|
-
statusListCredential:
|
|
17
|
+
statusListCredential: OriginalVerifiableCredential;
|
|
18
18
|
correlationId?: string;
|
|
19
|
-
}): Promise<
|
|
19
|
+
}): Promise<StatusListDetails>;
|
|
20
20
|
getStatusList(args?: {
|
|
21
21
|
correlationId?: string;
|
|
22
|
-
}): Promise<
|
|
22
|
+
}): Promise<StatusListDetails>;
|
|
23
23
|
updateStatusListEntry(args: IAddStatusListEntryArgs): Promise<{
|
|
24
|
-
credentialStatus: StatusList2021EntryCredentialStatus
|
|
24
|
+
credentialStatus: StatusList2021EntryCredentialStatus;
|
|
25
25
|
statusListEntry: IStatusListEntryEntity;
|
|
26
26
|
}>;
|
|
27
27
|
getStatusListEntryByCredentialId(args: IGetStatusListEntryByCredentialIdArgs): Promise<IStatusListEntryEntity | undefined>;
|
|
28
28
|
getStatusListEntryByIndex(args: IGetStatusListEntryByIndexArgs): Promise<IStatusListEntryEntity | undefined>;
|
|
29
29
|
updateStatusList(args: {
|
|
30
|
-
statusListCredential:
|
|
31
|
-
}): Promise<
|
|
30
|
+
statusListCredential: OriginalVerifiableCredential;
|
|
31
|
+
}): Promise<StatusListDetails>;
|
|
32
32
|
deleteStatusList(): Promise<boolean>;
|
|
33
33
|
getRandomNewStatusListIndex(args?: {
|
|
34
34
|
correlationId?: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,EACL,uBAAuB,EACvB,qCAAqC,EACrC,8BAA8B,EAC9B,sBAAsB,EACtB,eAAe,EAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,EACL,uBAAuB,EACvB,qCAAqC,EACrC,8BAA8B,EAC9B,sBAAsB,EACtB,eAAe,EAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,mCAAmC,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAC5H,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AACxF,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,WAAW,EACX,SAAS,EACV,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAC1C,WAAW,GACX,WAAW,GACX,qBAAqB,GACrB,iBAAiB,GACjB,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,SAAS,CAAA;AACX,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAA;AAE9D,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,eAAe,CAAA;IAEhC,OAAO,IAAI,oBAAoB,CAAA;IAE/B,UAAU,IAAI,aAAa,CAAA;IAE3B,mBAAmB,CAAC,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAEvE,gBAAgB,CAAC,IAAI,EAAE;QAAE,oBAAoB,EAAE,4BAA4B,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAElI,aAAa,CAAC,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAE5E,qBAAqB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC;QAC5D,gBAAgB,EAAE,mCAAmC,CAAA;QACrD,eAAe,EAAE,sBAAsB,CAAA;KACxC,CAAC,CAAA;IAEF,gCAAgC,CAAC,IAAI,EAAE,qCAAqC,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAA;IAE1H,yBAAyB,CAAC,IAAI,EAAE,8BAA8B,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAA;IAE5G,gBAAgB,CAAC,IAAI,EAAE;QAAE,oBAAoB,EAAE,4BAA4B,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAE1G,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAEpC,2BAA2B,CAAC,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAE/E,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CAC3C"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk.vc-status-list-issuer-drivers",
|
|
3
3
|
"description": "Sphereon SSI-SDK plugin for Status List management, like StatusList2021. Issuer drivers module",
|
|
4
|
-
"version": "0.32.1-
|
|
4
|
+
"version": "0.32.1-next.113+5b666268",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
"build:clean": "tsc --build --clean && tsc --build"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@sphereon/ssi-express-support": "0.32.1-
|
|
13
|
+
"@sphereon/ssi-express-support": "0.32.1-next.113+5b666268",
|
|
14
14
|
"@sphereon/ssi-sdk-ext.did-utils": "0.27.0",
|
|
15
15
|
"@sphereon/ssi-sdk-ext.identifier-resolution": "0.27.0",
|
|
16
|
-
"@sphereon/ssi-sdk.agent-config": "0.32.1-
|
|
17
|
-
"@sphereon/ssi-sdk.core": "0.32.1-
|
|
18
|
-
"@sphereon/ssi-sdk.data-store": "0.32.1-
|
|
19
|
-
"@sphereon/ssi-sdk.vc-status-list": "0.32.1-
|
|
20
|
-
"@sphereon/ssi-types": "0.32.1-
|
|
16
|
+
"@sphereon/ssi-sdk.agent-config": "0.32.1-next.113+5b666268",
|
|
17
|
+
"@sphereon/ssi-sdk.core": "0.32.1-next.113+5b666268",
|
|
18
|
+
"@sphereon/ssi-sdk.data-store": "0.32.1-next.113+5b666268",
|
|
19
|
+
"@sphereon/ssi-sdk.vc-status-list": "0.32.1-next.113+5b666268",
|
|
20
|
+
"@sphereon/ssi-types": "0.32.1-next.113+5b666268",
|
|
21
21
|
"@sphereon/vc-status-list": "7.0.0-next.0",
|
|
22
22
|
"@veramo/core": "4.2.0",
|
|
23
23
|
"debug": "^4.3.5",
|
|
@@ -49,5 +49,5 @@
|
|
|
49
49
|
"StatusList2021"
|
|
50
50
|
],
|
|
51
51
|
"nx": {},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "5b666268b482b6a08a6edc00b4b713faf69247e1"
|
|
53
53
|
}
|
package/src/drivers.ts
CHANGED
|
@@ -5,20 +5,12 @@ import {
|
|
|
5
5
|
IGetStatusListEntryByIndexArgs,
|
|
6
6
|
IStatusListEntity,
|
|
7
7
|
IStatusListEntryEntity,
|
|
8
|
-
StatusListEntity,
|
|
9
8
|
StatusListStore,
|
|
10
9
|
} from '@sphereon/ssi-sdk.data-store'
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
statusListCredentialToDetails,
|
|
14
|
-
StatusListOAuthEntryCredentialStatus,
|
|
15
|
-
StatusListResult,
|
|
16
|
-
} from '@sphereon/ssi-sdk.vc-status-list'
|
|
17
|
-
import { StatusListCredentialIdMode, StatusListDriverType, StatusListType, StatusListCredential } from '@sphereon/ssi-types'
|
|
10
|
+
import { StatusList2021EntryCredentialStatus, statusListCredentialToDetails, StatusListDetails } from '@sphereon/ssi-sdk.vc-status-list'
|
|
11
|
+
import { OriginalVerifiableCredential, StatusListCredentialIdMode, StatusListDriverType } from '@sphereon/ssi-types'
|
|
18
12
|
import { DataSource } from 'typeorm'
|
|
19
13
|
import { IStatusListDriver } from './types'
|
|
20
|
-
import { statusListResultToEntity } from './status-list-adapters'
|
|
21
|
-
import { OAuthStatusListEntity, StatusList2021Entity } from '@sphereon/ssi-sdk.data-store/dist/entities/statusList/StatusListEntities'
|
|
22
14
|
|
|
23
15
|
export interface StatusListManagementOptions {
|
|
24
16
|
id?: string
|
|
@@ -129,37 +121,46 @@ export class AgentDataSourceStatusListDriver implements IStatusListDriver {
|
|
|
129
121
|
}
|
|
130
122
|
|
|
131
123
|
async createStatusList(args: {
|
|
132
|
-
statusListCredential:
|
|
124
|
+
statusListCredential: OriginalVerifiableCredential
|
|
133
125
|
correlationId?: string
|
|
134
126
|
credentialIdMode?: StatusListCredentialIdMode
|
|
135
|
-
}): Promise<
|
|
127
|
+
}): Promise<StatusListDetails> {
|
|
136
128
|
const correlationId = args.correlationId ?? this.options.correlationId
|
|
137
129
|
if (!correlationId) {
|
|
138
130
|
throw Error('Either a correlationId needs to be set as an option, or it needs to be provided when creating a status list. None found')
|
|
139
131
|
}
|
|
140
132
|
const credentialIdMode = args.credentialIdMode ?? StatusListCredentialIdMode.ISSUANCE
|
|
141
133
|
const details = await statusListCredentialToDetails({ ...args, correlationId, driverType: this.getType() })
|
|
142
|
-
|
|
143
|
-
|
|
134
|
+
const entity = await (
|
|
135
|
+
await this.statusListStore.getStatusListRepo()
|
|
136
|
+
).findOne({
|
|
137
|
+
where: [
|
|
138
|
+
{
|
|
139
|
+
id: details.id,
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
correlationId,
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
})
|
|
146
|
+
if (entity) {
|
|
147
|
+
throw Error(`Status list ${details.id}, correlationId ${args.correlationId} already exists`)
|
|
148
|
+
}
|
|
149
|
+
this._statusListLength = details.length
|
|
144
150
|
await this.statusListStore.addStatusList({
|
|
145
151
|
...details,
|
|
146
152
|
credentialIdMode,
|
|
147
153
|
correlationId,
|
|
148
154
|
driverType: this.getType(),
|
|
149
155
|
})
|
|
150
|
-
this._statusListLength = details.length
|
|
151
156
|
return details
|
|
152
157
|
}
|
|
153
158
|
|
|
154
|
-
async updateStatusList(args: {
|
|
155
|
-
statusListCredential: StatusListCredential
|
|
156
|
-
correlationId: string
|
|
157
|
-
type: StatusListType
|
|
158
|
-
}): Promise<StatusListResult> {
|
|
159
|
+
async updateStatusList(args: { statusListCredential: OriginalVerifiableCredential; correlationId: string }): Promise<StatusListDetails> {
|
|
159
160
|
const correlationId = args.correlationId ?? this.options.correlationId
|
|
160
161
|
const details = await statusListCredentialToDetails({ ...args, correlationId, driverType: this.getType() })
|
|
161
162
|
const entity = await (
|
|
162
|
-
await this.statusListStore.getStatusListRepo(
|
|
163
|
+
await this.statusListStore.getStatusListRepo()
|
|
163
164
|
).findOne({
|
|
164
165
|
where: [
|
|
165
166
|
{
|
|
@@ -188,48 +189,21 @@ export class AgentDataSourceStatusListDriver implements IStatusListDriver {
|
|
|
188
189
|
return Promise.resolve(true)
|
|
189
190
|
}
|
|
190
191
|
|
|
191
|
-
private isStatusList2021Entity(statusList: StatusListEntity): statusList is StatusList2021Entity {
|
|
192
|
-
return statusList instanceof StatusList2021Entity
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
private isOAuthStatusListEntity(statusList: StatusListEntity): statusList is OAuthStatusListEntity {
|
|
196
|
-
return statusList instanceof OAuthStatusListEntity
|
|
197
|
-
}
|
|
198
|
-
|
|
199
192
|
async updateStatusListEntry(args: IAddStatusListEntryArgs): Promise<{
|
|
200
|
-
credentialStatus: StatusList2021EntryCredentialStatus
|
|
193
|
+
credentialStatus: StatusList2021EntryCredentialStatus
|
|
201
194
|
statusListEntry: IStatusListEntryEntity
|
|
202
195
|
}> {
|
|
203
|
-
const statusList
|
|
196
|
+
const statusList = typeof args.statusList === 'string' ? await this.getStatusList() : args.statusList
|
|
204
197
|
|
|
205
198
|
const statusListEntry = await this.statusListStore.updateStatusListEntry({ ...args, statusList: statusList.id })
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
statusPurpose: statusList.statusPurpose ?? 'revocation',
|
|
213
|
-
statusListIndex: '' + statusListEntry.statusListIndex,
|
|
214
|
-
statusListCredential: statusList.id,
|
|
215
|
-
},
|
|
216
|
-
statusListEntry,
|
|
217
|
-
}
|
|
218
|
-
} else if (this.isOAuthStatusListEntity(statusList)) {
|
|
219
|
-
return {
|
|
220
|
-
credentialStatus: {
|
|
221
|
-
id: `${statusList.id}#${statusListEntry.statusListIndex}`,
|
|
222
|
-
type: 'OAuthStatusListEntry',
|
|
223
|
-
bitsPerStatus: statusList.bitsPerStatus,
|
|
224
|
-
statusListIndex: '' + statusListEntry.statusListIndex,
|
|
225
|
-
statusListCredential: statusList.id,
|
|
226
|
-
expiresAt: statusList.expiresAt,
|
|
227
|
-
},
|
|
228
|
-
statusListEntry,
|
|
229
|
-
}
|
|
199
|
+
const credentialStatus: StatusList2021EntryCredentialStatus = {
|
|
200
|
+
id: `${statusList.id}#${statusListEntry.statusListIndex}`,
|
|
201
|
+
type: 'StatusList2021Entry',
|
|
202
|
+
statusPurpose: statusList.statusPurpose ?? 'revocation',
|
|
203
|
+
statusListIndex: '' + statusListEntry.statusListIndex,
|
|
204
|
+
statusListCredential: statusList.id,
|
|
230
205
|
}
|
|
231
|
-
|
|
232
|
-
throw new Error(`Unsupported status list type: ${typeof statusList}`)
|
|
206
|
+
return { credentialStatus, statusListEntry }
|
|
233
207
|
}
|
|
234
208
|
|
|
235
209
|
async getStatusListEntryByCredentialId(args: IGetStatusListEntryByCredentialIdArgs): Promise<IStatusListEntryEntity | undefined> {
|
|
@@ -277,7 +251,7 @@ export class AgentDataSourceStatusListDriver implements IStatusListDriver {
|
|
|
277
251
|
return this._statusListLength!
|
|
278
252
|
}
|
|
279
253
|
|
|
280
|
-
async getStatusList(args?: { correlationId?: string }): Promise<
|
|
254
|
+
async getStatusList(args?: { correlationId?: string }): Promise<StatusListDetails> {
|
|
281
255
|
const id = this.options.id
|
|
282
256
|
const correlationId = args?.correlationId ?? this.options.correlationId
|
|
283
257
|
return await this.statusListStore
|
package/src/types.ts
CHANGED
|
@@ -6,13 +6,8 @@ import {
|
|
|
6
6
|
IStatusListEntryEntity,
|
|
7
7
|
StatusListStore,
|
|
8
8
|
} from '@sphereon/ssi-sdk.data-store'
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
StatusList2021EntryCredentialStatus,
|
|
12
|
-
StatusListOAuthEntryCredentialStatus,
|
|
13
|
-
StatusListResult,
|
|
14
|
-
} from '@sphereon/ssi-sdk.vc-status-list'
|
|
15
|
-
import { StatusListCredential, StatusListDriverType } from '@sphereon/ssi-types'
|
|
9
|
+
import { IStatusListPlugin, StatusList2021EntryCredentialStatus, StatusListDetails } from '@sphereon/ssi-sdk.vc-status-list'
|
|
10
|
+
import { OriginalVerifiableCredential, StatusListDriverType } from '@sphereon/ssi-types'
|
|
16
11
|
import {
|
|
17
12
|
IAgentContext,
|
|
18
13
|
ICredentialIssuer,
|
|
@@ -45,12 +40,12 @@ export interface IStatusListDriver {
|
|
|
45
40
|
|
|
46
41
|
getStatusListLength(args?: { correlationId?: string }): Promise<number>
|
|
47
42
|
|
|
48
|
-
createStatusList(args: { statusListCredential:
|
|
43
|
+
createStatusList(args: { statusListCredential: OriginalVerifiableCredential; correlationId?: string }): Promise<StatusListDetails>
|
|
49
44
|
|
|
50
|
-
getStatusList(args?: { correlationId?: string }): Promise<
|
|
45
|
+
getStatusList(args?: { correlationId?: string }): Promise<StatusListDetails>
|
|
51
46
|
|
|
52
47
|
updateStatusListEntry(args: IAddStatusListEntryArgs): Promise<{
|
|
53
|
-
credentialStatus: StatusList2021EntryCredentialStatus
|
|
48
|
+
credentialStatus: StatusList2021EntryCredentialStatus
|
|
54
49
|
statusListEntry: IStatusListEntryEntity
|
|
55
50
|
}>
|
|
56
51
|
|
|
@@ -58,7 +53,7 @@ export interface IStatusListDriver {
|
|
|
58
53
|
|
|
59
54
|
getStatusListEntryByIndex(args: IGetStatusListEntryByIndexArgs): Promise<IStatusListEntryEntity | undefined>
|
|
60
55
|
|
|
61
|
-
updateStatusList(args: { statusListCredential:
|
|
56
|
+
updateStatusList(args: { statusListCredential: OriginalVerifiableCredential }): Promise<StatusListDetails>
|
|
62
57
|
|
|
63
58
|
deleteStatusList(): Promise<boolean>
|
|
64
59
|
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { OAuthStatusListEntity, StatusList2021Entity } from '@sphereon/ssi-sdk.data-store/dist/entities/statusList/StatusListEntities';
|
|
2
|
-
import { StatusListResult } from '@sphereon/ssi-sdk.vc-status-list';
|
|
3
|
-
export declare function statusListResultToEntity(result: StatusListResult): StatusList2021Entity | OAuthStatusListEntity;
|
|
4
|
-
//# sourceMappingURL=status-list-adapters.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status-list-adapters.d.ts","sourceRoot":"","sources":["../src/status-list-adapters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,0EAA0E,CAAA;AACtI,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAEnE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,GAAG,oBAAoB,GAAG,qBAAqB,CAiC/G"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.statusListResultToEntity = statusListResultToEntity;
|
|
4
|
-
const ssi_types_1 = require("@sphereon/ssi-types");
|
|
5
|
-
const StatusListEntities_1 = require("@sphereon/ssi-sdk.data-store/dist/entities/statusList/StatusListEntities");
|
|
6
|
-
function statusListResultToEntity(result) {
|
|
7
|
-
const baseFields = {
|
|
8
|
-
id: result.id,
|
|
9
|
-
correlationId: result.correlationId,
|
|
10
|
-
driverType: result.driverType,
|
|
11
|
-
credentialIdMode: result.credentialIdMode,
|
|
12
|
-
length: result.length,
|
|
13
|
-
issuer: result.issuer,
|
|
14
|
-
type: result.type,
|
|
15
|
-
proofFormat: result.proofFormat,
|
|
16
|
-
statusListCredential: result.statusListCredential,
|
|
17
|
-
};
|
|
18
|
-
if (result.type === ssi_types_1.StatusListType.StatusList2021) {
|
|
19
|
-
if (!result.statusList2021) {
|
|
20
|
-
throw new Error('Missing statusList2021 details');
|
|
21
|
-
}
|
|
22
|
-
return Object.assign(new StatusListEntities_1.StatusList2021Entity(), Object.assign(Object.assign({}, baseFields), { indexingDirection: result.statusList2021.indexingDirection, statusPurpose: result.statusList2021.statusPurpose }));
|
|
23
|
-
}
|
|
24
|
-
else if (result.type === ssi_types_1.StatusListType.OAuthStatusList) {
|
|
25
|
-
if (!result.oauthStatusList) {
|
|
26
|
-
throw new Error('Missing oauthStatusList details');
|
|
27
|
-
}
|
|
28
|
-
return Object.assign(new StatusListEntities_1.OAuthStatusListEntity(), Object.assign(Object.assign({}, baseFields), { bitsPerStatus: result.oauthStatusList.bitsPerStatus, expiresAt: result.oauthStatusList.expiresAt }));
|
|
29
|
-
}
|
|
30
|
-
throw new Error(`Unsupported status list type: ${result.type}`);
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=status-list-adapters.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status-list-adapters.js","sourceRoot":"","sources":["../src/status-list-adapters.ts"],"names":[],"mappings":";;AAIA,4DAiCC;AArCD,mDAAoD;AACpD,iHAAsI;AAGtI,SAAgB,wBAAwB,CAAC,MAAwB;IAC/D,MAAM,UAAU,GAAG;QACjB,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;KAClD,CAAA;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,0BAAc,CAAC,cAAc,EAAE,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,yCAAoB,EAAE,kCAC1C,UAAU,KACb,iBAAiB,EAAE,MAAM,CAAC,cAAc,CAAC,iBAAiB,EAC1D,aAAa,EAAE,MAAM,CAAC,cAAc,CAAC,aAAa,IAClD,CAAA;IACJ,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,0BAAc,CAAC,eAAe,EAAE,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACpD,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,0CAAqB,EAAE,kCAC3C,UAAU,KACb,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC,aAAa,EACnD,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,SAAS,IAC3C,CAAA;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;AACjE,CAAC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { StatusListType } from '@sphereon/ssi-types'
|
|
2
|
-
import { OAuthStatusListEntity, StatusList2021Entity } from '@sphereon/ssi-sdk.data-store/dist/entities/statusList/StatusListEntities'
|
|
3
|
-
import { StatusListResult } from '@sphereon/ssi-sdk.vc-status-list'
|
|
4
|
-
|
|
5
|
-
export function statusListResultToEntity(result: StatusListResult): StatusList2021Entity | OAuthStatusListEntity {
|
|
6
|
-
const baseFields = {
|
|
7
|
-
id: result.id,
|
|
8
|
-
correlationId: result.correlationId,
|
|
9
|
-
driverType: result.driverType,
|
|
10
|
-
credentialIdMode: result.credentialIdMode,
|
|
11
|
-
length: result.length,
|
|
12
|
-
issuer: result.issuer,
|
|
13
|
-
type: result.type,
|
|
14
|
-
proofFormat: result.proofFormat,
|
|
15
|
-
statusListCredential: result.statusListCredential,
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
if (result.type === StatusListType.StatusList2021) {
|
|
19
|
-
if (!result.statusList2021) {
|
|
20
|
-
throw new Error('Missing statusList2021 details')
|
|
21
|
-
}
|
|
22
|
-
return Object.assign(new StatusList2021Entity(), {
|
|
23
|
-
...baseFields,
|
|
24
|
-
indexingDirection: result.statusList2021.indexingDirection,
|
|
25
|
-
statusPurpose: result.statusList2021.statusPurpose,
|
|
26
|
-
})
|
|
27
|
-
} else if (result.type === StatusListType.OAuthStatusList) {
|
|
28
|
-
if (!result.oauthStatusList) {
|
|
29
|
-
throw new Error('Missing oauthStatusList details')
|
|
30
|
-
}
|
|
31
|
-
return Object.assign(new OAuthStatusListEntity(), {
|
|
32
|
-
...baseFields,
|
|
33
|
-
bitsPerStatus: result.oauthStatusList.bitsPerStatus,
|
|
34
|
-
expiresAt: result.oauthStatusList.expiresAt,
|
|
35
|
-
})
|
|
36
|
-
}
|
|
37
|
-
throw new Error(`Unsupported status list type: ${result.type}`)
|
|
38
|
-
}
|