@neetru/sdk 3.4.3 → 3.4.5

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 (56) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/ai.d.cts +1 -1
  3. package/dist/ai.d.ts +1 -1
  4. package/dist/auth.cjs +33 -11
  5. package/dist/auth.cjs.map +1 -1
  6. package/dist/auth.d.cts +1 -1
  7. package/dist/auth.d.ts +1 -1
  8. package/dist/auth.mjs +33 -11
  9. package/dist/auth.mjs.map +1 -1
  10. package/dist/catalog.d.cts +1 -1
  11. package/dist/catalog.d.ts +1 -1
  12. package/dist/checkout.cjs +17 -7
  13. package/dist/checkout.cjs.map +1 -1
  14. package/dist/checkout.d.cts +1 -1
  15. package/dist/checkout.d.ts +1 -1
  16. package/dist/checkout.mjs +17 -7
  17. package/dist/checkout.mjs.map +1 -1
  18. package/dist/db-react.d.cts +1 -1
  19. package/dist/db-react.d.ts +1 -1
  20. package/dist/db.d.cts +1 -1
  21. package/dist/db.d.ts +1 -1
  22. package/dist/entitlements.d.cts +1 -1
  23. package/dist/entitlements.d.ts +1 -1
  24. package/dist/firestore-compat.d.cts +1 -1
  25. package/dist/firestore-compat.d.ts +1 -1
  26. package/dist/index.cjs +34 -12
  27. package/dist/index.cjs.map +1 -1
  28. package/dist/index.d.cts +2 -2
  29. package/dist/index.d.ts +2 -2
  30. package/dist/index.mjs +34 -12
  31. package/dist/index.mjs.map +1 -1
  32. package/dist/mocks.d.cts +1 -1
  33. package/dist/mocks.d.ts +1 -1
  34. package/dist/notifications.d.cts +1 -1
  35. package/dist/notifications.d.ts +1 -1
  36. package/dist/react.cjs +62 -3
  37. package/dist/react.cjs.map +1 -1
  38. package/dist/react.d.cts +38 -7
  39. package/dist/react.d.ts +38 -7
  40. package/dist/react.mjs +62 -3
  41. package/dist/react.mjs.map +1 -1
  42. package/dist/support.d.cts +1 -1
  43. package/dist/support.d.ts +1 -1
  44. package/dist/telemetry.cjs +16 -4
  45. package/dist/telemetry.cjs.map +1 -1
  46. package/dist/telemetry.d.cts +1 -1
  47. package/dist/telemetry.d.ts +1 -1
  48. package/dist/telemetry.mjs +16 -4
  49. package/dist/telemetry.mjs.map +1 -1
  50. package/dist/{types-D-QdG502.d.cts → types-DIVZl7nO.d.cts} +29 -8
  51. package/dist/{types-BlOLDMR0.d.ts → types-nnztVk7G.d.ts} +29 -8
  52. package/dist/usage.d.cts +1 -1
  53. package/dist/usage.d.ts +1 -1
  54. package/dist/webhooks.d.cts +1 -1
  55. package/dist/webhooks.d.ts +1 -1
  56. package/package.json +1 -1
package/dist/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { createNeetruClient } from './auth.cjs';
2
2
  export { NeetruError, NeetruErrorCode } from './errors.cjs';
