@observa/sdk 2.4.0 → 2.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 (79) hide show
  1. package/README.md +140 -176
  2. package/dist/apis/ingestApi.d.ts +1 -15
  3. package/dist/apis/ingestApi.d.ts.map +1 -1
  4. package/dist/apis/ingestApi.js +2 -151
  5. package/dist/apis/ingestApi.js.map +1 -1
  6. package/dist/apis/uptimeApi.js +1 -1
  7. package/dist/apis/uptimeApi.js.map +1 -1
  8. package/dist/domain/ingest.d.ts +4 -33
  9. package/dist/domain/ingest.d.ts.map +1 -1
  10. package/dist/http/httpClient.d.ts +5 -2
  11. package/dist/http/httpClient.d.ts.map +1 -1
  12. package/dist/http/httpClient.js +44 -8
  13. package/dist/http/httpClient.js.map +1 -1
  14. package/dist/index.d.ts +18 -507
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +17 -582
  17. package/dist/index.js.map +1 -1
  18. package/dist/sdk.d.ts +4 -9
  19. package/dist/sdk.d.ts.map +1 -1
  20. package/dist/sdk.js +7 -19
  21. package/dist/sdk.js.map +1 -1
  22. package/package.json +9 -16
  23. package/dist/src/apis/ingestApi.d.ts +0 -22
  24. package/dist/src/apis/ingestApi.js +0 -167
  25. package/dist/src/apis/ingestApi.js.map +0 -1
  26. package/dist/src/apis/uptimeApi.d.ts +0 -11
  27. package/dist/src/apis/uptimeApi.js +0 -39
  28. package/dist/src/apis/uptimeApi.js.map +0 -1
  29. package/dist/src/domain/ingest.d.ts +0 -47
  30. package/dist/src/domain/ingest.js +0 -2
  31. package/dist/src/domain/ingest.js.map +0 -1
  32. package/dist/src/domain/uptime.d.ts +0 -23
  33. package/dist/src/domain/uptime.js +0 -2
  34. package/dist/src/domain/uptime.js.map +0 -1
  35. package/dist/src/http/errors.d.ts +0 -33
  36. package/dist/src/http/errors.js +0 -54
  37. package/dist/src/http/errors.js.map +0 -1
  38. package/dist/src/http/httpClient.d.ts +0 -45
  39. package/dist/src/http/httpClient.js +0 -165
  40. package/dist/src/http/httpClient.js.map +0 -1
  41. package/dist/src/index.d.ts +0 -12
  42. package/dist/src/index.js +0 -7
  43. package/dist/src/index.js.map +0 -1
  44. package/dist/src/sdk.d.ts +0 -23
  45. package/dist/src/sdk.js +0 -40
  46. package/dist/src/sdk.js.map +0 -1
  47. package/dist/src/utils/processContext.d.ts +0 -34
  48. package/dist/src/utils/processContext.js +0 -47
  49. package/dist/src/utils/processContext.js.map +0 -1
  50. package/dist/src/utils/validate.d.ts +0 -2
  51. package/dist/src/utils/validate.js +0 -12
  52. package/dist/src/utils/validate.js.map +0 -1
  53. package/dist/tests/httpClient.test.d.ts +0 -1
  54. package/dist/tests/httpClient.test.js +0 -47
  55. package/dist/tests/httpClient.test.js.map +0 -1
  56. package/dist/tests/ingestApi.test.d.ts +0 -1
  57. package/dist/tests/ingestApi.test.js +0 -65
  58. package/dist/tests/ingestApi.test.js.map +0 -1
  59. package/dist/tests/observaSdk.integration.test.d.ts +0 -1
  60. package/dist/tests/observaSdk.integration.test.js +0 -51
  61. package/dist/tests/observaSdk.integration.test.js.map +0 -1
  62. package/dist/tests/sdk.test.d.ts +0 -1
  63. package/dist/tests/sdk.test.js +0 -104
  64. package/dist/tests/sdk.test.js.map +0 -1
  65. package/dist/tsconfig.build.tsbuildinfo +0 -1
  66. package/dist/utils/processContext.d.ts +0 -35
  67. package/dist/utils/processContext.d.ts.map +0 -1
  68. package/dist/utils/processContext.js +0 -47
  69. package/dist/utils/processContext.js.map +0 -1
  70. package/src/apis/ingestApi.ts +0 -199
  71. package/src/apis/uptimeApi.ts +0 -58
  72. package/src/domain/ingest.ts +0 -93
  73. package/src/domain/uptime.ts +0 -86
  74. package/src/http/errors.ts +0 -88
  75. package/src/http/httpClient.ts +0 -284
  76. package/src/index.ts +0 -68
  77. package/src/sdk.ts +0 -107
  78. package/src/utils/processContext.ts +0 -84
  79. package/src/utils/validate.ts +0 -19
