@goliapkg/sentori-react-native 2.0.0 → 2.2.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 (62) hide show
  1. package/lib/capture.d.ts +6 -1
  2. package/lib/capture.d.ts.map +1 -1
  3. package/lib/capture.js +49 -2
  4. package/lib/capture.js.map +1 -1
  5. package/lib/compat/sentry.d.ts +14 -0
  6. package/lib/compat/sentry.d.ts.map +1 -1
  7. package/lib/compat/sentry.js +6 -0
  8. package/lib/compat/sentry.js.map +1 -1
  9. package/lib/config.d.ts +12 -18
  10. package/lib/config.d.ts.map +1 -1
  11. package/lib/config.js.map +1 -1
  12. package/lib/handlers/network.d.ts.map +1 -1
  13. package/lib/handlers/network.js +7 -0
  14. package/lib/handlers/network.js.map +1 -1
  15. package/lib/index.d.ts +7 -0
  16. package/lib/index.d.ts.map +1 -1
  17. package/lib/index.js +6 -0
  18. package/lib/index.js.map +1 -1
  19. package/lib/init.d.ts +17 -0
  20. package/lib/init.d.ts.map +1 -1
  21. package/lib/init.js +37 -0
  22. package/lib/init.js.map +1 -1
  23. package/lib/navigation.d.ts.map +1 -1
  24. package/lib/navigation.js +14 -1
  25. package/lib/navigation.js.map +1 -1
  26. package/lib/runtime-metrics-fps.d.ts +19 -0
  27. package/lib/runtime-metrics-fps.d.ts.map +1 -0
  28. package/lib/runtime-metrics-fps.js +128 -0
  29. package/lib/runtime-metrics-fps.js.map +1 -0
  30. package/lib/runtime-metrics-heap.d.ts +13 -0
  31. package/lib/runtime-metrics-heap.d.ts.map +1 -0
  32. package/lib/runtime-metrics-heap.js +67 -0
  33. package/lib/runtime-metrics-heap.js.map +1 -0
  34. package/lib/runtime-metrics-network.d.ts +23 -0
  35. package/lib/runtime-metrics-network.d.ts.map +1 -0
  36. package/lib/runtime-metrics-network.js +99 -0
  37. package/lib/runtime-metrics-network.js.map +1 -0
  38. package/lib/runtime-metrics.d.ts +43 -0
  39. package/lib/runtime-metrics.d.ts.map +1 -0
  40. package/lib/runtime-metrics.js +115 -0
  41. package/lib/runtime-metrics.js.map +1 -0
  42. package/lib/transport.d.ts +18 -0
  43. package/lib/transport.d.ts.map +1 -1
  44. package/lib/transport.js +31 -0
  45. package/lib/transport.js.map +1 -1
  46. package/package.json +2 -2
  47. package/src/__tests__/before-send.test.ts +72 -0
  48. package/src/__tests__/compat-sentry.test.ts +121 -0
  49. package/src/__tests__/runtime-metrics-instruments.test.ts +109 -0
  50. package/src/__tests__/runtime-metrics-network.test.ts +78 -0
  51. package/src/capture.ts +48 -2
  52. package/src/compat/sentry.ts +8 -0
  53. package/src/config.ts +12 -15
  54. package/src/handlers/network.ts +11 -0
  55. package/src/index.ts +14 -0
  56. package/src/init.ts +58 -0
  57. package/src/navigation.ts +14 -1
  58. package/src/runtime-metrics-fps.ts +137 -0
  59. package/src/runtime-metrics-heap.ts +78 -0
  60. package/src/runtime-metrics-network.ts +103 -0
  61. package/src/runtime-metrics.ts +122 -0
  62. package/src/transport.ts +39 -0
package/src/transport.ts CHANGED
@@ -330,6 +330,45 @@ export const sendMetricsBatch = async (
330
330
  }
331
331
  };
332
332
 
333
+ /**
334
+ * v2.1 W2 — POST a batched set of auto-instrument runtime metric
335
+ * points. Sibling of sendMetricsBatch; different endpoint
336
+ * (`/v1/runtime-metrics:batch`) because the storage shape +
337
+ * validation rules + rate-limit budget differ — see
338
+ * docs/design/v2-metrics.md.
339
+ *
340
+ * Returns true on 2xx so the caller can leave the batch drained;
341
+ * returns false on anything else (network error / non-2xx) so the
342
+ * caller rebuffer-and-retries on the next flush via
343
+ * `rebufferRuntimeMetrics(batch)`.
344
+ */
345
+ export const sendRuntimeMetricsBatch = async (
346
+ ingestUrl: string,
347
+ token: string,
348
+ metrics: Array<{
349
+ name: string;
350
+ tags?: Record<string, string>;
351
+ ts: string;
352
+ value: number;
353
+ }>,
354
+ ): Promise<boolean> => {
355
+ if (metrics.length === 0) return true;
356
+ try {
357
+ const resp = await fetch(`${ingestUrl}/v1/runtime-metrics:batch`, {
358
+ body: JSON.stringify({ metrics }),
359
+ headers: {
360
+ Authorization: `Bearer ${token}`,
361
+ 'Content-Type': 'application/json',
362
+ 'Sentori-Sdk': `react-native/${SDK_VERSION}`,
363
+ },
364
+ method: 'POST',
365
+ });
366
+ return resp.ok;
367
+ } catch {
368
+ return false;
369
+ }
370
+ };
371
+
333
372
  /**
334
373
  * v0.8.2 — submit a user-supplied bug report. Fire-and-forget; resolves
335
374
  * with the server-assigned id on success or `null` on any failure.