@neetru/sdk 3.5.0 → 3.7.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 (114) hide show
  1. package/CHANGELOG.md +71 -1
  2. package/dist/ai.cjs +254 -391
  3. package/dist/ai.d.cts +1 -1
  4. package/dist/ai.d.ts +1 -1
  5. package/dist/ai.mjs +254 -391
  6. package/dist/auth.cjs +3560 -4993
  7. package/dist/auth.d.cts +1 -1
  8. package/dist/auth.d.ts +1 -1
  9. package/dist/auth.mjs +3557 -4990
  10. package/dist/build-guard.cjs +101 -119
  11. package/dist/build-guard.mjs +91 -109
  12. package/dist/catalog.cjs +152 -224
  13. package/dist/catalog.d.cts +1 -1
  14. package/dist/catalog.d.ts +1 -1
  15. package/dist/catalog.mjs +152 -224
  16. package/dist/checkout.cjs +237 -320
  17. package/dist/checkout.d.cts +1 -1
  18. package/dist/checkout.d.ts +1 -1
  19. package/dist/checkout.mjs +236 -319
  20. package/dist/db-react.cjs +59 -87
  21. package/dist/db-react.d.cts +1 -1
  22. package/dist/db-react.d.ts +1 -1
  23. package/dist/db-react.mjs +56 -84
  24. package/dist/db.cjs +2055 -3013
  25. package/dist/db.d.cts +1 -1
  26. package/dist/db.d.ts +1 -1
  27. package/dist/db.mjs +2068 -3026
  28. package/dist/entitlements.cjs +12 -20
  29. package/dist/entitlements.d.cts +1 -1
  30. package/dist/entitlements.d.ts +1 -1
  31. package/dist/entitlements.mjs +12 -20
  32. package/dist/errors.cjs +9 -12
  33. package/dist/errors.d.cts +37 -2
  34. package/dist/errors.d.ts +37 -2
  35. package/dist/errors.mjs +8 -12
  36. package/dist/firestore-compat.cjs +241 -297
  37. package/dist/firestore-compat.d.cts +1 -1
  38. package/dist/firestore-compat.d.ts +1 -1
  39. package/dist/firestore-compat.mjs +215 -271
  40. package/dist/index.cjs +3627 -5135
  41. package/dist/index.d.cts +6 -4
  42. package/dist/index.d.ts +6 -4
  43. package/dist/index.mjs +3731 -5239
  44. package/dist/mobile.cjs +411 -0
  45. package/dist/mobile.d.cts +89 -0
  46. package/dist/mobile.d.ts +89 -0
  47. package/dist/mobile.mjs +409 -0
  48. package/dist/mocks.cjs +312 -447
  49. package/dist/mocks.d.cts +1 -1
  50. package/dist/mocks.d.ts +1 -1
  51. package/dist/mocks.mjs +306 -441
  52. package/dist/notifications.cjs +226 -314
  53. package/dist/notifications.d.cts +1 -1
  54. package/dist/notifications.d.ts +1 -1
  55. package/dist/notifications.mjs +225 -313
  56. package/dist/react.cjs +522 -693
  57. package/dist/react.d.cts +1 -1
  58. package/dist/react.d.ts +1 -1
  59. package/dist/react.mjs +512 -683
  60. package/dist/support.cjs +329 -325
  61. package/dist/support.d.cts +25 -3
  62. package/dist/support.d.ts +25 -3
  63. package/dist/support.mjs +328 -325
  64. package/dist/telemetry.cjs +197 -301
  65. package/dist/telemetry.d.cts +1 -1
  66. package/dist/telemetry.d.ts +1 -1
  67. package/dist/telemetry.mjs +197 -301
  68. package/dist/{types-Du_iioJ7.d.cts → types-Bx4kTLmk.d.cts} +26 -0
  69. package/dist/{types-BPATkXYu.d.ts → types-Dx0IrOSF.d.ts} +26 -0
  70. package/dist/usage.cjs +163 -227
  71. package/dist/usage.d.cts +1 -1
  72. package/dist/usage.d.ts +1 -1
  73. package/dist/usage.mjs +163 -227
  74. package/dist/webhooks.cjs +258 -359
  75. package/dist/webhooks.d.cts +1 -1
  76. package/dist/webhooks.d.ts +1 -1
  77. package/dist/webhooks.mjs +255 -356
  78. package/package.json +9 -3
  79. package/dist/ai.cjs.map +0 -1
  80. package/dist/ai.mjs.map +0 -1
  81. package/dist/auth.cjs.map +0 -1
  82. package/dist/auth.mjs.map +0 -1
  83. package/dist/build-guard.cjs.map +0 -1
  84. package/dist/build-guard.mjs.map +0 -1
  85. package/dist/catalog.cjs.map +0 -1
  86. package/dist/catalog.mjs.map +0 -1
  87. package/dist/checkout.cjs.map +0 -1
  88. package/dist/checkout.mjs.map +0 -1
  89. package/dist/db-react.cjs.map +0 -1
  90. package/dist/db-react.mjs.map +0 -1
  91. package/dist/db.cjs.map +0 -1
  92. package/dist/db.mjs.map +0 -1
  93. package/dist/entitlements.cjs.map +0 -1
  94. package/dist/entitlements.mjs.map +0 -1
  95. package/dist/errors.cjs.map +0 -1
  96. package/dist/errors.mjs.map +0 -1
  97. package/dist/firestore-compat.cjs.map +0 -1
  98. package/dist/firestore-compat.mjs.map +0 -1
  99. package/dist/index.cjs.map +0 -1
  100. package/dist/index.mjs.map +0 -1
  101. package/dist/mocks.cjs.map +0 -1
  102. package/dist/mocks.mjs.map +0 -1
  103. package/dist/notifications.cjs.map +0 -1
  104. package/dist/notifications.mjs.map +0 -1
  105. package/dist/react.cjs.map +0 -1
  106. package/dist/react.mjs.map +0 -1
  107. package/dist/support.cjs.map +0 -1
  108. package/dist/support.mjs.map +0 -1
  109. package/dist/telemetry.cjs.map +0 -1
  110. package/dist/telemetry.mjs.map +0 -1
  111. package/dist/usage.cjs.map +0 -1
  112. package/dist/usage.mjs.map +0 -1
  113. package/dist/webhooks.cjs.map +0 -1
  114. 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 o extends Error {
5
5
  code;
6
6
  status;
7
7
  requestId;
@@ -14,37 +14,31 @@ 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
+ constructor(t, r, n, s, a) {
18
+ super(r), this.name = "NeetruError", this.code = t, this.status = n, this.requestId = s, this.reason = a, Object.setPrototypeOf(this, o.prototype);
25
19
  }
26
20
  };