package/README.md CHANGED
@@ -1,176 +1,140 @@
1
- # Observa SDK for Node.js
2
-
3
- Official SDK for sending ingest events and uptime heartbeats to Observa.
4
-
5
- ## Who is this for?
6
-
7
- This SDK is intended for backend services, workers, and server-side applications.
8
- It now also supports browser environments using `publicKey`.
9
-
10
- ## SDK Contract
11
-
12
- This SDK is an official client for the Observa backend.
13
- You can optionally override the backend `baseUrl`; the SDK ensures the `/v1` prefix.
14
-
15
- ## Concepts
16
-
17
- - **apiKey**: Organization-level credential used for authentication (Backend).
18
- - **publicKey**: Project-level credential for public ingestion (Frontend/Mobile).
19
- - **dsnKey**: Project-level identifier used to route events and heartbeats.
20
-
21
- ## Installation
22
-
23
- ```bash
24
- npm install @observa/sdk
25
- ```
26
-
27
- ## Usage
28
-
29
- ### Backend (Server-side)
30
-
31
- ```ts
32
- import { ObservaSDK } from '@observa/sdk'
33
-
34
- const sdk = new ObservaSDK({
35
- apiKey: 'org_api_key',
36
- dsnKey: 'project_dsn',
37
- baseUrl: 'https://backend-observa-production.up.railway.app',
38
- })
39
- ```
40
-
41
- ### Frontend (Browser)
42
-
43
- ```ts
44
- import { ObservaSDK } from '@observa/sdk'
45
-
46
- const sdk = new ObservaSDK({
47
- publicKey: 'project_public_key',
48
- dsnKey: 'project_dsn',
49
- baseUrl: 'https://backend-observa-production.up.railway.app',
50
- })
51
- ```
52
-
53
- **Note**: Mobile support is coming soon.
54
-
55
- The SDK validates credentials through the ingest health endpoint.
56
-
57
- ## Defaults
58
-
59
- - Timeout: 5 seconds
60
- - Retries: disabled by default
61
- - `baseUrl` defaults to the Observa backend and is normalized to `/v1`
62
- - `dsnKey` is required for ingest and uptime writes
63
- - `apiKey` is required for backend usage
64
- - `publicKey` is required for frontend usage
65
-
66
- ## Ingest Events
67
-
68
- ```ts
69
- const result = await sdk.ingest.event({
70
- event: {
71
- schema_version: 1,
72
- level: 'error',
73
- message: 'Something went wrong',
74
- exception: {
75
- type: 'Error',
76
- value: 'Timeout',
77
- stacktrace: {
78
- frames: [{ filename: 'src/service.ts', function: 'doWork', lineno: 42, colno: 13 }],
79
- },
80
- },
81
- tags: { service: 'billing' },
82
- extra: { requestId: 'req_123' },
83
- context: {
84
- system: sdk.getProcessContextDynamic(),
85
- runtime: sdk.getProcessContextStatic({ includeVersions: false }),
86
- request: { requestId: 'req_123' },
87
- },
88
- },
89
- idempotencyKey: 'req_123',
90
- sdkVersion: '2.0.0',
91
- })
92
-
93
- console.log(result.event_id)
94
- ```
95
-
96
- Required:
97
- - `apiKey` is sent as `x-api-key` header
98
- - `dsnKey` is sent in the body as `dsnKey`
99
-
100
- Optional:
101
- - `idempotencyKey` is sent as `x-idempotency-key` header (max 128 chars)
102
- - `sdkVersion` is sent as `x-sdk-version` header
103
-
104
- Event context:
105
- - `schema_version` identifies the event schema version.
106
- - `context.system` carries dynamic process info (pid, uptime, memory).
107
- - `context.runtime` carries static runtime info (node, arch, platform, release).
108
- - `context.request` carries request-scoped metadata (requestId, userId, etc.).
109
-
110
- ## Uptime Heartbeats
111
-
112
- ```ts
113
- const heartbeat = await sdk.uptime.recordHeartbeat({
114
- status: 'up',
115
- responseTimeMs: 120,
116
- checkedAt: new Date().toISOString(),
117
- message: 'Service healthy',
118
- })
119
-
120
- console.log(heartbeat.id)
121
- ```
122
-
123
- ## Ingest Health
124
-
125
- ```ts
126
- const health = await sdk.ingest.health()
127
- console.log(health.ok)
128
- ```
129
-
130
- ## Uptime Queries
131
-
132
- ```ts
133
- const history = await sdk.uptime.history('project_id', '2026-02-08')
134
- const latest = await sdk.uptime.latest('project_id')
135
- const summary = await sdk.uptime.summary('project_id', 30)
136
- ```
137
-
138
- These endpoints are public and do not require authentication.
139
-
140
- ## Updating Credentials
141
-
142
- ```ts
143
- sdk.setApiKey('new_api_key')
144
- ```
145
-
146
- ## Error Handling
147
-
148
- The SDK throws typed errors you can catch explicitly:
149
-
150
- ```ts
151
- import { RateLimitError, AuthError } from '@observa/sdk'
152
-
153
- try {
154
- await sdk.ingest.event({ event: { level: 'error', message: 'boom' } })
155
- } catch (error) {
156
- if (error instanceof RateLimitError) {
157
- console.log('Retry after seconds:', error.retryAfter)
158
- }
159
- if (error instanceof AuthError) {
160
- console.log('Authentication failed')
161
- }
162
- }
163
- ```
164
-
165
- ## Requirements
166
-
167
- - Node.js >= 18
168
-
169
- ## License
170
-
171
- MIT
172
-
173
- ## Links
174
-
175
- - Documentation: ...
176
- - GitHub: https://github.com/ObservaSolutions/sdk-observa
1
+ # Observa SDK for Node.js
2
+
3
+ Official SDK for sending ingest events and uptime heartbeats to Observa.
4
+
5
+ ## Who is this for?
6
+
7
+ This SDK supports both server-side and browser usage:
8
+
9
+ - **Server-side** (Node.js workers, backend services): initialize with `apiKey` + `dsnKey` for full privileged access.
10
+ - **Browser / frontend**: initialize with `dsnKey` only — your org-level `apiKey` stays on the server.
11
+
12
+ ## SDK Contract
13
+
14
+ This SDK is an official client for the Observa backend.
15
+ It targets a fixed API and does not support custom base URLs.
16
+
17
+ ## Concepts
18
+
19
+ - **dsnKey**: Project-level identifier used to route events and heartbeats. Required for all write operations.
20
+ - **apiKey**: Organization-level credential for privileged server-side access. Optional — omit it for browser/public usage.
21
+
22
+ ## Installation
23
+
24
+ ```bash
25
+ npm install @observa/sdk
26
+ ```
27
+
28
+ ## Usage
29
+
30
+ ### Browser / Frontend (DSN-only)
31
+
32
+ ```ts
33
+ import { ObservaSDK } from '@observa/sdk'
34
+
35
+ const sdk = new ObservaSDK({ dsnKey: 'dsn_your_key' })
36
+ ```
37
+
38
+ The DSN is a project-scoped key safe to use in browser environments.
39
+
40
+ ### Server-side (apiKey + dsnKey)
41
+
42
+ ```ts
43
+ import { ObservaSDK } from '@observa/sdk'
44
+
45
+ const sdk = new ObservaSDK({
46
+ apiKey: 'org_api_key',
47
+ dsnKey: 'project_dsn',
48
+ })
49
+ ```
50
+
51
+ Use the `apiKey` in privileged server-side contexts (workers, backend services). Never expose your `apiKey` to the browser.
52
+
53
+ The SDK triggers a startup health check (`/health`) as a best-effort diagnostic.
54
+ This check is non-blocking: if it fails, normal SDK API calls still run with their regular timeout/retry/error behavior.
55
+
56
+ ## Defaults
57
+
58
+ - Timeout: 5 seconds
59
+ - Retries: disabled by default
60
+ - `dsnKey` is required
61
+ - `apiKey` is optional (server-side only)
62
+
63
+ ## Ingest Events
64
+
65
+ ```ts
66
+ const result = await sdk.ingest.event({
67
+ event: {
68
+ level: 'error',
69
+ message: 'Something went wrong',
70
+ payload: { requestId: 'req_123' },
71
+ },
72
+ })
73
+
74
+ console.log(result.event_id)
75
+ ```
76
+
77
+ Required:
78
+ - `dsnKey` is sent in the body as `dsnKey` (always)
79
+ - `apiKey` is sent as `x-api-key` header (only when provided)
80
+
81
+ ## Uptime Heartbeats
82
+
83
+ ```ts
84
+ const heartbeat = await sdk.uptime.recordHeartbeat({
85
+ status: 'up',
86
+ responseTimeMs: 120,
87
+ checkedAt: new Date().toISOString(),
88
+ message: 'Service healthy',
89
+ })
90
+
91
+ console.log(heartbeat.id)
92
+ ```
93
+
94
+ ## Uptime Queries
95
+
96
+ ```ts
97
+ const history = await sdk.uptime.history('project_id', '2026-02-08')
98
+ const latest = await sdk.uptime.latest('project_id')
99
+ const summary = await sdk.uptime.summary('project_id', 30)
100
+ ```
101
+
102
+ These endpoints are public and do not require authentication.
103
+
104
+ ## Updating Credentials
105
+
106
+ ```ts
107
+ sdk.setApiKey('new_api_key')
108
+ ```
109
+
110
+ ## Error Handling
111
+
112
+ The SDK throws typed errors you can catch explicitly:
113
+
114
+ ```ts
115
+ import { RateLimitError, AuthError } from '@observa/sdk'
116
+
117
+ try {
118
+ await sdk.ingest.event({ event: { level: 'error', message: 'boom' } })
119
+ } catch (error) {
120
+ if (error instanceof RateLimitError) {
121
+ console.log('Retry after seconds:', error.retryAfter)
122
+ }
123
+ if (error instanceof AuthError) {
124
+ console.log('Authentication failed')
125
+ }
126
+ }
127
+ ```
128
+
129
+ ## Requirements
130
+
131
+ - Node.js >= 18
132
+
133
+ ## License
134
+
135
+ MIT
136
+
137
+ ## Links
138
+
139
+ - Documentation: ...
140
+ - GitHub: https://github.com/ObservaSolutions/sdk-observa
@@ -1,32 +1,18 @@
1
1
  import type { IngestRequest, IngestResponse } from '../domain/ingest';