3
- export { A as AiChatChoice, a as AiChatMessage, b as AiChatOptions, c as AiChatResult, d as AiChatUsage, e as AiContentPart, f as AiImageUrlPart, g as AiNamespace, h as AiResponseFormat, i as AiStreamHandle, j as AiStreamMeta, k as AiTextPart, l as AuthNamespace, m as AuthStateListener, C as CatalogListOptions, n as CatalogListResponse, p as CheckoutIntentInfo, q as CheckoutIntentStatus, r as CheckoutNamespace, s as CheckoutStartInput, t as CheckoutStartResult, u as CheckoutTenantType, v as CompleteSignInResult, y as CreateTicketInput, D as DEFAULT_BASE_URL, z as DbBatchOp, B as DbChangeType, E as DbCollectionRef, F as DbDoc, G as DbDocRef, H as DbGetResult, I as DbListResult, J as DbNamespace, K as DbQuery, L as DbSqlLease, M as DbWhereFilter, O as EntitlementCheck, P as FieldSentinel, Q as IncrementSentinel, R as ListNotificationsOptions, S as MockCheckout, T as MockNotifications, U as MockWebhooks, V as NEETRU_SENTINEL_KEY, W as NeetruClient, X as NeetruClientConfig, Y as NeetruDb, _ as NeetruDbEngine, $ as NeetruDbError, a0 as NeetruDbErrorCode, a1 as NeetruDbOptions, a2 as NeetruDbTransport, a3 as NeetruEnv, a4 as NeetruSqlClient, a5 as NeetruUser, a6 as NotificationScopeOptions, a7 as NotificationsNamespace, a8 as Product, a9 as ProductNotification, aa as ProductNotificationSeverity, ab as ProductPlan, ac as ProductStatus, ae as RedirectCallbackResult, af as RegisterWebhookInput, ag as ResolvedConfig, ah as SendNotificationInput, ai as ServerTimestampSentinel, aj as SignInOptions, al as SupportNamespace, am as SupportSeverity, an as SupportStatus, ao as SupportTicket, ar as TelemetryEventAck, as as TelemetryEventInput, aw as UsageEventInput, ax as UsageNamespace, ay as UsageQuota, az as VerifyTokenOptions, aA as VerifyWebhookRequestOptions, aB as VerifyWebhookRequestResult, aC as WebhookEndpoint, aD as WebhookEvent, aE as WebhookScopeOptions, aF as WebhookTestResult, aG as WebhooksNamespace, aH as WithFieldSentinels, aJ as createAiNamespace, aK as createCheckoutNamespace, aL as createNeetruDb, aM as createNotificationsNamespace, aO as createWebhooksNamespace, aQ as increment, aR as isFieldSentinel, aS as isIncrementSentinel, aT as isServerTimestampSentinel, aU as serverTimestamp, aV as verifyWebhookRequest, aW as verifyWebhookSignature } from './types-D-QdG502.cjs';
3
+ export { A as AiChatChoice, a as AiChatMessage, b as AiChatOptions, c as AiChatResult, d as AiChatUsage, e as AiContentPart, f as AiImageUrlPart, g as AiNamespace, h as AiResponseFormat, i as AiStreamHandle, j as AiStreamMeta, k as AiTextPart, l as AuthNamespace, m as AuthStateListener, C as CatalogListOptions, n as CatalogListResponse, p as CheckoutIntentInfo, q as CheckoutIntentStatus, r as CheckoutNamespace, s as CheckoutStartInput, t as CheckoutStartResult, u as CheckoutTenantType, v as CompleteSignInResult, y as CreateTicketInput, D as DEFAULT_BASE_URL, z as DbBatchOp, B as DbChangeType, E as DbCollectionRef, F as DbDoc, G as DbDocRef, H as DbGetResult, I as DbListResult, J as DbNamespace, K as DbQuery, L as DbSqlLease, M as DbWhereFilter, O as EntitlementCheck, P as FieldSentinel, Q as IncrementSentinel, R as ListNotificationsOptions, S as MockCheckout, T as MockNotifications, U as MockWebhooks, V as NEETRU_SENTINEL_KEY, W as NeetruClient, X as NeetruClientConfig, Y as NeetruDb, _ as NeetruDbEngine, $ as NeetruDbError, a0 as NeetruDbErrorCode, a1 as NeetruDbOptions, a2 as NeetruDbTransport, a3 as NeetruEnv, a4 as NeetruSqlClient, a5 as NeetruUser, a6 as NotificationScopeOptions, a7 as NotificationsNamespace, a8 as Product, a9 as ProductNotification, aa as ProductNotificationSeverity, ab as ProductPlan, ac as ProductStatus, ae as RedirectCallbackResult, af as RegisterWebhookInput, ag as ResolvedConfig, ah as SendNotificationInput, ai as ServerTimestampSentinel, aj as SignInOptions, al as SupportNamespace, am as SupportSeverity, an as SupportStatus, ao as SupportTicket, ar as TelemetryEventAck, as as TelemetryEventInput, aw as UsageEventInput, ax as UsageNamespace, ay as UsageQuota, az as VerifyTokenOptions, aA as VerifyWebhookRequestOptions, aB as VerifyWebhookRequestResult, aC as WebhookEndpoint, aD as WebhookEvent, aE as WebhookScopeOptions, aF as WebhookTestResult, aG as WebhooksNamespace, aH as WithFieldSentinels, aJ as createAiNamespace, aK as createCheckoutNamespace, aL as createNeetruDb, aM as createNotificationsNamespace, aO as createWebhooksNamespace, aQ as increment, aR as isFieldSentinel, aS as isIncrementSentinel, aT as isServerTimestampSentinel, aU as serverTimestamp, aV as verifyWebhookRequest, aW as verifyWebhookSignature } from './types-DIVZl7nO.cjs';
4
4
  export { DEV_FIXTURE_USER, MockAi, MockAuth, MockAuthOptions, MockDb, MockEntitlements, MockSupport, MockUsage } from './mocks.cjs';
