@eventra_dev/eventra-sdk 1.1.4 → 1.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.
package/README.md CHANGED
@@ -4,10 +4,16 @@
4
4
 
5
5
  # Eventra SDK
6
6
 
7
- [![npm version](https://img.shields.io/npm/v/@eventra_dev/eventra-sdk.svg)](https://www.npmjs.com/package/@eventra_dev/eventra-sdk)
8
- [![npm downloads](https://img.shields.io/npm/dm/@eventra_dev/eventra-sdk.svg)](https://www.npmjs.com/package/@eventra_dev/eventra-sdk)
9
- [![TypeScript](https://img.shields.io/badge/typescript-ready-blue.svg)](https://www.typescriptlang.org/)
10
- [![License](https://img.shields.io/npm/l/@eventra_dev/eventra-sdk)]()
7
+ <p align="center">
8
+ <a href="https://www.npmjs.com/package/@eventra_dev/eventra-sdk"><img alt="npm version" src="https://img.shields.io/npm/v/@eventra_dev/eventra-sdk.svg?style=flat-square&color=blue"></a>
9
+ <a href="https://www.npmjs.com/package/@eventra_dev/eventra-sdk"><img alt="npm downloads" src="https://img.shields.io/npm/dm/@eventra_dev/eventra-sdk.svg?style=flat-square&color=blue"></a>
10
+ <a href="https://github.com/and-1991/eventra-sdk/actions/workflows/test.yml"><img alt="tests" src="https://img.shields.io/github/actions/workflow/status/and-1991/eventra-sdk/test.yml?branch=main&label=tests&style=flat-square&logo=vitest&logoColor=white"></a>
11
+ <img alt="tests passing" src="https://img.shields.io/badge/tests-41%20passing-brightgreen?style=flat-square&logo=vitest&logoColor=white">
12
+ <img alt="test suites" src="https://img.shields.io/badge/suites-8-brightgreen?style=flat-square">
13
+ <img alt="node" src="https://img.shields.io/node/v/@eventra_dev/eventra-sdk?style=flat-square&color=darkgreen&logo=node.js&logoColor=white">
14
+ <a href="https://www.typescriptlang.org/"><img alt="TypeScript" src="https://img.shields.io/badge/TypeScript-ready-blue?style=flat-square&logo=typescript&logoColor=white"></a>
15
+ <img alt="license" src="https://img.shields.io/npm/l/@eventra_dev/eventra-sdk?style=flat-square&color=lightgrey">
16
+ </p>
11
17
 
12
18
  Production-grade analytics SDK for tracking **feature usage, product behavior, and backend activity**.
13
19
 
@@ -354,6 +360,28 @@ Eventra SDK includes:
354
360
 
355
361
  ---
356
362
 
363
+ ## Test Coverage
364
+
365
+ 41 vitest tests across 8 suites cover the entire delivery pipeline:
366
+
367
+ - `track()` validation — name length, userId truncation, properties depth/size, idempotency keys
368
+ - Batching — auto-flush at `maxBatchSize`, periodic flush via timer, queue overflow drop
369
+ - Retry & backoff — 429, 5xx, network errors, no-retry on 4xx
370
+ - Circuit breaker — opens after 5 consecutive failures, cools down, resets on success
371
+ - Payload guards — multi-batch splitting, oversize event dropped via `onDeliveryFailed(413)`
372
+ - Shutdown & destroy — flush ordering, timer teardown, idempotent shutdown
373
+ - Runtime detection — Node, Edge (`EdgeRuntime`), Serverless (AWS Lambda)
374
+ - Browser mode — persistence, leader election, BroadcastChannel sync, `fetch` keepalive, `pagehide`
375
+
376
+ Run locally:
377
+
378
+ ```bash
379
+ pnpm --filter @eventra_dev/eventra-sdk test
380
+ pnpm --filter @eventra_dev/eventra-sdk test:coverage
381
+ ```
382
+
383
+ ---
384
+
357
385
  ## Event Format
358
386
 
359
387
  ```json
@@ -361,7 +389,7 @@ Eventra SDK includes:
361
389
  "sentAt": "2026-03-12T10:00:00Z",
362
390
  "sdk": {
363
391
  "name": "@eventra_dev/eventra-sdk",
364
- "version": "1.1.3",
392
+ "version": "<sdk-version>",
365
393
  "runtime": "browser"
366
394
  },
367
395
  "events": [
@@ -376,6 +404,18 @@ Eventra SDK includes:
376
404
  }
377
405
  ```
378
406
 
407
+ Limits enforced by the SDK at `track()` time:
408
+
409
+ | Field | Limit |
410
+ |-------|-------|
411
+ | `name` | trimmed, ≤ 64 chars |
412
+ | `userId` | ≤ 120 chars |
413
+ | `properties` (JSON serialized) | ≤ 32,000 bytes per event |
414
+ | Property nesting depth | ≤ 8 |
415
+ | Batch payload | ≤ `maxPayloadBytes` (default 60,000) |
416
+ | Fetch timeout | 5,000 ms |
417
+ | Circuit breaker | opens after 5 consecutive failures, cools down 5,000 ms |
418
+
379
419
  ---
380
420
 
381
421
  ## Docs
package/dist/index.cjs CHANGED
@@ -27,7 +27,7 @@ module.exports = __toCommonJS(index_exports);
27
27
  // src/client.ts
28
28
  var SDK_NAME = "@eventra_dev/eventra-sdk";
29
29
  var DEFAULT_ENDPOINT = "https://api.eventra.dev/api/v1/ingest/batch";
30
- var SDK_VERSION = "1.1.4";
30
+ var SDK_VERSION = "1.2.0";
31
31
  var LEADER_KEY = "__eventra_leader__";
32
32
  var LEADER_TTL_MS = 4e3;
33
33
  var QUEUE_KEY = "__eventra_q__";
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  // src/client.ts
2
2
  var SDK_NAME = "@eventra_dev/eventra-sdk";
3
3
  var DEFAULT_ENDPOINT = "https://api.eventra.dev/api/v1/ingest/batch";
4
- var SDK_VERSION = "1.1.4";
4
+ var SDK_VERSION = "1.2.0";
5
5
  var LEADER_KEY = "__eventra_leader__";
6
6
  var LEADER_TTL_MS = 4e3;
7
7
  var QUEUE_KEY = "__eventra_q__";
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@eventra_dev/eventra-sdk",
3
- "version": "1.1.4",
3
+ "version": "1.2.0",
4
+ "description": "Production-grade analytics SDK for feature usage and product behavior — batching, retries, circuit breaker, runtime-aware (browser, Node, Edge, serverless).",
4
5
  "private": false,
5
6
  "publishConfig": {
6
7
  "access": "public"
@@ -21,7 +22,10 @@
21
22
  "sideEffects": false,
22
23
  "scripts": {
23
24
  "build": "tsup",
24
- "clean": "rm -rf dist"
25
+ "clean": "rm -rf dist",
26
+ "test": "vitest run",
27
+ "test:watch": "vitest",
28
+ "test:coverage": "vitest run --coverage"
25
29
  },
26
30
  "repository": {
27
31
  "type": "git",
@@ -29,11 +33,43 @@
29
33
  },
30
34
  "homepage": "https://eventra.dev",
31
35
  "devDependencies": {
36
+ "@vitest/coverage-v8": "^4.1.7",
32
37
  "tsup": "^8.0.0",
33
- "typescript": "^5.6.0"
38
+ "typescript": "^5.6.0",
39
+ "vitest": "^4.1.7"
34
40
  },
35
41
  "license": "MIT",
36
42
  "engines": {
37
43
  "node": ">=18"
38
- }
44
+ },
45
+ "keywords": [
46
+ "analytics",
47
+ "analytics-sdk",
48
+ "event-tracking",
49
+ "feature-usage",
50
+ "feature-tracking",
51
+ "product-analytics",
52
+ "telemetry",
53
+ "metrics",
54
+ "tracking",
55
+ "events",
56
+ "ingest",
57
+ "batching",
58
+ "retry",
59
+ "circuit-breaker",
60
+ "idempotency",
61
+ "browser",
62
+ "nodejs",
63
+ "edge",
64
+ "serverless",
65
+ "vercel",
66
+ "aws-lambda",
67
+ "cloudflare-workers",
68
+ "typescript",
69
+ "typescript-first",
70
+ "esm",
71
+ "cjs",
72
+ "eventra",
73
+ "eventra-sdk"
74
+ ]
39
75
  }