@kivia/sdk 0.1.1 → 0.1.2

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
@@ -1,6 +1,6 @@
1
1
  # Kivia TypeScript SDK
2
2
 
3
- The Kivia TypeScript SDK is the official Node.js client for the Kivia observability platform. It allows Node.js developers using Express or Fastify to instantly track API request metrics, response times, and paths.
3
+ The Kivia TypeScript SDK is the official Node.js client for the Kivia observability platform. It allows Node.js developers using Express, Fastify, or Hono to instantly track API request metrics, response times, and paths.
4
4
 
5
5
  ## Installation
6
6
 
@@ -76,3 +76,22 @@ fastify.get('/hello', async (request, reply) => {
76
76
 
77
77
  fastify.listen({ port: 3000 });
78
78
  ```
79
+
80
+ ## Quick Start (with Hono)
81
+
82
+ ```typescript
83
+ import { Hono } from 'hono';
84
+ import { kiviaHonoMiddleware } from '@kivia/sdk';
85
+
86
+ const app = new Hono();
87
+
88
+ app.use('*', kiviaHonoMiddleware({
89
+ apiKey: 'YOUR_KIVIA_API_KEY',
90
+ }));
91
+
92
+ app.get('/hello', (c) => {
93
+ return c.json({ message: 'Hello from Kivia TS SDK using Hono!' });
94
+ });
95
+
96
+ export default app;
97
+ ```
package/dist/client.d.ts CHANGED
@@ -12,6 +12,12 @@ export declare class KiviaClient {
12
12
  * Usage: fastify.addHook('onResponse', kiviaClient.logFastifyOnResponse());
13
13
  */
14
14
  logFastifyOnResponse(): (request: any, reply: any) => Promise<void>;
15
+ /**
16
+ * Hono middleware for automatically logging requests.
17
+ *
18
+ * Usage with Hono:
19
+ * app.use('*', kiviaClient.logHono());
20
+ */
21
+ logHono(): (c: any, next: any) => Promise<void>;
15
22
  private sendLog;
16
23
  }
17
- //# sourceMappingURL=client.d.ts.map
package/dist/client.js CHANGED
@@ -47,6 +47,31 @@ class KiviaClient {
47
47
  this.sendLog(logEntry);
48
48
  };
49
49
  }
50
+ /**
51
+ * Hono middleware for automatically logging requests.
52
+ *
53
+ * Usage with Hono:
54
+ * app.use('*', kiviaClient.logHono());
55
+ */
56
+ logHono() {
57
+ return async (c, next) => {
58
+ var _a, _b, _c, _d, _e, _f, _g, _h;
59
+ const start = Date.now();
60
+ await next();
61
+ const latency = Date.now() - start;
62
+ const logEntry = {
63
+ path: c.req.path || c.req.url,
64
+ status: c.res.status,
65
+ ip_address: ((_b = (_a = c.req).header) === null || _b === void 0 ? void 0 : _b.call(_a, 'x-forwarded-for')) ||
66
+ ((_d = (_c = c.req).header) === null || _d === void 0 ? void 0 : _d.call(_c, 'x-real-ip')) ||
67
+ ((_f = (_e = c.req.raw) === null || _e === void 0 ? void 0 : _e.headers) === null || _f === void 0 ? void 0 : _f['x-forwarded-for']) ||
68
+ ((_h = (_g = c.req.raw) === null || _g === void 0 ? void 0 : _g.socket) === null || _h === void 0 ? void 0 : _h.remoteAddress),
69
+ timestamp: new Date().toISOString(),
70
+ latency,
71
+ };
72
+ this.sendLog(logEntry);
73
+ };
74
+ }
50
75
  async sendLog(logEntry) {
51
76
  try {
52
77
  const response = await fetch(`${this.baseUrl}/logs/create`, {
@@ -68,4 +93,3 @@ class KiviaClient {
68
93
  }
69
94
  }
70
95
  exports.KiviaClient = KiviaClient;
71
- //# sourceMappingURL=client.js.map
package/dist/fastify.d.ts CHANGED
@@ -4,4 +4,3 @@ import { KiviaClientOptions } from './types';
4
4
  * Usage: fastify.register(kiviaFastifyPlugin, { apiKey: '...' })
5
5
  */
6
6
  export declare function kiviaFastifyPlugin(fastify: any, options: KiviaClientOptions): Promise<void>;
7
- //# sourceMappingURL=fastify.d.ts.map
package/dist/fastify.js CHANGED
@@ -10,4 +10,3 @@ async function kiviaFastifyPlugin(fastify, options) {
10
10
  const client = new client_1.KiviaClient(options);
11
11
  fastify.addHook('onResponse', client.logFastifyOnResponse());
12
12
  }
13
- //# sourceMappingURL=fastify.js.map
package/dist/hono.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ import { KiviaClientOptions } from './types';
2
+ /**
3
+ * Hono middleware factory for Kivia observability.
4
+ *
5
+ * Usage:
6
+ * import { Hono } from 'hono';
7
+ * import { kiviaHonoMiddleware } from '@kivia/sdk';
8
+ *
9
+ * const app = new Hono();
10
+ * app.use('*', kiviaHonoMiddleware({ apiKey: 'YOUR_KIVIA_API_KEY' }));
11
+ */
12
+ export declare function kiviaHonoMiddleware(options: KiviaClientOptions): (c: any, next: any) => Promise<void>;
package/dist/hono.js ADDED
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.kiviaHonoMiddleware = kiviaHonoMiddleware;
4
+ const client_1 = require("./client");
5
+ /**
6
+ * Hono middleware factory for Kivia observability.
7
+ *
8
+ * Usage:
9
+ * import { Hono } from 'hono';
10
+ * import { kiviaHonoMiddleware } from '@kivia/sdk';
11
+ *
12
+ * const app = new Hono();
13
+ * app.use('*', kiviaHonoMiddleware({ apiKey: 'YOUR_KIVIA_API_KEY' }));
14
+ */
15
+ function kiviaHonoMiddleware(options) {
16
+ const client = new client_1.KiviaClient(options);
17
+ return client.logHono();
18
+ }
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from './types';
2
2
  export * from './client';
3
3
  export * from './fastify';
4
- //# sourceMappingURL=index.d.ts.map
4
+ export * from './hono';
package/dist/index.js CHANGED
@@ -17,4 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./types"), exports);
18
18
  __exportStar(require("./client"), exports);
19
19
  __exportStar(require("./fastify"), exports);
20
- //# sourceMappingURL=index.js.map
20
+ __exportStar(require("./hono"), exports);
package/dist/types.d.ts CHANGED
@@ -13,4 +13,3 @@ export interface KiviaClientOptions {
13
13
  */
14
14
  baseUrl?: string;
15
15
  }
16
- //# sourceMappingURL=types.d.ts.map
package/dist/types.js CHANGED
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
package/package.json CHANGED
@@ -27,5 +27,5 @@
27
27
  "@types/node": "^25.5.2",
28
28
  "typescript": "^5.4.0"
29
29
  },
30
- "version": "0.1.1"
30
+ "version": "0.1.2"
31
31
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAO,MAAM,SAAS,CAAC;AAElD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,kBAAkB;IAKvC;;OAEG;IACI,aAAa,KACV,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG;IAsBvC;;;OAGG;IACI,oBAAoB,KACX,SAAS,GAAG,EAAE,OAAO,GAAG;YAgB1B,OAAO;CAmBtB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;IAItB,YAAY,OAA2B;QACrC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,qDAAqD,CAAC;IAC1F,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,OAAO,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAS,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEzB,oCAAoC;YACpC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;;gBACpB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;gBAEnC,MAAM,QAAQ,GAAQ;oBACpB,IAAI,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,GAAG;oBAChC,MAAM,EAAE,GAAG,CAAC,UAAU;oBACtB,UAAU,EAAE,GAAG,CAAC,EAAE,KAAI,MAAA,GAAG,CAAC,UAAU,0CAAE,aAAa,CAAA;oBACnD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,OAAO;iBACR,CAAC;gBAEF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YAEH,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,oBAAoB;QACzB,OAAO,KAAK,EAAE,OAAY,EAAE,KAAU,EAAE,EAAE;;YACxC,uEAAuE;YACvE,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAEpE,MAAM,QAAQ,GAAQ;gBACpB,IAAI,EAAE,OAAO,CAAC,GAAG,KAAI,MAAA,OAAO,CAAC,GAAG,0CAAE,GAAG,CAAA;gBACrC,MAAM,EAAE,KAAK,CAAC,UAAU,KAAI,MAAA,KAAK,CAAC,GAAG,0CAAE,UAAU,CAAA;gBACjD,UAAU,EAAE,OAAO,CAAC,EAAE,KAAI,MAAA,MAAA,OAAO,CAAC,GAAG,0CAAE,UAAU,0CAAE,aAAa,CAAA;gBAChE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;aAC7B,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,QAAa;QACjC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,cAAc,EAAE;gBAC1D,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,iBAAiB,EAAE,IAAI,CAAC,MAAM;iBAC/B;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;aAC/B,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACtC,OAAO,CAAC,KAAK,CAAC,2BAA2B,QAAQ,CAAC,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;CACF;AA3ED,kCA2EC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../src/fastify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB,iBAGjF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fastify.js","sourceRoot":"","sources":["../src/fastify.ts"],"names":[],"mappings":";;AAOA,gDAGC;AAVD,qCAAuC;AAGvC;;;GAGG;AACI,KAAK,UAAU,kBAAkB,CAAC,OAAY,EAAE,OAA2B;IAChF,MAAM,MAAM,GAAG,IAAI,oBAAW,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC/D,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,2CAAyB;AACzB,4CAA0B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}