ngx-sp-auth 4.5.1 → 4.5.2

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.
@@ -19,7 +19,9 @@ export declare class IndexedDBService {
19
19
  private _customEnvironment;
20
20
  private _restored?;
21
21
  private _dbName;
22
- protected database?: IDBDatabase;
22
+ private _lock;
23
+ private _isInitialized;
24
+ private _initPromise?;
23
25
  protected request?: IDBPDatabase<unknown>;
24
26
  constructor(_customEnvironment: LibCustomEnvironmentService);
25
27
  /**
@@ -32,7 +34,6 @@ export declare class IndexedDBService {
32
34
  /**
33
35
  * Busca um valor na base dentro de um objectStore.
34
36
  *
35
- * @param storeName Nome do objectStore
36
37
  * @param key Valor da chave única
37
38
  * @returns Promise<> com o valor encontrado ou undefined se não encontrar
38
39
  */
@@ -49,28 +50,60 @@ export declare class IndexedDBService {
49
50
  * @param key Valor da chave única
50
51
  */
51
52
  delete(key: string): Promise<void>;
53
+ /**
54
+ * Garante que a database foi inicializada antes de usar qualquer operação.
55
+ * Se `initializeDatabase()` foi chamado mas ainda não completou, aguarda a promise.
56
+ * Previne race conditions ao tentar usar operações durante a inicialização.
57
+ *
58
+ * @private
59
+ */
60
+ private _ensureInitialized;
52
61
  /**
53
62
  * Inicializa as configurações iniciais do IndexedDB e já cria o objectStore que será utilizado caso não exista.
54
63
  *
55
- * O object store que será criado terá sua chave inline na propriedade `key` e o índice será a propriedade `context`, portanto todos os valores que forem inseridos **DEVEM** ser um objeto com pelo menos a propriedade `key` e `context`.
56
- * Deve ser chamado no constructor do seu componente para garantir inicialização correta pelo componente
64
+ * ⚠️ IMPORTANTE: Deve ser chamado com `await` no ngOnInit() do seu componente, não no constructor!
57
65
  *
58
- * @param dbName Nome da base de dados que será usada
66
+ * O object store que será criado terá sua chave inline na propriedade `key` e o índice será a propriedade `context`,
67
+ * portanto todos os valores que forem inseridos **DEVEM** ser um objeto com pelo menos a propriedade `key` e `context`.
68
+ *
69
+ * @example
70
+ * async ngOnInit() {
71
+ * await this._indexedDB.initializeDatabase();
72
+ * const restored = await this._indexedDB.get('minha-chave');
73
+ * }
59
74
  */
60
75
  initializeDatabase(): Promise<void>;
76
+ /**
77
+ * Executa a inicialização real da database.
78
+ * @private
79
+ */
80
+ private _performInitialization;
61
81
  /**
62
82
  * Exclui uma database do IndexedDB com base no nome.
63
83
  *
64
- * @param name Nome da database
84
+ * Deve ser chamado durante o logout para limpar dados do usuário.
85
+ *
86
+ * @example
87
+ * await this._indexedDB.closeOpenConnection();
88
+ * await this._indexedDB.deleteDatabase();
65
89
  */
66
90
  deleteDatabase(): Promise<void>;
67
91
  /**
68
92
  * Fecha a conexão persistente (se existir) sem excluir a database.
69
93
  * Útil para cenários onde se precisa liberar a conexão antes de chamar `deleteDatabase()`.
94
+ *
95
+ * @example
96
+ * await this._indexedDB.closeOpenConnection();
70
97
  */
71
98
  closeOpenConnection(): Promise<void>;
72
99
  /**
73
- * Valida se existe um valor cadastrado na base com a chave-única que foi informada, se houver retorna ele, caso contrário cria um registro placeholder para poder atualizar depois.
100
+ * Executa o fechamento real da conexão.
101
+ * @private
102
+ */
103
+ private _closeConnection;
104
+ /**
105
+ * Valida se já existe um valor cadastrado na base com a chave-única que foi informada,
106
+ * se houver retorna ele, caso contrário cria um registro placeholder para poder atualizar depois.
74
107
  *
75
108
  * @param key Valor da chave única
76
109
  * @param value (opcional) Valor placeholder caso não exista um valor previamente criado
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-sp-auth",
3
- "version": "4.5.1",
3
+ "version": "4.5.2",
4
4
  "description": "Biblioteca de utilitários de autenticação.",
5
5
  "author": "P&D",
6
6
  "keywords": [