@solidstarters/solid-core 1.2.87 → 1.2.89

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 (37) hide show
  1. package/dist/controllers/export-template.controller.d.ts +3 -2
  2. package/dist/controllers/export-template.controller.d.ts.map +1 -1
  3. package/dist/controllers/export-template.controller.js +23 -10
  4. package/dist/controllers/export-template.controller.js.map +1 -1
  5. package/dist/dtos/export.dto.d.ts +5 -0
  6. package/dist/dtos/export.dto.d.ts.map +1 -0
  7. package/dist/dtos/export.dto.js +12 -0
  8. package/dist/dtos/export.dto.js.map +1 -0
  9. package/dist/entities/export-transaction.entity.js +1 -1
  10. package/dist/entities/export-transaction.entity.js.map +1 -1
  11. package/dist/seeders/seed-data/solid-core-metadata.json +1 -1
  12. package/dist/services/authentication.service.d.ts +2 -0
  13. package/dist/services/authentication.service.d.ts.map +1 -1
  14. package/dist/services/authentication.service.js +20 -15
  15. package/dist/services/authentication.service.js.map +1 -1
  16. package/dist/services/export-template.service.d.ts +3 -2
  17. package/dist/services/export-template.service.d.ts.map +1 -1
  18. package/dist/services/export-template.service.js +6 -6
  19. package/dist/services/export-template.service.js.map +1 -1
  20. package/dist/services/export-transaction.service.d.ts +6 -3
  21. package/dist/services/export-transaction.service.d.ts.map +1 -1
  22. package/dist/services/export-transaction.service.js +101 -22
  23. package/dist/services/export-transaction.service.js.map +1 -1
  24. package/dist/services/refresh-token-ids-storage.service.d.ts +6 -3
  25. package/dist/services/refresh-token-ids-storage.service.d.ts.map +1 -1
  26. package/dist/services/refresh-token-ids-storage.service.js +52 -7
  27. package/dist/services/refresh-token-ids-storage.service.js.map +1 -1
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +1 -1
  30. package/src/controllers/export-template.controller.ts +20 -7
  31. package/src/dtos/export.dto.ts +5 -0
  32. package/src/entities/export-transaction.entity.ts +1 -1
  33. package/src/seeders/seed-data/solid-core-metadata.json +1 -1
  34. package/src/services/authentication.service.ts +44 -23
  35. package/src/services/export-template.service.ts +7 -6
  36. package/src/services/export-transaction.service.ts +136 -25
  37. package/src/services/refresh-token-ids-storage.service.ts +90 -7
@@ -33,6 +33,7 @@ const csv_service_1 = require("./csv.service");
33
33
  const excel_service_1 = require("./excel.service");
34
34
  const mediaStorageProviders_1 = require("./mediaStorageProviders");
35
35
  const solid_introspect_service_1 = require("./solid-introspect.service");
36
+ const model_metadata_entity_1 = require("../entities/model-metadata.entity");
36
37
  const EXPORT_CHUNK_SIZE = 100;
37
38
  var ExportStatus;
38
39
  (function (ExportStatus) {
@@ -46,7 +47,7 @@ var ExportFormat;
46
47
  ExportFormat["EXCEL"] = "excel";
47
48
  })(ExportFormat || (ExportFormat = {}));
