http-request-manager 18.15.16 → 18.15.18

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.
@@ -6126,6 +6126,24 @@ class DbService extends Dexie {
6126
6126
  });
6127
6127
  return schema;
6128
6128
  }
6129
+ deleteAndReinitialize() {
6130
+ return from(this.delete({ disableAutoOpen: false }).then(async () => {
6131
+ console.log('[DB] Database deleted. Reopening...');
6132
+ try {
6133
+ await this.open();
6134
+ this.dbReady = Promise.resolve();
6135
+ console.log(`[DB] Reopened database. Version: ${this.verno}, Tables: ${this.getTables.join(', ')}`);
6136
+ return this.isOpen();
6137
+ }
6138
+ catch (openErr) {
6139
+ console.error('[DB] Failed to reopen after delete:', openErr);
6140
+ return false;
6141
+ }
6142
+ })).pipe(catchError((err) => {
6143
+ console.error('[DB] deleteAndReinitialize failed:', err);
6144
+ return of(false);
6145
+ }));
6146
+ }
6129
6147
  cleanTableName(str) {
6130
6148
  return str
6131
6149
  .replace(/[^a-zA-Z0-9\s_]/g, '')
@@ -6273,10 +6291,26 @@ class DatabaseManagerService extends DbService {
6273
6291
  if (!this.isMissingObjectStoreError(error)) {
6274
6292
  throw error;
6275
6293
  }
6276
- // console.warn(`createTableRecords: Missing object store for '${tableName}'. Recreating table and retrying once...`, error);
6277
6294
  return recreateMissingTableAndRetry().pipe(catchError((retryError) => {
6278
- console.error(`createTableRecords: Retry failed for '${tableName}'`, retryError);
6279
- throw retryError;
6295
+ if (!this.isMissingObjectStoreError(retryError)) {
6296
+ console.error(`createTableRecords: Retry failed for '${tableName}'`, retryError);
6297
+ throw retryError;
6298
+ }
6299
+ console.warn(`createTableRecords: Table '${tableName}' still missing after retry. Deleting DB and reinitializing...`);
6300
+ return this.deleteAndReinitialize().pipe(switchMap((reinitialized) => {
6301
+ if (!reinitialized) {
6302
+ throw retryError;
6303
+ }
6304
+ const inferredSchema = this.inferSchemaFromRecords(insertRecords);
6305
+ if (!inferredSchema) {
6306
+ throw retryError;
6307
+ }
6308
+ const tableDef = TableSchemaDef.adapt({ table: tableName, schema: inferredSchema });
6309
+ return this.createDatabaseTable(tableDef).pipe(switchMap(() => writeRecords()));
6310
+ }), catchError((finalError) => {
6311
+ console.error(`createTableRecords: All retries exhausted for '${tableName}'`, finalError);
6312
+ throw finalError;
6313
+ }));
6280
6314
  }));
6281
6315
  }));
6282
6316
  }
@@ -6369,6 +6403,9 @@ class DatabaseManagerService extends DbService {
6369
6403
  return of(false);
6370
6404
  })).subscribe();
6371
6405
  }
6406
+ resetDatabase() {
6407
+ return this.deleteAndReinitialize();
6408
+ }
6372
6409
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatabaseManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6373
6410
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatabaseManagerService, providedIn: 'root' }); }
6374
6411
  }