5
5
  import 'drizzle-orm/node-postgres';
6
6
 
@@ -42,6 +42,6 @@ declare function checkCoreVersionCompat(coreVersion: string): void;
42
42
  */
43
43
 
44
44
  /** Versão do SDK — exportada explicitamente pra detecção em runtime. */
45
- declare const VERSION: "3.4.3";
45
+ declare const VERSION: "3.4.5";
46
46
 
47
47
  export { VERSION, checkCoreVersionCompat };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { createNeetruClient } from './auth.js';
2
2
  export { NeetruError, NeetruErrorCode } from './errors.js';
3
- export { A as AiChatChoice, a as AiChatMessage, b as AiChatOptions, c as AiChatResult, d as AiChatUsage, e as AiContentPart, f as AiImageUrlPart, g as AiNamespace, h as AiResponseFormat, i as AiStreamHandle, j as AiStreamMeta, k as AiTextPart, l as AuthNamespace, m as AuthStateListener, C as CatalogListOptions, n as CatalogListResponse, p as CheckoutIntentInfo, q as CheckoutIntentStatus, r as CheckoutNamespace, s as CheckoutStartInput, t as CheckoutStartResult, u as CheckoutTenantType, v as CompleteSignInResult, y as CreateTicketInput, D as DEFAULT_BASE_URL, z as DbBatchOp, B as DbChangeType, E as DbCollectionRef, F as DbDoc, G as DbDocRef, H as DbGetResult, I as DbListResult, J as DbNamespace, K as DbQuery, L as DbSqlLease, M as DbWhereFilter, O as EntitlementCheck, P as FieldSentinel, Q as IncrementSentinel, R as ListNotificationsOptions, S as MockCheckout, T as MockNotifications, U as MockWebhooks, V as NEETRU_SENTINEL_KEY, W as NeetruClient, X as NeetruClientConfig, Y as NeetruDb, _ as NeetruDbEngine, $ as NeetruDbError, a0 as NeetruDbErrorCode, a1 as NeetruDbOptions, a2 as NeetruDbTransport, a3 as NeetruEnv, a4 as NeetruSqlClient, a5 as NeetruUser, a6 as NotificationScopeOptions, a7 as NotificationsNamespace, a8 as Product, a9 as ProductNotification, aa as ProductNotificationSeverity, ab as ProductPlan, ac as ProductStatus, ae as RedirectCallbackResult, af as RegisterWebhookInput, ag as ResolvedConfig, ah as SendNotificationInput, ai as ServerTimestampSentinel, aj as SignInOptions, al as SupportNamespace, am as SupportSeverity, an as SupportStatus, ao as SupportTicket, ar as TelemetryEventAck, as as TelemetryEventInput, aw as UsageEventInput, ax as UsageNamespace, ay as UsageQuota, az as VerifyTokenOptions, aA as VerifyWebhookRequestOptions, aB as VerifyWebhookRequestResult, aC as WebhookEndpoint, aD as WebhookEvent, aE as WebhookScopeOptions, aF as WebhookTestResult, aG as WebhooksNamespace, aH as WithFieldSentinels, aJ as createAiNamespace, aK as createCheckoutNamespace, aL as createNeetruDb, aM as createNotificationsNamespace, aO as createWebhooksNamespace, aQ as increment, aR as isFieldSentinel, aS as isIncrementSentinel, aT as isServerTimestampSentinel, aU as serverTimestamp, aV as verifyWebhookRequest, aW as verifyWebhookSignature } from './types-BlOLDMR0.js';
3
+ export { A as AiChatChoice, a as AiChatMessage, b as AiChatOptions, c as AiChatResult, d as AiChatUsage, e as AiContentPart, f as AiImageUrlPart, g as AiNamespace, h as AiResponseFormat, i as AiStreamHandle, j as AiStreamMeta, k as AiTextPart, l as AuthNamespace, m as AuthStateListener, C as CatalogListOptions, n as CatalogListResponse, p as CheckoutIntentInfo, q as CheckoutIntentStatus, r as CheckoutNamespace, s as CheckoutStartInput, t as CheckoutStartResult, u as CheckoutTenantType, v as CompleteSignInResult, y as CreateTicketInput, D as DEFAULT_BASE_URL, z as DbBatchOp, B as DbChangeType, E as DbCollectionRef, F as DbDoc, G as DbDocRef, H as DbGetResult, I as DbListResult, J as DbNamespace, K as DbQuery, L as DbSqlLease, M as DbWhereFilter, O as EntitlementCheck, P as FieldSentinel, Q as IncrementSentinel, R as ListNotificationsOptions, S as MockCheckout, T as MockNotifications, U as MockWebhooks, V as NEETRU_SENTINEL_KEY, W as NeetruClient, X as NeetruClientConfig, Y as NeetruDb, _ as NeetruDbEngine, $ as NeetruDbError, a0 as NeetruDbErrorCode, a1 as NeetruDbOptions, a2 as NeetruDbTransport, a3 as NeetruEnv, a4 as NeetruSqlClient, a5 as NeetruUser, a6 as NotificationScopeOptions, a7 as NotificationsNamespace, a8 as Product, a9 as ProductNotification, aa as ProductNotificationSeverity, ab as ProductPlan, ac as ProductStatus, ae as RedirectCallbackResult, af as RegisterWebhookInput, ag as ResolvedConfig, ah as SendNotificationInput, ai as ServerTimestampSentinel, aj as SignInOptions, al as SupportNamespace, am as SupportSeverity, an as SupportStatus, ao as SupportTicket, ar as TelemetryEventAck, as as TelemetryEventInput, aw as UsageEventInput, ax as UsageNamespace, ay as UsageQuota, az as VerifyTokenOptions, aA as VerifyWebhookRequestOptions, aB as VerifyWebhookRequestResult, aC as WebhookEndpoint, aD as WebhookEvent, aE as WebhookScopeOptions, aF as WebhookTestResult, aG as WebhooksNamespace, aH as WithFieldSentinels, aJ as createAiNamespace, aK as createCheckoutNamespace, aL as createNeetruDb, aM as createNotificationsNamespace, aO as createWebhooksNamespace, aQ as increment, aR as isFieldSentinel, aS as isIncrementSentinel, aT as isServerTimestampSentinel, aU as serverTimestamp, aV as verifyWebhookRequest, aW as verifyWebhookSignature } from './types-nnztVk7G.js';
4
4
  export { DEV_FIXTURE_USER, MockAi, MockAuth, MockAuthOptions, MockDb, MockEntitlements, MockSupport, MockUsage } from './mocks.js';
