@neetru/sdk 3.6.0 → 3.8.0
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.
- package/CHANGELOG.md +104 -0
- package/README.md +66 -1
- package/dist/ai.cjs +298 -391
- package/dist/ai.d.cts +1 -1
- package/dist/ai.d.ts +1 -1
- package/dist/ai.mjs +298 -391
- package/dist/auth.cjs +3717 -5005
- package/dist/auth.d.cts +1 -1
- package/dist/auth.d.ts +1 -1
- package/dist/auth.mjs +3714 -5002
- package/dist/build-guard.cjs +101 -119
- package/dist/build-guard.mjs +91 -109
- package/dist/catalog.cjs +220 -225
- package/dist/catalog.d.cts +1 -1
- package/dist/catalog.d.ts +1 -1
- package/dist/catalog.mjs +220 -225
- package/dist/checkout.cjs +307 -323
- package/dist/checkout.d.cts +1 -1
- package/dist/checkout.d.ts +1 -1
- package/dist/checkout.mjs +306 -322
- package/dist/db-react.cjs +59 -87
- package/dist/db-react.d.cts +1 -1
- package/dist/db-react.d.ts +1 -1
- package/dist/db-react.mjs +56 -84
- package/dist/db.cjs +2128 -3014
- package/dist/db.d.cts +1 -1
- package/dist/db.d.ts +1 -1
- package/dist/db.mjs +2141 -3027
- package/dist/entitlements.cjs +19 -20
- package/dist/entitlements.d.cts +1 -1
- package/dist/entitlements.d.ts +1 -1
- package/dist/entitlements.mjs +19 -20
- package/dist/errors.cjs +16 -12
- package/dist/errors.d.cts +59 -3
- package/dist/errors.d.ts +59 -3
- package/dist/errors.mjs +15 -12
- package/dist/firestore-compat.cjs +241 -297
- package/dist/firestore-compat.d.cts +1 -1
- package/dist/firestore-compat.d.ts +1 -1
- package/dist/firestore-compat.mjs +215 -271
- package/dist/index.cjs +3942 -5134
- package/dist/index.d.cts +181 -5
- package/dist/index.d.ts +181 -5
- package/dist/index.mjs +4040 -5239
- package/dist/mobile.cjs +459 -344
- package/dist/mobile.d.cts +59 -4
- package/dist/mobile.d.ts +59 -4
- package/dist/mobile.mjs +459 -344
- package/dist/mocks.cjs +319 -447
- package/dist/mocks.d.cts +1 -1
- package/dist/mocks.d.ts +1 -1
- package/dist/mocks.mjs +313 -441
- package/dist/notifications.cjs +296 -317
- package/dist/notifications.d.cts +1 -1
- package/dist/notifications.d.ts +1 -1
- package/dist/notifications.mjs +295 -316
- package/dist/react.cjs +557 -707
- package/dist/react.d.cts +1 -1
- package/dist/react.d.ts +1 -1
- package/dist/react.mjs +547 -697
- package/dist/support.cjs +402 -328
- package/dist/support.d.cts +29 -3
- package/dist/support.d.ts +29 -3
- package/dist/support.mjs +401 -328
- package/dist/telemetry.cjs +267 -304
- package/dist/telemetry.d.cts +1 -1
- package/dist/telemetry.d.ts +1 -1
- package/dist/telemetry.mjs +267 -304
- package/dist/{types-Du_iioJ7.d.cts → types-D-9bjlM0.d.cts} +74 -1
- package/dist/{types-BPATkXYu.d.ts → types-bVztFQTI.d.ts} +74 -1
- package/dist/usage.cjs +233 -230
- package/dist/usage.d.cts +1 -1
- package/dist/usage.d.ts +1 -1
- package/dist/usage.mjs +233 -230
- package/dist/webhooks.cjs +328 -362
- package/dist/webhooks.d.cts +1 -1
- package/dist/webhooks.d.ts +1 -1
- package/dist/webhooks.mjs +325 -359
- package/package.json +5 -3
- package/dist/ai.cjs.map +0 -1
- package/dist/ai.mjs.map +0 -1
- package/dist/auth.cjs.map +0 -1
- package/dist/auth.mjs.map +0 -1
- package/dist/build-guard.cjs.map +0 -1
- package/dist/build-guard.mjs.map +0 -1
- package/dist/catalog.cjs.map +0 -1
- package/dist/catalog.mjs.map +0 -1
- package/dist/checkout.cjs.map +0 -1
- package/dist/checkout.mjs.map +0 -1
- package/dist/db-react.cjs.map +0 -1
- package/dist/db-react.mjs.map +0 -1
- package/dist/db.cjs.map +0 -1
- package/dist/db.mjs.map +0 -1
- package/dist/entitlements.cjs.map +0 -1
- package/dist/entitlements.mjs.map +0 -1
- package/dist/errors.cjs.map +0 -1
- package/dist/errors.mjs.map +0 -1
- package/dist/firestore-compat.cjs.map +0 -1
- package/dist/firestore-compat.mjs.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/mobile.cjs.map +0 -1
- package/dist/mobile.mjs.map +0 -1
- package/dist/mocks.cjs.map +0 -1
- package/dist/mocks.mjs.map +0 -1
- package/dist/notifications.cjs.map +0 -1
- package/dist/notifications.mjs.map +0 -1
- package/dist/react.cjs.map +0 -1
- package/dist/react.mjs.map +0 -1
- package/dist/support.cjs.map +0 -1
- package/dist/support.mjs.map +0 -1
- package/dist/telemetry.cjs.map +0 -1
- package/dist/telemetry.mjs.map +0 -1
- package/dist/usage.cjs.map +0 -1
- package/dist/usage.mjs.map +0 -1
- package/dist/webhooks.cjs.map +0 -1
- package/dist/webhooks.mjs.map +0 -1
package/dist/mobile.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Y as NeetruClientConfig, v as CompleteSignInResult, a6 as NeetruUser, m as AuthStateListener } from './types-D-9bjlM0.cjs';
|
|
2
2
|
import 'drizzle-orm/node-postgres';
|
|
3
3
|
import './errors.cjs';
|
|
4
4
|
|
|
@@ -12,7 +12,23 @@ interface MobileAuthStorage {
|
|
|
12
12
|
setItem(key: string, value: string): Promise<void>;
|
|
13
13
|
removeItem(key: string): Promise<void>;
|
|
14
14
|
}
|
|
15
|
-
interface MobileAuthConfig extends NeetruClientConfig {
|
|
15
|
+
interface MobileAuthConfig extends Omit<NeetruClientConfig, 'apiKey'> {
|
|
16
|
+
/**
|
|
17
|
+
* 3.8.0: PROIBIDO. A credencial `nrt_` é só de servidor — passar qualquer
|
|
18
|
+
* valor aqui faz `createMobileAuthNamespace` lançar `server_only_key`.
|
|
19
|
+
*/
|
|
20
|
+
apiKey?: never;
|
|
21
|
+
/**
|
|
22
|
+
* `client_id` do client OIDC PÚBLICO do app (iOS/Android), registrado no Core.
|
|
23
|
+
* Obrigatório a partir da 3.8.0 (antes caía no keyId da apiKey).
|
|
24
|
+
*/
|
|
25
|
+
oidcClientId?: string;
|
|
26
|
+
/**
|
|
27
|
+
* 3.8.0: URL base da API do SEU produto (ex.: `https://pdv.neetru.com/api/v1`).
|
|
28
|
+
* Usada por `auth.authFetch(...)` — o access_token SÓ é enviado para essa
|
|
29
|
+
* origem (nunca para outro host). Precisa ser `https://` (ou `http://localhost`).
|
|
30
|
+
*/
|
|
31
|
+
productApiUrl?: string;
|
|
16
32
|
/** Storage persistente (idealmente seguro) — ver requisito 4 no JSDoc do módulo. */
|
|
17
33
|
storage: MobileAuthStorage;
|
|
18
34
|
/**
|
|
@@ -62,6 +78,30 @@ interface MobileAuthNamespace {
|
|
|
62
78
|
completeSignIn(callbackUrl: string): Promise<CompleteSignInResult>;
|
|
63
79
|
/** `id_token` cru armazenado, ou `null` se ausente/expirado. */
|
|
64
80
|
getIdToken(): Promise<string | null>;
|
|
81
|
+
/**
|
|
82
|
+
* 3.8.0: `access_token` válido para chamar a API do produto (Bearer). Se o
|
|
83
|
+
* armazenado venceu (ou vence em <30s) e há refresh_token, renova 1x antes.
|
|
84
|
+
* `null` se não há sessão.
|
|
85
|
+
*/
|
|
86
|
+
getAccessToken(): Promise<string | null>;
|
|
87
|
+
/**
|
|
88
|
+
* 3.8.0: claims do usuário no `/api/v1/oauth/userinfo` do Core (fonte
|
|
89
|
+
* autoritativa — reflete conta suspensa/cancelada, diferente do id_token).
|
|
90
|
+
* Num 401 renova a sessão 1x e repete.
|
|
91
|
+
*
|
|
92
|
+
* @throws {NeetruAuthRequiredError} sem sessão ou sessão recusada pelo Core.
|
|
93
|
+
*/
|
|
94
|
+
getUserInfo(): Promise<MobileUserInfo>;
|
|
95
|
+
/**
|
|
96
|
+
* 3.8.0: `fetch` autenticado para a API do PRODUTO (`config.productApiUrl`):
|
|
97
|
+
* injeta `Authorization: Bearer <access_token>` e `x-correlation-id`; num 401
|
|
98
|
+
* renova a sessão 1x e repete. Aceita path relativo (`/vendas`) ou URL
|
|
99
|
+
* absoluta DA MESMA origem — outra origem é recusada (o token nunca vaza).
|
|
100
|
+
*
|
|
101
|
+
* @throws {NeetruError} `invalid_config` (sem `productApiUrl` / outra origem),
|
|
102
|
+
* {@link NeetruAuthRequiredError} sem sessão.
|
|
103
|
+
*/
|
|
104
|
+
authFetch(pathOrUrl: string, init?: RequestInit): Promise<Response>;
|
|
65
105
|
/** Usuário atual (claims do `id_token` armazenado), ou `null`. */
|
|
66
106
|
getUser(): Promise<NeetruUser | null>;
|
|
67
107
|
/**
|
|
@@ -77,13 +117,28 @@ interface MobileAuthNamespace {
|
|
|
77
117
|
* token, `invalid_grant`, rede) — não lança.
|
|
78
118
|
*/
|
|
79
119
|
refreshTokens(): Promise<boolean>;
|
|
80
|
-
/**
|
|
120
|
+
/**
|
|
121
|
+
* Limpa a sessão local (storage) e revoga no Core (RFC 7009, client público)
|
|
122
|
+
* o refresh_token e o access_token. A limpeza local acontece SEMPRE, mesmo
|
|
123
|
+
* se o servidor estiver fora; a revogação é melhor esforço (avisa no console).
|
|
124
|
+
*/
|
|
81
125
|
signOut(): Promise<void>;
|
|
82
126
|
}
|
|
127
|
+
/** 3.8.0 — resposta do `/userinfo` (escopo decide quais campos vêm). */
|
|
128
|
+
interface MobileUserInfo {
|
|
129
|
+
sub: string;
|
|
130
|
+
email?: string;
|
|
131
|
+
email_verified?: boolean;
|
|
132
|
+
name?: string;
|
|
133
|
+
picture?: string;
|
|
134
|
+
tenant_id?: string;
|
|
135
|
+
entitlements?: string[];
|
|
136
|
+
[claim: string]: unknown;
|
|
137
|
+
}
|
|
83
138
|
/**
|
|
84
139
|
* Cria o namespace de auth mobile. Ver JSDoc do módulo pros requisitos do
|
|
85
140
|
* app consumidor (polyfill WebCrypto, browser externo, storage seguro).
|
|
86
141
|
*/
|
|
87
142
|
declare function createMobileAuthNamespace(config: MobileAuthConfig): MobileAuthNamespace;
|
|
88
143
|
|
|
89
|
-
export { type MobileAuthConfig, type MobileAuthNamespace, type MobileAuthStorage, type MobileSignInOptions, createMobileAuthNamespace };
|
|
144
|
+
export { type MobileAuthConfig, type MobileAuthNamespace, type MobileAuthStorage, type MobileSignInOptions, type MobileUserInfo, createMobileAuthNamespace };
|
package/dist/mobile.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Y as NeetruClientConfig, v as CompleteSignInResult, a6 as NeetruUser, m as AuthStateListener } from './types-bVztFQTI.js';
|
|
2
2
|
import 'drizzle-orm/node-postgres';
|
|
3
3
|
import './errors.js';
|
|
4
4
|
|
|
@@ -12,7 +12,23 @@ interface MobileAuthStorage {
|
|
|
12
12
|
setItem(key: string, value: string): Promise<void>;
|
|
13
13
|
removeItem(key: string): Promise<void>;
|
|
14
14
|
}
|
|
15
|
-
interface MobileAuthConfig extends NeetruClientConfig {
|
|
15
|
+
interface MobileAuthConfig extends Omit<NeetruClientConfig, 'apiKey'> {
|
|
16
|
+
/**
|
|
17
|
+
* 3.8.0: PROIBIDO. A credencial `nrt_` é só de servidor — passar qualquer
|
|
18
|
+
* valor aqui faz `createMobileAuthNamespace` lançar `server_only_key`.
|
|
19
|
+
*/
|
|
20
|
+
apiKey?: never;
|
|
21
|
+
/**
|
|
22
|
+
* `client_id` do client OIDC PÚBLICO do app (iOS/Android), registrado no Core.
|
|
23
|
+
* Obrigatório a partir da 3.8.0 (antes caía no keyId da apiKey).
|
|
24
|
+
*/
|
|
25
|
+
oidcClientId?: string;
|
|
26
|
+
/**
|
|
27
|
+
* 3.8.0: URL base da API do SEU produto (ex.: `https://pdv.neetru.com/api/v1`).
|
|
28
|
+
* Usada por `auth.authFetch(...)` — o access_token SÓ é enviado para essa
|
|
29
|
+
* origem (nunca para outro host). Precisa ser `https://` (ou `http://localhost`).
|
|
30
|
+
*/
|
|
31
|
+
productApiUrl?: string;
|
|
16
32
|
/** Storage persistente (idealmente seguro) — ver requisito 4 no JSDoc do módulo. */
|
|
17
33
|
storage: MobileAuthStorage;
|
|
18
34
|
/**
|
|
@@ -62,6 +78,30 @@ interface MobileAuthNamespace {
|
|
|
62
78
|
completeSignIn(callbackUrl: string): Promise<CompleteSignInResult>;
|
|
63
79
|
/** `id_token` cru armazenado, ou `null` se ausente/expirado. */
|
|
64
80
|
getIdToken(): Promise<string | null>;
|
|
81
|
+
/**
|
|
82
|
+
* 3.8.0: `access_token` válido para chamar a API do produto (Bearer). Se o
|
|
83
|
+
* armazenado venceu (ou vence em <30s) e há refresh_token, renova 1x antes.
|
|
84
|
+
* `null` se não há sessão.
|
|
85
|
+
*/
|
|
86
|
+
getAccessToken(): Promise<string | null>;
|
|
87
|
+
/**
|
|
88
|
+
* 3.8.0: claims do usuário no `/api/v1/oauth/userinfo` do Core (fonte
|
|
89
|
+
* autoritativa — reflete conta suspensa/cancelada, diferente do id_token).
|
|
90
|
+
* Num 401 renova a sessão 1x e repete.
|
|
91
|
+
*
|
|
92
|
+
* @throws {NeetruAuthRequiredError} sem sessão ou sessão recusada pelo Core.
|
|
93
|
+
*/
|
|
94
|
+
getUserInfo(): Promise<MobileUserInfo>;
|
|
95
|
+
/**
|
|
96
|
+
* 3.8.0: `fetch` autenticado para a API do PRODUTO (`config.productApiUrl`):
|
|
97
|
+
* injeta `Authorization: Bearer <access_token>` e `x-correlation-id`; num 401
|
|
98
|
+
* renova a sessão 1x e repete. Aceita path relativo (`/vendas`) ou URL
|
|
99
|
+
* absoluta DA MESMA origem — outra origem é recusada (o token nunca vaza).
|
|
100
|
+
*
|
|
101
|
+
* @throws {NeetruError} `invalid_config` (sem `productApiUrl` / outra origem),
|
|
102
|
+
* {@link NeetruAuthRequiredError} sem sessão.
|
|
103
|
+
*/
|
|
104
|
+
authFetch(pathOrUrl: string, init?: RequestInit): Promise<Response>;
|
|
65
105
|
/** Usuário atual (claims do `id_token` armazenado), ou `null`. */
|
|
66
106
|
getUser(): Promise<NeetruUser | null>;
|
|
67
107
|
/**
|
|
@@ -77,13 +117,28 @@ interface MobileAuthNamespace {
|
|
|
77
117
|
* token, `invalid_grant`, rede) — não lança.
|
|
78
118
|
*/
|
|
79
119
|
refreshTokens(): Promise<boolean>;
|
|
80
|
-
/**
|
|
120
|
+
/**
|
|
121
|
+
* Limpa a sessão local (storage) e revoga no Core (RFC 7009, client público)
|
|
122
|
+
* o refresh_token e o access_token. A limpeza local acontece SEMPRE, mesmo
|
|
123
|
+
* se o servidor estiver fora; a revogação é melhor esforço (avisa no console).
|
|
124
|
+
*/
|
|
81
125
|
signOut(): Promise<void>;
|
|
82
126
|
}
|
|
127
|
+
/** 3.8.0 — resposta do `/userinfo` (escopo decide quais campos vêm). */
|
|
128
|
+
interface MobileUserInfo {
|
|
129
|
+
sub: string;
|
|
130
|
+
email?: string;
|
|
131
|
+
email_verified?: boolean;
|
|
132
|
+
name?: string;
|
|
133
|
+
picture?: string;
|
|
134
|
+
tenant_id?: string;
|
|
135
|
+
entitlements?: string[];
|
|
136
|
+
[claim: string]: unknown;
|
|
137
|
+
}
|
|
83
138
|
/**
|
|
84
139
|
* Cria o namespace de auth mobile. Ver JSDoc do módulo pros requisitos do
|
|
85
140
|
* app consumidor (polyfill WebCrypto, browser externo, storage seguro).
|
|
86
141
|
*/
|
|
87
142
|
declare function createMobileAuthNamespace(config: MobileAuthConfig): MobileAuthNamespace;
|
|
88
143
|
|
|
89
|
-
export { type MobileAuthConfig, type MobileAuthNamespace, type MobileAuthStorage, type MobileSignInOptions, createMobileAuthNamespace };
|
|
144
|
+
export { type MobileAuthConfig, type MobileAuthNamespace, type MobileAuthStorage, type MobileSignInOptions, type MobileUserInfo, createMobileAuthNamespace };
|