@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.
Files changed (117) hide show
  1. package/CHANGELOG.md +104 -0
  2. package/README.md +66 -1
  3. package/dist/ai.cjs +298 -391
  4. package/dist/ai.d.cts +1 -1
  5. package/dist/ai.d.ts +1 -1
  6. package/dist/ai.mjs +298 -391
  7. package/dist/auth.cjs +3717 -5005
  8. package/dist/auth.d.cts +1 -1
  9. package/dist/auth.d.ts +1 -1
  10. package/dist/auth.mjs +3714 -5002
  11. package/dist/build-guard.cjs +101 -119
  12. package/dist/build-guard.mjs +91 -109
  13. package/dist/catalog.cjs +220 -225
  14. package/dist/catalog.d.cts +1 -1
  15. package/dist/catalog.d.ts +1 -1
  16. package/dist/catalog.mjs +220 -225
  17. package/dist/checkout.cjs +307 -323
  18. package/dist/checkout.d.cts +1 -1
  19. package/dist/checkout.d.ts +1 -1
  20. package/dist/checkout.mjs +306 -322
  21. package/dist/db-react.cjs +59 -87
  22. package/dist/db-react.d.cts +1 -1
  23. package/dist/db-react.d.ts +1 -1
  24. package/dist/db-react.mjs +56 -84
  25. package/dist/db.cjs +2128 -3014
  26. package/dist/db.d.cts +1 -1
  27. package/dist/db.d.ts +1 -1
  28. package/dist/db.mjs +2141 -3027
  29. package/dist/entitlements.cjs +19 -20
  30. package/dist/entitlements.d.cts +1 -1
  31. package/dist/entitlements.d.ts +1 -1
  32. package/dist/entitlements.mjs +19 -20
  33. package/dist/errors.cjs +16 -12
  34. package/dist/errors.d.cts +59 -3
  35. package/dist/errors.d.ts +59 -3
  36. package/dist/errors.mjs +15 -12
  37. package/dist/firestore-compat.cjs +241 -297
  38. package/dist/firestore-compat.d.cts +1 -1
  39. package/dist/firestore-compat.d.ts +1 -1
  40. package/dist/firestore-compat.mjs +215 -271
  41. package/dist/index.cjs +3942 -5134
  42. package/dist/index.d.cts +181 -5
  43. package/dist/index.d.ts +181 -5
  44. package/dist/index.mjs +4040 -5239
  45. package/dist/mobile.cjs +459 -344
  46. package/dist/mobile.d.cts +59 -4
  47. package/dist/mobile.d.ts +59 -4
  48. package/dist/mobile.mjs +459 -344
  49. package/dist/mocks.cjs +319 -447
  50. package/dist/mocks.d.cts +1 -1
  51. package/dist/mocks.d.ts +1 -1
  52. package/dist/mocks.mjs +313 -441
  53. package/dist/notifications.cjs +296 -317
  54. package/dist/notifications.d.cts +1 -1
  55. package/dist/notifications.d.ts +1 -1
  56. package/dist/notifications.mjs +295 -316
  57. package/dist/react.cjs +557 -707
  58. package/dist/react.d.cts +1 -1
  59. package/dist/react.d.ts +1 -1
  60. package/dist/react.mjs +547 -697
  61. package/dist/support.cjs +402 -328
  62. package/dist/support.d.cts +29 -3
  63. package/dist/support.d.ts +29 -3
  64. package/dist/support.mjs +401 -328
  65. package/dist/telemetry.cjs +267 -304
  66. package/dist/telemetry.d.cts +1 -1
  67. package/dist/telemetry.d.ts +1 -1
  68. package/dist/telemetry.mjs +267 -304
  69. package/dist/{types-Du_iioJ7.d.cts → types-D-9bjlM0.d.cts} +74 -1
  70. package/dist/{types-BPATkXYu.d.ts → types-bVztFQTI.d.ts} +74 -1
  71. package/dist/usage.cjs +233 -230
  72. package/dist/usage.d.cts +1 -1
  73. package/dist/usage.d.ts +1 -1
  74. package/dist/usage.mjs +233 -230
  75. package/dist/webhooks.cjs +328 -362
  76. package/dist/webhooks.d.cts +1 -1
  77. package/dist/webhooks.d.ts +1 -1
  78. package/dist/webhooks.mjs +325 -359
  79. package/package.json +5 -3
  80. package/dist/ai.cjs.map +0 -1
  81. package/dist/ai.mjs.map +0 -1
  82. package/dist/auth.cjs.map +0 -1
  83. package/dist/auth.mjs.map +0 -1
  84. package/dist/build-guard.cjs.map +0 -1
  85. package/dist/build-guard.mjs.map +0 -1
  86. package/dist/catalog.cjs.map +0 -1
  87. package/dist/catalog.mjs.map +0 -1
  88. package/dist/checkout.cjs.map +0 -1
  89. package/dist/checkout.mjs.map +0 -1
  90. package/dist/db-react.cjs.map +0 -1
  91. package/dist/db-react.mjs.map +0 -1
  92. package/dist/db.cjs.map +0 -1
  93. package/dist/db.mjs.map +0 -1
  94. package/dist/entitlements.cjs.map +0 -1
  95. package/dist/entitlements.mjs.map +0 -1
  96. package/dist/errors.cjs.map +0 -1
  97. package/dist/errors.mjs.map +0 -1
  98. package/dist/firestore-compat.cjs.map +0 -1
  99. package/dist/firestore-compat.mjs.map +0 -1
  100. package/dist/index.cjs.map +0 -1
  101. package/dist/index.mjs.map +0 -1
  102. package/dist/mobile.cjs.map +0 -1
  103. package/dist/mobile.mjs.map +0 -1
  104. package/dist/mocks.cjs.map +0 -1
  105. package/dist/mocks.mjs.map +0 -1
  106. package/dist/notifications.cjs.map +0 -1
  107. package/dist/notifications.mjs.map +0 -1
  108. package/dist/react.cjs.map +0 -1
  109. package/dist/react.mjs.map +0 -1
  110. package/dist/support.cjs.map +0 -1
  111. package/dist/support.mjs.map +0 -1
  112. package/dist/telemetry.cjs.map +0 -1
  113. package/dist/telemetry.mjs.map +0 -1
  114. package/dist/usage.cjs.map +0 -1
  115. package/dist/usage.mjs.map +0 -1
  116. package/dist/webhooks.cjs.map +0 -1
  117. package/dist/webhooks.mjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  // src/errors.ts
