kodo-sdk 0.4.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,194 @@
1
+ /**
2
+ * Kodo Status Page SDK
3
+ * Official JavaScript/TypeScript client for Kodo
4
+ * Works in Node.js and browser environments
5
+ */
6
+ export interface KodoConfig {
7
+ apiKey: string;
8
+ baseUrl?: string;
9
+ /** Monitor ID for heartbeat operations */
10
+ monitorId?: string;
11
+ /** Enable debug logging */
12
+ debug?: boolean;
13
+ }
14
+ export interface Incident {
15
+ id: string;
16
+ title: string;
17
+ status: 'investigating' | 'identified' | 'monitoring' | 'resolved';
18
+ severity: 'minor' | 'major' | 'critical';
19
+ message?: string;
20
+ started_at: string;
21
+ resolved_at?: string;
22
+ created_at: string;
23
+ updated_at: string;
24
+ services?: string[];
25
+ }
26
+ export interface Service {
27
+ id: string;
28
+ name: string;
29
+ description?: string;
30
+ status: 'operational' | 'degraded' | 'partial_outage' | 'major_outage' | 'maintenance';
31
+ created_at: string;
32
+ }
33
+ export interface UptimeMonitor {
34
+ id: string;
35
+ name: string;
36
+ url: string;
37
+ type: 'http' | 'heartbeat';
38
+ interval_seconds: number;
39
+ enabled: boolean;
40
+ last_status?: 'up' | 'down' | 'degraded';
41
+ last_checked_at?: string;
42
+ last_response_time_ms?: number;
43
+ service_id?: string;
44
+ }
45
+ export interface CreateIncidentOptions {
46
+ title: string;
47
+ status?: Incident['status'];
48
+ severity?: Incident['severity'];
49
+ message?: string;
50
+ services?: string[];
51
+ }
52
+ export interface UpdateIncidentOptions {
53
+ title?: string;
54
+ status?: Incident['status'];
55
+ severity?: Incident['severity'];
56
+ message?: string;
57
+ }
58
+ export interface CreateServiceOptions {
59
+ name: string;
60
+ description?: string;
61
+ }
62
+ export interface HeartbeatOptions {
63
+ status?: 'up' | 'down' | 'degraded';
64
+ response_time_ms?: number;
65
+ message?: string;
66
+ }
67
+ export interface CreateMonitorOptions {
68
+ name: string;
69
+ type?: 'http' | 'heartbeat';
70
+ url?: string;
71
+ interval_seconds?: number;
72
+ service_id?: string;
73
+ enabled?: boolean;
74
+ }
75
+ export interface MetricsPayload {
76
+ service: string;
77
+ metrics: Record<string, number>;
78
+ }
79
+ /** Handle passed to a kodo.workflow() body for instrumenting steps. */
80
+ export interface WorkflowContext {
81
+ /** Run + time a named step. Records ok/failed; rethrows so your control flow is unchanged. */
82
+ step<T>(name: string, fn: () => Promise<T>): Promise<T>;
83
+ }
84
+ declare class ApiError extends Error {
85
+ status: number;
86
+ body?: unknown | undefined;
87
+ constructor(message: string, status: number, body?: unknown | undefined);
88
+ }
89
+ export { ApiError };
90
+ export declare class Kodo {
91
+ private apiKey;
92
+ private baseUrl;
93
+ private monitorId?;
94
+ private debug;
95
+ private sdkVersion;
96
+ incidents: IncidentsApi;
97
+ services: ServicesApi;
98
+ monitors: MonitorsApi;
99
+ constructor(config: KodoConfig);
100
+ private log;
101
+ /**
102
+ * Send a heartbeat ping for the configured monitor or a specific monitor ID
103
+ */
104
+ heartbeat(monitorIdOrOptions?: string | HeartbeatOptions, options?: HeartbeatOptions): Promise<void>;
105
+ /**
106
+ * Report an error as an incident
107
+ * Useful for automatic incident creation from catch blocks
108
+ */
109
+ reportError(error: Error, options?: {
110
+ severity?: Incident['severity'];
111
+ services?: string[];
112
+ additionalContext?: string;
113
+ }): Promise<Incident>;
114
+ /**
115
+ * Wrap an async function with automatic error reporting
116
+ */
117
+ wrapAsync<T extends (...args: unknown[]) => Promise<unknown>>(fn: T, options?: {
118
+ severity?: Incident['severity'];
119
+ services?: string[];
120
+ rethrow?: boolean;
121
+ }): T;
122
+ /**
123
+ * Instrument a business process / workflow run for Process Health.
124
+ *
125
+ * Wrap a unit of work; instrument each step with `wf.step(...)`. On completion
126
+ * (success or failure) Kodo records the run + its steps as a trace, so you can
127
+ * see completion rate, p95, and exactly which step failed — not just "is the
128
+ * edge up". Durability/retries are your concern; this only observes.
129
+ *
130
+ * await kodo.workflow("checkout-fulfillment", async (wf) => {
131
+ * await wf.step("charge_card", () => stripe.charge(order));
132
+ * await wf.step("reserve_inventory", () => inventory.reserve(order));
133
+ * await wf.step("notify_warehouse", () => warehouse.notify(order));
134
+ * });
135
+ */
136
+ workflow<T>(name: string, fn: (wf: WorkflowContext) => Promise<T>, opts?: {
137
+ expectedMs?: number;
138
+ }): Promise<T>;
139
+ private sendWorkflowStart;
140
+ private sendWorkflowTrace;
141
+ /**
142
+ * Push internal metrics
143
+ */
144
+ pushMetrics(payload: MetricsPayload): Promise<void>;
145
+ /**
146
+ * Get environment variable snippet for integration
147
+ */
148
+ getEnvSnippet(): string;
149
+ /**
150
+ * Internal request helper
151
+ */
152
+ request<T = unknown>(path: string, options?: RequestInit): Promise<T>;
153
+ }
154
+ declare class IncidentsApi {
155
+ private client;
156
+ constructor(client: Kodo);
157
+ list(options?: {
158
+ status?: Incident['status'];
159
+ limit?: number;
160
+ }): Promise<Incident[]>;
161
+ get(id: string): Promise<Incident>;
162
+ create(options: CreateIncidentOptions): Promise<Incident>;
163
+ update(id: string, options: UpdateIncidentOptions): Promise<Incident>;
164
+ resolve(id: string, options?: {
165
+ message?: string;
166
+ }): Promise<Incident>;
167
+ delete(id: string): Promise<void>;
168
+ }
169
+ declare class ServicesApi {
170
+ private client;
171
+ constructor(client: Kodo);
172
+ list(): Promise<Service[]>;
173
+ get(id: string): Promise<Service>;
174
+ create(options: CreateServiceOptions): Promise<Service>;
175
+ update(id: string, options: Partial<Service>): Promise<Service>;
176
+ setStatus(id: string, status: Service['status']): Promise<Service>;
177
+ up(id: string): Promise<Service>;
178
+ down(id: string): Promise<Service>;
179
+ delete(id: string): Promise<void>;
180
+ }
181
+ declare class MonitorsApi {
182
+ private client;
183
+ constructor(client: Kodo);
184
+ list(): Promise<UptimeMonitor[]>;
185
+ get(id: string): Promise<UptimeMonitor>;
186
+ create(options: CreateMonitorOptions): Promise<UptimeMonitor>;
187
+ update(id: string, options: Partial<CreateMonitorOptions>): Promise<UptimeMonitor>;
188
+ delete(id: string): Promise<void>;
189
+ enable(id: string): Promise<UptimeMonitor>;
190
+ disable(id: string): Promise<UptimeMonitor>;
191
+ }
192
+ export declare function createFromEnv(overrides?: Partial<KodoConfig>): Kodo;
193
+ export default Kodo;
194
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,403 @@
1
+ /**
2
+ * Kodo Status Page SDK
3
+ * Official JavaScript/TypeScript client for Kodo
4
+ * Works in Node.js and browser environments
5
+ */
6
+ function genId() {
7
+ const c = globalThis.crypto;
8
+ if (c?.randomUUID)
9
+ return c.randomUUID().replace(/-/g, '');
10
+ return Date.now().toString(16) + Math.floor(Math.random() * 1e9).toString(16);
11
+ }
12
+ class ApiError extends Error {
13
+ constructor(message, status, body) {
14
+ super(message);
15
+ this.status = status;
16
+ this.body = body;
17
+ this.name = 'KodoApiError';
18
+ }
19
+ }
20
+ export { ApiError };
21
+ export class Kodo {
22
+ constructor(config) {
23
+ this.sdkVersion = '0.2.0';
24
+ this.apiKey = config.apiKey;
25
+ this.baseUrl = config.baseUrl || 'https://kodostatus.com';
26
+ this.monitorId = config.monitorId;
27
+ this.debug = config.debug || false;
28
+ this.incidents = new IncidentsApi(this);
29
+ this.services = new ServicesApi(this);
30
+ this.monitors = new MonitorsApi(this);
31
+ }
32
+ log(...args) {
33
+ if (this.debug) {
34
+ console.log('[Kodo]', ...args);
35
+ }
36
+ }
37
+ /**
38
+ * Send a heartbeat ping for the configured monitor or a specific monitor ID
39
+ */
40
+ async heartbeat(monitorIdOrOptions, options) {
41
+ let targetMonitorId;
42
+ let heartbeatOptions;
43
+ if (typeof monitorIdOrOptions === 'string') {
44
+ targetMonitorId = monitorIdOrOptions;
45
+ heartbeatOptions = options;
46
+ }
47
+ else {
48
+ if (!this.monitorId) {
49
+ throw new Error('No monitor ID configured. Pass monitorId to constructor or heartbeat().');
50
+ }
51
+ targetMonitorId = this.monitorId;
52
+ heartbeatOptions = monitorIdOrOptions;
53
+ }
54
+ this.log('Sending heartbeat to', targetMonitorId);
55
+ await this.request(`/api/heartbeat/${targetMonitorId}`, {
56
+ method: 'POST',
57
+ body: heartbeatOptions ? JSON.stringify(heartbeatOptions) : undefined,
58
+ });
59
+ }
60
+ /**
61
+ * Report an error as an incident
62
+ * Useful for automatic incident creation from catch blocks
63
+ */
64
+ async reportError(error, options) {
65
+ const title = `Error: ${error.message?.substring(0, 100) || 'Unknown error'}`;
66
+ const message = [
67
+ options?.additionalContext,
68
+ `**Error:** ${error.message}`,
69
+ error.stack ? `**Stack:**\n\`\`\`\n${error.stack.substring(0, 500)}\n\`\`\`` : null,
70
+ ].filter(Boolean).join('\n\n');
71
+ this.log('Reporting error:', title);
72
+ return this.incidents.create({
73
+ title,
74
+ severity: options?.severity || 'major',
75
+ status: 'investigating',
76
+ message,
77
+ services: options?.services,
78
+ });
79
+ }
80
+ /**
81
+ * Wrap an async function with automatic error reporting
82
+ */
83
+ wrapAsync(fn, options) {
84
+ const reportError = this.reportError.bind(this);
85
+ return (async (...args) => {
86
+ try {
87
+ return await fn(...args);
88
+ }
89
+ catch (error) {
90
+ if (error instanceof Error) {
91
+ await reportError(error, {
92
+ severity: options?.severity,
93
+ services: options?.services,
94
+ }).catch(() => { }); // Silent fail for reporting
95
+ }
96
+ if (options?.rethrow !== false) {
97
+ throw error;
98
+ }
99
+ }
100
+ });
101
+ }
102
+ /**
103
+ * Instrument a business process / workflow run for Process Health.
104
+ *
105
+ * Wrap a unit of work; instrument each step with `wf.step(...)`. On completion
106
+ * (success or failure) Kodo records the run + its steps as a trace, so you can
107
+ * see completion rate, p95, and exactly which step failed — not just "is the
108
+ * edge up". Durability/retries are your concern; this only observes.
109
+ *
110
+ * await kodo.workflow("checkout-fulfillment", async (wf) => {
111
+ * await wf.step("charge_card", () => stripe.charge(order));
112
+ * await wf.step("reserve_inventory", () => inventory.reserve(order));
113
+ * await wf.step("notify_warehouse", () => warehouse.notify(order));
114
+ * });
115
+ */
116
+ async workflow(name, fn, opts) {
117
+ const traceId = genId();
118
+ const runStart = Date.now();
119
+ const spans = [];
120
+ // Record the start immediately so a run that hangs (never completes) is
121
+ // still visible as in-flight / stuck — not invisible.
122
+ void this.sendWorkflowStart(traceId, name, runStart, opts?.expectedMs);
123
+ const wf = {
124
+ step: async (stepName, stepFn) => {
125
+ const spanId = genId();
126
+ const start = Date.now();
127
+ try {
128
+ const result = await stepFn();
129
+ spans.push({
130
+ span_id: spanId,
131
+ name: stepName,
132
+ kind: 'step',
133
+ status: 'ok',
134
+ start_time: start,
135
+ end_time: Date.now(),
136
+ attributes: {},
137
+ });
138
+ return result;
139
+ }
140
+ catch (error) {
141
+ spans.push({
142
+ span_id: spanId,
143
+ name: stepName,
144
+ kind: 'step',
145
+ status: 'error',
146
+ start_time: start,
147
+ end_time: Date.now(),
148
+ attributes: { error: error?.message?.substring(0, 300) || String(error) },
149
+ });
150
+ throw error;
151
+ }
152
+ },
153
+ };
154
+ let status = 'ok';
155
+ try {
156
+ return await fn(wf);
157
+ }
158
+ catch (error) {
159
+ status = 'error';
160
+ throw error;
161
+ }
162
+ finally {
163
+ // Fire-and-forget; never let telemetry break the caller's process.
164
+ void this.sendWorkflowTrace(traceId, name, status, runStart, Date.now(), spans);
165
+ }
166
+ }
167
+ async sendWorkflowStart(runId, name, startedAt, expectedMs) {
168
+ try {
169
+ const event = {
170
+ type: 'workflow.start',
171
+ timestamp: Date.now(),
172
+ session_id: runId,
173
+ url: '',
174
+ user_agent: `kodo-sdk/${this.sdkVersion}`,
175
+ service: name,
176
+ release: null,
177
+ environment: (typeof process !== 'undefined' && process.env?.NODE_ENV) || null,
178
+ data: { run_id: runId, name, started_at: startedAt, expected_ms: expectedMs ?? null },
179
+ };
180
+ await fetch(`${this.baseUrl}/api/beacon`, {
181
+ method: 'POST',
182
+ headers: { 'Content-Type': 'application/json' },
183
+ body: JSON.stringify({ key: this.apiKey, events: [event] }),
184
+ });
185
+ }
186
+ catch (err) {
187
+ this.log('workflow start send failed (ignored):', err);
188
+ }
189
+ }
190
+ async sendWorkflowTrace(traceId, name, status, start, end, spans) {
191
+ try {
192
+ const event = {
193
+ type: 'trace',
194
+ timestamp: Date.now(),
195
+ session_id: traceId,
196
+ url: '',
197
+ user_agent: `kodo-sdk/${this.sdkVersion}`,
198
+ service: name,
199
+ release: null,
200
+ environment: (typeof process !== 'undefined' && process.env?.NODE_ENV) || null,
201
+ data: {
202
+ trace_id: traceId,
203
+ name,
204
+ op: 'workflow',
205
+ start_time: start,
206
+ end_time: end,
207
+ status,
208
+ tags: { 'kodo.kind': 'workflow' },
209
+ spans,
210
+ },
211
+ };
212
+ await fetch(`${this.baseUrl}/api/beacon`, {
213
+ method: 'POST',
214
+ headers: { 'Content-Type': 'application/json' },
215
+ body: JSON.stringify({ key: this.apiKey, events: [event] }),
216
+ });
217
+ this.log('workflow recorded:', name, status);
218
+ }
219
+ catch (err) {
220
+ this.log('workflow send failed (ignored):', err);
221
+ }
222
+ }
223
+ /**
224
+ * Push internal metrics
225
+ */
226
+ async pushMetrics(payload) {
227
+ await this.request('/api/metrics/ingest', {
228
+ method: 'POST',
229
+ body: JSON.stringify({
230
+ api_key: this.apiKey,
231
+ ...payload,
232
+ }),
233
+ });
234
+ }
235
+ /**
236
+ * Get environment variable snippet for integration
237
+ */
238
+ getEnvSnippet() {
239
+ return [
240
+ '# Kodo Status Monitoring',
241
+ `KODO_API_KEY="${this.apiKey}"`,
242
+ `KODO_URL="${this.baseUrl}"`,
243
+ this.monitorId ? `KODO_MONITOR_ID="${this.monitorId}"` : '# KODO_MONITOR_ID="your-monitor-id"',
244
+ ].join('\n');
245
+ }
246
+ /**
247
+ * Internal request helper
248
+ */
249
+ async request(path, options = {}) {
250
+ const url = `${this.baseUrl}${path}`;
251
+ const headers = {
252
+ 'X-API-Key': this.apiKey,
253
+ 'Content-Type': 'application/json',
254
+ 'X-Kodo-SDK': this.sdkVersion,
255
+ ...(options.headers || {}),
256
+ };
257
+ this.log('Request:', options.method || 'GET', path);
258
+ const response = await fetch(url, {
259
+ ...options,
260
+ headers,
261
+ });
262
+ if (!response.ok) {
263
+ const body = await response.json().catch(() => null);
264
+ throw new ApiError(body?.error || `Request failed with status ${response.status}`, response.status, body);
265
+ }
266
+ const text = await response.text();
267
+ if (!text)
268
+ return {};
269
+ return JSON.parse(text);
270
+ }
271
+ }
272
+ class IncidentsApi {
273
+ constructor(client) {
274
+ this.client = client;
275
+ }
276
+ async list(options) {
277
+ const params = new URLSearchParams();
278
+ if (options?.status)
279
+ params.set('status', options.status);
280
+ if (options?.limit)
281
+ params.set('limit', options.limit.toString());
282
+ const query = params.toString();
283
+ const result = await this.client.request(`/api/v1/incidents${query ? `?${query}` : ''}`);
284
+ return result.incidents || [];
285
+ }
286
+ async get(id) {
287
+ return this.client.request(`/api/v1/incidents/${id}`);
288
+ }
289
+ async create(options) {
290
+ return this.client.request('/api/v1/incidents', {
291
+ method: 'POST',
292
+ body: JSON.stringify(options),
293
+ });
294
+ }
295
+ async update(id, options) {
296
+ return this.client.request(`/api/v1/incidents/${id}`, {
297
+ method: 'PATCH',
298
+ body: JSON.stringify(options),
299
+ });
300
+ }
301
+ async resolve(id, options) {
302
+ return this.update(id, {
303
+ status: 'resolved',
304
+ ...options,
305
+ });
306
+ }
307
+ async delete(id) {
308
+ await this.client.request(`/api/v1/incidents/${id}`, {
309
+ method: 'DELETE',
310
+ });
311
+ }
312
+ }
313
+ class ServicesApi {
314
+ constructor(client) {
315
+ this.client = client;
316
+ }
317
+ async list() {
318
+ const result = await this.client.request('/api/v1/services');
319
+ return result.services || [];
320
+ }
321
+ async get(id) {
322
+ return this.client.request(`/api/v1/services/${id}`);
323
+ }
324
+ async create(options) {
325
+ return this.client.request('/api/v1/services', {
326
+ method: 'POST',
327
+ body: JSON.stringify(options),
328
+ });
329
+ }
330
+ async update(id, options) {
331
+ return this.client.request(`/api/v1/services/${id}`, {
332
+ method: 'PATCH',
333
+ body: JSON.stringify(options),
334
+ });
335
+ }
336
+ async setStatus(id, status) {
337
+ return this.update(id, { status });
338
+ }
339
+ async up(id) {
340
+ return this.setStatus(id, 'operational');
341
+ }
342
+ async down(id) {
343
+ return this.setStatus(id, 'major_outage');
344
+ }
345
+ async delete(id) {
346
+ await this.client.request(`/api/v1/services/${id}`, {
347
+ method: 'DELETE',
348
+ });
349
+ }
350
+ }
351
+ class MonitorsApi {
352
+ constructor(client) {
353
+ this.client = client;
354
+ }
355
+ async list() {
356
+ const result = await this.client.request('/api/v1/uptime-monitors');
357
+ return result.monitors || [];
358
+ }
359
+ async get(id) {
360
+ const result = await this.client.request(`/api/v1/uptime-monitors/${id}`);
361
+ return result.monitor;
362
+ }
363
+ async create(options) {
364
+ const result = await this.client.request('/api/v1/uptime-monitors', {
365
+ method: 'POST',
366
+ body: JSON.stringify(options),
367
+ });
368
+ return result.monitor;
369
+ }
370
+ async update(id, options) {
371
+ const result = await this.client.request(`/api/v1/uptime-monitors/${id}`, {
372
+ method: 'PATCH',
373
+ body: JSON.stringify(options),
374
+ });
375
+ return result.monitor;
376
+ }
377
+ async delete(id) {
378
+ await this.client.request(`/api/v1/uptime-monitors/${id}`, {
379
+ method: 'DELETE',
380
+ });
381
+ }
382
+ async enable(id) {
383
+ return this.update(id, { enabled: true });
384
+ }
385
+ async disable(id) {
386
+ return this.update(id, { enabled: false });
387
+ }
388
+ }
389
+ // Convenience function to create a Kodo instance from environment variables
390
+ export function createFromEnv(overrides) {
391
+ const apiKey = process.env.KODO_API_KEY;
392
+ if (!apiKey) {
393
+ throw new Error('KODO_API_KEY environment variable is required');
394
+ }
395
+ return new Kodo({
396
+ apiKey,
397
+ baseUrl: process.env.KODO_URL || 'https://kodostatus.com',
398
+ monitorId: process.env.KODO_MONITOR_ID,
399
+ ...overrides,
400
+ });
401
+ }
402
+ export default Kodo;
403
+ //# sourceMappingURL=index.js.map