5
5
  import 'drizzle-orm/node-postgres';
6
6
 
@@ -42,6 +42,6 @@ declare function checkCoreVersionCompat(coreVersion: string): void;
42
42
  */
43
43
 
44
44
  /** Versão do SDK — exportada explicitamente pra detecção em runtime. */
45
- declare const VERSION: "3.4.3";
45
+ declare const VERSION: "3.4.5";
46
46
 
47
47
  export { VERSION, checkCoreVersionCompat };
package/dist/index.mjs CHANGED
@@ -1271,6 +1271,12 @@ function createEntitlementsNamespace(config) {
1271
1271
  init_errors();
1272
1272
  init_http();
1273
1273
  var VALID_LOG_LEVELS = ["debug", "info", "warn", "error", "fatal"];
1274
+ function isBrowserContext() {
1275
+ return typeof globalThis !== "undefined" && typeof globalThis.window !== "undefined";
1276
+ }
1277
+ function resolveEventTransport() {
1278
+ return isBrowserContext() ? { path: "/api/sdk/v1/telemetry/event/public", requireAuth: false } : { path: "/api/sdk/v1/telemetry/event", requireAuth: true };
1279
+ }
1274
1280
  function consoleFor(level) {
1275
1281
  switch (level) {
1276
1282
  case "debug":
@@ -1300,15 +1306,18 @@ function createTelemetryNamespace(config) {
1300
1306
  batch.map(async (ev) => {
1301
1307
  try {
1302
1308
  const body = { name: ev.name };
1309
+ const productSlug = ev.productSlug ?? config.productId;
1310
+ if (productSlug) body.productSlug = productSlug;
1303
1311
  if (ev.properties && typeof ev.properties === "object") {
1304
1312
  body.properties = ev.properties;
1305
1313
  }
1306
1314
  if (ev.timestamp) body.timestamp = ev.timestamp;
1315
+ const transport = resolveEventTransport();
1307
1316
  await httpRequest(config, {
1308
1317
  method: "POST",
1309
- path: "/api/sdk/v1/telemetry/event",
1318
+ path: transport.path,
1310
1319
  body,
1311
- requireAuth: true,
1320
+ requireAuth: transport.requireAuth,
1312
1321
  retries: 1,
1313
1322
  // caça-bruxas: retry sem Idempotency-Key duplicava o evento se o
1314
1323
  // servidor já tinha persistido antes da falha transiente. Mesmo
@@ -1361,15 +1370,18 @@ function createTelemetryNamespace(config) {
1361
1370
  throw new NeetruError("validation_failed", "event.name max 128 chars");
1362
1371
  }
1363
1372
  const body = { name: input.name };
1373
+ const productSlug = input.productSlug ?? config.productId;
1374
+ if (productSlug) body.productSlug = productSlug;
1364
1375
  if (input.properties && typeof input.properties === "object") {
1365
1376
  body.properties = input.properties;
1366
1377
  }
1367
1378
  if (input.timestamp) body.timestamp = input.timestamp;
1379
+ const transport = resolveEventTransport();
1368
1380
  const raw = await httpRequest(config, {
1369
1381
  method: "POST",
1370
- path: "/api/sdk/v1/telemetry/event",
1382
+ path: transport.path,
1371
1383
  body,
1372
- requireAuth: true
1384
+ requireAuth: transport.requireAuth
1373
1385
  });
1374
1386
  if (!raw || raw.ok !== true || typeof raw.eventId !== "string") {
1375
1387
  throw new NeetruError("invalid_response", "Telemetry response missing eventId");
@@ -5585,14 +5597,15 @@ function createLazyCollectionRef(name, getDocsPromise) {
5585
5597
  // src/checkout.ts
5586
5598
  init_errors();
5587
5599
  init_http();
5588
- function checkoutAuth(accessToken, method) {
5589
- if (!accessToken || typeof accessToken !== "string") {
5600
+ function checkoutAuth(auth, method) {
5601
+ const token = auth?.accessToken || auth?.idToken;
5602
+ if (!token || typeof token !== "string") {
5590
5603
  throw new NeetruError(
5591
5604
  "validation_failed",
5592
- `checkout.${method} requer o access_token OIDC do usu\xE1rio final (passe \`accessToken\`). A chave de API do SDK (nrt_*) N\xC3O \xE9 aceita pelo endpoint de checkout \u2014 ele autentica a identidade do cliente que est\xE1 assinando (Bearer access_token OIDC ou cookie de sess\xE3o).`
5605
+ `checkout.${method} requer o access_token OU o id_token OIDC do usu\xE1rio final (passe \`accessToken\` ou \`idToken\`). A chave de API do SDK (nrt_*) N\xC3O \xE9 aceita pelo endpoint de checkout \u2014 ele autentica a identidade do cliente que est\xE1 assinando (Bearer access_token/id_token OIDC ou cookie de sess\xE3o). No padr\xE3o BFF/cookie, passe o \`idToken\` que seu servidor guardou no cookie httpOnly.`
5593
5606
  );
5594
5607
  }
5595
- return { requireAuth: false, headers: { authorization: `Bearer ${accessToken}` } };
5608
+ return { requireAuth: false, headers: { authorization: `Bearer ${token}` } };
5596
5609
  }
5597
5610
  function parseStartResponse(raw) {
5598
5611
  if (!raw || typeof raw !== "object") {
@@ -5671,7 +5684,10 @@ function createHttpCheckoutNamespace(config) {
5671
5684
  };
5672
5685
  if (input.tenantType) body.targetTenantType = input.tenantType;
5673
5686
  if (input.tenantId) body.targetTenantId = input.tenantId;
5674
- const { requireAuth, headers } = checkoutAuth(input.accessToken, "start");
5687
+ const { requireAuth, headers } = checkoutAuth(
5688
+ { accessToken: input.accessToken, idToken: input.idToken },
5689
+ "start"
5690
+ );
5675
5691
  const raw = await httpRequest(config, {
5676
5692
  method: "POST",
5677
5693
  path: "/api/v1/checkout/intents",
@@ -5691,7 +5707,10 @@ function createHttpCheckoutNamespace(config) {
5691
5707
  if (!intentId || typeof intentId !== "string") {
5692
5708
  throw new NeetruError("validation_failed", "checkout.get: intentId is required");
5693
5709
  }
5694
- const { requireAuth, headers } = checkoutAuth(opts?.accessToken, "get");
5710
+ const { requireAuth, headers } = checkoutAuth(
5711
+ { accessToken: opts?.accessToken, idToken: opts?.idToken },
5712
+ "get"
5713
+ );
5695
5714
  const raw = await httpRequest(config, {
5696
5715
  method: "GET",
5697
5716
  path: `/api/v1/checkout/intents/${encodeURIComponent(intentId)}`,
@@ -5704,7 +5723,10 @@ function createHttpCheckoutNamespace(config) {
5704
5723
  if (!intentId || typeof intentId !== "string") {
5705
5724
  throw new NeetruError("validation_failed", "checkout.cancel: intentId is required");
5706
5725
  }
5707
- const { requireAuth, headers } = checkoutAuth(opts?.accessToken, "cancel");
5726
+ const { requireAuth, headers } = checkoutAuth(
5727
+ { accessToken: opts?.accessToken, idToken: opts?.idToken },
5728
+ "cancel"
5729
+ );
5708
5730
  const raw = await httpRequest(config, {
5709
5731
  method: "DELETE",
5710
5732
  path: `/api/v1/checkout/intents/${encodeURIComponent(intentId)}`,
@@ -8031,7 +8053,7 @@ function createNeetruClient(config = {}) {
8031
8053
  init_errors();
8032
8054
  init_db_errors();
8033
8055
  init_http();
8034
- var VERSION = "3.4.3";
8056
+ var VERSION = "3.4.5";
8035
8057
 
8036
8058
  export { DEFAULT_BASE_URL, DEV_FIXTURE_USER, MockAi, MockAuth, MockCheckout, MockDb, MockEntitlements, MockNotifications, MockSupport, MockUsage, MockWebhooks, NEETRU_SENTINEL_KEY, NeetruDbError, NeetruError, VERSION, checkCoreVersionCompat, createAiNamespace, createCheckoutNamespace, createNeetruClient, createNeetruDb, createNotificationsNamespace, createWebhooksNamespace, increment, isFieldSentinel, isIncrementSentinel, isServerTimestampSentinel, serverTimestamp, verifyWebhookRequest, verifyWebhookSignature };
8037
8059
  //# sourceMappingURL=index.mjs.map