forlogic-core 2.4.2 → 2.4.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.
@@ -39,18 +39,18 @@ export interface CoreProvidersProps {
39
39
  */
40
40
  moduleAlias?: string;
41
41
  /**
42
- * Base URL da API do módulo. Quando informada, `useModuleAccess` busca as
43
- * associações em
44
- * `{moduleApiUrl}/api/{moduleAlias}/v1/Users/{userId}/associations`
45
- * em vez de
42
+ * Base URL completa (até antes de `/Users/{userId}/associations`) usada para
43
+ * buscar as associações do usuário. Quando informada, a lib chama
44
+ * `{associationsBaseUrl}/Users/{userId}/associations`
45
+ * em vez do default
46
46
  * `{QUALIEX_API_URL}/api/common/v1/Users/{userId}/associations`.
47
47
  *
48
- * Exige `moduleAlias` configurado (o alias entra no path). Default: não
49
- * informado → usa a common (comportamento atual).
48
+ * Independente de `moduleAlias` pode ser usada sem ativar o gating de módulo.
50
49
  *
51
- * @example moduleApiUrl={import.meta.env.VITE_MODULE_API_URL}
50
+ * @example associationsBaseUrl={import.meta.env.VITE_ASSOCIATIONS_API_URL}
51
+ * // ex: "https://api.qualiex.com/api/inovacao/v1"
52
52
  */
53
- moduleApiUrl?: string;
53
+ associationsBaseUrl?: string;
54
54
  /**
55
55
  * Props opcionais para o ModuleAccessGuard.
56
56
  * Permite configurar módulos contratados, callbacks e URLs.
@@ -132,4 +132,4 @@ export declare function getSecurityMode(): 'legacy' | 'strict';
132
132
  * }
133
133
  * ```
134
134
  */
135
- export declare function CoreProviders({ children, queryClient, moduleAlias, moduleApiUrl, moduleAccessGuardProps, appTranslations, clarityProjectId, clarityMode, backend, securityMode, }: CoreProvidersProps): import("react/jsx-runtime").JSX.Element;
135
+ export declare function CoreProviders({ children, queryClient, moduleAlias, associationsBaseUrl, moduleAccessGuardProps, appTranslations, clarityProjectId, clarityMode, backend, securityMode, }: CoreProvidersProps): import("react/jsx-runtime").JSX.Element;
@@ -41,18 +41,19 @@ declare class QualiexApiService {
41
41
  *
42
42
  * Default: `GET {QUALIEX_API_URL}/api/common/v1/Users/{userId}/associations`
43
43
  *
44
- * Quando `opts.baseUrl` e `opts.moduleSegment` são informados, a chamada vai
45
- * para a API do próprio módulo:
46
- * `GET {opts.baseUrl}/api/{opts.moduleSegment}/v1/Users/{userId}/associations`
44
+ * Quando `opts.baseUrl` é informado, a chamada vai para:
45
+ * `GET {opts.baseUrl}/Users/{userId}/associations`
46
+ *
47
+ * (o `baseUrl` deve incluir todo o prefixo, ex.:
48
+ * `https://api.qualiex.com/api/inovacao/v1`)
47
49
  *
48
50
  * @param userId - ID do usuário no Qualiex (subNewId / user.id)
49
51
  * @param alias - Alias da unidade (usado no header un-alias)
50
- * @param opts - Override opcional para apontar para a API do módulo
52
+ * @param opts - Override opcional para apontar para outra base URL
51
53
  * @returns Array de UserAssociation com softwares[], roleId, roleName, etc.
52
54
  */
53
55
  fetchUserAssociations(userId: string, alias: string, opts?: {
54
56
  baseUrl?: string;
55
- moduleSegment?: string;
56
57
  }): Promise<UserAssociation[]>;
57
58
  }
58
59
  /**
@@ -29,43 +29,47 @@
29
29
  | children | ReactNode | Sim | Componentes filhos |
30
30
  | queryClient | QueryClient | Não | Instância customizada (default criado automaticamente) |
31
31
  | moduleAlias | string | Não | Alias do módulo para verificação de acesso |
32
- | moduleApiUrl | string | Não | Base URL da API do módulo para resolver associações. Ver seção "Associações pela API do módulo". |
32
+ | moduleApiUrl | string | Não | (DEPRECATED substituído por `associationsBaseUrl`) |
33
+ | associationsBaseUrl | string | Não | Base URL completa para `/Users/{userId}/associations`. Ver seção abaixo. |
33
34
  | moduleAccessGuardProps | object | Não | Props para o ModuleAccessGuard |
34
35
  | appTranslations | Record<string, Record<string, string>> | Não | Traduções por idioma no namespace 'app' |
35
36
  | clarityProjectId | string | Não | Project ID do Microsoft Clarity. Sem ele, integração desativada. |
36
37
  | clarityMode | 'auto' \| 'disabled' | Não | Opt-out do tracking Clarity. Default `'auto'`. |
37
38
  | backend | 'supabase' \| 'dotnet' | Não | Backend ativo. Default `'supabase'`. Ver seção abaixo. |
38
39
 
39
- ## Associações pela API do módulo
40
+ ## Associações em outra base URL
40
41
 
41
- Por padrão, `useModuleAccess` (e o `ModuleAccessGuard`) busca as associações do usuário em:
42
+ Por padrão, `useModuleAccess` (e o `ModuleAccessGuard`) busca as associações em:
42
43
 
43
44
  ```
44
45
  {QUALIEX_API_URL}/api/common/v1/Users/{userId}/associations
45
46
  ```
46
47
 
47
- Quando o módulo expõe seu próprio endpoint de associações, informe `moduleApiUrl` no `CoreProviders`. A lib troca o segmento `common` pelo `moduleAlias` configurado:
48
+ Quando o módulo expõe seu próprio endpoint de associações, informe `associationsBaseUrl` no `CoreProviders`. A lib passa a chamar:
48
49
 
49
50
  ```
50
- {moduleApiUrl}/api/{moduleAlias}/v1/Users/{userId}/associations
51
+ {associationsBaseUrl}/Users/{userId}/associations
51
52
  ```
52
53
 
54
+ `associationsBaseUrl` deve incluir todo o prefixo (host + `/api/{modulo}/v1`):
55
+
53
56
  ```tsx
54
57
  <CoreProviders
55
58
  backend="dotnet"
56
- moduleAlias="inovacao"
57
- moduleApiUrl={import.meta.env.VITE_MODULE_API_URL}
59
+ associationsBaseUrl={import.meta.env.VITE_ASSOCIATIONS_API_URL}
60
+ // ex: "https://api.qualiex.com/api/inovacao/v1"
58
61
  >
59
62
  ...
60
63
  </CoreProviders>
61
64
  ```
62
65
 
63
- Requisitos:
66
+ Características:
64
67
 
65
- - `moduleAlias` é obrigatório quando `moduleApiUrl` é informado (entra no path). Sem ele, a lib cai no comportamento default e emite `console.warn`.
66
- - A API do módulo deve responder no mesmo contrato (`UserAssociation[]`) e aceitar os headers `Authorization: Bearer <token>` e `un-alias: <alias>`.
68
+ - **Uma única variável** — não exige `moduleAlias`. Pode ser usada sem ativar o `ModuleAccessGuard` (útil enquanto o software do módulo ainda não foi cadastrado no `SOFTWARES_MAP` da lib).
69
+ - A API alvo deve responder no mesmo contrato (`UserAssociation[]`) e aceitar os headers `Authorization: Bearer <token>` e `un-alias: <alias>`.
67
70
  - Demais endpoints (`/companiesusers`, `/softwares`) continuam consultando a common.
68
71
 
72
+
69
73
  ## Backend (Supabase opcional)
70
74
 
71
75
  A prop `backend` controla se a lib usa o stack Supabase ou apenas a API .NET do Qualiex.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forlogic-core",
3
- "version": "2.4.2",
3
+ "version": "2.4.3",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",