2
2
  import type { HttpClient } from '../http/httpClient';
3
- export type IngestNormalizationOptions = {
4
- schemaVersion?: number;
5
- includeContext?: boolean;
6
- includeSystemContext?: boolean;
7
- includeRuntimeContext?: boolean;
8
- maxEventBytes?: number;
9
- maxFrames?: number;
10
- maxMessageLength?: number;
11
- maxExceptionValueLength?: number;
12
- };
13
3
  /**
14
4
  * Event ingestion API.
15
5
  */
16
6
  export declare class IngestApi {
17
7
  private readonly http;
18
8
  private readonly defaultDsnKey?;
19
- private readonly normalization?;
20
9
  /**
21
10
  * Creates the ingestion client with an optional default DSN.
22
11
  */
23
- constructor(http: HttpClient, defaultDsnKey?: string | undefined, normalization?: IngestNormalizationOptions | undefined);
12
+ constructor(http: HttpClient, defaultDsnKey?: string | undefined);
24
13
  /**
25
14
  * Sends an event to the ingestion backend.
26
15
  */
27
16
  event(input: IngestRequest): Promise<IngestResponse>;
28
- health(dsnKey?: string): Promise<{
29
- ok: boolean;
30
- }>;
31
17
  }
32
18
  //# sourceMappingURL=ingestApi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ingestApi.d.ts","sourceRoot":"","sources":["../../src/apis/ingestApi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,aAAa,EAAE,cAAc,EAAmB,MAAM,kBAAkB,CAAA;AAInG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEpD,MAAM,MAAM,0BAA0B,GAAG;IACrC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAA;CACnC,CAAA;AAaD;;GAEG;AACH,qBAAa,SAAS;IAKd,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IANnC;;OAEG;gBAEkB,IAAI,EAAE,UAAU,EAChB,aAAa,CAAC,EAAE,MAAM,YAAA,EACtB,aAAa,CAAC,EAAE,0BAA0B,YAAA;IAG/D;;OAEG;IACG,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAiBpD,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;CAM1D"}