4
- var NeetruError = class _NeetruError extends Error {
4
+ var e = class i extends Error {
5
5
  code;
6
6
  status;
7
7
  requestId;
@@ -14,37 +14,38 @@ var NeetruError = class _NeetruError extends Error {
14
14
  * para um `NeetruDbErrorCode` mais específico (recuperável vs não).
15
15
  */
16
16
  reason;
17
- constructor(code, message, status, requestId, reason) {
18
- super(message);
19
- this.name = "NeetruError";
20
- this.code = code;
21
- this.status = status;
22
- this.requestId = requestId;
23
- this.reason = reason;
24
- Object.setPrototypeOf(this, _NeetruError.prototype);
17
+ /**
18
+ * 3.8.0: `x-correlation-id` da requisição que falhou. O SDK gera um UUID por
19
+ * chamada (ou usa o que o chamador passou) e manda no header; o Core grava o
20
+ * mesmo id nos logs/auditoria — cite-o ao abrir um ticket de suporte.
21
+ * `undefined` em erros que acontecem antes de qualquer requisição.
22
+ */
23
+ correlationId;
24
+ constructor(t, r, n, s, a, c) {
25
+ super(r), this.name = "NeetruError", this.code = t, this.status = n, this.requestId = s, this.reason = a, this.correlationId = c, Object.setPrototypeOf(this, i.prototype);
25
26
  }
26
27
  };
27
28
 
28
29
  // src/entitlements.ts
29
- var DEPRECATION_MESSAGE = "client.entitlements.check()/checkDetailed() est\xE3o DEPRECADOS \u2014 apontavam para GET /api/v1/sdk/entitlements/check, um endpoint que o Core nunca escreve (sempre retornava not_subscribed). Use client.usage.check(resource, { productId, tenantId }) no lugar \u2014 mesmo resultado (allowed/reason/remaining/limit/behavior), endpoint real.";
30
- function throwDeprecated() {
31
- throw new NeetruError("validation_failed", DEPRECATION_MESSAGE);
30
+ var d = "client.entitlements.check()/checkDetailed() est\xE3o DEPRECADOS \u2014 apontavam para GET /api/v1/sdk/entitlements/check, um endpoint que o Core nunca escreve (sempre retornava not_subscribed). Use client.usage.check(resource, { productId, tenantId }) no lugar \u2014 mesmo resultado (allowed/reason/remaining/limit/behavior), endpoint real.";
31
+ function o() {
32
+ throw new e("validation_failed", d);
32
33
  }
33
- function createEntitlementsNamespace(_config) {
34
+ function p(i) {
34
35
  return {
35
36
  /**
36
37
  * @deprecated Endpoint morto no Core — sempre retornava `not_subscribed`.
37
38
  * Lança `NeetruError`. Use `client.usage.check(resource, {productId, tenantId})`.
38
39
  */
39
- async check(_productSlug, _feature, _opts) {
40
- throwDeprecated();
40
+ async check(t, r, n) {
41
+ o();
41
42
  },
42
43
  /**
43
44
  * @deprecated Endpoint morto no Core — sempre retornava `not_subscribed`.
44
45
  * Lança `NeetruError`. Use `client.usage.check(resource, {productId, tenantId})`.
45
46
  */
46
- async checkDetailed(_productSlug, _feature, _opts) {
47
- throwDeprecated();
47
+ async checkDetailed(t, r, n) {
48
+ o();
48
49
  },
49
50
  /** Test helper legado — no-op (não há mais cache). Mantido por compat. */
50
51
  __resetCache() {
@@ -52,6 +53,4 @@ function createEntitlementsNamespace(_config) {
52
53
  };
53
54
  }
54
55
 
55
- exports.createEntitlementsNamespace = createEntitlementsNamespace;
56
- //# sourceMappingURL=entitlements.cjs.map
57
- //# sourceMappingURL=entitlements.cjs.map
56
+ exports.createEntitlementsNamespace = p;
@@ -1,4 +1,4 @@
1
- import { ag as ResolvedConfig, O as EntitlementCheck } from './types-Du_iioJ7.cjs';
1
+ import { ah as ResolvedConfig, P as EntitlementCheck } from './types-D-9bjlM0.cjs';
2
2
  import 'drizzle-orm/node-postgres';
3
3
  import './errors.cjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { ag as ResolvedConfig, O as EntitlementCheck } from './types-BPATkXYu.js';
1
+ import { ah as ResolvedConfig, P as EntitlementCheck } from './types-bVztFQTI.js';
2
2
  import 'drizzle-orm/node-postgres';
3
3
  import './errors.js';
4
4
 
@@ -1,5 +1,5 @@
1
1
  // src/errors.ts
2
- var NeetruError = class _NeetruError extends Error {
2
+ var e = class i extends Error {
3
3
  code;
4
4
  status;
5
5
  requestId;
@@ -12,37 +12,38 @@ var NeetruError = class _NeetruError extends Error {
12
12
  * para um `NeetruDbErrorCode` mais específico (recuperável vs não).
13
13
  */
14
14
  reason;
15
- constructor(code, message, status, requestId, reason) {
16
- super(message);
17
- this.name = "NeetruError";
18
- this.code = code;
19
- this.status = status;
20
- this.requestId = requestId;
21
- this.reason = reason;
22
- Object.setPrototypeOf(this, _NeetruError.prototype);
15
+ /**
16
+ * 3.8.0: `x-correlation-id` da requisição que falhou. O SDK gera um UUID por
17
+ * chamada (ou usa o que o chamador passou) e manda no header; o Core grava o
18
+ * mesmo id nos logs/auditoria — cite-o ao abrir um ticket de suporte.
19
+ * `undefined` em erros que acontecem antes de qualquer requisição.
20
+ */
21
+ correlationId;
22
+ constructor(t, r, n, s, a, c) {
23
+ super(r), this.name = "NeetruError", this.code = t, this.status = n, this.requestId = s, this.reason = a, this.correlationId = c, Object.setPrototypeOf(this, i.prototype);
23
24
  }
24
25
  };
25
26
 
26
27
  // src/entitlements.ts
27
- var DEPRECATION_MESSAGE = "client.entitlements.check()/checkDetailed() est\xE3o DEPRECADOS \u2014 apontavam para GET /api/v1/sdk/entitlements/check, um endpoint que o Core nunca escreve (sempre retornava not_subscribed). Use client.usage.check(resource, { productId, tenantId }) no lugar \u2014 mesmo resultado (allowed/reason/remaining/limit/behavior), endpoint real.";
28
- function throwDeprecated() {
29
- throw new NeetruError("validation_failed", DEPRECATION_MESSAGE);
28
+ var d = "client.entitlements.check()/checkDetailed() est\xE3o DEPRECADOS \u2014 apontavam para GET /api/v1/sdk/entitlements/check, um endpoint que o Core nunca escreve (sempre retornava not_subscribed). Use client.usage.check(resource, { productId, tenantId }) no lugar \u2014 mesmo resultado (allowed/reason/remaining/limit/behavior), endpoint real.";
29
+ function o() {
30
+ throw new e("validation_failed", d);
30
31
  }
31
- function createEntitlementsNamespace(_config) {
32
+ function p(i) {
32
33
  return {
33
34
  /**
34
35
  * @deprecated Endpoint morto no Core — sempre retornava `not_subscribed`.
35
36
  * Lança `NeetruError`. Use `client.usage.check(resource, {productId, tenantId})`.
36
37
  */
37
- async check(_productSlug, _feature, _opts) {
38
- throwDeprecated();
38
+ async check(t, r, n) {
39
+ o();
39
40
  },
40
41
  /**
41
42
  * @deprecated Endpoint morto no Core — sempre retornava `not_subscribed`.
42
43
  * Lança `NeetruError`. Use `client.usage.check(resource, {productId, tenantId})`.
43
44
  */
44
- async checkDetailed(_productSlug, _feature, _opts) {
45
- throwDeprecated();
45
+ async checkDetailed(t, r, n) {
46
+ o();
46
47
  },
47
48
  /** Test helper legado — no-op (não há mais cache). Mantido por compat. */
48
49
  __resetCache() {
@@ -50,6 +51,4 @@ function createEntitlementsNamespace(_config) {
50
51
  };
51
52
  }
52
53
 
53
- export { createEntitlementsNamespace };
54
- //# sourceMappingURL=entitlements.mjs.map
55
- //# sourceMappingURL=entitlements.mjs.map
54
+ export { p as createEntitlementsNamespace };
package/dist/errors.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  // src/errors.ts
4
- var NeetruError = class _NeetruError extends Error {
4
+ var s = class e extends Error {
5
5
  code;
6
6
  status;
7
7
  requestId;
@@ -14,17 +14,21 @@ var NeetruError = class _NeetruError extends Error {
14
14
  * para um `NeetruDbErrorCode` mais específico (recuperável vs não).
15
15
  */
16
16
  reason;
17
- constructor(code, message, status, requestId, reason) {
18
- super(message);
19
- this.name = "NeetruError";
20
- this.code = code;
21
- this.status = status;
22
- this.requestId = requestId;
23
- this.reason = reason;
24
- Object.setPrototypeOf(this, _NeetruError.prototype);
17
+ /**
18
+ * 3.8.0: `x-correlation-id` da requisição que falhou. O SDK gera um UUID por
19
+ * chamada (ou usa o que o chamador passou) e manda no header; o Core grava o
20
+ * mesmo id nos logs/auditoria — cite-o ao abrir um ticket de suporte.
21
+ * `undefined` em erros que acontecem antes de qualquer requisição.
22
+ */
23
+ correlationId;
24
+ constructor(r, t, i, n, o, a) {
25
+ super(t), this.name = "NeetruError", this.code = r, this.status = i, this.requestId = n, this.reason = o, this.correlationId = a, Object.setPrototypeOf(this, e.prototype);
26
+ }
27
+ }, d = class e extends s {
28
+ constructor(r, t, i, n, o) {
29
+ super("auth_required", r, i, n, t, o), this.name = "NeetruAuthRequiredError", Object.setPrototypeOf(this, e.prototype);
25
30
  }
26
31
  };
27
32
 
28
- exports.NeetruError = NeetruError;
29
- //# sourceMappingURL=errors.cjs.map
30
- //# sourceMappingURL=errors.cjs.map
33
+ exports.NeetruAuthRequiredError = d;
34
+ exports.NeetruError = s;
package/dist/errors.d.cts CHANGED
@@ -26,7 +26,29 @@ type NeetruErrorCode = 'invalid_config' | 'missing_api_key' | 'unauthorized' | '
26
26
  */
27
27
  | 'token_exchange_failed'
28
28
  /** HTTP 409 — colisão de idempotência ou conflito de recurso. */
29
- | 'conflict' | 'unknown';
29
+ | 'conflict'
30
+ /**
31
+ * 3.7.0: a operação exige um usuário final logado (id_token OIDC) e não há
32
+ * nenhum — ou o Core recusou o token (`end_user_token_required` /
33
+ * `invalid_end_user_token`). Lançado como {@link NeetruAuthRequiredError}.
34
+ */
35
+ | 'auth_required'
36
+ /** 3.7.0: HTTP 410 — endpoint descontinuado/removido no Core. */
37
+ | 'gone'
38
+ /**
39
+ * 3.8.0: a credencial `nrt_` do produto (só de servidor) chegou a um runtime
40
+ * de navegador ou React Native com `strictServerOnlyKey: true` — ou ao
41
+ * entrypoint `@neetru/sdk/mobile`, que recusa chave sempre.
42
+ */
43
+ | 'server_only_key'
44
+ /**
45
+ * 3.8.0: o token apresentado não é um access_token OIDC válido para esta API
46
+ * (ex.: é um id_token, um refresh_token ou a chave `nrt_`; falta `jti`/`scope`;
47
+ * `client_id` diverge do `aud`; token de máquina sem `allowClientCredentials`).
48
+ */
49
+ | 'token_invalid'
50
+ /** 3.8.0: o access_token é válido mas não tem todos os escopos exigidos (HTTP 403). */
51
+ | 'insufficient_scope' | 'unknown';
30
52
  /**
31
53
  * Erro tipado padrão do SDK. Sempre lançado em vez de Error genérico.
32
54
  *
@@ -51,7 +73,41 @@ declare class NeetruError extends Error {
51
73
  * para um `NeetruDbErrorCode` mais específico (recuperável vs não).
52
74
  */
53
75
  readonly reason?: string;
54
- constructor(code: NeetruErrorCode | string, message: string, status?: number, requestId?: string, reason?: string);
76
+ /**
77
+ * 3.8.0: `x-correlation-id` da requisição que falhou. O SDK gera um UUID por
78
+ * chamada (ou usa o que o chamador passou) e manda no header; o Core grava o
79
+ * mesmo id nos logs/auditoria — cite-o ao abrir um ticket de suporte.
80
+ * `undefined` em erros que acontecem antes de qualquer requisição.
81
+ */
82
+ readonly correlationId?: string;
83
+ constructor(code: NeetruErrorCode | string, message: string, status?: number, requestId?: string, reason?: string, correlationId?: string);
84
+ }
85
+ /**
86
+ * 3.7.0 — a operação exige a identidade do USUÁRIO FINAL (id_token OIDC do
87
+ * usuário logado no produto), que vai no header `X-Neetru-End-User-Token`.
88
+ *
89
+ * Lançado quando:
90
+ * - não há usuário logado (`client.auth.getIdToken()` devolve `null`) numa
91
+ * operação que o Core restringe ao dono (listar "meus tickets", contestar,
92
+ * avaliar...) → `reason: 'no_signed_in_user'`, SEM request;
93
+ * - o Core respondeu 403 `end_user_token_required` →
94
+ * `reason: 'end_user_token_required'`;
95
+ * - o Core respondeu 401 `invalid_end_user_token` (token expirado/inválido) →
96
+ * `reason: 'invalid_end_user_token'`.
97
+ *
98
+ * `code` é sempre `'auth_required'`; `instanceof NeetruError` continua valendo.
99
+ * Ação típica do app: `client.auth.signIn()` e tentar de novo.
100
+ *
101
+ * @example
102
+ * ```ts
103
+ * try { await client.support.listMyTickets(); }
104
+ * catch (e) {
105
+ * if (e instanceof NeetruAuthRequiredError) await client.auth.signIn();
106
+ * }
107
+ * ```
108
+ */
109
+ declare class NeetruAuthRequiredError extends NeetruError {
110
+ constructor(message: string, reason: string, status?: number, requestId?: string, correlationId?: string);
55
111
  }
56
112
 
57
- export { NeetruError, type NeetruErrorCode };
113
+ export { NeetruAuthRequiredError, NeetruError, type NeetruErrorCode };
package/dist/errors.d.ts CHANGED
@@ -26,7 +26,29 @@ type NeetruErrorCode = 'invalid_config' | 'missing_api_key' | 'unauthorized' | '
26
26
  */
27
27
  | 'token_exchange_failed'
28
28
  /** HTTP 409 — colisão de idempotência ou conflito de recurso. */
29
- | 'conflict' | 'unknown';
29
+ | 'conflict'
30
+ /**
31
+ * 3.7.0: a operação exige um usuário final logado (id_token OIDC) e não há
32
+ * nenhum — ou o Core recusou o token (`end_user_token_required` /
33
+ * `invalid_end_user_token`). Lançado como {@link NeetruAuthRequiredError}.
34
+ */
35
+ | 'auth_required'
36
+ /** 3.7.0: HTTP 410 — endpoint descontinuado/removido no Core. */
37
+ | 'gone'
38
+ /**
39
+ * 3.8.0: a credencial `nrt_` do produto (só de servidor) chegou a um runtime
40
+ * de navegador ou React Native com `strictServerOnlyKey: true` — ou ao
41
+ * entrypoint `@neetru/sdk/mobile`, que recusa chave sempre.
42
+ */
43
+ | 'server_only_key'
44
+ /**
45
+ * 3.8.0: o token apresentado não é um access_token OIDC válido para esta API
46
+ * (ex.: é um id_token, um refresh_token ou a chave `nrt_`; falta `jti`/`scope`;
47
+ * `client_id` diverge do `aud`; token de máquina sem `allowClientCredentials`).
48
+ */
49
+ | 'token_invalid'
50
+ /** 3.8.0: o access_token é válido mas não tem todos os escopos exigidos (HTTP 403). */
51
+ | 'insufficient_scope' | 'unknown';
30
52
  /**
31
53
  * Erro tipado padrão do SDK. Sempre lançado em vez de Error genérico.
32
54
  *
@@ -51,7 +73,41 @@ declare class NeetruError extends Error {
51
73
  * para um `NeetruDbErrorCode` mais específico (recuperável vs não).
52
74
  */
53
75
  readonly reason?: string;
54
- constructor(code: NeetruErrorCode | string, message: string, status?: number, requestId?: string, reason?: string);
76
+ /**
77
+ * 3.8.0: `x-correlation-id` da requisição que falhou. O SDK gera um UUID por
78
+ * chamada (ou usa o que o chamador passou) e manda no header; o Core grava o
79
+ * mesmo id nos logs/auditoria — cite-o ao abrir um ticket de suporte.
80
+ * `undefined` em erros que acontecem antes de qualquer requisição.
81
+ */
82
+ readonly correlationId?: string;
83
+ constructor(code: NeetruErrorCode | string, message: string, status?: number, requestId?: string, reason?: string, correlationId?: string);
84
+ }
85
+ /**
86
+ * 3.7.0 — a operação exige a identidade do USUÁRIO FINAL (id_token OIDC do
87
+ * usuário logado no produto), que vai no header `X-Neetru-End-User-Token`.
88
+ *
89
+ * Lançado quando:
90
+ * - não há usuário logado (`client.auth.getIdToken()` devolve `null`) numa
91
+ * operação que o Core restringe ao dono (listar "meus tickets", contestar,
92
+ * avaliar...) → `reason: 'no_signed_in_user'`, SEM request;
93
+ * - o Core respondeu 403 `end_user_token_required` →
94
+ * `reason: 'end_user_token_required'`;
95
+ * - o Core respondeu 401 `invalid_end_user_token` (token expirado/inválido) →
96
+ * `reason: 'invalid_end_user_token'`.
97
+ *
98
+ * `code` é sempre `'auth_required'`; `instanceof NeetruError` continua valendo.
99
+ * Ação típica do app: `client.auth.signIn()` e tentar de novo.
100
+ *
101
+ * @example
102
+ * ```ts
103
+ * try { await client.support.listMyTickets(); }
104
+ * catch (e) {
105
+ * if (e instanceof NeetruAuthRequiredError) await client.auth.signIn();
106
+ * }
107
+ * ```
108
+ */
109
+ declare class NeetruAuthRequiredError extends NeetruError {
110
+ constructor(message: string, reason: string, status?: number, requestId?: string, correlationId?: string);
55
111
  }
56
112
 
57
- export { NeetruError, type NeetruErrorCode };
113
+ export { NeetruAuthRequiredError, NeetruError, type NeetruErrorCode };
package/dist/errors.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  // src/errors.ts
2
- var NeetruError = class _NeetruError extends Error {
2
+ var s = class e extends Error {
3
3
  code;
4
4
  status;
5
5
  requestId;
@@ -12,17 +12,20 @@ var NeetruError = class _NeetruError extends Error {
12
12
  * para um `NeetruDbErrorCode` mais específico (recuperável vs não).
13
13
  */
14
14
  reason;
15
- constructor(code, message, status, requestId, reason) {
16
- super(message);
17
- this.name = "NeetruError";
18
- this.code = code;
19
- this.status = status;
20
- this.requestId = requestId;
21
- this.reason = reason;
22
- Object.setPrototypeOf(this, _NeetruError.prototype);
15
+ /**
16
+ * 3.8.0: `x-correlation-id` da requisição que falhou. O SDK gera um UUID por
17
+ * chamada (ou usa o que o chamador passou) e manda no header; o Core grava o
18
+ * mesmo id nos logs/auditoria — cite-o ao abrir um ticket de suporte.
19
+ * `undefined` em erros que acontecem antes de qualquer requisição.
20
+ */
21
+ correlationId;
22
+ constructor(r, t, i, n, o, a) {
23
+ super(t), this.name = "NeetruError", this.code = r, this.status = i, this.requestId = n, this.reason = o, this.correlationId = a, Object.setPrototypeOf(this, e.prototype);
24
+ }
25
+ }, d = class e extends s {
26
+ constructor(r, t, i, n, o) {
27
+ super("auth_required", r, i, n, t, o), this.name = "NeetruAuthRequiredError", Object.setPrototypeOf(this, e.prototype);
23
28
  }
24
29
  };
25
30
 
26
- export { NeetruError };
27
- //# sourceMappingURL=errors.mjs.map
28
- //# sourceMappingURL=errors.mjs.map
31
+ export { d as NeetruAuthRequiredError, s as NeetruError };