@sphereon/ssi-sdk.data-store 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/entities/statusList2021/StatusList2021Entity.d.ts +19 -0
- package/dist/entities/statusList2021/StatusList2021Entity.d.ts.map +1 -0
- package/dist/entities/{statusList/StatusListEntities.js → statusList2021/StatusList2021Entity.js} +16 -44
- package/dist/entities/statusList2021/StatusList2021Entity.js.map +1 -0
- package/dist/entities/{statusList → statusList2021}/StatusList2021EntryEntity.d.ts +1 -1
- package/dist/entities/statusList2021/StatusList2021EntryEntity.d.ts.map +1 -0
- package/dist/entities/{statusList → statusList2021}/StatusList2021EntryEntity.js +3 -3
- package/dist/entities/statusList2021/StatusList2021EntryEntity.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/migrations/generic/4-CreateStatusList.d.ts.map +1 -1
- package/dist/migrations/generic/4-CreateStatusList.js +12 -22
- package/dist/migrations/generic/4-CreateStatusList.js.map +1 -1
- package/dist/migrations/postgres/1693866470001-CreateStatusList.d.ts.map +1 -1
- package/dist/migrations/postgres/1693866470001-CreateStatusList.js +7 -43
- package/dist/migrations/postgres/1693866470001-CreateStatusList.js.map +1 -1
- package/dist/migrations/sqlite/1693866470000-CreateStatusList.d.ts.map +1 -1
- package/dist/migrations/sqlite/1693866470000-CreateStatusList.js +5 -45
- package/dist/migrations/sqlite/1693866470000-CreateStatusList.js.map +1 -1
- package/dist/statusList/IStatusListStore.d.ts +2 -2
- package/dist/statusList/IStatusListStore.d.ts.map +1 -1
- package/dist/statusList/StatusListStore.d.ts +7 -8
- package/dist/statusList/StatusListStore.d.ts.map +1 -1
- package/dist/statusList/StatusListStore.js +31 -53
- package/dist/statusList/StatusListStore.js.map +1 -1
- package/dist/types/statusList/IAbstractStatusListStore.d.ts +2 -2
- package/dist/types/statusList/IAbstractStatusListStore.d.ts.map +1 -1
- package/dist/types/statusList/statusList.d.ts +4 -9
- package/dist/types/statusList/statusList.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/entities/{statusList/StatusListEntities.ts → statusList2021/StatusList2021Entity.ts} +18 -37
- package/src/entities/{statusList → statusList2021}/StatusList2021EntryEntity.ts +1 -1
- package/src/index.ts +3 -3
- package/src/migrations/generic/4-CreateStatusList.ts +12 -22
- package/src/migrations/postgres/1693866470001-CreateStatusList.ts +9 -45
- package/src/migrations/sqlite/1693866470000-CreateStatusList.ts +5 -45
- package/src/statusList/IStatusListStore.ts +2 -2
- package/src/statusList/StatusListStore.ts +40 -66
- package/src/types/statusList/IAbstractStatusListStore.ts +2 -2
- package/src/types/statusList/statusList.ts +4 -12
- package/dist/entities/statusList/StatusList2021EntryEntity.d.ts.map +0 -1
- package/dist/entities/statusList/StatusList2021EntryEntity.js.map +0 -1
- package/dist/entities/statusList/StatusListEntities.d.ts +0 -23
- package/dist/entities/statusList/StatusListEntities.d.ts.map +0 -1
- package/dist/entities/statusList/StatusListEntities.js.map +0 -1
- package/dist/migrations/postgres/1737110469001-UpdateStatusList.d.ts +0 -7
- package/dist/migrations/postgres/1737110469001-UpdateStatusList.d.ts.map +0 -1
- package/dist/migrations/postgres/1737110469001-UpdateStatusList.js +0 -39
- package/dist/migrations/postgres/1737110469001-UpdateStatusList.js.map +0 -1
- package/dist/migrations/sqlite/1737110469000-UpdateStatusList.d.ts +0 -7
- package/dist/migrations/sqlite/1737110469000-UpdateStatusList.d.ts.map +0 -1
- package/dist/migrations/sqlite/1737110469000-UpdateStatusList.js +0 -88
- package/dist/migrations/sqlite/1737110469000-UpdateStatusList.js.map +0 -1
- package/dist/utils/statusList/MappingUtils.d.ts +0 -5
- package/dist/utils/statusList/MappingUtils.d.ts.map +0 -1
- package/dist/utils/statusList/MappingUtils.js +0 -69
- package/dist/utils/statusList/MappingUtils.js.map +0 -1
- package/src/__tests__/statusList.entities.test.ts +0 -215
- package/src/__tests__/statusList.store.test.ts +0 -232
- package/src/migrations/postgres/1737110469001-UpdateStatusList.ts +0 -25
- package/src/migrations/sqlite/1737110469000-UpdateStatusList.ts +0 -84
- package/src/utils/statusList/MappingUtils.ts +0 -82
|
@@ -13,12 +13,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.StatusListStore = void 0;
|
|
16
|
-
const ssi_types_1 = require("@sphereon/ssi-types");
|
|
17
16
|
const debug_1 = __importDefault(require("debug"));
|
|
18
17
|
const typeorm_1 = require("typeorm");
|
|
19
|
-
const
|
|
20
|
-
const StatusList2021EntryEntity_1 = require("../entities/
|
|
21
|
-
const MappingUtils_1 = require("../utils/statusList/MappingUtils");
|
|
18
|
+
const StatusList2021Entity_1 = require("../entities/statusList2021/StatusList2021Entity");
|
|
19
|
+
const StatusList2021EntryEntity_1 = require("../entities/statusList2021/StatusList2021EntryEntity");
|
|
22
20
|
const debug = (0, debug_1.default)('sphereon:ssi-sdk:data-store:status-list');
|
|
23
21
|
class StatusListStore {
|
|
24
22
|
constructor(dbConnection) {
|
|
@@ -81,16 +79,32 @@ class StatusListStore {
|
|
|
81
79
|
return result !== null && result !== void 0 ? result : undefined;
|
|
82
80
|
});
|
|
83
81
|
}
|
|
82
|
+
removeStatusListEntryByIndex(args) {
|
|
83
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
84
|
+
let error = false;
|
|
85
|
+
try {
|
|
86
|
+
yield this.getStatusListEntryByIndex(args); // only used to check it exists
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
error = true;
|
|
90
|
+
}
|
|
91
|
+
if (error) {
|
|
92
|
+
console.log(`Could not delete statusList ${args.statusListId} entry by index ${args.statusListIndex}`);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
const result = yield (yield this.getStatusListEntryRepo()).delete(Object.assign(Object.assign(Object.assign({}, (args.statusListId && { statusList: args.statusListId })), (args.correlationId && { correlationId: args.correlationId })), { statusListIndex: args.statusListIndex }));
|
|
96
|
+
error = !result.affected || result.affected !== 1;
|
|
97
|
+
}
|
|
98
|
+
return !error;
|
|
99
|
+
});
|
|
100
|
+
}
|
|
84
101
|
getStatusListEntryByCredentialId(args) {
|
|
85
102
|
return __awaiter(this, void 0, void 0, function* () {
|
|
86
103
|
const credentialId = args.credentialId;
|
|
87
104
|
if (!credentialId) {
|
|
88
105
|
throw Error('Can only get a credential by credentialId when a credentialId is supplied');
|
|
89
106
|
}
|
|
90
|
-
const statusList = yield this.getStatusList({
|
|
91
|
-
id: args.statusListId,
|
|
92
|
-
correlationId: args.statusListCorrelationId,
|
|
93
|
-
});
|
|
107
|
+
const statusList = yield this.getStatusList({ id: args.statusListId, correlationId: args.statusListCorrelationId });
|
|
94
108
|
const where = Object.assign(Object.assign({ statusList: statusList.id }, (args.entryCorrelationId && { correlationId: args.entryCorrelationId })), { credentialId });
|
|
95
109
|
console.log(`Entries: ${JSON.stringify(yield (yield this.getStatusListEntryRepo()).find(), null, 2)}`);
|
|
96
110
|
const result = yield (yield this.getStatusListEntryRepo()).findOne({ where });
|
|
@@ -116,36 +130,12 @@ class StatusListStore {
|
|
|
116
130
|
return !error;
|
|
117
131
|
});
|
|
118
132
|
}
|
|
119
|
-
removeStatusListEntryByIndex(args) {
|
|
120
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
121
|
-
let error = false;
|
|
122
|
-
try {
|
|
123
|
-
yield this.getStatusListEntryByIndex(args);
|
|
124
|
-
}
|
|
125
|
-
catch (error) {
|
|
126
|
-
error = true;
|
|
127
|
-
}
|
|
128
|
-
if (error) {
|
|
129
|
-
console.log(`Could not delete statusList ${args.statusListId} entry by index ${args.statusListIndex}`);
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
const result = yield (yield this.getStatusListEntryRepo()).delete(Object.assign(Object.assign(Object.assign({}, (args.statusListId && { statusList: args.statusListId })), (args.correlationId && { correlationId: args.correlationId })), { statusListIndex: args.statusListIndex }));
|
|
133
|
-
error = !result.affected || result.affected !== 1;
|
|
134
|
-
}
|
|
135
|
-
return !error;
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
133
|
getStatusListEntries(args) {
|
|
139
134
|
return __awaiter(this, void 0, void 0, function* () {
|
|
140
135
|
return (yield this.getStatusListEntryRepo()).find({ where: Object.assign(Object.assign({}, args === null || args === void 0 ? void 0 : args.filter), { statusList: args.statusListId }) });
|
|
141
136
|
});
|
|
142
137
|
}
|
|
143
138
|
getStatusList(args) {
|
|
144
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
145
|
-
return (0, MappingUtils_1.statusListFrom)(yield this.getStatusListEntity(args));
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
getStatusListEntity(args) {
|
|
149
139
|
return __awaiter(this, void 0, void 0, function* () {
|
|
150
140
|
if (!args.id && !args.correlationId) {
|
|
151
141
|
throw Error(`At least and 'id' or 'correlationId' needs to be provided to lookup a status list`);
|
|
@@ -172,7 +162,7 @@ class StatusListStore {
|
|
|
172
162
|
if (!result) {
|
|
173
163
|
return [];
|
|
174
164
|
}
|
|
175
|
-
return result
|
|
165
|
+
return result;
|
|
176
166
|
});
|
|
177
167
|
}
|
|
178
168
|
addStatusList(args) {
|
|
@@ -185,26 +175,22 @@ class StatusListStore {
|
|
|
185
175
|
throw Error(`Status list for id ${id}, correlationId ${correlationId} already exists`);
|
|
186
176
|
}
|
|
187
177
|
debug('Adding status list ', id);
|
|
188
|
-
const
|
|
189
|
-
|
|
190
|
-
return (0, MappingUtils_1.statusListFrom)(createdResult);
|
|
178
|
+
const createdResult = yield (yield this.getStatusListRepo()).save(args);
|
|
179
|
+
return createdResult;
|
|
191
180
|
});
|
|
192
181
|
}
|
|
193
182
|
updateStatusList(args) {
|
|
194
183
|
return __awaiter(this, void 0, void 0, function* () {
|
|
195
184
|
const result = yield this.getStatusList(args);
|
|
196
185
|
debug('Updating status list', result);
|
|
197
|
-
const
|
|
198
|
-
|
|
199
|
-
return (0, MappingUtils_1.statusListFrom)(updatedResult);
|
|
186
|
+
const updatedResult = yield (yield this.getStatusListRepo()).save(args, { transaction: true });
|
|
187
|
+
return updatedResult;
|
|
200
188
|
});
|
|
201
189
|
}
|
|
202
190
|
removeStatusList(args) {
|
|
203
191
|
return __awaiter(this, void 0, void 0, function* () {
|
|
204
|
-
const result = yield this.
|
|
205
|
-
yield (yield this.
|
|
206
|
-
const deletedEntity = yield (yield this.getStatusListRepo()).remove(result);
|
|
207
|
-
return Boolean(deletedEntity);
|
|
192
|
+
const result = yield this.getStatusList(args);
|
|
193
|
+
yield (yield this.getStatusListRepo()).delete(result);
|
|
208
194
|
});
|
|
209
195
|
}
|
|
210
196
|
getDS() {
|
|
@@ -212,17 +198,9 @@ class StatusListStore {
|
|
|
212
198
|
return this._dbConnection;
|
|
213
199
|
});
|
|
214
200
|
}
|
|
215
|
-
getStatusListRepo(
|
|
201
|
+
getStatusListRepo() {
|
|
216
202
|
return __awaiter(this, void 0, void 0, function* () {
|
|
217
|
-
|
|
218
|
-
switch (type) {
|
|
219
|
-
case ssi_types_1.StatusListType.StatusList2021:
|
|
220
|
-
return dataSource.getRepository(StatusListEntities_1.StatusList2021Entity);
|
|
221
|
-
case ssi_types_1.StatusListType.OAuthStatusList:
|
|
222
|
-
return dataSource.getRepository(StatusListEntities_1.OAuthStatusListEntity);
|
|
223
|
-
default:
|
|
224
|
-
return dataSource.getRepository(StatusListEntities_1.StatusListEntity);
|
|
225
|
-
}
|
|
203
|
+
return (yield this.getDS()).getRepository(StatusList2021Entity_1.StatusListEntity);
|
|
226
204
|
});
|
|
227
205
|
}
|
|
228
206
|
getStatusListEntryRepo() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusListStore.js","sourceRoot":"","sources":["../../src/statusList/StatusListStore.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"StatusListStore.js","sourceRoot":"","sources":["../../src/statusList/StatusListStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FindOptionsWhere } from 'typeorm';
|
|
2
|
-
import {
|
|
3
|
-
export type FindStatusListArgs = FindOptionsWhere<
|
|
2
|
+
import { IStatusListEntity, IStatusListEntryEntity } from './statusList';
|
|
3
|
+
export type FindStatusListArgs = FindOptionsWhere<IStatusListEntity>[];
|
|
4
4
|
export type FindStatusListEntryArgs = FindOptionsWhere<IStatusListEntryEntity>[] | FindOptionsWhere<IStatusListEntryEntity>;
|
|
5
5
|
export interface IStatusListEntryAvailableArgs {
|
|
6
6
|
statusListId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IAbstractStatusListStore.d.ts","sourceRoot":"","sources":["../../../src/types/statusList/IAbstractStatusListStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"IAbstractStatusListStore.d.ts","sourceRoot":"","sources":["../../../src/types/statusList/IAbstractStatusListStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAExE,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,EAAE,CAAA;AACtE,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,EAAE,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,CAAA;AAE3H,MAAM,WAAW,6BAA6B;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CACnC;AAED,MAAM,WAAW,8BAA8B;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,qCAAqC;IACpD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AACD,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,uBAAuB,CAAA;CACjC;AAED,MAAM,MAAM,uBAAuB,GAAG,sBAAsB,CAAA;AAE5D,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,CAAA;AAEtD,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAC5B;AAED,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAA;AAElD,MAAM,MAAM,0BAA0B,GAAG,iBAAiB,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { IIssuer,
|
|
2
|
-
import {
|
|
1
|
+
import { IIssuer, OriginalVerifiableCredential, StatusListCredentialIdMode, StatusListDriverType, StatusListIndexingDirection, StatusListType, StatusPurpose2021 } from '@sphereon/ssi-types';
|
|
2
|
+
import { ProofFormat } from '@veramo/core';
|
|
3
|
+
import { StatusListEntity } from '../../entities/statusList2021/StatusList2021Entity';
|
|
3
4
|
export interface IStatusListEntity {
|
|
4
5
|
id: string;
|
|
5
6
|
correlationId: string;
|
|
@@ -9,15 +10,9 @@ export interface IStatusListEntity {
|
|
|
9
10
|
issuer: string | IIssuer;
|
|
10
11
|
type: StatusListType;
|
|
11
12
|
proofFormat: ProofFormat;
|
|
12
|
-
statusListCredential?: StatusListCredential;
|
|
13
|
-
}
|
|
14
|
-
export interface IStatusList2021Entity extends IStatusListEntity {
|
|
15
13
|
indexingDirection: StatusListIndexingDirection;
|
|
16
14
|
statusPurpose: StatusPurpose2021;
|
|
17
|
-
|
|
18
|
-
export interface IOAuthStatusListEntity extends IStatusListEntity {
|
|
19
|
-
bitsPerStatus: number;
|
|
20
|
-
expiresAt?: Date;
|
|
15
|
+
statusListCredential?: OriginalVerifiableCredential;
|
|
21
16
|
}
|
|
22
17
|
export interface IStatusListEntryEntity {
|
|
23
18
|
statusList: StatusListEntity | string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statusList.d.ts","sourceRoot":"","sources":["../../../src/types/statusList/statusList.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"statusList.d.ts","sourceRoot":"","sources":["../../../src/types/statusList/statusList.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,4BAA4B,EAC5B,0BAA0B,EAC1B,oBAAoB,EACpB,2BAA2B,EAC3B,cAAc,EACd,iBAAiB,EAClB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAA;AAErF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,oBAAoB,CAAA;IAChC,gBAAgB,EAAE,0BAA0B,CAAA;IAC5C,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;IACxB,IAAI,EAAE,cAAc,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,iBAAiB,EAAE,2BAA2B,CAAA;IAC9C,aAAa,EAAE,iBAAiB,CAAA;IAChC,oBAAoB,CAAC,EAAE,4BAA4B,CAAA;CACpD;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,gBAAgB,GAAG,MAAM,CAAA;IAErC,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,eAAe,EAAE,MAAM,CAAA;IAEvB,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk.data-store",
|
|
3
|
-
"version": "0.32.1-
|
|
3
|
+
"version": "0.32.1-next.113+5b666268",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
"@sphereon/pex": "5.0.0-unstable.28",
|
|
19
19
|
"@sphereon/ssi-sdk-ext.did-utils": "0.27.0",
|
|
20
20
|
"@sphereon/ssi-sdk-ext.identifier-resolution": "0.27.0",
|
|
21
|
-
"@sphereon/ssi-sdk.agent-config": "0.32.1-
|
|
22
|
-
"@sphereon/ssi-sdk.core": "0.32.1-
|
|
23
|
-
"@sphereon/ssi-types": "0.32.1-
|
|
21
|
+
"@sphereon/ssi-sdk.agent-config": "0.32.1-next.113+5b666268",
|
|
22
|
+
"@sphereon/ssi-sdk.core": "0.32.1-next.113+5b666268",
|
|
23
|
+
"@sphereon/ssi-types": "0.32.1-next.113+5b666268",
|
|
24
24
|
"@veramo/core": "4.2.0",
|
|
25
25
|
"@veramo/utils": "4.2.0",
|
|
26
26
|
"blakejs": "^1.2.1",
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"Contact Store"
|
|
55
55
|
],
|
|
56
56
|
"nx": {},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "5b666268b482b6a08a6edc00b4b713faf69247e1"
|
|
58
58
|
}
|
package/src/entities/{statusList/StatusListEntities.ts → statusList2021/StatusList2021Entity.ts}
RENAMED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
2
|
IIssuer,
|
|
3
|
-
|
|
3
|
+
JwtDecodedVerifiableCredential,
|
|
4
4
|
StatusListCredentialIdMode,
|
|
5
5
|
StatusListDriverType,
|
|
6
6
|
StatusListIndexingDirection,
|
|
7
7
|
StatusListType,
|
|
8
8
|
StatusPurpose2021,
|
|
9
|
-
|
|
9
|
+
W3CVerifiableCredential,
|
|
10
10
|
} from '@sphereon/ssi-types'
|
|
11
|
-
import {
|
|
11
|
+
import { ProofFormat } from '@veramo/core'
|
|
12
|
+
import { BaseEntity, Column, Entity, OneToMany, PrimaryColumn, Unique } from 'typeorm'
|
|
12
13
|
import { StatusListEntryEntity } from './StatusList2021EntryEntity'
|
|
13
14
|
|
|
14
15
|
@Entity('StatusList')
|
|
15
16
|
@Unique('UQ_correlationId', ['correlationId'])
|
|
16
|
-
|
|
17
|
-
export abstract class StatusListEntity extends BaseEntity {
|
|
17
|
+
export class StatusListEntity extends BaseEntity {
|
|
18
18
|
@PrimaryColumn({ name: 'id', type: 'varchar' })
|
|
19
19
|
id!: string
|
|
20
20
|
|
|
@@ -46,12 +46,10 @@ export abstract class StatusListEntity extends BaseEntity {
|
|
|
46
46
|
})
|
|
47
47
|
issuer!: string | IIssuer
|
|
48
48
|
|
|
49
|
-
@Column('simple-enum', {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
default: StatusListDriverType.AGENT_TYPEORM,
|
|
54
|
-
})
|
|
49
|
+
@Column('simple-enum', { name: 'type', enum: StatusListType, nullable: false, default: StatusListType.StatusList2021 })
|
|
50
|
+
type!: StatusListType
|
|
51
|
+
|
|
52
|
+
@Column('simple-enum', { name: 'driverType', enum: StatusListDriverType, nullable: false, default: StatusListDriverType.AGENT_TYPEORM })
|
|
55
53
|
driverType!: StatusListDriverType
|
|
56
54
|
|
|
57
55
|
@Column('simple-enum', {
|
|
@@ -65,19 +63,25 @@ export abstract class StatusListEntity extends BaseEntity {
|
|
|
65
63
|
@Column({ type: 'varchar', name: 'proofFormat', enum: ['lds', 'jwt'], nullable: false, default: 'lds' })
|
|
66
64
|
proofFormat!: ProofFormat
|
|
67
65
|
|
|
66
|
+
@Column({ type: 'varchar', name: 'indexingDirection', enum: ['rightToLeft'], nullable: false, default: 'rightToLeft' })
|
|
67
|
+
indexingDirection!: StatusListIndexingDirection
|
|
68
|
+
|
|
69
|
+
@Column({ type: 'varchar', name: 'statusPurpose', nullable: false, default: 'revocation' })
|
|
70
|
+
statusPurpose!: StatusPurpose2021
|
|
71
|
+
|
|
68
72
|
@Column({
|
|
69
73
|
name: 'statusListCredential',
|
|
70
74
|
type: 'text',
|
|
71
75
|
nullable: true,
|
|
72
76
|
unique: false,
|
|
73
77
|
transformer: {
|
|
74
|
-
from(value: string):
|
|
78
|
+
from(value: string): W3CVerifiableCredential | JwtDecodedVerifiableCredential {
|
|
75
79
|
if (value?.startsWith('ey')) {
|
|
76
80
|
return value
|
|
77
81
|
}
|
|
78
82
|
return JSON.parse(value)
|
|
79
83
|
},
|
|
80
|
-
to(value:
|
|
84
|
+
to(value: W3CVerifiableCredential | JwtDecodedVerifiableCredential): string {
|
|
81
85
|
if (typeof value === 'string') {
|
|
82
86
|
return value
|
|
83
87
|
}
|
|
@@ -85,31 +89,8 @@ export abstract class StatusListEntity extends BaseEntity {
|
|
|
85
89
|
},
|
|
86
90
|
},
|
|
87
91
|
})
|
|
88
|
-
statusListCredential?:
|
|
92
|
+
statusListCredential?: W3CVerifiableCredential | JwtDecodedVerifiableCredential
|
|
89
93
|
|
|
90
94
|
@OneToMany((type) => StatusListEntryEntity, (entry) => entry.statusList)
|
|
91
95
|
statusListEntries!: StatusListEntryEntity[]
|
|
92
96
|
}
|
|
93
|
-
|
|
94
|
-
@ChildEntity(StatusListType.StatusList2021)
|
|
95
|
-
export class StatusList2021Entity extends StatusListEntity {
|
|
96
|
-
@Column({
|
|
97
|
-
type: 'varchar',
|
|
98
|
-
name: 'indexingDirection',
|
|
99
|
-
enum: ['rightToLeft'],
|
|
100
|
-
nullable: false,
|
|
101
|
-
default: 'rightToLeft',
|
|
102
|
-
})
|
|
103
|
-
indexingDirection!: StatusListIndexingDirection
|
|
104
|
-
|
|
105
|
-
@Column({ type: 'varchar', name: 'statusPurpose', nullable: false, default: 'revocation' })
|
|
106
|
-
statusPurpose!: StatusPurpose2021
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
@ChildEntity(StatusListType.OAuthStatusList)
|
|
110
|
-
export class OAuthStatusListEntity extends StatusListEntity {
|
|
111
|
-
@Column({ type: 'integer', name: 'bitsPerStatus', nullable: false })
|
|
112
|
-
bitsPerStatus!: number
|
|
113
|
-
@Column({ type: 'datetime', name: 'expiresAt', nullable: true })
|
|
114
|
-
expiresAt?: Date
|
|
115
|
-
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Validate } from 'class-validator'
|
|
2
2
|
import { BaseEntity, Column, Entity, ManyToOne, PrimaryColumn } from 'typeorm'
|
|
3
3
|
import { IsNonEmptyStringConstraint } from '../validators'
|
|
4
|
-
import { StatusListEntity } from './
|
|
4
|
+
import { StatusListEntity } from './StatusList2021Entity'
|
|
5
5
|
|
|
6
6
|
@Entity('StatusListEntry')
|
|
7
7
|
// @Unique('uq_credential_statuslist', ['statusList', 'credentialId']) // disabled because one prop can be null
|
package/src/index.ts
CHANGED
|
@@ -16,8 +16,8 @@ import { ImageDimensionsEntity } from './entities/issuanceBranding/ImageDimensio
|
|
|
16
16
|
import { IssuerLocaleBrandingEntity } from './entities/issuanceBranding/IssuerLocaleBrandingEntity'
|
|
17
17
|
import { IssuerBrandingEntity } from './entities/issuanceBranding/IssuerBrandingEntity'
|
|
18
18
|
import { TextAttributesEntity } from './entities/issuanceBranding/TextAttributesEntity'
|
|
19
|
-
import {
|
|
20
|
-
import { StatusListEntryEntity } from './entities/
|
|
19
|
+
import { StatusListEntity } from './entities/statusList2021/StatusList2021Entity'
|
|
20
|
+
import { StatusListEntryEntity } from './entities/statusList2021/StatusList2021EntryEntity'
|
|
21
21
|
import { MachineStateInfoEntity } from './entities/machineState/MachineStateInfoEntity'
|
|
22
22
|
import { IStatusListEntity, IStatusListEntryEntity } from './types'
|
|
23
23
|
import { PartyRelationshipEntity } from './entities/contact/PartyRelationshipEntity'
|
|
@@ -96,7 +96,7 @@ export const DataStoreIssuanceBrandingEntities = [
|
|
|
96
96
|
|
|
97
97
|
export const DataStorePresentationDefinitionEntities = [PresentationDefinitionItemEntity]
|
|
98
98
|
|
|
99
|
-
export const DataStoreStatusListEntities = [StatusListEntity,
|
|
99
|
+
export const DataStoreStatusListEntities = [StatusListEntity, StatusListEntryEntity]
|
|
100
100
|
|
|
101
101
|
export const DataStoreEventLoggerEntities = [AuditEventEntity]
|
|
102
102
|
|
|
@@ -2,8 +2,6 @@ import Debug from 'debug'
|
|
|
2
2
|
import { MigrationInterface, QueryRunner } from 'typeorm'
|
|
3
3
|
import { CreateStatusList1693866470001 } from '../postgres/1693866470001-CreateStatusList'
|
|
4
4
|
import { CreateStatusList1693866470002 } from '../sqlite/1693866470000-CreateStatusList'
|
|
5
|
-
import { UpdateStatusList1737110469001 } from '../postgres/1737110469001-UpdateStatusList'
|
|
6
|
-
import { UpdateStatusList1737110469000 } from '../sqlite/1737110469000-UpdateStatusList'
|
|
7
5
|
|
|
8
6
|
const debug = Debug('sphereon:ssi-sdk:migrations')
|
|
9
7
|
|
|
@@ -14,19 +12,15 @@ export class CreateStatusList1693866470000 implements MigrationInterface {
|
|
|
14
12
|
debug('migration: creating issuance branding tables')
|
|
15
13
|
const dbType = queryRunner.connection.driver.options.type
|
|
16
14
|
if (dbType === 'postgres') {
|
|
17
|
-
debug('using postgres migration
|
|
18
|
-
const
|
|
19
|
-
await
|
|
20
|
-
const updateMig = new UpdateStatusList1737110469001()
|
|
21
|
-
const up = await updateMig.up(queryRunner)
|
|
15
|
+
debug('using postgres migration file')
|
|
16
|
+
const mig = new CreateStatusList1693866470001()
|
|
17
|
+
const up = await mig.up(queryRunner)
|
|
22
18
|
debug('Migration statements executed')
|
|
23
19
|
return up
|
|
24
20
|
} else if (dbType === 'sqlite' || dbType === 'react-native' || dbType === 'expo') {
|
|
25
|
-
debug('using sqlite/react-native migration
|
|
26
|
-
const
|
|
27
|
-
await
|
|
28
|
-
const updateMig = new UpdateStatusList1737110469000()
|
|
29
|
-
const up = await updateMig.up(queryRunner)
|
|
21
|
+
debug('using sqlite/react-native migration file')
|
|
22
|
+
const mig = new CreateStatusList1693866470002()
|
|
23
|
+
const up = await mig.up(queryRunner)
|
|
30
24
|
debug('Migration statements executed')
|
|
31
25
|
return up
|
|
32
26
|
} else {
|
|
@@ -40,19 +34,15 @@ export class CreateStatusList1693866470000 implements MigrationInterface {
|
|
|
40
34
|
debug('migration: reverting issuance branding tables')
|
|
41
35
|
const dbType = queryRunner.connection.driver.options.type
|
|
42
36
|
if (dbType === 'postgres') {
|
|
43
|
-
debug('using postgres migration
|
|
44
|
-
const
|
|
45
|
-
await
|
|
46
|
-
const createMig = new CreateStatusList1693866470001()
|
|
47
|
-
const down = await createMig.down(queryRunner)
|
|
37
|
+
debug('using postgres migration file')
|
|
38
|
+
const mig = new CreateStatusList1693866470002()
|
|
39
|
+
const down = await mig.down(queryRunner)
|
|
48
40
|
debug('Migration statements executed')
|
|
49
41
|
return down
|
|
50
42
|
} else if (dbType === 'sqlite' || dbType === 'react-native' || dbType === 'expo') {
|
|
51
|
-
debug('using sqlite/react-native migration
|
|
52
|
-
const
|
|
53
|
-
await
|
|
54
|
-
const createMig = new CreateStatusList1693866470002()
|
|
55
|
-
const down = await createMig.down(queryRunner)
|
|
43
|
+
debug('using sqlite/react-native migration file')
|
|
44
|
+
const mig = new CreateStatusList1693866470002()
|
|
45
|
+
const down = await mig.down(queryRunner)
|
|
56
46
|
debug('Migration statements executed')
|
|
57
47
|
return down
|
|
58
48
|
} else {
|
|
@@ -1,60 +1,24 @@
|
|
|
1
|
-
// noinspection SqlPostgresDialect SqlNoDataSourceInspection
|
|
2
1
|
import { MigrationInterface, QueryRunner } from 'typeorm'
|
|
3
2
|
|
|
4
3
|
export class CreateStatusList1693866470001 implements MigrationInterface {
|
|
5
4
|
name = 'CreateStatusList1693866470001'
|
|
6
5
|
|
|
7
6
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
8
|
-
await queryRunner.query(`CREATE TYPE "StatusList_type_enum" AS ENUM('StatusList2021', 'OAuthStatusList')`)
|
|
9
|
-
await queryRunner.query(`CREATE TYPE "StatusList_drivertype_enum" AS ENUM('agent_typeorm', 'agent_kv_store', 'github', 'agent_filesystem')`)
|
|
10
|
-
await queryRunner.query(`CREATE TYPE "StatusList_credentialidmode_enum" AS ENUM('ISSUANCE', 'PERSISTENCE', 'NEVER')`)
|
|
11
|
-
|
|
12
7
|
await queryRunner.query(
|
|
13
|
-
`CREATE TABLE "StatusListEntry"
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"credentialHash" character varying(128),
|
|
19
|
-
"correlationId" character varying(255),
|
|
20
|
-
"value" character varying(50),
|
|
21
|
-
CONSTRAINT "PK_68704d2d13857360c6b44a3d1d0" PRIMARY KEY ("statusListId", "statusListIndex")
|
|
22
|
-
)`,
|
|
8
|
+
`CREATE TABLE "StatusListEntry" ("statusListId" character varying NOT NULL, "statusListIndex" integer NOT NULL, "credentialId" character varying, "credentialHash" character varying(128), "correlationId" character varying(255), "value" character varying(50), CONSTRAINT "PK_68704d2d13857360c6b44a3d1d0" PRIMARY KEY ("statusListId", "statusListIndex"))`,
|
|
9
|
+
)
|
|
10
|
+
await queryRunner.query(`CREATE TYPE "public"."StatusList_type_enum" AS ENUM('StatusList2021')`)
|
|
11
|
+
await queryRunner.query(
|
|
12
|
+
`CREATE TYPE "public"."StatusList_drivertype_enum" AS ENUM('agent_typeorm', 'agent_kv_store', 'github', 'agent_filesystem')`,
|
|
23
13
|
)
|
|
24
|
-
await queryRunner.query(`CREATE TYPE "
|
|
25
|
-
await queryRunner.query(`CREATE TYPE "StatusList_drivertype_enum" AS ENUM('agent_typeorm', 'agent_kv_store', 'github', 'agent_filesystem')`)
|
|
26
|
-
await queryRunner.query(`CREATE TYPE "StatusList_credentialidmode_enum" AS ENUM('ISSUANCE', 'PERSISTENCE', 'NEVER')`)
|
|
14
|
+
await queryRunner.query(`CREATE TYPE "public"."StatusList_credentialidmode_enum" AS ENUM('ISSUANCE', 'PERSISTENCE', 'NEVER')`)
|
|
27
15
|
await queryRunner.query(
|
|
28
|
-
`CREATE TABLE "StatusList"
|
|
29
|
-
(
|
|
30
|
-
"id" character varying NOT NULL,
|
|
31
|
-
"correlationId" character varying NOT NULL,
|
|
32
|
-
"length" integer NOT NULL,
|
|
33
|
-
"issuer" text NOT NULL,
|
|
34
|
-
"type" "StatusList_type_enum" NOT NULL DEFAULT 'StatusList2021',
|
|
35
|
-
"driverType" "StatusList_drivertype_enum" NOT NULL DEFAULT 'agent_typeorm',
|
|
36
|
-
"credentialIdMode" "StatusList_credentialidmode_enum" NOT NULL DEFAULT 'ISSUANCE',
|
|
37
|
-
"proofFormat" character varying NOT NULL DEFAULT 'lds',
|
|
38
|
-
"indexingDirection" character varying NOT NULL DEFAULT 'rightToLeft',
|
|
39
|
-
"statusPurpose" character varying NOT NULL DEFAULT 'revocation',
|
|
40
|
-
"statusListCredential" text,
|
|
41
|
-
CONSTRAINT "UQ_correlationId" UNIQUE ("correlationId"),
|
|
42
|
-
CONSTRAINT "PK_StatusList_Id" PRIMARY KEY ("id")
|
|
43
|
-
)`,
|
|
16
|
+
`CREATE TABLE "StatusList" ("id" character varying NOT NULL, "correlationId" character varying NOT NULL, "length" integer NOT NULL, "issuer" text NOT NULL, "type" "public"."StatusList_type_enum" NOT NULL DEFAULT 'StatusList2021', "driverType" "public"."StatusList_drivertype_enum" NOT NULL DEFAULT 'agent_typeorm', "credentialIdMode" "public"."StatusList_credentialidmode_enum" NOT NULL DEFAULT 'ISSUANCE', "proofFormat" character varying NOT NULL DEFAULT 'lds', "indexingDirection" character varying NOT NULL DEFAULT 'rightToLeft', "statusPurpose" character varying NOT NULL DEFAULT 'revocation', "statusListCredential" text, CONSTRAINT "UQ_correlationId" UNIQUE ("correlationId"), CONSTRAINT "PK_StatusList_Id" PRIMARY KEY ("id"))`,
|
|
44
17
|
)
|
|
45
18
|
await queryRunner.query(
|
|
46
|
-
`ALTER TABLE "StatusListEntry"
|
|
47
|
-
ADD CONSTRAINT "FK_statusListEntry_statusListId" FOREIGN KEY ("statusListId") REFERENCES "StatusList" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
|
|
19
|
+
`ALTER TABLE "StatusListEntry" ADD CONSTRAINT "FK_statusListEntry_statusListId" FOREIGN KEY ("statusListId") REFERENCES "StatusList"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`,
|
|
48
20
|
)
|
|
49
21
|
}
|
|
50
22
|
|
|
51
|
-
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
52
|
-
await queryRunner.query(`ALTER TABLE "StatusListEntry"
|
|
53
|
-
DROP CONSTRAINT "FK_statusListEntry_statusListId"`)
|
|
54
|
-
await queryRunner.query(`DROP TABLE "StatusListEntry"`)
|
|
55
|
-
await queryRunner.query(`DROP TABLE "StatusList"`)
|
|
56
|
-
await queryRunner.query(`DROP TYPE "StatusList_credentialidmode_enum"`)
|
|
57
|
-
await queryRunner.query(`DROP TYPE "StatusList_drivertype_enum"`)
|
|
58
|
-
await queryRunner.query(`DROP TYPE "StatusList_type_enum"`)
|
|
59
|
-
}
|
|
23
|
+
public async down(queryRunner: QueryRunner): Promise<void> {}
|
|
60
24
|
}
|
|
@@ -5,60 +5,20 @@ export class CreateStatusList1693866470002 implements MigrationInterface {
|
|
|
5
5
|
|
|
6
6
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
7
7
|
await queryRunner.query(
|
|
8
|
-
`CREATE TABLE "StatusListEntry"
|
|
9
|
-
(
|
|
10
|
-
"statusListId" varchar NOT NULL,
|
|
11
|
-
"statusListIndex" integer NOT NULL,
|
|
12
|
-
"credentialId" varchar,
|
|
13
|
-
"credentialHash" varchar(128),
|
|
14
|
-
"correlationId" varchar(255),
|
|
15
|
-
"value" varchar(50),
|
|
16
|
-
PRIMARY KEY ("statusListId", "statusListIndex")
|
|
17
|
-
)`,
|
|
8
|
+
`CREATE TABLE "StatusListEntry" ("statusListId" varchar NOT NULL, "statusListIndex" integer NOT NULL, "credentialId" varchar, "credentialHash" varchar(128), "correlationId" varchar(255), "value" varchar(50), PRIMARY KEY ("statusListId", "statusListIndex"))`,
|
|
18
9
|
)
|
|
19
10
|
await queryRunner.query(
|
|
20
|
-
`CREATE TABLE "StatusList"
|
|
21
|
-
(
|
|
22
|
-
"id" varchar PRIMARY KEY NOT NULL,
|
|
23
|
-
"correlationId" varchar NOT NULL,
|
|
24
|
-
"length" integer NOT NULL,
|
|
25
|
-
"issuer" text NOT NULL,
|
|
26
|
-
"type" varchar CHECK ( "type" IN ('StatusList2021') ) NOT NULL DEFAULT ('StatusList2021'),
|
|
27
|
-
"driverType" varchar CHECK ( "driverType" IN ('agent_typeorm', 'agent_kv_store', 'github',
|
|
28
|
-
'agent_filesystem') ) NOT NULL DEFAULT ('agent_typeorm'),
|
|
29
|
-
"credentialIdMode" varchar CHECK ( "credentialIdMode" IN ('ISSUANCE', 'PERSISTENCE', 'NEVER') ) NOT NULL DEFAULT ('ISSUANCE'),
|
|
30
|
-
"proofFormat" varchar CHECK ( "proofFormat" IN ('lds', 'jwt') ) NOT NULL DEFAULT ('lds'),
|
|
31
|
-
"indexingDirection" varchar CHECK ( "indexingDirection" IN ('rightToLeft') ) NOT NULL DEFAULT ('rightToLeft'),
|
|
32
|
-
"statusPurpose" varchar NOT NULL DEFAULT ('revocation'),
|
|
33
|
-
"statusListCredential" text,
|
|
34
|
-
CONSTRAINT "UQ_correlationId" UNIQUE ("correlationId")
|
|
35
|
-
)`,
|
|
11
|
+
`CREATE TABLE "StatusList" ("id" varchar PRIMARY KEY NOT NULL, "correlationId" varchar NOT NULL, "length" integer NOT NULL, "issuer" text NOT NULL, "type" varchar CHECK( "type" IN ('StatusList2021') ) NOT NULL DEFAULT ('StatusList2021'), "driverType" varchar CHECK( "driverType" IN ('agent_typeorm','agent_kv_store','github','agent_filesystem') ) NOT NULL DEFAULT ('agent_typeorm'), "credentialIdMode" varchar CHECK( "credentialIdMode" IN ('ISSUANCE','PERSISTENCE','NEVER') ) NOT NULL DEFAULT ('ISSUANCE'), "proofFormat" varchar CHECK( "proofFormat" IN ('lds','jwt') ) NOT NULL DEFAULT ('lds'), "indexingDirection" varchar CHECK( "indexingDirection" IN ('rightToLeft') ) NOT NULL DEFAULT ('rightToLeft'), "statusPurpose" varchar NOT NULL DEFAULT ('revocation'), "statusListCredential" text, CONSTRAINT "UQ_correlationId" UNIQUE ("correlationId"))`,
|
|
36
12
|
)
|
|
37
13
|
await queryRunner.query(
|
|
38
|
-
`CREATE TABLE "temporary_StatusListEntry"
|
|
39
|
-
(
|
|
40
|
-
"statusListId" varchar NOT NULL,
|
|
41
|
-
"statusListIndex" integer NOT NULL,
|
|
42
|
-
"credentialId" varchar,
|
|
43
|
-
"credentialHash" varchar(128),
|
|
44
|
-
"correlationId" varchar(255),
|
|
45
|
-
"value" varchar(50),
|
|
46
|
-
CONSTRAINT "FK_statusListEntry_statusListId" FOREIGN KEY ("statusListId") REFERENCES "StatusList" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
|
|
47
|
-
PRIMARY KEY ("statusListId", "statusListIndex")
|
|
48
|
-
)`,
|
|
14
|
+
`CREATE TABLE "temporary_StatusListEntry" ("statusListId" varchar NOT NULL, "statusListIndex" integer NOT NULL, "credentialId" varchar, "credentialHash" varchar(128), "correlationId" varchar(255), "value" varchar(50), CONSTRAINT "FK_statusListEntry_statusListId" FOREIGN KEY ("statusListId") REFERENCES "StatusList" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, PRIMARY KEY ("statusListId", "statusListIndex"))`,
|
|
49
15
|
)
|
|
50
16
|
await queryRunner.query(
|
|
51
|
-
`INSERT INTO "temporary_StatusListEntry"("statusListId", "statusListIndex", "credentialId",
|
|
52
|
-
"credentialHash", "correlationId", "value")
|
|
53
|
-
SELECT "statusListId", "statusListIndex", "credentialId", "credentialHash", "correlationId", "value"
|
|
54
|
-
FROM "StatusListEntry"`,
|
|
17
|
+
`INSERT INTO "temporary_StatusListEntry"("statusListId", "statusListIndex", "credentialId", "credentialHash", "correlationId", "value") SELECT "statusListId", "statusListIndex", "credentialId", "credentialHash", "correlationId", "value" FROM "StatusListEntry"`,
|
|
55
18
|
)
|
|
56
19
|
await queryRunner.query(`DROP TABLE "StatusListEntry"`)
|
|
57
20
|
await queryRunner.query(`ALTER TABLE "temporary_StatusListEntry" RENAME TO "StatusListEntry"`)
|
|
58
21
|
}
|
|
59
22
|
|
|
60
|
-
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
61
|
-
await queryRunner.query(`DROP TABLE "StatusListEntry"`)
|
|
62
|
-
await queryRunner.query(`DROP TABLE "StatusList"`)
|
|
63
|
-
}
|
|
23
|
+
public async down(queryRunner: QueryRunner): Promise<void> {}
|
|
64
24
|
}
|