1
+ {"version":3,"file":"ingestApi.d.ts","sourceRoot":"","sources":["../../src/apis/ingestApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAErE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEpD;;GAEG;AACH,qBAAa,SAAS;IAIN,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAc,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAH9E;;OAEG;gBAC0B,IAAI,EAAE,UAAU,EAAmB,aAAa,CAAC,EAAE,MAAM,YAAA;IAEtF;;OAEG;IACG,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;CAQ7D"}
@@ -1,31 +1,16 @@
1
- import { randomUUID } from 'crypto';
2
- import { ValidationError } from '../http/errors';
3
- import { getProcessContextDynamic, getProcessContextStatic } from '../utils/processContext';
4
1
  import { ensureDefined, ensureNonEmpty } from '../utils/validate';
5
- const DEFAULT_NORMALIZATION = {
6
- schemaVersion: 1,
7
- includeContext: true,
8
- includeSystemContext: true,
9
- includeRuntimeContext: true,
10
- maxEventBytes: 64 * 1024,
11
- maxFrames: 60,
12
- maxMessageLength: 4000,
13
- maxExceptionValueLength: 4000,
14
- };
15
2
  /**
16
3
  * Event ingestion API.
17
4
  */
18
5
  export class IngestApi {
19
6
  http;
20
7
  defaultDsnKey;
21
- normalization;
22
8
  /**
23
9
  * Creates the ingestion client with an optional default DSN.
24
10
  */
25
- constructor(http, defaultDsnKey, normalization) {
11
+ constructor(http, defaultDsnKey) {
26
12
  this.http = http;
27
13
  this.defaultDsnKey = defaultDsnKey;
28
- this.normalization = normalization;
29
14
  }
30
15
  /**
31
16
  * Sends an event to the ingestion backend.
@@ -36,141 +21,7 @@ export class IngestApi {
36
21
  ensureDefined(dsnKey, 'dsnKey');
37
22
  ensureNonEmpty(dsnKey, 'dsnKey');
38
23
  ensureDefined(input.event, 'event');
39
- if (input.idempotencyKey && input.idempotencyKey.length > 128) {
40
- throw new ValidationError('idempotencyKey must be at most 128 characters');
41
- }
42
- const headers = {};
43
- if (input.idempotencyKey)
44
- headers['x-idempotency-key'] = input.idempotencyKey;
45
- if (input.sdkVersion)
46
- headers['x-sdk-version'] = input.sdkVersion;
47
- const { idempotencyKey, sdkVersion, event, ...body } = input;
48
- const normalizedEvent = normalizeEvent(event, this.normalization);
49
- return this.http.post('/ingest/events', { ...body, dsnKey, event: normalizedEvent }, { auth: 'apiKey', headers });
24
+ return this.http.post('/ingest/events', { ...input, dsnKey }, { auth: 'dsn' });
50
25
  }
51
- async health(dsnKey) {
52
- const resolvedDsnKey = dsnKey ?? this.defaultDsnKey;
53
- ensureDefined(resolvedDsnKey, 'dsnKey');
54
- ensureNonEmpty(resolvedDsnKey, 'dsnKey');
55
- return this.http.post('/ingest/health', { dsnKey: resolvedDsnKey }, { auth: 'apiKey' });
56
- }
57
- }
58
- function normalizeEvent(event, options) {
59
- const config = { ...DEFAULT_NORMALIZATION, ...options };
60
- const normalizedTimestamp = normalizeTimestamp(event.timestamp);
61
- const normalizedLevel = event.level ? event.level.toLowerCase() : undefined;
62
- const normalizedMessage = event.message ? truncate(event.message, config.maxMessageLength) : undefined;
63
- const normalizedException = normalizeException(event.exception, config);
64
- if (!normalizedMessage && !normalizedException) {
65
- throw new ValidationError('event message or exception is required');
66
- }
67
- const normalizedContext = normalizeContext(event.context, config);
68
- const normalizedEvent = {
69
- ...event,
70
- event_id: event.event_id ?? randomUUID(),
71
- timestamp: normalizedTimestamp,
72
- schema_version: event.schema_version ?? config.schemaVersion,
73
- level: normalizedLevel,
74
- message: normalizedMessage,
75
- exception: normalizedException,
76
- context: normalizedContext,
77
- };
78
- return enforceSizeLimit(normalizedEvent, config);
79
- }
80
- function normalizeTimestamp(timestamp) {
81
- if (!timestamp)
82
- return new Date().toISOString();
83
- const parsed = new Date(timestamp);
84
- if (Number.isNaN(parsed.getTime())) {
85
- throw new ValidationError('timestamp must be a valid ISO date');
86
- }
87
- return parsed.toISOString();
88
- }
89
- function normalizeException(exception, config) {
90
- if (!exception)
91
- return undefined;
92
- if (!exception.type || !exception.value) {
93
- throw new ValidationError('exception.type and exception.value are required');
94
- }
95
- return {
96
- ...exception,
97
- value: truncate(exception.value, config.maxExceptionValueLength),
98
- stacktrace: normalizeStacktrace(exception.stacktrace, config.maxFrames),
99
- };
100
- }
101
- function normalizeStacktrace(stacktrace, maxFrames) {
102
- if (!stacktrace || !Array.isArray(stacktrace.frames))
103
- return undefined;
104
- const frames = stacktrace.frames;
105
- const normalizedFrames = frames.slice(0, maxFrames).map((frame) => {
106
- const filename = typeof frame?.filename === 'string' ? frame.filename : undefined;
107
- const functionName = typeof frame?.function === 'string' ? frame.function : undefined;
108
- const lineno = typeof frame?.lineno === 'number' ? frame.lineno : undefined;
109
- const colno = typeof frame?.colno === 'number' ? frame.colno : undefined;
110
- const inferredInApp = filename ? !filename.includes('node_modules') : false;
111
- return {
112
- filename,
113
- function: functionName,
114
- lineno,
115
- colno,
116
- in_app: typeof frame?.in_app === 'boolean' ? frame.in_app : inferredInApp,
117
- };
118
- });
119
- return { frames: normalizedFrames };
120
- }
121
- function normalizeContext(context, config) {
122
- if (!config.includeContext)
123
- return context;
124
- const systemContext = config.includeSystemContext ? getProcessContextDynamic() : undefined;
125
- const runtimeContext = config.includeRuntimeContext ? getProcessContextStatic({ includeVersions: false }) : undefined;
126
- const mergedContext = {
127
- ...context,
128
- system: context?.system ?? systemContext,
129
- runtime: context?.runtime ?? runtimeContext,
130
- };
131
- return mergedContext;
132
- }
133
- function enforceSizeLimit(event, config) {
134
- let normalized = event;
135
- if (getSize(normalized) <= config.maxEventBytes)
136
- return normalized;
137
- if (normalized.extra) {
138
- normalized = { ...normalized, extra: undefined };
139
- }
140
- if (getSize(normalized) <= config.maxEventBytes)
141
- return normalized;
142
- if (normalized.tags) {
143
- normalized = { ...normalized, tags: undefined };
144
- }
145
- if (getSize(normalized) <= config.maxEventBytes)
146
- return normalized;
147
- if (normalized.exception?.stacktrace) {
148
- normalized = {
149
- ...normalized,
150
- exception: { ...normalized.exception, stacktrace: undefined },
151
- };
152
- }
153
- if (getSize(normalized) <= config.maxEventBytes)
154
- return normalized;
155
- if (normalized.message) {
156
- normalized = { ...normalized, message: truncate(normalized.message, config.maxMessageLength) };
157
- }
158
- if (normalized.exception?.value) {
159
- normalized = {
160
- ...normalized,
161
- exception: { ...normalized.exception, value: truncate(normalized.exception.value, config.maxExceptionValueLength) },
162
- };
163
- }
164
- if (getSize(normalized) <= config.maxEventBytes)
165
- return normalized;
166
- throw new ValidationError('event payload exceeds size limit');
167
- }
168
- function getSize(value) {
169
- return Buffer.byteLength(JSON.stringify(value), 'utf8');
170
- }
171
- function truncate(value, maxLength) {
172
- if (value.length <= maxLength)
173
- return value;
174
- return value.slice(0, maxLength);
175
26
  }
176
27
  //# sourceMappingURL=ingestApi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ingestApi.js","sourceRoot":"","sources":["../../src/apis/ingestApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ingestApi.js","sourceRoot":"","sources":["../../src/apis/ingestApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGjE;;GAEG;AACH,MAAM,OAAO,SAAS;IAIW;IAAmC;IAHhE;;OAEG;IACH,YAA6B,IAAgB,EAAmB,aAAsB;QAAzD,SAAI,GAAJ,IAAI,CAAY;QAAmB,kBAAa,GAAb,aAAa,CAAS;IAAI,CAAC;IAE3F;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,KAAoB;QAC5B,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAA;QACjD,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC/B,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAChC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,gBAAgB,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAClG,CAAC;CACJ"}
@@ -21,7 +21,7 @@ export class UptimeApi {
21
21
  ensureDefined(dsnKey, 'dsnKey');
22
22
  ensureNonEmpty(dsnKey, 'dsnKey');
23
23
  ensureNonEmpty(input.status, 'status');
24
- return this.http.post('/uptime/heartbeats', { ...input, dsnKey }, { auth: 'apiKey' });
24
+ return this.http.post('/uptime/heartbeats', { ...input, dsnKey }, { auth: 'dsn' });
25
25
  }
26
26
  /**
27
27
  * Lists a project's daily uptime history.
@@ -1 +1 @@
1
- {"version":3,"file":"uptimeApi.js","sourceRoot":"","sources":["../../src/apis/uptimeApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGjE;;GAEG;AACH,MAAM,OAAO,SAAS;IAIW;IAAmC;IAHhE;;OAEG;IACH,YAA6B,IAAgB,EAAmB,aAAsB;QAAzD,SAAI,GAAJ,IAAI,CAAY;QAAmB,kBAAa,GAAb,aAAa,CAAS;IAAI,CAAC;IAE3F;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,KAA2B;QAC7C,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAA;QACjD,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC/B,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAChC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAc,oBAAoB,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IACtG,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,IAAY;QACzC,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;QACtC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgB,aAAa,kBAAkB,CAAC,SAAS,CAAC,iBAAiB,EAAE;YAC7F,KAAK,EAAE,EAAE,IAAI,EAAE;YACf,IAAI,EAAE,MAAM;SACf,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,SAAiB;QAC1B,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqB,aAAa,kBAAkB,CAAC,SAAS,CAAC,gBAAgB,EAAE;YACjG,IAAI,EAAE,MAAM;SACf,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,IAAa,EAAE,qBAA8B;QAC1E,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,aAAa,kBAAkB,CAAC,SAAS,CAAC,iBAAiB,EAAE;YAC/F,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtC,IAAI,EAAE,MAAM;SACf,CAAC,CAAA;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"uptimeApi.js","sourceRoot":"","sources":["../../src/apis/uptimeApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGjE;;GAEG;AACH,MAAM,OAAO,SAAS;IAIW;IAAmC;IAHhE;;OAEG;IACH,YAA6B,IAAgB,EAAmB,aAAsB;QAAzD,SAAI,GAAJ,IAAI,CAAY;QAAmB,kBAAa,GAAb,aAAa,CAAS;IAAI,CAAC;IAE3F;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,KAA2B;QAC7C,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAA;QACjD,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC/B,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAChC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAc,oBAAoB,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACnG,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,IAAY;QACzC,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;QACtC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgB,aAAa,kBAAkB,CAAC,SAAS,CAAC,iBAAiB,EAAE;YAC7F,KAAK,EAAE,EAAE,IAAI,EAAE;YACf,IAAI,EAAE,MAAM;SACf,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,SAAiB;QAC1B,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqB,aAAa,kBAAkB,CAAC,SAAS,CAAC,gBAAgB,EAAE;YACjG,IAAI,EAAE,MAAM;SACf,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,IAAa,EAAE,qBAA8B;QAC1E,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,aAAa,kBAAkB,CAAC,SAAS,CAAC,iBAAiB,EAAE;YAC/F,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtC,IAAI,EAAE,MAAM;SACf,CAAC,CAAA;IACN,CAAC;CACJ"}
@@ -1,33 +1,7 @@
1
- import type { ProcessContextDynamic, ProcessContextStatic } from '../utils/processContext';
2
1
  /**
3
2
  * Severity levels for events.
4
3
  */
5
4
  export type IngestLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';
6
- export type StacktraceFrame = {
7
- filename?: string;
8
- function?: string;
9
- lineno?: number;
10
- colno?: number;
11
- in_app?: boolean;
12
- };
13
- export type Stacktrace = {
14
- frames: StacktraceFrame[];
15
- };
16
- export type IngestException = {
17
- type: string;
18
- value: string;
19
- stacktrace?: Stacktrace;
20
- };
21
- export type RequestContext = {
22
- requestId?: string;
23
- userId?: string;
24
- [key: string]: unknown;
25
- };
26
- export type IngestEventContext = {
27
- system?: ProcessContextDynamic;
28
- runtime?: ProcessContextStatic;
29
- request?: RequestContext;
30
- };
31
5
  /**
32
6
  * Ingestion event.
33
7
  */
@@ -40,7 +14,6 @@ export type IngestEvent = {
40
14
  * Event ISO timestamp.
41
15
  */
42
16
  timestamp?: string;
43
- schema_version?: number;
44
17
  /**
45
18
  * Severity level.
46
19
  */
@@ -49,10 +22,10 @@ export type IngestEvent = {
49
22
  * Main message.
50
23
  */
51
24
  message?: string;
52
- exception?: IngestException;
53
- context?: IngestEventContext;
54
- tags?: Record<string, string>;
55
- extra?: Record<string, unknown>;
25
+ /**
26
+ * Free-form context payload.
27
+ */
28
+ payload?: unknown;
56
29
  };
57
30
  /**
58
31
  * Payload for sending an event to the backend.
@@ -66,8 +39,6 @@ export type IngestRequest = {
66
39
  * Event to record.
67
40
  */
68
41
  event: IngestEvent;
69
- idempotencyKey?: string;
70
- sdkVersion?: string;
71
42
  };
72
43
  /**
73
44
  * Response after sending an event.
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/domain/ingest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAE1F;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;AAEvE,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACrB,MAAM,EAAE,eAAe,EAAE,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,UAAU,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,OAAO,CAAC,EAAE,oBAAoB,CAAA;IAC9B,OAAO,CAAC,EAAE,cAAc,CAAA;CAC3B,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IACxB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,KAAK,EAAE,WAAW,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;CACnB,CAAA"}
1
+ {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/domain/ingest.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;AAEvE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IACxB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,KAAK,EAAE,WAAW,CAAA;CACrB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;CACnB,CAAA"}