@cheqd/studio 3.15.0-develop.1 → 3.15.0-develop.3
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/app.d.ts.map +1 -1
- package/dist/app.js +4 -0
- package/dist/app.js.map +1 -1
- package/dist/controllers/api/accreditation.d.ts.map +1 -1
- package/dist/controllers/api/accreditation.js +36 -9
- package/dist/controllers/api/accreditation.js.map +1 -1
- package/dist/controllers/api/credential-status.d.ts +94 -0
- package/dist/controllers/api/credential-status.d.ts.map +1 -1
- package/dist/controllers/api/credential-status.js +220 -506
- package/dist/controllers/api/credential-status.js.map +1 -1
- package/dist/controllers/api/credential.d.ts +66 -0
- package/dist/controllers/api/credential.d.ts.map +1 -1
- package/dist/controllers/api/credential.js +117 -1
- package/dist/controllers/api/credential.js.map +1 -1
- package/dist/controllers/api/did.js.map +1 -1
- package/dist/controllers/api/key.d.ts +71 -1
- package/dist/controllers/api/key.d.ts.map +1 -1
- package/dist/controllers/api/key.js +113 -2
- package/dist/controllers/api/key.js.map +1 -1
- package/dist/controllers/api/presentation.js +22 -21
- package/dist/controllers/api/presentation.js.map +1 -1
- package/dist/controllers/api/providers.controller.js.map +1 -1
- package/dist/controllers/api/resource.js.map +1 -1
- package/dist/controllers/validator/did.js +1 -1
- package/dist/controllers/validator/did.js.map +1 -1
- package/dist/database/entities/issued-credential.entity.d.ts +10 -1
- package/dist/database/entities/issued-credential.entity.d.ts.map +1 -1
- package/dist/database/entities/issued-credential.entity.js +22 -0
- package/dist/database/entities/issued-credential.entity.js.map +1 -1
- package/dist/database/entities/status-registry.entity.d.ts +60 -0
- package/dist/database/entities/status-registry.entity.d.ts.map +1 -0
- package/dist/database/entities/status-registry.entity.js +145 -0
- package/dist/database/entities/status-registry.entity.js.map +1 -0
- package/dist/database/migrations/1761834657128-studio-migrations.d.ts +7 -0
- package/dist/database/migrations/1761834657128-studio-migrations.d.ts.map +1 -0
- package/dist/database/migrations/1761834657128-studio-migrations.js +14 -0
- package/dist/database/migrations/1761834657128-studio-migrations.js.map +1 -0
- package/dist/database/migrations/1762775396083-MigrateStatusLists.d.ts +25 -0
- package/dist/database/migrations/1762775396083-MigrateStatusLists.d.ts.map +1 -0
- package/dist/database/migrations/1762775396083-MigrateStatusLists.js +243 -0
- package/dist/database/migrations/1762775396083-MigrateStatusLists.js.map +1 -0
- package/dist/database/migrations/1762775500000-UpdateWriteCursors.d.ts +23 -0
- package/dist/database/migrations/1762775500000-UpdateWriteCursors.d.ts.map +1 -0
- package/dist/database/migrations/1762775500000-UpdateWriteCursors.js +181 -0
- package/dist/database/migrations/1762775500000-UpdateWriteCursors.js.map +1 -0
- package/dist/database/types/types.d.ts.map +1 -1
- package/dist/database/types/types.js +10 -0
- package/dist/database/types/types.js.map +1 -1
- package/dist/helpers/mailchimp.d.ts.map +1 -1
- package/dist/helpers/mailchimp.js +1 -3
- package/dist/helpers/mailchimp.js.map +1 -1
- package/dist/middleware/auth/routes/api/credential-status-auth.d.ts.map +1 -1
- package/dist/middleware/auth/routes/api/credential-status-auth.js +2 -0
- package/dist/middleware/auth/routes/api/credential-status-auth.js.map +1 -1
- package/dist/middleware/auth/routes/api/key-auth.d.ts.map +1 -1
- package/dist/middleware/auth/routes/api/key-auth.js +1 -0
- package/dist/middleware/auth/routes/api/key-auth.js.map +1 -1
- package/dist/services/api/credential-status.d.ts +107 -0
- package/dist/services/api/credential-status.d.ts.map +1 -0
- package/dist/services/api/credential-status.js +923 -0
- package/dist/services/api/credential-status.js.map +1 -0
- package/dist/services/api/credentials.d.ts +12 -0
- package/dist/services/api/credentials.d.ts.map +1 -1
- package/dist/services/api/credentials.js +330 -117
- package/dist/services/api/credentials.js.map +1 -1
- package/dist/services/connectors/resource.js.map +1 -1
- package/dist/services/identity/abstract.d.ts +1 -1
- package/dist/services/identity/abstract.d.ts.map +1 -1
- package/dist/services/identity/abstract.js +1 -1
- package/dist/services/identity/abstract.js.map +1 -1
- package/dist/services/identity/default.d.ts +1 -1
- package/dist/services/identity/default.d.ts.map +1 -1
- package/dist/services/identity/default.js +2 -2
- package/dist/services/identity/default.js.map +1 -1
- package/dist/services/identity/index.d.ts +1 -1
- package/dist/services/identity/index.d.ts.map +1 -1
- package/dist/services/identity/providers/studio/agent.d.ts +6 -6
- package/dist/services/identity/providers/studio/agent.d.ts.map +1 -1
- package/dist/services/identity/providers/studio/agent.js +11 -2
- package/dist/services/identity/providers/studio/agent.js.map +1 -1
- package/dist/services/identity/providers/studio/local.d.ts +3 -3
- package/dist/services/identity/providers/studio/postgres.d.ts +3 -3
- package/dist/services/identity/providers/studio/postgres.d.ts.map +1 -1
- package/dist/services/identity/providers/studio/postgres.js +0 -12
- package/dist/services/identity/providers/studio/postgres.js.map +1 -1
- package/dist/services/track/api/credential-status-subscriber.d.ts +4 -4
- package/dist/services/track/api/credential-status-subscriber.d.ts.map +1 -1
- package/dist/services/track/api/credential-status-subscriber.js +18 -1
- package/dist/services/track/api/credential-status-subscriber.js.map +1 -1
- package/dist/services/track/api/credential-subscriber.d.ts +4 -4
- package/dist/services/track/api/credential-subscriber.d.ts.map +1 -1
- package/dist/services/track/api/credential-subscriber.js.map +1 -1
- package/dist/services/track/api/did-subscriber.d.ts +4 -4
- package/dist/services/track/api/did-subscriber.d.ts.map +1 -1
- package/dist/services/track/api/did-subscriber.js.map +1 -1
- package/dist/services/track/api/key-subscriber.d.ts +4 -4
- package/dist/services/track/api/key-subscriber.d.ts.map +1 -1
- package/dist/services/track/api/key-subscriber.js.map +1 -1
- package/dist/services/track/api/presentation-subscriber.d.ts +4 -4
- package/dist/services/track/api/presentation-subscriber.d.ts.map +1 -1
- package/dist/services/track/api/presentation-subscriber.js.map +1 -1
- package/dist/services/track/api/resource-subscriber.d.ts +4 -4
- package/dist/services/track/api/resource-subscriber.d.ts.map +1 -1
- package/dist/services/track/api/resource-subscriber.js.map +1 -1
- package/dist/services/track/base.d.ts +2 -2
- package/dist/services/track/base.d.ts.map +1 -1
- package/dist/services/track/base.js.map +1 -1
- package/dist/services/track/operation-subscriber.d.ts +4 -4
- package/dist/services/track/operation-subscriber.d.ts.map +1 -1
- package/dist/services/track/operation-subscriber.js.map +1 -1
- package/dist/services/track/tracker.d.ts +2 -2
- package/dist/services/track/tracker.d.ts.map +1 -1
- package/dist/services/track/tracker.js.map +1 -1
- package/dist/services/track/types.d.ts +2 -2
- package/dist/services/track/types.d.ts.map +1 -1
- package/dist/static/swagger-api.json +684 -67
- package/dist/types/accreditation.d.ts +3 -0
- package/dist/types/accreditation.d.ts.map +1 -1
- package/dist/types/constants.d.ts +2 -0
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/constants.js +2 -0
- package/dist/types/constants.js.map +1 -1
- package/dist/types/credential-status.d.ts +39 -1
- package/dist/types/credential-status.d.ts.map +1 -1
- package/dist/types/credential-status.js +7 -0
- package/dist/types/credential-status.js.map +1 -1
- package/dist/types/credential.d.ts +21 -3
- package/dist/types/credential.d.ts.map +1 -1
- package/dist/types/credential.js +5 -0
- package/dist/types/credential.js.map +1 -1
- package/dist/types/swagger-api-types.d.ts +242 -39
- package/dist/types/swagger-api-types.d.ts.map +1 -1
- package/dist/types/swagger-api-types.js +242 -39
- package/dist/types/swagger-api-types.js.map +1 -1
- package/dist/types/track.d.ts +8 -6
- package/dist/types/track.d.ts.map +1 -1
- package/dist/types/track.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { StatusRegistryEntity } from '../entities/status-registry.entity.js';
|
|
2
|
+
import { IssuedCredentialEntity } from '../entities/issued-credential.entity.js';
|
|
3
|
+
/**
|
|
4
|
+
* Updates writeCursor and additionalUsedIndexes for StatusRegistryEntity based on actual credential issuance
|
|
5
|
+
* This migration:
|
|
6
|
+
* 1. Queries IssuedCredential table for all credentials with credentialStatus
|
|
7
|
+
* 2. Groups credentials by their status list URI
|
|
8
|
+
* 3. For each status registry:
|
|
9
|
+
* - Finds all used indexes
|
|
10
|
+
* - Determines the sequential run from the beginning
|
|
11
|
+
* - Sets writeCursor to the last sequential index
|
|
12
|
+
* - Stores non-sequential indexes in metadata.additionalUsedIndexes
|
|
13
|
+
*/
|
|
14
|
+
export class UpdateWriteCursors1762775500000 {
|
|
15
|
+
async up(queryRunner) {
|
|
16
|
+
await queryRunner.query(`ALTER TABLE "issuedCredential" ADD "statusIndex" integer`);
|
|
17
|
+
await queryRunner.query(`ALTER TABLE "issuedCredential" ADD "retryCount" integer NOT NULL DEFAULT '0'`);
|
|
18
|
+
await queryRunner.query(`ALTER TABLE "issuedCredential" ADD "lastError" text`);
|
|
19
|
+
await queryRunner.query(`ALTER TABLE "issuedCredential" ADD "statusRegistryId" character varying`);
|
|
20
|
+
await queryRunner.query(`ALTER TABLE "issuedCredential" ADD CONSTRAINT "FK_6b4613d35ce2050a5f1594bc3d4" FOREIGN KEY ("statusRegistryId") REFERENCES "statusRegistry"("registryId") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
|
21
|
+
console.log('Starting writeCursor update migration...');
|
|
22
|
+
// Get all status registries
|
|
23
|
+
const statusRegistries = await queryRunner.manager.find(StatusRegistryEntity, {
|
|
24
|
+
relations: ['customer'],
|
|
25
|
+
});
|
|
26
|
+
console.log(`Found ${statusRegistries.length} status registries to process`);
|
|
27
|
+
let updatedCount = 0;
|
|
28
|
+
let skippedCount = 0;
|
|
29
|
+
for (const registry of statusRegistries) {
|
|
30
|
+
try {
|
|
31
|
+
console.log(`\nProcessing registry: ${registry.registryId} (${registry.uri})`);
|
|
32
|
+
// Query all issued credentials that reference this status list URI
|
|
33
|
+
// The credentialStatus contains resolver URLs, but we need to match the DID URL portion
|
|
34
|
+
// Example: credentialStatus.id = "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:...#123"
|
|
35
|
+
// We need to extract the DID URL and match it against registry.uri
|
|
36
|
+
const credentials = await queryRunner.manager
|
|
37
|
+
.createQueryBuilder(IssuedCredentialEntity, 'ic')
|
|
38
|
+
.where('"ic"."credentialStatus" IS NOT NULL')
|
|
39
|
+
.andWhere('("ic"."credentialStatus"->>\'id\' LIKE :uriPattern OR "ic"."credentialStatus"->>\'statusListCredential\' LIKE :uriPattern)', {
|
|
40
|
+
uriPattern: `%${registry.uri}%`,
|
|
41
|
+
})
|
|
42
|
+
.getMany();
|
|
43
|
+
if (credentials.length === 0) {
|
|
44
|
+
console.log(` No credentials found, keeping writeCursor at ${registry.writeCursor}`);
|
|
45
|
+
skippedCount++;
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
// Extract statusListIndex values and filter out invalid ones
|
|
49
|
+
const indexes = [];
|
|
50
|
+
for (const cred of credentials) {
|
|
51
|
+
const statusListIndex = cred.credentialStatus?.statusListIndex;
|
|
52
|
+
if (statusListIndex !== null && statusListIndex !== undefined) {
|
|
53
|
+
const indexNum = parseInt(String(statusListIndex), 10);
|
|
54
|
+
if (!isNaN(indexNum) && indexNum >= 0) {
|
|
55
|
+
indexes.push(indexNum);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (indexes.length === 0) {
|
|
60
|
+
console.log(` No valid indexes found, keeping writeCursor at ${registry.writeCursor}`);
|
|
61
|
+
skippedCount++;
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
// Sort indexes in ascending order
|
|
65
|
+
indexes.sort((a, b) => a - b);
|
|
66
|
+
// Remove duplicates
|
|
67
|
+
const uniqueIndexes = [...new Set(indexes)];
|
|
68
|
+
console.log(` Found ${uniqueIndexes.length} unique indexes: [${uniqueIndexes.slice(0, 10).join(', ')}${uniqueIndexes.length > 10 ? '...' : ''}]`);
|
|
69
|
+
// Find the sequential run from the beginning
|
|
70
|
+
const { writeCursor, additionalUsedIndexes } = this.analyzeIndexes(uniqueIndexes);
|
|
71
|
+
console.log(` Sequential run ends at: ${writeCursor}`);
|
|
72
|
+
if (additionalUsedIndexes.length > 0) {
|
|
73
|
+
console.log(` Non-sequential indexes: [${additionalUsedIndexes.slice(0, 10).join(', ')}${additionalUsedIndexes.length > 10 ? '...' : ''}]`);
|
|
74
|
+
}
|
|
75
|
+
// Update the status registry
|
|
76
|
+
const currentMetadata = registry.metadata || {};
|
|
77
|
+
const updatedMetadata = {
|
|
78
|
+
...currentMetadata,
|
|
79
|
+
...(additionalUsedIndexes.length > 0 ? { additionalUsedIndexes } : {}),
|
|
80
|
+
};
|
|
81
|
+
await queryRunner.manager.update(StatusRegistryEntity, { registryId: registry.registryId }, {
|
|
82
|
+
writeCursor: writeCursor,
|
|
83
|
+
// Pass metadata as a raw JSON string expression so TypeORM accepts it for update operations
|
|
84
|
+
metadata: () => `'${JSON.stringify(updatedMetadata).replace(/'/g, "''")}'`,
|
|
85
|
+
});
|
|
86
|
+
console.log(` ✓ Updated writeCursor to ${writeCursor}`);
|
|
87
|
+
// Update IssuedCredential records to populate new fields
|
|
88
|
+
let credentialUpdateCount = 0;
|
|
89
|
+
for (const credential of credentials) {
|
|
90
|
+
const statusListIndex = credential.credentialStatus?.statusListIndex;
|
|
91
|
+
if (statusListIndex !== null && statusListIndex !== undefined) {
|
|
92
|
+
const indexNum = parseInt(String(statusListIndex), 10);
|
|
93
|
+
if (!isNaN(indexNum) && indexNum >= 0) {
|
|
94
|
+
await queryRunner.manager.update(IssuedCredentialEntity, { issuedCredentialId: credential.issuedCredentialId }, {
|
|
95
|
+
statusRegistry: registry,
|
|
96
|
+
statusIndex: indexNum,
|
|
97
|
+
retryCount: 0,
|
|
98
|
+
lastError: undefined,
|
|
99
|
+
});
|
|
100
|
+
credentialUpdateCount++;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
console.log(` ✓ Updated ${credentialUpdateCount} issued credentials`);
|
|
105
|
+
updatedCount++;
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
console.error(` ✗ Error processing registry ${registry.registryId}:`, error);
|
|
109
|
+
// Continue with next registry
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
console.log(`\nMigration complete:`);
|
|
113
|
+
console.log(` - Updated: ${updatedCount} registries`);
|
|
114
|
+
console.log(` - Skipped: ${skippedCount} registries`);
|
|
115
|
+
}
|
|
116
|
+
async down(queryRunner) {
|
|
117
|
+
console.log('Rolling back writeCursor update migration...');
|
|
118
|
+
// Reset all writeCursor values to 0 and remove additionalUsedIndexes from metadata
|
|
119
|
+
const registries = await queryRunner.manager.find(StatusRegistryEntity);
|
|
120
|
+
for (const registry of registries) {
|
|
121
|
+
const metadata = registry.metadata || {};
|
|
122
|
+
// Remove additionalUsedIndexes if present
|
|
123
|
+
if (metadata.additionalUsedIndexes) {
|
|
124
|
+
delete metadata.additionalUsedIndexes;
|
|
125
|
+
}
|
|
126
|
+
const metadataValue = Object.keys(metadata).length > 0
|
|
127
|
+
? () => `'${JSON.stringify(metadata).replace(/'/g, "''")}'`
|
|
128
|
+
: undefined;
|
|
129
|
+
await queryRunner.manager.update(StatusRegistryEntity, { registryId: registry.registryId }, {
|
|
130
|
+
writeCursor: 0,
|
|
131
|
+
metadata: metadataValue,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
console.log(`Rolled back ${registries.length} registries`);
|
|
135
|
+
// Reset IssuedCredential fields before dropping columns (if they exist)
|
|
136
|
+
try {
|
|
137
|
+
await queryRunner.query(`UPDATE "issuedCredential" SET "statusRegistryId" = NULL, "statusIndex" = NULL, "retryCount" = 0, "lastError" = NULL WHERE "statusRegistryId" IS NOT NULL`);
|
|
138
|
+
console.log('Cleared IssuedCredential status fields');
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
// Columns might not exist if migration was partially applied
|
|
142
|
+
console.log('Skipped clearing IssuedCredential fields (columns may not exist)');
|
|
143
|
+
}
|
|
144
|
+
// Drop the new columns and foreign key constraint
|
|
145
|
+
await queryRunner.query(`ALTER TABLE "issuedCredential" DROP CONSTRAINT IF EXISTS "FK_6b4613d35ce2050a5f1594bc3d4"`);
|
|
146
|
+
await queryRunner.query(`ALTER TABLE "issuedCredential" DROP COLUMN IF EXISTS "statusRegistryId"`);
|
|
147
|
+
await queryRunner.query(`ALTER TABLE "issuedCredential" DROP COLUMN IF EXISTS "lastError"`);
|
|
148
|
+
await queryRunner.query(`ALTER TABLE "issuedCredential" DROP COLUMN IF EXISTS "retryCount"`);
|
|
149
|
+
await queryRunner.query(`ALTER TABLE "issuedCredential" DROP COLUMN IF EXISTS "statusIndex"`);
|
|
150
|
+
console.log('Dropped IssuedCredential columns');
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Analyze indexes to find sequential run and non-sequential indexes
|
|
154
|
+
* @param sortedIndexes - Array of unique indexes sorted in ascending order
|
|
155
|
+
* @returns Object with writeCursor and additionalUsedIndexes
|
|
156
|
+
*/
|
|
157
|
+
analyzeIndexes(sortedIndexes) {
|
|
158
|
+
if (sortedIndexes.length === 0) {
|
|
159
|
+
return { writeCursor: 0, additionalUsedIndexes: [] };
|
|
160
|
+
}
|
|
161
|
+
// Find the longest sequential run from the start
|
|
162
|
+
// Sequential means each number is exactly 1 more than the previous
|
|
163
|
+
let writeCursor = sortedIndexes[0];
|
|
164
|
+
let i = 1;
|
|
165
|
+
while (i < sortedIndexes.length) {
|
|
166
|
+
// Check if this index is sequential (current = previous + 1)
|
|
167
|
+
if (sortedIndexes[i] === writeCursor + 1) {
|
|
168
|
+
writeCursor = sortedIndexes[i];
|
|
169
|
+
i++;
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
// Found a gap, stop the sequential run
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// All remaining indexes are non-sequential
|
|
177
|
+
const additionalUsedIndexes = sortedIndexes.slice(i);
|
|
178
|
+
return { writeCursor, additionalUsedIndexes };
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=1762775500000-UpdateWriteCursors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1762775500000-UpdateWriteCursors.js","sourceRoot":"","sources":["../../../src/database/migrations/1762775500000-UpdateWriteCursors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/database/types/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/database/types/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AA4DrC,MAAM,WAAW,gBAAgB;IAChC,KAAK,IAAI,UAAU,CAAC;CACpB;AAED,qBAAa,MAAO,YAAW,gBAAgB;IAC9C,KAAK,IAAI,UAAU;CAWnB;AAED,qBAAa,QAAS,YAAW,gBAAgB;IAChD,KAAK,IAAI,UAAU;CAiGnB"}
|
|
@@ -17,6 +17,7 @@ import { SubscriptionEntity } from '../entities/subscription.entity.js';
|
|
|
17
17
|
import { CredentialProviderEntity } from '../entities/credential-provider.entity.js';
|
|
18
18
|
import { ProviderConfigurationEntity } from '../entities/provider-configuration.entity.js';
|
|
19
19
|
import { IssuedCredentialEntity } from '../entities/issued-credential.entity.js';
|
|
20
|
+
import { StatusRegistryEntity } from '../entities/status-registry.entity.js';
|
|
20
21
|
import { CreatePaymentTable1695740345977 } from '../migrations/archive/CreatePaymentTable.js';
|
|
21
22
|
import { CreateOperationTable1695740345977 } from '../migrations/archive/CreateOperationTable.js';
|
|
22
23
|
import { CreateCustomersTable1683723285946 } from '../migrations/archive/CreateCustomersTable.js';
|
|
@@ -48,6 +49,9 @@ import { StudioMigrations1758011998054 } from '../migrations/1758011998054-studi
|
|
|
48
49
|
import { StudioMigrations1760533089289 } from '../migrations/1760533089289-studio-migrations.js';
|
|
49
50
|
import { MigrateStudioCredentials1760533089389 } from '../migrations/1760533089389-MigrateStudioCredentials.js';
|
|
50
51
|
import { MigrateDockCredentials1760533089589 } from '../migrations/1760533089589-MigrateDockCredentials.js';
|
|
52
|
+
import { StudioMigrations1761834657128 } from '../migrations/1761834657128-studio-migrations.js';
|
|
53
|
+
import { MigrationsStatusLists1762775396083 } from '../migrations/1762775396083-MigrateStatusLists.js';
|
|
54
|
+
import { UpdateWriteCursors1762775500000 } from '../migrations/1762775500000-UpdateWriteCursors.js';
|
|
51
55
|
dotenv.config();
|
|
52
56
|
const { EXTERNAL_DB_CONNECTION_URL, EXTERNAL_DB_CERT } = process.env;
|
|
53
57
|
export class Memory {
|
|
@@ -132,6 +136,11 @@ export class Postgres {
|
|
|
132
136
|
MigrateStudioCredentials1760533089389,
|
|
133
137
|
// Migrate Dock credentials to IssuedCredential table
|
|
134
138
|
MigrateDockCredentials1760533089589,
|
|
139
|
+
// Add StatusRegistry table
|
|
140
|
+
StudioMigrations1761834657128,
|
|
141
|
+
// Migrate status lists to StatusRegistry table
|
|
142
|
+
MigrationsStatusLists1762775396083,
|
|
143
|
+
UpdateWriteCursors1762775500000,
|
|
135
144
|
],
|
|
136
145
|
entities: [
|
|
137
146
|
...Entities,
|
|
@@ -150,6 +159,7 @@ export class Postgres {
|
|
|
150
159
|
CredentialProviderEntity,
|
|
151
160
|
ProviderConfigurationEntity,
|
|
152
161
|
IssuedCredentialEntity,
|
|
162
|
+
StatusRegistryEntity,
|
|
153
163
|
],
|
|
154
164
|
logging: ['error', 'info', 'warn'],
|
|
155
165
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/database/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,sBAAsB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/database/types/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailchimp.d.ts","sourceRoot":"","sources":["../../src/helpers/mailchimp.ts"],"names":[],"mappings":"AAMA,qBAAa,gBAAgB;;IAYtB,gBAAgB,CACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"mailchimp.d.ts","sourceRoot":"","sources":["../../src/helpers/mailchimp.ts"],"names":[],"mappings":"AAMA,qBAAa,gBAAgB;;IAYtB,gBAAgB,CACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,IAAI,CAAC;CA6BhB"}
|
|
@@ -29,9 +29,7 @@ export class MailchimpService {
|
|
|
29
29
|
});
|
|
30
30
|
if (tags && tags.length > 0) {
|
|
31
31
|
const current = (await mailchimp.lists.getListMemberTags(listId, subscriberHash));
|
|
32
|
-
const existingActive = new Set((current?.tags ?? [])
|
|
33
|
-
.filter((t) => t.status === 'active')
|
|
34
|
-
.map((t) => t.name));
|
|
32
|
+
const existingActive = new Set((current?.tags ?? []).filter((t) => t.status === 'active').map((t) => t.name));
|
|
35
33
|
const missing = tags.filter((t) => !existingActive.has(t));
|
|
36
34
|
if (missing.length > 0) {
|
|
37
35
|
await mailchimp.lists.updateListMemberTags(listId, subscriberHash, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailchimp.js","sourceRoot":"","sources":["../../src/helpers/mailchimp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,SAAS,MAAM,gCAAgC,CAAC;AAEvD,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,OAAO,gBAAgB;IAC5B;QACC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACvD,CAAC;QAED,SAAS,CAAC,SAAS,CAAC;YACnB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;YACrC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;SAC3C,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CACrB,MAAc,EACd,KAAa,EACb,SAAiB,EACjB,QAAgB,EAChB,IAAwB,EACxB,OAAuB;QAEvB,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEtF,MAAM,WAAW,GAA2B,EAAE,CAAC;QAC/C,IAAI,SAAS;YAAE,WAAW,CAAC,KAAK,GAAG,SAAS,CAAC;QAC7C,IAAI,QAAQ;YAAE,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAC;QAC3C,IAAI,OAAO;YAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;QAE3C,MAAM,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE;YAC3D,aAAa,EAAE,eAAe;YAC9B,aAAa,EAAE,YAAY;YAC3B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;SACzE,CAAC,CAAC;QAEH,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAQ,CAAC;YACzF,MAAM,cAAc,GAAG,IAAI,GAAG,CAC7B,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"mailchimp.js","sourceRoot":"","sources":["../../src/helpers/mailchimp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,SAAS,MAAM,gCAAgC,CAAC;AAEvD,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,OAAO,gBAAgB;IAC5B;QACC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACvD,CAAC;QAED,SAAS,CAAC,SAAS,CAAC;YACnB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;YACrC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;SAC3C,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CACrB,MAAc,EACd,KAAa,EACb,SAAiB,EACjB,QAAgB,EAChB,IAAwB,EACxB,OAAuB;QAEvB,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEtF,MAAM,WAAW,GAA2B,EAAE,CAAC;QAC/C,IAAI,SAAS;YAAE,WAAW,CAAC,KAAK,GAAG,SAAS,CAAC;QAC7C,IAAI,QAAQ;YAAE,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAC;QAC3C,IAAI,OAAO;YAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;QAE3C,MAAM,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE;YAC3D,aAAa,EAAE,eAAe;YAC9B,aAAa,EAAE,YAAY;YAC3B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;SACzE,CAAC,CAAC;QAEH,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAQ,CAAC;YACzF,MAAM,cAAc,GAAG,IAAI,GAAG,CAC7B,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAc,CAAC,CACjG,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,SAAS,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE;oBAClE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,QAAiB,EAAE,CAAC,CAAC;iBAClE,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;CACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-status-auth.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/auth/routes/api/credential-status-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,gCAAiC,SAAQ,gBAAgB;;
|
|
1
|
+
{"version":3,"file":"credential-status-auth.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/auth/routes/api/credential-status-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,gCAAiC,SAAQ,gBAAgB;;CAoCrE"}
|
|
@@ -12,6 +12,8 @@ export class CredentialStatusAuthRuleProvider extends AuthRuleProvider {
|
|
|
12
12
|
this.registerRule('/credential-status/update/encrypted', 'POST', 'update-encrypted:credential-status:mainnet');
|
|
13
13
|
this.registerRule('/credential-status/update/unencrypted', 'POST', 'update-unencrypted:credential-status:testnet');
|
|
14
14
|
this.registerRule('/credential-status/update/unencrypted', 'POST', 'update-unencrypted:credential-status:mainnet');
|
|
15
|
+
this.registerRule('/credential-status/list', 'GET', 'list:credential-status:testnet', { skipNamespace: true });
|
|
16
|
+
this.registerRule('/credential-status/list', 'GET', 'list:credential-status:mainnet', { skipNamespace: true });
|
|
15
17
|
// Unauthorized routes
|
|
16
18
|
this.registerRule('/credential-status/search', 'GET', '', { allowUnauthorized: true, skipNamespace: true });
|
|
17
19
|
this.registerRule('/credential-status/check', 'POST', 'check:credential-status', { skipNamespace: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-status-auth.js","sourceRoot":"","sources":["../../../../../src/middleware/auth/routes/api/credential-status-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,OAAO,gCAAiC,SAAQ,gBAAgB;IACrE;QACC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,CAAC,qCAAqC,EAAE,MAAM,EAAE,4CAA4C,CAAC,CAAC;QAC/G,IAAI,CAAC,YAAY,CAAC,qCAAqC,EAAE,MAAM,EAAE,4CAA4C,CAAC,CAAC;QAC/G,IAAI,CAAC,YAAY,CAChB,uCAAuC,EACvC,MAAM,EACN,8CAA8C,CAC9C,CAAC;QACF,IAAI,CAAC,YAAY,CAChB,uCAAuC,EACvC,MAAM,EACN,8CAA8C,CAC9C,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,MAAM,EAAE,mCAAmC,CAAC,CAAC;QAC7F,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,MAAM,EAAE,mCAAmC,CAAC,CAAC;QAC7F,IAAI,CAAC,YAAY,CAAC,qCAAqC,EAAE,MAAM,EAAE,4CAA4C,CAAC,CAAC;QAC/G,IAAI,CAAC,YAAY,CAAC,qCAAqC,EAAE,MAAM,EAAE,4CAA4C,CAAC,CAAC;QAC/G,IAAI,CAAC,YAAY,CAChB,uCAAuC,EACvC,MAAM,EACN,8CAA8C,CAC9C,CAAC;QACF,IAAI,CAAC,YAAY,CAChB,uCAAuC,EACvC,MAAM,EACN,8CAA8C,CAC9C,CAAC;QACF,sBAAsB;QACtB,IAAI,CAAC,YAAY,CAAC,2BAA2B,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5G,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,MAAM,EAAE,yBAAyB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3G,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"credential-status-auth.js","sourceRoot":"","sources":["../../../../../src/middleware/auth/routes/api/credential-status-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,OAAO,gCAAiC,SAAQ,gBAAgB;IACrE;QACC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,CAAC,qCAAqC,EAAE,MAAM,EAAE,4CAA4C,CAAC,CAAC;QAC/G,IAAI,CAAC,YAAY,CAAC,qCAAqC,EAAE,MAAM,EAAE,4CAA4C,CAAC,CAAC;QAC/G,IAAI,CAAC,YAAY,CAChB,uCAAuC,EACvC,MAAM,EACN,8CAA8C,CAC9C,CAAC;QACF,IAAI,CAAC,YAAY,CAChB,uCAAuC,EACvC,MAAM,EACN,8CAA8C,CAC9C,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,MAAM,EAAE,mCAAmC,CAAC,CAAC;QAC7F,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,MAAM,EAAE,mCAAmC,CAAC,CAAC;QAC7F,IAAI,CAAC,YAAY,CAAC,qCAAqC,EAAE,MAAM,EAAE,4CAA4C,CAAC,CAAC;QAC/G,IAAI,CAAC,YAAY,CAAC,qCAAqC,EAAE,MAAM,EAAE,4CAA4C,CAAC,CAAC;QAC/G,IAAI,CAAC,YAAY,CAChB,uCAAuC,EACvC,MAAM,EACN,8CAA8C,CAC9C,CAAC;QACF,IAAI,CAAC,YAAY,CAChB,uCAAuC,EACvC,MAAM,EACN,8CAA8C,CAC9C,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/G,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/G,sBAAsB;QACtB,IAAI,CAAC,YAAY,CAAC,2BAA2B,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5G,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,MAAM,EAAE,yBAAyB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3G,CAAC;CACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-auth.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/auth/routes/api/key-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,eAAgB,SAAQ,gBAAgB;;
|
|
1
|
+
{"version":3,"file":"key-auth.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/auth/routes/api/key-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,eAAgB,SAAQ,gBAAgB;;CASpD"}
|
|
@@ -6,6 +6,7 @@ export class KeyAuthProvider extends AuthRuleProvider {
|
|
|
6
6
|
this.registerRule('/key/import', 'POST', 'import:key', { skipNamespace: true });
|
|
7
7
|
this.registerRule('/key/read/(.*)', 'GET', 'read:key', { skipNamespace: true });
|
|
8
8
|
this.registerRule('/key/list', 'GET', 'list:key', { skipNamespace: true });
|
|
9
|
+
this.registerRule('/key/(.*)/verification-method', 'GET', 'read:key', { skipNamespace: true });
|
|
9
10
|
}
|
|
10
11
|
}
|
|
11
12
|
//# sourceMappingURL=key-auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-auth.js","sourceRoot":"","sources":["../../../../../src/middleware/auth/routes/api/key-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,OAAO,eAAgB,SAAQ,gBAAgB;IACpD;QACC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"key-auth.js","sourceRoot":"","sources":["../../../../../src/middleware/auth/routes/api/key-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,OAAO,eAAgB,SAAQ,gBAAgB;IACpD;QACC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,YAAY,CAAC,+BAA+B,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAChG,CAAC;CACD"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type { CreateEncryptedBitstringSuccessfulResponseBody, CreateUnencryptedBitstringSuccessfulResponseBody, ListStatusListQuery, StatusListRecord } from '../../types/credential-status.js';
|
|
2
|
+
import { StatusListType } from '../../types/credential-status.js';
|
|
3
|
+
import type { CreateEncryptedStatusListRequestBody, CreateEncryptedStatusListRequestQuery, CreateEncryptedStatusListSuccessfulResponseBody, CreateUnencryptedStatusListRequestBody, CreateUnencryptedStatusListRequestQuery, CreateUnencryptedStatusListSuccessfulResponseBody, UpdateEncryptedStatusListRequestBody, UpdateUnencryptedStatusListRequestBody, UpdateUnencryptedStatusListRequestQuery, CheckStatusListRequestBody, CheckStatusListRequestQuery, SearchStatusListQuery } from '../../types/credential-status.js';
|
|
4
|
+
import type { CustomerEntity } from '../../database/entities/customer.entity.js';
|
|
5
|
+
import type { UserEntity } from '../../database/entities/user.entity.js';
|
|
6
|
+
import { Repository } from 'typeorm';
|
|
7
|
+
import { StatusRegistryEntity } from '../../database/entities/status-registry.entity.js';
|
|
8
|
+
export declare class CredentialStatusService {
|
|
9
|
+
static instance: CredentialStatusService;
|
|
10
|
+
repository: Repository<StatusRegistryEntity>;
|
|
11
|
+
constructor();
|
|
12
|
+
createUnencryptedStatusList(body: CreateUnencryptedStatusListRequestBody, query: CreateUnencryptedStatusListRequestQuery, customer: CustomerEntity, user?: UserEntity): Promise<{
|
|
13
|
+
success: boolean;
|
|
14
|
+
statusCode: number;
|
|
15
|
+
data?: CreateUnencryptedStatusListSuccessfulResponseBody | CreateUnencryptedBitstringSuccessfulResponseBody;
|
|
16
|
+
error?: string;
|
|
17
|
+
}>;
|
|
18
|
+
createEncryptedStatusList(body: CreateEncryptedStatusListRequestBody, query: CreateEncryptedStatusListRequestQuery, customer: CustomerEntity, user?: UserEntity): Promise<{
|
|
19
|
+
success: boolean;
|
|
20
|
+
statusCode: number;
|
|
21
|
+
data?: CreateEncryptedStatusListSuccessfulResponseBody | CreateEncryptedBitstringSuccessfulResponseBody;
|
|
22
|
+
error?: string;
|
|
23
|
+
}>;
|
|
24
|
+
updateUnencryptedStatusList(body: UpdateUnencryptedStatusListRequestBody, query: UpdateUnencryptedStatusListRequestQuery, customer: CustomerEntity, user?: UserEntity): Promise<{
|
|
25
|
+
success: boolean;
|
|
26
|
+
statusCode: number;
|
|
27
|
+
data?: any;
|
|
28
|
+
error?: string;
|
|
29
|
+
}>;
|
|
30
|
+
updateEncryptedStatusList(body: UpdateEncryptedStatusListRequestBody, query: UpdateUnencryptedStatusListRequestQuery, customer: CustomerEntity, user?: UserEntity): Promise<{
|
|
31
|
+
success: boolean;
|
|
32
|
+
statusCode: number;
|
|
33
|
+
data?: any;
|
|
34
|
+
error?: string;
|
|
35
|
+
}>;
|
|
36
|
+
checkStatusList(body: CheckStatusListRequestBody, query: CheckStatusListRequestQuery, customer: CustomerEntity, user?: UserEntity): Promise<{
|
|
37
|
+
success: boolean;
|
|
38
|
+
statusCode: number;
|
|
39
|
+
data?: any;
|
|
40
|
+
error?: string;
|
|
41
|
+
}>;
|
|
42
|
+
searchStatusList(query: SearchStatusListQuery): Promise<{
|
|
43
|
+
success: boolean;
|
|
44
|
+
statusCode: number;
|
|
45
|
+
data?: any;
|
|
46
|
+
error?: string;
|
|
47
|
+
}>;
|
|
48
|
+
/**
|
|
49
|
+
* Helper method to determine the next resource name in the registry chain
|
|
50
|
+
* Examples:
|
|
51
|
+
* "test-list" -> "test-list-ext1"
|
|
52
|
+
* "test-list-ext1" -> "test-list-ext2"
|
|
53
|
+
* "test-list-ext5" -> "test-list-ext6"
|
|
54
|
+
*/
|
|
55
|
+
private getNextResourceName;
|
|
56
|
+
/**
|
|
57
|
+
* Update registry using CAS (Compare-And-Swap) pattern for optimistic locking
|
|
58
|
+
* @returns true if update succeeded, false if concurrent modification detected
|
|
59
|
+
*/
|
|
60
|
+
private updateRegistryWithCAS;
|
|
61
|
+
/**
|
|
62
|
+
* Find registry by URI
|
|
63
|
+
*/
|
|
64
|
+
private findRegistryByUri;
|
|
65
|
+
/**
|
|
66
|
+
* Create STANDBY registry linked to the active registry
|
|
67
|
+
*/
|
|
68
|
+
private createStandbyRegistry;
|
|
69
|
+
/**
|
|
70
|
+
* Rotate status list based on capacity threshold
|
|
71
|
+
* This function handles:
|
|
72
|
+
* 1. Creating STANDBY when threshold is reached
|
|
73
|
+
* 2. Promoting STANDBY to ACTIVE when registry is FULL
|
|
74
|
+
* 3. Marking current registry as FULL
|
|
75
|
+
*/
|
|
76
|
+
rotateStatusList(statusListId: string, customer: CustomerEntity): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Handle registry that has reached threshold
|
|
79
|
+
* Creates STANDBY if one doesn't exist
|
|
80
|
+
*/
|
|
81
|
+
private handleThresholdReached;
|
|
82
|
+
/**
|
|
83
|
+
* Handle registry that is FULL
|
|
84
|
+
* Promotes STANDBY to ACTIVE and creates new STANDBY
|
|
85
|
+
*/
|
|
86
|
+
private handleFullRegistry;
|
|
87
|
+
listStatusList(query: ListStatusListQuery, customer: CustomerEntity): Promise<{
|
|
88
|
+
success: boolean;
|
|
89
|
+
statusCode: number;
|
|
90
|
+
data?: {
|
|
91
|
+
records: StatusListRecord[];
|
|
92
|
+
total: number;
|
|
93
|
+
};
|
|
94
|
+
error?: string;
|
|
95
|
+
}>;
|
|
96
|
+
getStatusList(statusOptions: {
|
|
97
|
+
statusListId?: string;
|
|
98
|
+
statusListName?: string;
|
|
99
|
+
listType?: StatusListType;
|
|
100
|
+
}, customer: CustomerEntity, lock?: boolean): Promise<{
|
|
101
|
+
success: boolean;
|
|
102
|
+
statusCode: number;
|
|
103
|
+
data?: StatusListRecord;
|
|
104
|
+
error?: string;
|
|
105
|
+
}>;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=credential-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-status.d.ts","sourceRoot":"","sources":["../../../src/services/api/credential-status.ts"],"names":[],"mappings":"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"}
|