ai.matey.http 0.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 (117) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/deno/adapter.js +173 -0
  3. package/dist/cjs/deno/adapter.js.map +1 -0
  4. package/dist/cjs/deno/handler.js +78 -0
  5. package/dist/cjs/deno/handler.js.map +1 -0
  6. package/dist/cjs/deno/index.js +26 -0
  7. package/dist/cjs/deno/index.js.map +1 -0
  8. package/dist/cjs/express/adapter.js +150 -0
  9. package/dist/cjs/express/adapter.js.map +1 -0
  10. package/dist/cjs/express/index.js +26 -0
  11. package/dist/cjs/express/index.js.map +1 -0
  12. package/dist/cjs/express/middleware.js +63 -0
  13. package/dist/cjs/express/middleware.js.map +1 -0
  14. package/dist/cjs/fastify/adapter.js +149 -0
  15. package/dist/cjs/fastify/adapter.js.map +1 -0
  16. package/dist/cjs/fastify/handler.js +54 -0
  17. package/dist/cjs/fastify/handler.js.map +1 -0
  18. package/dist/cjs/fastify/index.js +26 -0
  19. package/dist/cjs/fastify/index.js.map +1 -0
  20. package/dist/cjs/hono/adapter.js +172 -0
  21. package/dist/cjs/hono/adapter.js.map +1 -0
  22. package/dist/cjs/hono/index.js +26 -0
  23. package/dist/cjs/hono/index.js.map +1 -0
  24. package/dist/cjs/hono/middleware.js +75 -0
  25. package/dist/cjs/hono/middleware.js.map +1 -0
  26. package/dist/cjs/index.js +37 -0
  27. package/dist/cjs/index.js.map +1 -0
  28. package/dist/cjs/koa/adapter.js +153 -0
  29. package/dist/cjs/koa/adapter.js.map +1 -0
  30. package/dist/cjs/koa/index.js +26 -0
  31. package/dist/cjs/koa/index.js.map +1 -0
  32. package/dist/cjs/koa/middleware.js +58 -0
  33. package/dist/cjs/koa/middleware.js.map +1 -0
  34. package/dist/cjs/node/adapter.js +170 -0
  35. package/dist/cjs/node/adapter.js.map +1 -0
  36. package/dist/cjs/node/index.js +26 -0
  37. package/dist/cjs/node/index.js.map +1 -0
  38. package/dist/cjs/node/listener.js +98 -0
  39. package/dist/cjs/node/listener.js.map +1 -0
  40. package/dist/esm/deno/adapter.js +168 -0
  41. package/dist/esm/deno/adapter.js.map +1 -0
  42. package/dist/esm/deno/handler.js +75 -0
  43. package/dist/esm/deno/handler.js.map +1 -0
  44. package/dist/esm/deno/index.js +10 -0
  45. package/dist/esm/deno/index.js.map +1 -0
  46. package/dist/esm/express/adapter.js +145 -0
  47. package/dist/esm/express/adapter.js.map +1 -0
  48. package/dist/esm/express/index.js +10 -0
  49. package/dist/esm/express/index.js.map +1 -0
  50. package/dist/esm/express/middleware.js +60 -0
  51. package/dist/esm/express/middleware.js.map +1 -0
  52. package/dist/esm/fastify/adapter.js +144 -0
  53. package/dist/esm/fastify/adapter.js.map +1 -0
  54. package/dist/esm/fastify/handler.js +51 -0
  55. package/dist/esm/fastify/handler.js.map +1 -0
  56. package/dist/esm/fastify/index.js +10 -0
  57. package/dist/esm/fastify/index.js.map +1 -0
  58. package/dist/esm/hono/adapter.js +167 -0
  59. package/dist/esm/hono/adapter.js.map +1 -0
  60. package/dist/esm/hono/index.js +10 -0
  61. package/dist/esm/hono/index.js.map +1 -0
  62. package/dist/esm/hono/middleware.js +72 -0
  63. package/dist/esm/hono/middleware.js.map +1 -0
  64. package/dist/esm/index.js +21 -0
  65. package/dist/esm/index.js.map +1 -0
  66. package/dist/esm/koa/adapter.js +148 -0
  67. package/dist/esm/koa/adapter.js.map +1 -0
  68. package/dist/esm/koa/index.js +10 -0
  69. package/dist/esm/koa/index.js.map +1 -0
  70. package/dist/esm/koa/middleware.js +55 -0
  71. package/dist/esm/koa/middleware.js.map +1 -0
  72. package/dist/esm/node/adapter.js +165 -0
  73. package/dist/esm/node/adapter.js.map +1 -0
  74. package/dist/esm/node/index.js +10 -0
  75. package/dist/esm/node/index.js.map +1 -0
  76. package/dist/esm/node/listener.js +92 -0
  77. package/dist/esm/node/listener.js.map +1 -0
  78. package/dist/types/deno/adapter.d.ts +56 -0
  79. package/dist/types/deno/adapter.d.ts.map +1 -0
  80. package/dist/types/deno/handler.d.ts +38 -0
  81. package/dist/types/deno/handler.d.ts.map +1 -0
  82. package/dist/types/deno/index.d.ts +10 -0
  83. package/dist/types/deno/index.d.ts.map +1 -0
  84. package/dist/types/express/adapter.d.ts +46 -0
  85. package/dist/types/express/adapter.d.ts.map +1 -0
  86. package/dist/types/express/index.d.ts +10 -0
  87. package/dist/types/express/index.d.ts.map +1 -0
  88. package/dist/types/express/middleware.d.ts +39 -0
  89. package/dist/types/express/middleware.d.ts.map +1 -0
  90. package/dist/types/fastify/adapter.d.ts +46 -0
  91. package/dist/types/fastify/adapter.d.ts.map +1 -0
  92. package/dist/types/fastify/handler.d.ts +36 -0
  93. package/dist/types/fastify/handler.d.ts.map +1 -0
  94. package/dist/types/fastify/index.d.ts +10 -0
  95. package/dist/types/fastify/index.d.ts.map +1 -0
  96. package/dist/types/hono/adapter.d.ts +47 -0
  97. package/dist/types/hono/adapter.d.ts.map +1 -0
  98. package/dist/types/hono/index.d.ts +10 -0
  99. package/dist/types/hono/index.d.ts.map +1 -0
  100. package/dist/types/hono/middleware.d.ts +36 -0
  101. package/dist/types/hono/middleware.d.ts.map +1 -0
  102. package/dist/types/index.d.ts +15 -0
  103. package/dist/types/index.d.ts.map +1 -0
  104. package/dist/types/koa/adapter.d.ts +46 -0
  105. package/dist/types/koa/adapter.d.ts.map +1 -0
  106. package/dist/types/koa/index.d.ts +10 -0
  107. package/dist/types/koa/index.d.ts.map +1 -0
  108. package/dist/types/koa/middleware.d.ts +40 -0
  109. package/dist/types/koa/middleware.d.ts.map +1 -0
  110. package/dist/types/node/adapter.d.ts +57 -0
  111. package/dist/types/node/adapter.d.ts.map +1 -0
  112. package/dist/types/node/index.d.ts +10 -0
  113. package/dist/types/node/index.d.ts.map +1 -0
  114. package/dist/types/node/listener.d.ts +51 -0
  115. package/dist/types/node/listener.d.ts.map +1 -0
  116. package/package.json +160 -0
  117. package/readme.md +93 -0
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ /**
3
+ * Fastify HTTP Adapter
4
+ *
5
+ * Converts Fastify Request/Reply to GenericRequest/GenericResponse
6
+ *
7
+ * @module
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.FastifyResponseAdapter = exports.FastifyRequestAdapter = void 0;
11
+ const ai_matey_http_core_1 = require("ai.matey.http.core");
12
+ /**
13
+ * Adapter that converts Fastify Request to GenericRequest
14
+ */
15
+ class FastifyRequestAdapter {
16
+ request;
17
+ constructor(request) {
18
+ this.request = request;
19
+ }
20
+ get method() {
21
+ return this.request.method || 'GET';
22
+ }
23
+ get url() {
24
+ return this.request.url || '/';
25
+ }
26
+ get headers() {
27
+ const headers = {};
28
+ for (const [key, value] of Object.entries(this.request.headers)) {
29
+ if (typeof value === 'string') {
30
+ headers[key.toLowerCase()] = value;
31
+ }
32
+ else if (Array.isArray(value)) {
33
+ headers[key.toLowerCase()] = value.join(', ');
34
+ }
35
+ }
36
+ return headers;
37
+ }
38
+ get body() {
39
+ // Fastify automatically parses JSON body
40
+ return this.request.body ?? null;
41
+ }
42
+ get params() {
43
+ return this.request.params;
44
+ }
45
+ get query() {
46
+ // Fastify query can have arrays, so we need to stringify them
47
+ const query = {};
48
+ for (const [key, value] of Object.entries(this.request.query || {})) {
49
+ if (typeof value === 'string') {
50
+ query[key] = value;
51
+ }
52
+ else if (Array.isArray(value)) {
53
+ query[key] = value.join(',');
54
+ }
55
+ else if (value !== undefined) {
56
+ query[key] = String(value);
57
+ }
58
+ }
59
+ return Object.keys(query).length > 0 ? query : undefined;
60
+ }
61
+ get ip() {
62
+ // Fastify provides IP through request.ip
63
+ return this.request.ip || this.request.socket?.remoteAddress;
64
+ }
65
+ /**
66
+ * Get the underlying Fastify request object
67
+ */
68
+ get raw() {
69
+ return this.request;
70
+ }
71
+ }
72
+ exports.FastifyRequestAdapter = FastifyRequestAdapter;
73
+ /**
74
+ * Adapter that converts GenericResponse methods to Fastify Reply
75
+ */
76
+ class FastifyResponseAdapter {
77
+ reply;
78
+ _statusCode = 200;
79
+ _headersSent = false;
80
+ constructor(reply) {
81
+ this.reply = reply;
82
+ }
83
+ status(code) {
84
+ this._statusCode = code;
85
+ if (!this._headersSent) {
86
+ this.reply.code(code);
87
+ }
88
+ }
89
+ header(name, value) {
90
+ if (!this._headersSent) {
91
+ this.reply.header(name, value);
92
+ }
93
+ }
94
+ send(data) {
95
+ if (!this.isWritable()) {
96
+ return;
97
+ }
98
+ this._headersSent = true;
99
+ // Handle empty string (e.g., for CORS preflight 204 responses)
100
+ if (data === '') {
101
+ this.reply.code(this._statusCode).send('');
102
+ return;
103
+ }
104
+ // Fastify automatically JSON-stringifies objects
105
+ this.reply.code(this._statusCode).send(data);
106
+ }
107
+ async stream(generator) {
108
+ if (!this.isWritable()) {
109
+ return;
110
+ }
111
+ this._headersSent = true;
112
+ // Get the underlying Node.js response for SSE
113
+ const nodeRes = this.reply.raw;
114
+ // Set SSE headers
115
+ (0, ai_matey_http_core_1.sendSSEHeaders)(nodeRes, {});
116
+ try {
117
+ // Stream chunks
118
+ for await (const chunk of generator) {
119
+ if (!this.isWritable()) {
120
+ break;
121
+ }
122
+ (0, ai_matey_http_core_1.sendSSEChunk)(nodeRes, chunk);
123
+ }
124
+ // Send done marker
125
+ if (this.isWritable()) {
126
+ (0, ai_matey_http_core_1.sendSSEDone)(nodeRes);
127
+ }
128
+ }
129
+ catch (error) {
130
+ // If error occurs during streaming, we can't change status code
131
+ // Just log and close
132
+ console.error('Streaming error:', error);
133
+ if (this.isWritable()) {
134
+ nodeRes.end();
135
+ }
136
+ }
137
+ }
138
+ isWritable() {
139
+ return !this.reply.sent && !this._headersSent;
140
+ }
141
+ /**
142
+ * Get the underlying Fastify reply object
143
+ */
144
+ get raw() {
145
+ return this.reply;
146
+ }
147
+ }
148
+ exports.FastifyResponseAdapter = FastifyResponseAdapter;
149
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/fastify/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /**
3
+ * Fastify Handler
4
+ *
5
+ * HTTP request handler for Fastify that uses the core handler.
6
+ *
7
+ * @module
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.FastifyHandler = FastifyHandler;
11
+ const ai_matey_http_core_1 = require("ai.matey.http.core");
12
+ const adapter_js_1 = require("./adapter.js");
13
+ /**
14
+ * Create Fastify route handler for handling AI chat requests
15
+ *
16
+ * @param bridge - Bridge instance
17
+ * @param options - HTTP listener options
18
+ * @returns Fastify route handler function
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * import Fastify from 'fastify';
23
+ * import { FastifyHandler } from 'ai.matey.http/fastify';
24
+ *
25
+ * const fastify = Fastify();
26
+ * const bridge = new Bridge(frontend, backend);
27
+ *
28
+ * // Add AI chat route
29
+ * fastify.post('/v1/messages', FastifyHandler(bridge, {
30
+ * cors: true,
31
+ * streaming: true,
32
+ * }));
33
+ *
34
+ * fastify.listen({ port: 3000 });
35
+ * ```
36
+ */
37
+ function FastifyHandler(bridge, options = {}) {
38
+ // Create core handler with all business logic
39
+ const { cors, ...restOptions } = options;
40
+ const coreHandler = new ai_matey_http_core_1.CoreHTTPHandler({
41
+ bridge,
42
+ cors: cors === false || cors === undefined ? undefined : cors === true ? {} : cors,
43
+ ...restOptions, // HTTPListenerOptions types are compatible with CoreHandlerOptions at runtime
44
+ });
45
+ // Return Fastify route handler
46
+ return async (request, reply) => {
47
+ // Create adapters
48
+ const genericReq = new adapter_js_1.FastifyRequestAdapter(request);
49
+ const genericRes = new adapter_js_1.FastifyResponseAdapter(reply);
50
+ // Handle request through core handler
51
+ await coreHandler.handle(genericReq, genericRes);
52
+ };
53
+ }
54
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/fastify/handler.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAgCH,wCAsBC;AAjDD,2DAAqD;AACrD,6CAA6E;AAE7E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,cAAc,CAC5B,MAAc,EACd,UAA+B,EAAE;IAEjC,8CAA8C;IAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;IAEzC,MAAM,WAAW,GAAG,IAAI,oCAAe,CAAC;QACtC,MAAM;QACN,IAAI,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;QAClF,GAAI,WAAmB,EAAE,8EAA8E;KACxG,CAAC,CAAC;IAEH,+BAA+B;IAC/B,OAAO,KAAK,EAAE,OAAuB,EAAE,KAAmB,EAAiB,EAAE;QAC3E,kBAAkB;QAClB,MAAM,UAAU,GAAG,IAAI,kCAAqB,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,mCAAsB,CAAC,KAAK,CAAC,CAAC;QAErD,sCAAsC;QACtC,MAAM,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * Fastify HTTP Adapter
4
+ *
5
+ * HTTP adapter for Fastify
6
+ *
7
+ * @module
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
21
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ __exportStar(require("./adapter.js"), exports);
25
+ __exportStar(require("./handler.js"), exports);
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/fastify/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;AAEH,+CAA6B;AAC7B,+CAA6B"}
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ /**
3
+ * Hono HTTP Adapter
4
+ *
5
+ * Converts Hono Context to GenericRequest/GenericResponse
6
+ *
7
+ * @module
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.HonoResponseAdapter = exports.HonoRequestAdapter = void 0;
11
+ /**
12
+ * Adapter that converts Hono Context to GenericRequest
13
+ */
14
+ class HonoRequestAdapter {
15
+ c;
16
+ constructor(c) {
17
+ this.c = c;
18
+ }
19
+ get method() {
20
+ return this.c.req.method || 'GET';
21
+ }
22
+ get url() {
23
+ return this.c.req.url || '/';
24
+ }
25
+ get headers() {
26
+ const headers = {};
27
+ // Hono headers is a Headers object
28
+ this.c.req.raw.headers.forEach((value, key) => {
29
+ headers[key.toLowerCase()] = value;
30
+ });
31
+ return headers;
32
+ }
33
+ get body() {
34
+ // Hono doesn't automatically parse body - it must be done with middleware
35
+ // Access the parsed body from context if available
36
+ return this.c.body ?? null;
37
+ }
38
+ get params() {
39
+ // Hono params are available via c.req.param()
40
+ const params = this.c.req.param();
41
+ return Object.keys(params).length > 0 ? params : undefined;
42
+ }
43
+ get query() {
44
+ // Hono query is available via c.req.query()
45
+ const query = {};
46
+ const queryParams = this.c.req.query();
47
+ for (const [key, value] of Object.entries(queryParams)) {
48
+ if (value !== undefined) {
49
+ query[key] = String(value);
50
+ }
51
+ }
52
+ return Object.keys(query).length > 0 ? query : undefined;
53
+ }
54
+ get ip() {
55
+ // Try to get IP from various headers
56
+ const forwarded = this.c.req.header('x-forwarded-for');
57
+ if (forwarded) {
58
+ return forwarded.split(',')[0]?.trim();
59
+ }
60
+ const realIp = this.c.req.header('x-real-ip');
61
+ if (realIp) {
62
+ return realIp;
63
+ }
64
+ // Fallback to undefined as we can't access socket in all Hono runtimes
65
+ return undefined;
66
+ }
67
+ /**
68
+ * Get the underlying Hono context object
69
+ */
70
+ get raw() {
71
+ return this.c;
72
+ }
73
+ }
74
+ exports.HonoRequestAdapter = HonoRequestAdapter;
75
+ /**
76
+ * Adapter that converts GenericResponse methods to Hono Context
77
+ */
78
+ class HonoResponseAdapter {
79
+ c;
80
+ _statusCode = 200;
81
+ _headers = new Map();
82
+ _sent = false;
83
+ constructor(c) {
84
+ this.c = c;
85
+ }
86
+ status(code) {
87
+ if (!this._sent) {
88
+ this._statusCode = code;
89
+ }
90
+ }
91
+ header(name, value) {
92
+ if (!this._sent) {
93
+ this._headers.set(name, value);
94
+ }
95
+ }
96
+ send(data) {
97
+ if (this._sent) {
98
+ return;
99
+ }
100
+ this._sent = true;
101
+ // Collect headers for response
102
+ const headers = new Headers();
103
+ for (const [name, value] of this._headers.entries()) {
104
+ headers.set(name, value);
105
+ }
106
+ // Handle empty string (e.g., for CORS preflight 204 responses)
107
+ if (data === '') {
108
+ // 204 No Content responses cannot have a body (not even empty string)
109
+ // Use null for 204, empty string for other status codes
110
+ this.c.res = new Response(this._statusCode === 204 ? null : '', {
111
+ status: this._statusCode,
112
+ headers,
113
+ });
114
+ return;
115
+ }
116
+ // Send JSON response
117
+ headers.set('Content-Type', 'application/json');
118
+ this.c.res = new Response(JSON.stringify(data), {
119
+ status: this._statusCode,
120
+ headers,
121
+ });
122
+ }
123
+ stream(generator) {
124
+ if (this._sent) {
125
+ return Promise.resolve();
126
+ }
127
+ this._sent = true;
128
+ // Set all headers
129
+ for (const [name, value] of this._headers.entries()) {
130
+ this.c.header(name, value);
131
+ }
132
+ // Create SSE stream
133
+ const stream = new ReadableStream({
134
+ async start(controller) {
135
+ try {
136
+ for await (const chunk of generator) {
137
+ const data = `data: ${JSON.stringify(chunk)}\n\n`;
138
+ controller.enqueue(new TextEncoder().encode(data));
139
+ }
140
+ // Send done marker
141
+ const done = 'data: [DONE]\n\n';
142
+ controller.enqueue(new TextEncoder().encode(done));
143
+ controller.close();
144
+ }
145
+ catch (error) {
146
+ console.error('Streaming error:', error);
147
+ controller.error(error);
148
+ }
149
+ },
150
+ });
151
+ // Set SSE headers and return stream
152
+ this.c.header('Content-Type', 'text/event-stream');
153
+ this.c.header('Cache-Control', 'no-cache');
154
+ this.c.header('Connection', 'keep-alive');
155
+ this.c.res = new Response(stream, {
156
+ status: this._statusCode,
157
+ headers: this.c.res?.headers,
158
+ });
159
+ return Promise.resolve();
160
+ }
161
+ isWritable() {
162
+ return !this._sent;
163
+ }
164
+ /**
165
+ * Get the underlying Hono context object
166
+ */
167
+ get raw() {
168
+ return this.c;
169
+ }
170
+ }
171
+ exports.HonoResponseAdapter = HonoResponseAdapter;
172
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/hono/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * Hono HTTP Adapter
4
+ *
5
+ * HTTP adapter for Hono
6
+ *
7
+ * @module
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
21
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ __exportStar(require("./adapter.js"), exports);
25
+ __exportStar(require("./middleware.js"), exports);
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hono/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;AAEH,+CAA6B;AAC7B,kDAAgC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /**
3
+ * Hono Middleware
4
+ *
5
+ * HTTP request middleware for Hono that uses the core handler.
6
+ *
7
+ * @module
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.HonoMiddleware = HonoMiddleware;
11
+ const ai_matey_http_core_1 = require("ai.matey.http.core");
12
+ const adapter_js_1 = require("./adapter.js");
13
+ /**
14
+ * Create Hono middleware for handling AI chat requests
15
+ *
16
+ * @param bridge - Bridge instance
17
+ * @param options - HTTP listener options
18
+ * @returns Hono middleware function
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * import { Hono } from 'hono';
23
+ * import { HonoMiddleware } from 'ai.matey.http/hono';
24
+ *
25
+ * const app = new Hono();
26
+ * const bridge = new Bridge(frontend, backend);
27
+ *
28
+ * // Add AI chat middleware
29
+ * app.post('/v1/messages', HonoMiddleware(bridge, {
30
+ * cors: true,
31
+ * streaming: true,
32
+ * }));
33
+ *
34
+ * export default app;
35
+ * ```
36
+ */
37
+ function HonoMiddleware(bridge, options = {}) {
38
+ // Create core handler with all business logic
39
+ const { cors, ...restOptions } = options;
40
+ const coreHandler = new ai_matey_http_core_1.CoreHTTPHandler({
41
+ bridge,
42
+ cors: cors === false || cors === undefined ? undefined : cors === true ? {} : cors,
43
+ ...restOptions, // HTTPListenerOptions types are compatible with CoreHandlerOptions at runtime
44
+ });
45
+ // Return Hono middleware
46
+ return async (c) => {
47
+ try {
48
+ // Parse JSON body if present (but not for OPTIONS requests)
49
+ const contentType = c.req.header('content-type') || '';
50
+ const method = c.req.method;
51
+ if (method !== 'OPTIONS' && contentType.includes('application/json')) {
52
+ try {
53
+ c.body = await c.req.json();
54
+ }
55
+ catch {
56
+ // If JSON parsing fails, leave body as null
57
+ c.body = null;
58
+ }
59
+ }
60
+ // Create adapters
61
+ const genericReq = new adapter_js_1.HonoRequestAdapter(c);
62
+ const genericRes = new adapter_js_1.HonoResponseAdapter(c);
63
+ // Handle request through core handler
64
+ await coreHandler.handle(genericReq, genericRes);
65
+ // Return the response set by the adapter
66
+ return c.res || new Response('Internal Server Error', { status: 500 });
67
+ }
68
+ catch (error) {
69
+ // Return error response
70
+ console.error('Hono middleware error:', error);
71
+ return c.json({ error: 'Internal Server Error' }, 500);
72
+ }
73
+ };
74
+ }
75
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/hono/middleware.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAgCH,wCA4CC;AAvED,2DAAqD;AACrD,6CAAuE;AAEvE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,cAAc,CAC5B,MAAc,EACd,UAA+B,EAAE;IAEjC,8CAA8C;IAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;IAEzC,MAAM,WAAW,GAAG,IAAI,oCAAe,CAAC;QACtC,MAAM;QACN,IAAI,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;QAClF,GAAI,WAAmB,EAAE,8EAA8E;KACxG,CAAC,CAAC;IAEH,yBAAyB;IACzB,OAAO,KAAK,EAAE,CAAU,EAAqB,EAAE;QAC7C,IAAI,CAAC;YACH,4DAA4D;YAC5D,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YAE5B,IAAI,MAAM,KAAK,SAAS,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACrE,IAAI,CAAC;oBACF,CAAS,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACvC,CAAC;gBAAC,MAAM,CAAC;oBACP,4CAA4C;oBAC3C,CAAS,CAAC,IAAI,GAAG,IAAI,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,kBAAkB;YAClB,MAAM,UAAU,GAAG,IAAI,+BAAkB,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,UAAU,GAAG,IAAI,gCAAmB,CAAC,CAAC,CAAC,CAAC;YAE9C,sCAAsC;YACtC,MAAM,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAEjD,yCAAyC;YACzC,OAAO,CAAC,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;YACxB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC/C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ /**
3
+ * AI Matey HTTP Adapters
4
+ *
5
+ * Consolidated package containing HTTP framework adapters.
6
+ * Each adapter provides integration with a specific HTTP framework.
7
+ *
8
+ * @module ai.matey.http
9
+ */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ var desc = Object.getOwnPropertyDescriptor(m, k);
13
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
+ desc = { enumerable: true, get: function() { return m[k]; } };
15
+ }
16
+ Object.defineProperty(o, k2, desc);
17
+ }) : (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ o[k2] = m[k];
20
+ }));
21
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
22
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ // Express adapter
26
+ __exportStar(require("./express/index.js"), exports);
27
+ // Fastify adapter
28
+ __exportStar(require("./fastify/index.js"), exports);
29
+ // Hono adapter
30
+ __exportStar(require("./hono/index.js"), exports);
31
+ // Koa adapter
32
+ __exportStar(require("./koa/index.js"), exports);
33
+ // Node.js native HTTP adapter
34
+ __exportStar(require("./node/index.js"), exports);
35
+ // Deno adapter
36
+ __exportStar(require("./deno/index.js"), exports);
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;AAEH,kBAAkB;AAClB,qDAAmC;AAEnC,kBAAkB;AAClB,qDAAmC;AAEnC,eAAe;AACf,kDAAgC;AAEhC,cAAc;AACd,iDAA+B;AAE/B,8BAA8B;AAC9B,kDAAgC;AAEhC,eAAe;AACf,kDAAgC"}