48
49
  let ExportTransactionService = ExportTransactionService_1 = class ExportTransactionService extends crud_service_1.CRUDService {
49
- constructor(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, introspectService, excelService, csvService, fieldRepo, moduleRef) {
50
+ constructor(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, introspectService, excelService, csvService, fieldRepo, ModelMetadataRepo, moduleRef) {
50
51
  super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'exportTransaction', 'solid-core', moduleRef);
51
52
  this.modelMetadataService = modelMetadataService;
52
53
  this.moduleMetadataService = moduleMetadataService;
@@ -60,16 +61,24 @@ let ExportTransactionService = ExportTransactionService_1 = class ExportTransact
60
61
  this.excelService = excelService;
61
62
  this.csvService = csvService;
62
63
  this.fieldRepo = fieldRepo;
64
+ this.ModelMetadataRepo = ModelMetadataRepo;
63
65
  this.moduleRef = moduleRef;
64
66
  this.logger = new common_1.Logger(ExportTransactionService_1.name);
65
67
  }
66
- async triggerExportSync(id) {
68
+ async triggerExportSync(id, exportTransactionEntity, updateDto, filters) {
67
69
  try {
68
- const loadedExportTransaction = await this.loadExportTransaction(id);
69
- const { exportStream, templateName, uuid, exportTransaction } = await this.getExportStreamDetails(loadedExportTransaction);
70
+ const modeldata = await this.ModelMetadataRepo.findOne({
71
+ where: { id: updateDto?.modelMetadataId },
72
+ relations: { fields: true },
73
+ });
74
+ const modelName = modeldata?.singularName;
75
+ const modelTemplateName = modelName;
76
+ const fields = JSON.parse(updateDto?.fields);
77
+ const templateFormat = updateDto?.templateFormat;
78
+ const { exportStream, templateName, uuid, exportTransaction } = await this.getExportStreamDetails(modelName, modelTemplateName, fields, modeldata, templateFormat, id, exportTransactionEntity, filters);
70
79
  this.updateExportTransaction(id, ExportStatus.COMPLETED);
71
- const fileName = this.getFileName(templateName, uuid, loadedExportTransaction.exportTemplate.templateFormat);
72
- const mimeType = this.getMimeType(loadedExportTransaction.exportTemplate.templateFormat);
80
+ const fileName = this.getFileName(templateName, uuid, templateFormat);
81
+ const mimeType = this.getMimeType(templateFormat);
73
82
  return { exportStream, fileName, mimeType, exportTransaction };
74
83
  }
75
84
  catch (error) {
@@ -77,12 +86,18 @@ let ExportTransactionService = ExportTransactionService_1 = class ExportTransact
77
86
  throw error;
78
87
  }
79
88
  }
80
- async triggerExportAsync(id) {
89
+ async triggerExportAsync(id, exportTransactionEntity, updateDto, filters) {
81
90
  try {
82
- const loadedExportTransaction = await this.loadExportTransaction(id);
83
- const { exportStream, templateName, uuid, exportTransaction } = await this.getExportStreamDetails(loadedExportTransaction);
84
- const fileFormat = loadedExportTransaction.exportTemplate.templateFormat;
85
- await this.storeExportStream(exportStream, exportTransaction, this.getFileName(templateName, uuid, fileFormat));
91
+ const modeldata = await this.ModelMetadataRepo.findOne({
92
+ where: { id: updateDto?.modelMetadataId },
93
+ relations: { fields: true },
94
+ });
95
+ const modelName = modeldata?.singularName;
96
+ const modelTemplateName = modelName;
97
+ const fields = JSON.parse(updateDto?.fields);
98
+ const templateFormat = updateDto?.templateFormat;
99
+ const { exportStream, templateName, uuid, exportTransaction } = await this.getExportStreamDetails(modelName, modelTemplateName, fields, modeldata, templateFormat, id, exportTransactionEntity, filters);
100
+ await this.storeExportStream(exportStream, exportTransaction, this.getFileName(templateName, uuid, templateFormat));
86
101
  this.updateExportTransaction(id, ExportStatus.COMPLETED);
87
102
  }
88
103
  catch (error) {
@@ -93,20 +108,17 @@ let ExportTransactionService = ExportTransactionService_1 = class ExportTransact
93
108
  async loadExportTransaction(id) {
94
109
  return await this.repo.findOne({
95
110
  where: { id: id },
96
- relations: { exportTemplate: { modelMetadata: true } },
111
+ relations: { exportTemplate: { modelMetadata: { fields: true } } },
97
112
  });
98
113
  }
99
114
  async updateExportTransaction(id, status, error) {
100
115
  await this.repo.update(id, { status, error });
101
116
  }
102
- async getExportStreamDetails(exportTransaction) {
103
- const fields = JSON.parse(exportTransaction.exportTemplate.fields);
104
- const modelName = exportTransaction.exportTemplate.modelMetadata.singularName;
117
+ async getExportStreamDetails(modelName, templateName, fields, modelData, templateFormat, id, exportTransaction, filters) {
105
118
  const modelService = this.introspectService.getProvider(`${(0, strings_1.classify)(modelName)}Service`);
106
- const templateName = exportTransaction.exportTemplate.templateName;
107
- const uuid = exportTransaction.exportTransactionId;
108
- const dataRecordsFunc = await this.getDataRecordsFunc(fields, modelService);
109
- let exportStream = await this.getExportStream(exportTransaction.exportTemplate.templateFormat, dataRecordsFunc);
119
+ const uuid = String(id);
120
+ const dataRecordsFunc = await this.getDataRecordsFunc(fields, modelService, modelData, filters);
121
+ let exportStream = await this.getExportStream(templateFormat, dataRecordsFunc);
110
122
  return { exportStream, templateName, uuid, exportTransaction };
111
123
  }
112
124
  async getExportStream(templateFormat, dataRecordsFunc) {
@@ -145,17 +157,59 @@ let ExportTransactionService = ExportTransactionService_1 = class ExportTransact
145
157
  getMimeType(fileFormat) {
146
158
  return (fileFormat === ExportFormat.EXCEL) ? 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' : 'text/csv';
147
159
  }
148
- async getDataRecordsFunc(fields, modelService) {
160
+ async getDataRecordsFunc(fields, modelService, modelMetadata, filters) {
161
+ const relatedFieldNames = modelMetadata?.fields
162
+ .filter((field) => field.relationType !== null)
163
+ .map((field) => field.name);
164
+ const relatedModelsUserKeyMap = new Map();
165
+ for (const field of modelMetadata?.fields || []) {
166
+ if (field.relationType && field.relationCoModelSingularName && fields.includes(field.name)) {
167
+ const relatedModelMetadata = await this.ModelMetadataRepo.findOne({
168
+ where: { singularName: field.relationCoModelSingularName },
169
+ relations: ['userKeyField'],
170
+ });
171
+ if (relatedModelMetadata?.userKeyField?.name) {
172
+ relatedModelsUserKeyMap.set(field.name, relatedModelMetadata.userKeyField.name);
173
+ }
174
+ }
175
+ }
149
176
  return async (chunkIndex, chunkSize) => {
150
177
  const offset = chunkIndex * chunkSize;
151
178
  const recordFilterDto = {
152
- fields,
153
179
  limit: chunkSize,
154
180
  offset,
181
+ populate: relatedFieldNames
155
182
  };
183
+ const cleanedFilters = cleanNullsFromObject(filters);
184
+ if (cleanedFilters && Object.keys(cleanedFilters).length > 0) {
185
+ recordFilterDto.filters = cleanedFilters;
186
+ }
187
+ const nonRelationalFieldSet = new Set(modelMetadata?.fields
188
+ .filter((field) => fields.includes(field.name) && field.relationType === null)
189
+ .map((field) => field.name));
156
190
  const data = await modelService.instance.find(recordFilterDto);
157
191
  const records = data.records ?? [];
158
- return records;
192
+ const cleanedRecords = records.map((record) => {
193
+ const newRecord = {};
194
+ for (const key of nonRelationalFieldSet) {
195
+ newRecord[key] = record[key];
196
+ }
197
+ for (const [relatedFieldName, userKeyFieldName] of relatedModelsUserKeyMap.entries()) {
198
+ const relatedData = record[relatedFieldName];
199
+ if (Array.isArray(relatedData)) {
200
+ const values = relatedData.map(item => item?.[userKeyFieldName]).filter(Boolean);
201
+ newRecord[relatedFieldName] = values.join(', ');
202
+ }
203
+ else if (relatedData && typeof relatedData === 'object') {
204
+ newRecord[relatedFieldName] = relatedData?.[userKeyFieldName] ?? null;
205
+ }
206
+ else {
207
+ newRecord[relatedFieldName] = null;
208
+ }
209
+ }
210
+ return newRecord;
211
+ });
212
+ return cleanedRecords;
159
213
  };
160
214
  }
161
215
  async toDto(data) {
@@ -174,6 +228,7 @@ exports.ExportTransactionService = ExportTransactionService = ExportTransactionS
174
228
  __param(6, (0, typeorm_1.InjectEntityManager)()),
175
229
  __param(7, (0, typeorm_1.InjectRepository)(export_transaction_entity_1.ExportTransaction, 'default')),
176
230
  __param(11, (0, typeorm_1.InjectRepository)(field_metadata_entity_1.FieldMetadata, 'default')),
231
+ __param(12, (0, typeorm_1.InjectRepository)(model_metadata_entity_1.ModelMetadata, 'default')),
177
232
  __metadata("design:paramtypes", [model_metadata_service_1.ModelMetadataService,
178
233
  module_metadata_service_1.ModuleMetadataService,
179
234
  config_1.ConfigService,
@@ -186,6 +241,30 @@ exports.ExportTransactionService = ExportTransactionService = ExportTransactionS
186
241
  excel_service_1.ExcelService,
187
242
  csv_service_1.CsvService,
188
243
  typeorm_2.Repository,
244
+ typeorm_2.Repository,
189
245
  core_1.ModuleRef])
190
246
  ], ExportTransactionService);
247
+ function cleanNullsFromObject(obj) {
248
+ if (Array.isArray(obj)) {
249
+ return obj
250
+ .filter(item => item !== null && item !== undefined)
251
+ .map(cleanNullsFromObject);
252
+ }
253
+ else if (typeof obj === 'object' && obj !== null) {
254
+ const newObj = {};
255
+ for (const key in obj) {
256
+ const value = obj[key];
257
+ if (value !== null && value !== undefined) {
258
+ const cleanedValue = cleanNullsFromObject(value);
259
+ if ((typeof cleanedValue === 'object' && Object.keys(cleanedValue).length > 0) ||
260
+ (Array.isArray(cleanedValue) && cleanedValue.length > 0) ||
261
+ typeof cleanedValue !== 'object') {
262
+ newObj[key] = cleanedValue;
263
+ }
264
+ }
265
+ }
266
+ return newObj;
267
+ }
268
+ return obj;
269
+ }
191
270
  //# sourceMappingURL=export-transaction.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"export-transaction.service.js","sourceRoot":"","sources":["../../src/services/export-transaction.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export-transaction.service.js","sourceRoot":"","sources":["../../src/services/export-transaction.service.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,15 @@
1
1
  import { Cache } from 'cache-manager';
2
+ import { AuthenticationService } from './authentication.service';
2
3
  export declare class InvalidatedRefreshTokenError extends Error {
3
4
  }
4
5
  export declare class RefreshTokenIdsStorageService {
5
6
  private cacheManager;
6
- constructor(cacheManager: Cache);
7
- insert(userId: number, tokenId: string): Promise<void>;
8
- validate(userId: number, tokenId: string): Promise<boolean>;
7
+ private readonly authenticationService;
8
+ constructor(cacheManager: Cache, authenticationService: AuthenticationService);
9
+ insert(userId: number, refreshToken: string): Promise<void>;
10
+ validate(userId: number, refreshToken: string): Promise<boolean>;
9
11
  invalidate(userId: number): Promise<void>;
12
+ validateAndRotate(user: any, refreshToken: string): Promise<string>;
10
13
  private getKey;
11
14
  }
12
15
  //# sourceMappingURL=refresh-token-ids-storage.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"refresh-token-ids-storage.service.d.ts","sourceRoot":"","sources":["../../src/services/refresh-token-ids-storage.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,qBAAa,4BAA6B,SAAQ,KAAK;CAAI;AAE3D,qBAEa,6BAA6B;IAcH,OAAO,CAAC,YAAY;gBAAZ,YAAY,EAAE,KAAK;IAExD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ3D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,OAAO,CAAC,MAAM;CAGjB"}
1
+ {"version":3,"file":"refresh-token-ids-storage.service.d.ts","sourceRoot":"","sources":["../../src/services/refresh-token-ids-storage.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,qBAAa,4BAA6B,SAAQ,KAAK;CAAI;AAE3D,qBAEa,6BAA6B;IAeX,OAAO,CAAC,YAAY;IAE3C,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBAFP,YAAY,EAAE,KAAK,EAEjC,qBAAqB,EAAE,qBAAqB;IAG3D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUhE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqEzE,OAAO,CAAC,MAAM;CAGjB"}
@@ -15,26 +15,70 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.RefreshTokenIdsStorageService = exports.InvalidatedRefreshTokenError = void 0;
16
16
  const cache_manager_1 = require("@nestjs/cache-manager");
17
17
  const common_1 = require("@nestjs/common");
18
+ const authentication_service_1 = require("./authentication.service");
18
19
  class InvalidatedRefreshTokenError extends Error {
19
20
  }
20
21
  exports.InvalidatedRefreshTokenError = InvalidatedRefreshTokenError;
21
22
  let RefreshTokenIdsStorageService = class RefreshTokenIdsStorageService {
22
- constructor(cacheManager) {
23
+ constructor(cacheManager, authenticationService) {
23
24
  this.cacheManager = cacheManager;
25
+ this.authenticationService = authenticationService;
24
26
  }
25
- async insert(userId, tokenId) {
26
- await this.cacheManager.set(this.getKey(userId), tokenId);
27
+ async insert(userId, refreshToken) {
28
+ const existing = (await this.cacheManager.get(this.getKey(userId)));
29
+ const refreshTokenState = {
30
+ currentRefreshToken: refreshToken,
31
+ previousRefreshToken: "",
32
+ };
33
+ await this.cacheManager.set(this.getKey(userId), refreshTokenState);
27
34
  }
28
- async validate(userId, tokenId) {
35
+ async validate(userId, refreshToken) {
29
36
  const storedId = await this.cacheManager.get(this.getKey(userId));
30
- if (storedId !== tokenId) {
37
+ if (storedId !== refreshToken) {
31
38
  throw new InvalidatedRefreshTokenError();
32
39
  }
33
- return storedId === tokenId;
40
+ return storedId === refreshToken;
34
41
  }
35
42
  async invalidate(userId) {
36
43
  await this.cacheManager.del(this.getKey(userId));
37
44
  }
45
+ async validateAndRotate(user, refreshToken) {
46
+ let valid = false;
47
+ const refreshTokenState = await this.cacheManager.get(this.getKey(user.id));
48
+ console.log("refreshTokenState", refreshTokenState);
49
+ let newRefreshToken;
50
+ if (refreshTokenState &&
51
+ typeof refreshTokenState === 'object' &&
52
+ 'currentRefreshToken' in refreshTokenState &&
53
+ 'previousRefreshToken' in refreshTokenState) {
54
+ if (refreshTokenState.currentRefreshToken === refreshToken) {
55
+ valid = true;
56
+ newRefreshToken = await this.authenticationService.generateRefreshToken(user);
57
+ await this.cacheManager.set(this.getKey(user.id), {
58
+ currentRefreshToken: newRefreshToken,
59
+ previousRefreshToken: refreshTokenState.currentRefreshToken,
60
+ });
61
+ setTimeout(async () => {
62
+ const state = (await this.cacheManager.get(this.getKey(user.id)));
63
+ if (state && state.currentRefreshToken === newRefreshToken) {
64
+ await this.cacheManager.set(this.getKey(user.id), {
65
+ currentRefreshToken: newRefreshToken,
66
+ previousRefreshToken: "",
67
+ });
68
+ }
69
+ }, 1 * 60 * 1000);
70
+ }
71
+ else if (refreshTokenState.previousRefreshToken === refreshToken) {
72
+ valid = true;
73
+ const existingRefreshTokenState = (await this.cacheManager.get(this.getKey(user.id)));
74
+ newRefreshToken = existingRefreshTokenState?.currentRefreshToken;
75
+ }
76
+ }
77
+ if (!valid) {
78
+ throw new InvalidatedRefreshTokenError();
79
+ }
80
+ return newRefreshToken;
81
+ }
38
82
  getKey(userId) {
39
83
  return `user-${userId}`;
40
84
  }
@@ -43,6 +87,7 @@ exports.RefreshTokenIdsStorageService = RefreshTokenIdsStorageService;
43
87
  exports.RefreshTokenIdsStorageService = RefreshTokenIdsStorageService = __decorate([
44
88
  (0, common_1.Injectable)(),
45
89
  __param(0, (0, common_1.Inject)(cache_manager_1.CACHE_MANAGER)),
46
- __metadata("design:paramtypes", [Object])
90
+ __param(1, (0, common_1.Inject)((0, common_1.forwardRef)(() => authentication_service_1.AuthenticationService))),
91
+ __metadata("design:paramtypes", [Object, authentication_service_1.AuthenticationService])
47
92
  ], RefreshTokenIdsStorageService);
48
93
  //# sourceMappingURL=refresh-token-ids-storage.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"refresh-token-ids-storage.service.js","sourceRoot":"","sources":["../../src/services/refresh-token-ids-storage.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yDAAsD;AACtD,2CAAoD;AAIpD,MAAa,4BAA6B,SAAQ,KAAK;CAAI;AAA3D,oEAA2D;AAIpD,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IActC,YAA2C,YAAmB;QAAnB,iBAAY,GAAZ,YAAY,CAAO;IAAG,CAAC;IAElE,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,OAAe;QACxC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,OAAe;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACvB,MAAM,IAAI,4BAA4B,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,QAAQ,KAAK,OAAO,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC3B,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,CAAC;IAEO,MAAM,CAAC,MAAc;QACzB,OAAO,QAAQ,MAAM,EAAE,CAAC;IAC5B,CAAC;CACJ,CAAA;AAnCY,sEAA6B;wCAA7B,6BAA6B;IAFzC,IAAA,mBAAU,GAAE;IAgBI,WAAA,IAAA,eAAM,EAAC,6BAAa,CAAC,CAAA;;GAdzB,6BAA6B,CAmCzC"}
1
+ {"version":3,"file":"refresh-token-ids-storage.service.js","sourceRoot":"","sources":["../../src/services/refresh-token-ids-storage.service.ts"],"names":[],"mappings":"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"}