27
21
 
28
22
  // 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);
23
+ var c = "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.";
24
+ function i() {
25
+ throw new e("validation_failed", c);
32
26
  }
33
- function createEntitlementsNamespace(_config) {
27
+ function l(o) {
34
28
  return {
35
29
  /**
36
30
  * @deprecated Endpoint morto no Core — sempre retornava `not_subscribed`.
37
31
  * Lança `NeetruError`. Use `client.usage.check(resource, {productId, tenantId})`.
38
32
  */
39
- async check(_productSlug, _feature, _opts) {
40
- throwDeprecated();
33
+ async check(t, r, n) {
34
+ i();
41
35
  },
42
36
  /**
43
37
  * @deprecated Endpoint morto no Core — sempre retornava `not_subscribed`.
44
38
  * Lança `NeetruError`. Use `client.usage.check(resource, {productId, tenantId})`.
45
39
  */
46
- async checkDetailed(_productSlug, _feature, _opts) {
47
- throwDeprecated();
40
+ async checkDetailed(t, r, n) {
41
+ i();
48
42
  },
49
43
  /** Test helper legado — no-op (não há mais cache). Mantido por compat. */
50
44
  __resetCache() {
@@ -52,6 +46,4 @@ function createEntitlementsNamespace(_config) {
52
46
  };
53
47
  }
54
48
 
55
- exports.createEntitlementsNamespace = createEntitlementsNamespace;
56
- //# sourceMappingURL=entitlements.cjs.map
57
- //# sourceMappingURL=entitlements.cjs.map
49
+ exports.createEntitlementsNamespace = l;
@@ -1,4 +1,4 @@
1
- import { ag as ResolvedConfig, O as EntitlementCheck } from './types-Du_iioJ7.cjs';
1
+ import { ag as ResolvedConfig, O as EntitlementCheck } from './types-Bx4kTLmk.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 { ag as ResolvedConfig, O as EntitlementCheck } from './types-Dx0IrOSF.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 o extends Error {
3
3
  code;
4
4
  status;
5
5
  requestId;
@@ -12,37 +12,31 @@ 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
+ constructor(t, r, n, s, a) {
16
+ super(r), this.name = "NeetruError", this.code = t, this.status = n, this.requestId = s, this.reason = a, Object.setPrototypeOf(this, o.prototype);
23
17
  }
24
18
  };
25
19
 
26
20
  // 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);
21
+ var c = "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.";
22
+ function i() {
23
+ throw new e("validation_failed", c);
30
24
  }
31
- function createEntitlementsNamespace(_config) {
25
+ function l(o) {
32
26
  return {
33
27
  /**
34
28
  * @deprecated Endpoint morto no Core — sempre retornava `not_subscribed`.
35
29
  * Lança `NeetruError`. Use `client.usage.check(resource, {productId, tenantId})`.
36
30
  */
37
- async check(_productSlug, _feature, _opts) {
38
- throwDeprecated();
31
+ async check(t, r, n) {
32
+ i();
39
33
  },
40
34
  /**
41
35
  * @deprecated Endpoint morto no Core — sempre retornava `not_subscribed`.
42
36
  * Lança `NeetruError`. Use `client.usage.check(resource, {productId, tenantId})`.
43
37
  */
44
- async checkDetailed(_productSlug, _feature, _opts) {
45
- throwDeprecated();
38
+ async checkDetailed(t, r, n) {
39
+ i();
46
40
  },
47
41
  /** Test helper legado — no-op (não há mais cache). Mantido por compat. */
48
42
  __resetCache() {
@@ -50,6 +44,4 @@ function createEntitlementsNamespace(_config) {
50
44
  };
51
45
  }
52
46
 
53
- export { createEntitlementsNamespace };
54
- //# sourceMappingURL=entitlements.mjs.map
55
- //# sourceMappingURL=entitlements.mjs.map
47
+ export { l 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 o = class e extends Error {
5
5
  code;
6
6
  status;
7
7
  requestId;
@@ -14,17 +14,14 @@ 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
+ constructor(r, t, i, n, d) {
18
+ super(t), this.name = "NeetruError", this.code = r, this.status = i, this.requestId = n, this.reason = d, Object.setPrototypeOf(this, e.prototype);
19
+ }
20
+ }, s = class e extends o {
21
+ constructor(r, t, i, n) {
22
+ super("auth_required", r, i, n, t), this.name = "NeetruAuthRequiredError", Object.setPrototypeOf(this, e.prototype);
25
23
  }
26
24
  };
27
25
 
28
- exports.NeetruError = NeetruError;
29
- //# sourceMappingURL=errors.cjs.map
30
- //# sourceMappingURL=errors.cjs.map
26
+ exports.NeetruAuthRequiredError = s;
27
+ exports.NeetruError = o;
package/dist/errors.d.cts CHANGED
@@ -26,7 +26,15 @@ 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' | 'unknown';
30
38
  /**
31
39
  * Erro tipado padrão do SDK. Sempre lançado em vez de Error genérico.
32
40
  *
@@ -53,5 +61,32 @@ declare class NeetruError extends Error {
53
61
  readonly reason?: string;
54
62
  constructor(code: NeetruErrorCode | string, message: string, status?: number, requestId?: string, reason?: string);
55
63
  }
64
+ /**
65
+ * 3.7.0 — a operação exige a identidade do USUÁRIO FINAL (id_token OIDC do
66
+ * usuário logado no produto), que vai no header `X-Neetru-End-User-Token`.
67
+ *
68
+ * Lançado quando:
69
+ * - não há usuário logado (`client.auth.getIdToken()` devolve `null`) numa
70
+ * operação que o Core restringe ao dono (listar "meus tickets", contestar,
71
+ * avaliar...) → `reason: 'no_signed_in_user'`, SEM request;
72
+ * - o Core respondeu 403 `end_user_token_required` →
73
+ * `reason: 'end_user_token_required'`;
74
+ * - o Core respondeu 401 `invalid_end_user_token` (token expirado/inválido) →
75
+ * `reason: 'invalid_end_user_token'`.
76
+ *
77
+ * `code` é sempre `'auth_required'`; `instanceof NeetruError` continua valendo.
78
+ * Ação típica do app: `client.auth.signIn()` e tentar de novo.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * try { await client.support.listMyTickets(); }
83
+ * catch (e) {
84
+ * if (e instanceof NeetruAuthRequiredError) await client.auth.signIn();
85
+ * }
86
+ * ```
87
+ */
88
+ declare class NeetruAuthRequiredError extends NeetruError {
89
+ constructor(message: string, reason: string, status?: number, requestId?: string);
90
+ }
56
91
 
57
- export { NeetruError, type NeetruErrorCode };
92
+ export { NeetruAuthRequiredError, NeetruError, type NeetruErrorCode };
package/dist/errors.d.ts CHANGED
@@ -26,7 +26,15 @@ 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' | 'unknown';
30
38
  /**
31
39
  * Erro tipado padrão do SDK. Sempre lançado em vez de Error genérico.
32
40
  *
@@ -53,5 +61,32 @@ declare class NeetruError extends Error {
53
61
  readonly reason?: string;
54
62
  constructor(code: NeetruErrorCode | string, message: string, status?: number, requestId?: string, reason?: string);
55
63
  }
64
+ /**
65
+ * 3.7.0 — a operação exige a identidade do USUÁRIO FINAL (id_token OIDC do
66
+ * usuário logado no produto), que vai no header `X-Neetru-End-User-Token`.
67
+ *
68
+ * Lançado quando:
69
+ * - não há usuário logado (`client.auth.getIdToken()` devolve `null`) numa
70
+ * operação que o Core restringe ao dono (listar "meus tickets", contestar,
71
+ * avaliar...) → `reason: 'no_signed_in_user'`, SEM request;
72
+ * - o Core respondeu 403 `end_user_token_required` →
73
+ * `reason: 'end_user_token_required'`;
74
+ * - o Core respondeu 401 `invalid_end_user_token` (token expirado/inválido) →
75
+ * `reason: 'invalid_end_user_token'`.
76
+ *
77
+ * `code` é sempre `'auth_required'`; `instanceof NeetruError` continua valendo.
78
+ * Ação típica do app: `client.auth.signIn()` e tentar de novo.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * try { await client.support.listMyTickets(); }
83
+ * catch (e) {
84
+ * if (e instanceof NeetruAuthRequiredError) await client.auth.signIn();
85
+ * }
86
+ * ```
87
+ */
88
+ declare class NeetruAuthRequiredError extends NeetruError {
89
+ constructor(message: string, reason: string, status?: number, requestId?: string);
90
+ }
56
91
 
57
- export { NeetruError, type NeetruErrorCode };
92
+ 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 o = class e extends Error {
3
3
  code;
4
4
  status;
5
5
  requestId;
@@ -12,17 +12,13 @@ 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
+ constructor(r, t, i, n, d) {
16
+ super(t), this.name = "NeetruError", this.code = r, this.status = i, this.requestId = n, this.reason = d, Object.setPrototypeOf(this, e.prototype);
17
+ }
18
+ }, s = class e extends o {
19
+ constructor(r, t, i, n) {
20
+ super("auth_required", r, i, n, t), this.name = "NeetruAuthRequiredError", Object.setPrototypeOf(this, e.prototype);
23
21
  }
24
22
  };
25
23
 
26
- export { NeetruError };
27
- //# sourceMappingURL=errors.mjs.map
28
- //# sourceMappingURL=errors.mjs.map
24
+ export { s as NeetruAuthRequiredError, o as NeetruError };