@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.
Files changed (138) hide show
  1. package/dist/app.d.ts.map +1 -1
  2. package/dist/app.js +4 -0
  3. package/dist/app.js.map +1 -1
  4. package/dist/controllers/api/accreditation.d.ts.map +1 -1
  5. package/dist/controllers/api/accreditation.js +36 -9
  6. package/dist/controllers/api/accreditation.js.map +1 -1
  7. package/dist/controllers/api/credential-status.d.ts +94 -0
  8. package/dist/controllers/api/credential-status.d.ts.map +1 -1
  9. package/dist/controllers/api/credential-status.js +220 -506
  10. package/dist/controllers/api/credential-status.js.map +1 -1
  11. package/dist/controllers/api/credential.d.ts +66 -0
  12. package/dist/controllers/api/credential.d.ts.map +1 -1
  13. package/dist/controllers/api/credential.js +117 -1
  14. package/dist/controllers/api/credential.js.map +1 -1
  15. package/dist/controllers/api/did.js.map +1 -1
  16. package/dist/controllers/api/key.d.ts +71 -1
  17. package/dist/controllers/api/key.d.ts.map +1 -1
  18. package/dist/controllers/api/key.js +113 -2
  19. package/dist/controllers/api/key.js.map +1 -1
  20. package/dist/controllers/api/presentation.js +22 -21
  21. package/dist/controllers/api/presentation.js.map +1 -1
  22. package/dist/controllers/api/providers.controller.js.map +1 -1
  23. package/dist/controllers/api/resource.js.map +1 -1
  24. package/dist/controllers/validator/did.js +1 -1
  25. package/dist/controllers/validator/did.js.map +1 -1
  26. package/dist/database/entities/issued-credential.entity.d.ts +10 -1
  27. package/dist/database/entities/issued-credential.entity.d.ts.map +1 -1
  28. package/dist/database/entities/issued-credential.entity.js +22 -0
  29. package/dist/database/entities/issued-credential.entity.js.map +1 -1
  30. package/dist/database/entities/status-registry.entity.d.ts +60 -0
  31. package/dist/database/entities/status-registry.entity.d.ts.map +1 -0
  32. package/dist/database/entities/status-registry.entity.js +145 -0
  33. package/dist/database/entities/status-registry.entity.js.map +1 -0
  34. package/dist/database/migrations/1761834657128-studio-migrations.d.ts +7 -0
  35. package/dist/database/migrations/1761834657128-studio-migrations.d.ts.map +1 -0
  36. package/dist/database/migrations/1761834657128-studio-migrations.js +14 -0
  37. package/dist/database/migrations/1761834657128-studio-migrations.js.map +1 -0
  38. package/dist/database/migrations/1762775396083-MigrateStatusLists.d.ts +25 -0
  39. package/dist/database/migrations/1762775396083-MigrateStatusLists.d.ts.map +1 -0
  40. package/dist/database/migrations/1762775396083-MigrateStatusLists.js +243 -0
  41. package/dist/database/migrations/1762775396083-MigrateStatusLists.js.map +1 -0
  42. package/dist/database/migrations/1762775500000-UpdateWriteCursors.d.ts +23 -0
  43. package/dist/database/migrations/1762775500000-UpdateWriteCursors.d.ts.map +1 -0
  44. package/dist/database/migrations/1762775500000-UpdateWriteCursors.js +181 -0
  45. package/dist/database/migrations/1762775500000-UpdateWriteCursors.js.map +1 -0
  46. package/dist/database/types/types.d.ts.map +1 -1
  47. package/dist/database/types/types.js +10 -0
  48. package/dist/database/types/types.js.map +1 -1
  49. package/dist/helpers/mailchimp.d.ts.map +1 -1
  50. package/dist/helpers/mailchimp.js +1 -3
  51. package/dist/helpers/mailchimp.js.map +1 -1
  52. package/dist/middleware/auth/routes/api/credential-status-auth.d.ts.map +1 -1
  53. package/dist/middleware/auth/routes/api/credential-status-auth.js +2 -0
  54. package/dist/middleware/auth/routes/api/credential-status-auth.js.map +1 -1
  55. package/dist/middleware/auth/routes/api/key-auth.d.ts.map +1 -1
  56. package/dist/middleware/auth/routes/api/key-auth.js +1 -0
  57. package/dist/middleware/auth/routes/api/key-auth.js.map +1 -1
  58. package/dist/services/api/credential-status.d.ts +107 -0
  59. package/dist/services/api/credential-status.d.ts.map +1 -0
  60. package/dist/services/api/credential-status.js +923 -0
  61. package/dist/services/api/credential-status.js.map +1 -0
  62. package/dist/services/api/credentials.d.ts +12 -0
  63. package/dist/services/api/credentials.d.ts.map +1 -1
  64. package/dist/services/api/credentials.js +330 -117
  65. package/dist/services/api/credentials.js.map +1 -1
  66. package/dist/services/connectors/resource.js.map +1 -1
  67. package/dist/services/identity/abstract.d.ts +1 -1
  68. package/dist/services/identity/abstract.d.ts.map +1 -1
  69. package/dist/services/identity/abstract.js +1 -1
  70. package/dist/services/identity/abstract.js.map +1 -1
  71. package/dist/services/identity/default.d.ts +1 -1
  72. package/dist/services/identity/default.d.ts.map +1 -1
  73. package/dist/services/identity/default.js +2 -2
  74. package/dist/services/identity/default.js.map +1 -1
  75. package/dist/services/identity/index.d.ts +1 -1
  76. package/dist/services/identity/index.d.ts.map +1 -1
  77. package/dist/services/identity/providers/studio/agent.d.ts +6 -6
  78. package/dist/services/identity/providers/studio/agent.d.ts.map +1 -1
  79. package/dist/services/identity/providers/studio/agent.js +11 -2
  80. package/dist/services/identity/providers/studio/agent.js.map +1 -1
  81. package/dist/services/identity/providers/studio/local.d.ts +3 -3
  82. package/dist/services/identity/providers/studio/postgres.d.ts +3 -3
  83. package/dist/services/identity/providers/studio/postgres.d.ts.map +1 -1
  84. package/dist/services/identity/providers/studio/postgres.js +0 -12
  85. package/dist/services/identity/providers/studio/postgres.js.map +1 -1
  86. package/dist/services/track/api/credential-status-subscriber.d.ts +4 -4
  87. package/dist/services/track/api/credential-status-subscriber.d.ts.map +1 -1
  88. package/dist/services/track/api/credential-status-subscriber.js +18 -1
  89. package/dist/services/track/api/credential-status-subscriber.js.map +1 -1
  90. package/dist/services/track/api/credential-subscriber.d.ts +4 -4
  91. package/dist/services/track/api/credential-subscriber.d.ts.map +1 -1
  92. package/dist/services/track/api/credential-subscriber.js.map +1 -1
  93. package/dist/services/track/api/did-subscriber.d.ts +4 -4
  94. package/dist/services/track/api/did-subscriber.d.ts.map +1 -1
  95. package/dist/services/track/api/did-subscriber.js.map +1 -1
  96. package/dist/services/track/api/key-subscriber.d.ts +4 -4
  97. package/dist/services/track/api/key-subscriber.d.ts.map +1 -1
  98. package/dist/services/track/api/key-subscriber.js.map +1 -1
  99. package/dist/services/track/api/presentation-subscriber.d.ts +4 -4
  100. package/dist/services/track/api/presentation-subscriber.d.ts.map +1 -1
  101. package/dist/services/track/api/presentation-subscriber.js.map +1 -1
  102. package/dist/services/track/api/resource-subscriber.d.ts +4 -4
  103. package/dist/services/track/api/resource-subscriber.d.ts.map +1 -1
  104. package/dist/services/track/api/resource-subscriber.js.map +1 -1
  105. package/dist/services/track/base.d.ts +2 -2
  106. package/dist/services/track/base.d.ts.map +1 -1
  107. package/dist/services/track/base.js.map +1 -1
  108. package/dist/services/track/operation-subscriber.d.ts +4 -4
  109. package/dist/services/track/operation-subscriber.d.ts.map +1 -1
  110. package/dist/services/track/operation-subscriber.js.map +1 -1
  111. package/dist/services/track/tracker.d.ts +2 -2
  112. package/dist/services/track/tracker.d.ts.map +1 -1
  113. package/dist/services/track/tracker.js.map +1 -1
  114. package/dist/services/track/types.d.ts +2 -2
  115. package/dist/services/track/types.d.ts.map +1 -1
  116. package/dist/static/swagger-api.json +684 -67
  117. package/dist/types/accreditation.d.ts +3 -0
  118. package/dist/types/accreditation.d.ts.map +1 -1
  119. package/dist/types/constants.d.ts +2 -0
  120. package/dist/types/constants.d.ts.map +1 -1
  121. package/dist/types/constants.js +2 -0
  122. package/dist/types/constants.js.map +1 -1
  123. package/dist/types/credential-status.d.ts +39 -1
  124. package/dist/types/credential-status.d.ts.map +1 -1
  125. package/dist/types/credential-status.js +7 -0
  126. package/dist/types/credential-status.js.map +1 -1
  127. package/dist/types/credential.d.ts +21 -3
  128. package/dist/types/credential.d.ts.map +1 -1
  129. package/dist/types/credential.js +5 -0
  130. package/dist/types/credential.js.map +1 -1
  131. package/dist/types/swagger-api-types.d.ts +242 -39
  132. package/dist/types/swagger-api-types.d.ts.map +1 -1
  133. package/dist/types/swagger-api-types.js +242 -39
  134. package/dist/types/swagger-api-types.js.map +1 -1
  135. package/dist/types/track.d.ts +8 -6
  136. package/dist/types/track.d.ts.map +1 -1
  137. package/dist/types/track.js.map +1 -1
  138. 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;AAwDrC,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;CA2FnB"}
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":"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"}
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;CA+BhB"}
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;iBACnB,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC;iBACzC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAc,CAAC,CACnC,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
+ {"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;;CAiCrE"}
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;;CAQpD"}
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;IAC5E,CAAC;CACD"}
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":"AAEA,OAAO,KAAK,EAEX,8CAA8C,EAC9C,gDAAgD,EAEhD,mBAAmB,EACnB,gBAAgB,EAChB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAsD,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACtH,OAAO,KAAK,EACX,oCAAoC,EACpC,qCAAqC,EACrC,+CAA+C,EAC/C,sCAAsC,EACtC,uCAAuC,EACvC,iDAAiD,EACjD,oCAAoC,EACpC,sCAAsC,EACtC,uCAAuC,EACvC,0BAA0B,EAC1B,2BAA2B,EAC3B,qBAAqB,EACrB,MAAM,kCAAkC,CAAC;AAe1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAgD,UAAU,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAOzF,qBAAa,uBAAuB;IACnC,OAAc,QAAQ,0BAAiC;IAChD,UAAU,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAC;;IAK9C,2BAA2B,CAChC,IAAI,EAAE,sCAAsC,EAC5C,KAAK,EAAE,uCAAuC,EAC9C,QAAQ,EAAE,cAAc,EACxB,IAAI,CAAC,EAAE,UAAU,GACf,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,iDAAiD,GAAG,gDAAgD,CAAC;QAC5G,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAsKI,yBAAyB,CAC9B,IAAI,EAAE,oCAAoC,EAC1C,KAAK,EAAE,qCAAqC,EAC5C,QAAQ,EAAE,cAAc,EACxB,IAAI,CAAC,EAAE,UAAU,GACf,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,+CAA+C,GAAG,8CAA8C,CAAC;QACxG,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAkJI,2BAA2B,CAChC,IAAI,EAAE,sCAAsC,EAC5C,KAAK,EAAE,uCAAuC,EAC9C,QAAQ,EAAE,cAAc,EACxB,IAAI,CAAC,EAAE,UAAU,GACf,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAyHI,yBAAyB,CAC9B,IAAI,EAAE,oCAAoC,EAC1C,KAAK,EAAE,uCAAuC,EAC9C,QAAQ,EAAE,cAAc,EACxB,IAAI,CAAC,EAAE,UAAU,GACf,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IA2II,eAAe,CACpB,IAAI,EAAE,0BAA0B,EAChC,KAAK,EAAE,2BAA2B,EAClC,QAAQ,EAAE,cAAc,EACxB,IAAI,CAAC,EAAE,UAAU,GACf,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAkMI,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC;QAC7D,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAyCF;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;;OAGG;YACW,qBAAqB;IAoBnC;;OAEG;YACW,iBAAiB;IAU/B;;OAEG;YACW,qBAAqB;IA0CnC;;;;;;OAMG;IACG,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc;IAgCrE;;;OAGG;YACW,sBAAsB;IAYpC;;;OAGG;YACW,kBAAkB;IAoC1B,cAAc,CACnB,KAAK,EAAE,mBAAmB,EAC1B,QAAQ,EAAE,cAAc,GACtB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QACtD,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IA4EI,aAAa,CAClB,aAAa,EAAE;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,cAAc,CAAC;KAC1B,EACD,QAAQ,EAAE,cAAc,EACxB,IAAI,GAAE,OAAe,GACnB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,gBAAgB,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CA2DF"}