spiceflow 1.6.2 → 1.7.1
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 +1 -2
- package/dist/client/errors.js +0 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +0 -1
- package/dist/client/types.js +0 -1
- package/dist/client/utils.js +0 -1
- package/dist/client.test.js +0 -1
- package/dist/context.js +0 -1
- package/dist/cors.d.ts.map +1 -1
- package/dist/cors.js +0 -1
- package/dist/cors.test.js +0 -1
- package/dist/error.js +0 -1
- package/dist/index.js +0 -1
- package/dist/mcp-transport.d.ts +1 -1
- package/dist/mcp-transport.d.ts.map +1 -1
- package/dist/mcp-transport.js +1 -3
- package/dist/mcp.d.ts +2 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +8 -7
- package/dist/mcp.test.js +26 -17
- package/dist/middleware.test.js +2 -3
- package/dist/openapi.d.ts.map +1 -1
- package/dist/openapi.js +0 -1
- package/dist/openapi.test.js +0 -1
- package/dist/simple.benchmark.js +0 -1
- package/dist/spiceflow.d.ts +3 -1
- package/dist/spiceflow.d.ts.map +1 -1
- package/dist/spiceflow.js +49 -52
- package/dist/spiceflow.test.js +5 -7
- package/dist/static-node.d.ts.map +1 -1
- package/dist/static-node.js +0 -1
- package/dist/static.benchmark.js +0 -1
- package/dist/static.d.ts.map +1 -1
- package/dist/static.js +0 -1
- package/dist/stream.test.js +0 -1
- package/dist/types.js +0 -1
- package/dist/types.test.js +2 -3
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +0 -1
- package/dist/zod.test.js +0 -1
- package/package.json +4 -2
- package/src/client.test.ts +1 -1
- package/src/mcp-transport.ts +3 -3
- package/src/mcp.test.ts +27 -17
- package/src/mcp.ts +55 -47
- package/src/middleware.test.ts +2 -3
- package/src/spiceflow.test.ts +7 -6
- package/src/spiceflow.ts +65 -61
- package/src/types.test.ts +2 -4
- package/dist/client/errors.js.map +0 -1
- package/dist/client/index.js.map +0 -1
- package/dist/client/types.js.map +0 -1
- package/dist/client/utils.js.map +0 -1
- package/dist/client.test.js.map +0 -1
- package/dist/context.js.map +0 -1
- package/dist/cors.js.map +0 -1
- package/dist/cors.test.js.map +0 -1
- package/dist/error.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/mcp-transport.js.map +0 -1
- package/dist/mcp.js.map +0 -1
- package/dist/mcp.test.js.map +0 -1
- package/dist/middleware.test.js.map +0 -1
- package/dist/openapi.js.map +0 -1
- package/dist/openapi.test.js.map +0 -1
- package/dist/simple.benchmark.js.map +0 -1
- package/dist/spiceflow.js.map +0 -1
- package/dist/spiceflow.test.js.map +0 -1
- package/dist/static-node.js.map +0 -1
- package/dist/static.benchmark.js.map +0 -1
- package/dist/static.js.map +0 -1
- package/dist/stream.test.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/types.test.js.map +0 -1
- package/dist/utils.js.map +0 -1
- package/dist/zod.test.js.map +0 -1
package/README.md
CHANGED
|
@@ -13,9 +13,8 @@ Spiceflow is a lightweight, type-safe API framework for building web services us
|
|
|
13
13
|
## Features
|
|
14
14
|
|
|
15
15
|
- Type safe schema based validation via Zod
|
|
16
|
-
- Can easily generate OpenAPI
|
|
16
|
+
- Can easily generate OpenAPI spec based on your routes
|
|
17
17
|
- Native support for [Fern](https://github.com/fern-api/fern) to generate docs and SDKs (see example docs [here](https://remorses.docs.buildwithfern.com))
|
|
18
|
-
- Returns extended JSON via [`superjson`](https://github.com/flightcontrolhq/superjson) to encode types like `Map`, `BigInt` and `Set` (Spiceflow will add a field `__superjsonMeta` property to the JSON in case you use one of these types)
|
|
19
18
|
- Support for [Model Context Protocol](https://modelcontextprotocol.io/) to easily wire your app with LLMs
|
|
20
19
|
- Type safe RPC client generation
|
|
21
20
|
- Simple and intuitive API
|
package/dist/client/errors.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAIhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,OAAO,EAAE,eAAe,EAAE,CAAA;AA4G1B,UAAU,QAAQ;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,GAAG,CAAA;IACT,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,qBAAa,iBAAkB,SAAQ,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC;;CAwBzE;AAED,wBAAuB,iBAAiB,CACtC,QAAQ,EAAE,QAAQ,GACjB,cAAc,CAAC,QAAQ,CAAC,CAmB1B;AAqSD,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAIhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,OAAO,EAAE,eAAe,EAAE,CAAA;AA4G1B,UAAU,QAAQ;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,GAAG,CAAA;IACT,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,qBAAa,iBAAkB,SAAQ,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC;;CAwBzE;AAED,wBAAuB,iBAAiB,CACtC,QAAQ,EAAE,QAAQ,GACjB,cAAc,CAAC,QAAQ,CAAC,CAmB1B;AAqSD,eAAO,MAAM,qBAAqB,GAChC,KAAK,CAAC,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAEzD,QAAQ,MAAM,GAAG,GAAG,EACpB,SAAQ,eAAe,CAAC,MAAW,KAClC,eAAe,CAAC,MAAM,CAAC,GAAG,CAa5B,CAAA"}
|
package/dist/client/index.js
CHANGED
package/dist/client/types.js
CHANGED
package/dist/client/utils.js
CHANGED
package/dist/client.test.js
CHANGED
package/dist/context.js
CHANGED
package/dist/cors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../src/cors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C;;;GAGG;AACH,KAAK,WAAW,GAAG;IACjB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACzB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kEAAkE;IAClE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,+GAA+G;IAC/G,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../src/cors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C;;;GAGG;AACH,KAAK,WAAW,GAAG;IACjB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACzB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kEAAkE;IAClE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,+GAA+G;IAC/G,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,UAAU,WAAW,KAAG,iBAgH5C,CAAA"}
|
package/dist/cors.js
CHANGED
package/dist/cors.test.js
CHANGED
package/dist/error.js
CHANGED
package/dist/index.js
CHANGED
package/dist/mcp-transport.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
|
|
1
|
+
import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
|
|
2
2
|
import { JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Server transport for SSE: this will send messages over an SSE connection and receive messages from HTTP POST requests.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-transport.d.ts","sourceRoot":"","sources":["../src/mcp-transport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;
|
|
1
|
+
{"version":3,"file":"mcp-transport.d.ts","sourceRoot":"","sources":["../src/mcp-transport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAC9E,OAAO,EACL,cAAc,EAEf,MAAM,oCAAoC,CAAA;AAE3C;;;;GAIG;AAEH,qBAAa,2BAA4B,YAAW,SAAS;IAC3D,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,eAAe,CAAC,CAAyC;IACjE,QAAQ,CAAC,EAAE,QAAQ,CAAA;IAEnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAA;IAE7C;;OAEG;gBACS,QAAQ,EAAE,MAAM;IAK5B;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuC5B;;;;OAIG;IACG,iBAAiB,CACrB,GAAG,EAAE,OAAO,EACZ,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,QAAQ,CAAC;IAmBpB;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAalD;;;;OAIG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;CACF"}
|
package/dist/mcp-transport.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { JSONRPCMessageSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
-
import { randomUUID } from 'node:crypto';
|
|
3
2
|
/**
|
|
4
3
|
* Server transport for SSE: this will send messages over an SSE connection and receive messages from HTTP POST requests.
|
|
5
4
|
*
|
|
@@ -17,7 +16,7 @@ export class SSEServerTransportSpiceflow {
|
|
|
17
16
|
* Creates a new SSE server transport, which will direct the client to POST messages to the relative or absolute URL identified by `_endpoint`.
|
|
18
17
|
*/
|
|
19
18
|
constructor(endpoint) {
|
|
20
|
-
this._sessionId = randomUUID();
|
|
19
|
+
this._sessionId = crypto.randomUUID();
|
|
21
20
|
this._endpoint = endpoint;
|
|
22
21
|
}
|
|
23
22
|
/**
|
|
@@ -108,4 +107,3 @@ export class SSEServerTransportSpiceflow {
|
|
|
108
107
|
return this._sessionId;
|
|
109
108
|
}
|
|
110
109
|
}
|
|
111
|
-
//# sourceMappingURL=mcp-transport.js.map
|
package/dist/mcp.d.ts
CHANGED
|
@@ -41,7 +41,8 @@ export declare const mcp: <Path extends string = "/mcp">({ path, name, version,
|
|
|
41
41
|
params: { [Param in import("./types.js").GetPathParameter<Path> as Param extends `${string}?` ? never : Param]: string; } & { [Param_1 in import("./types.js").GetPathParameter<Path> as Param_1 extends `${infer OptionalParam}?` ? OptionalParam : never]?: string | undefined; } extends infer T ? { [K in keyof T]: ({ [Param in import("./types.js").GetPathParameter<Path> as Param extends `${string}?` ? never : Param]: string; } & { [Param_1 in import("./types.js").GetPathParameter<Path> as Param_1 extends `${infer OptionalParam}?` ? OptionalParam : never]?: string | undefined; })[K]; } : never;
|
|
42
42
|
query: unknown;
|
|
43
43
|
response: {
|
|
44
|
-
|
|
44
|
+
[x: number]: any;
|
|
45
|
+
200: any;
|
|
45
46
|
};
|
|
46
47
|
};
|
|
47
48
|
}>>;
|
package/dist/mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAUA,OAAO,EAAe,SAAS,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAUA,OAAO,EAAe,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAsRvD,eAAO,MAAM,GAAG,GAAI,IAAI,SAAS,MAAM,GAAG,MAAM,EAAE;;;;CAI5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDL,CAAA"}
|
package/dist/mcp.js
CHANGED
|
@@ -67,10 +67,10 @@ function createMCPServer({ name = 'spiceflow', version = '1.0.0', openapi, app,
|
|
|
67
67
|
resources: {},
|
|
68
68
|
},
|
|
69
69
|
});
|
|
70
|
+
const basePath = app.topLevelApp.prefix || '';
|
|
70
71
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
.flatMap(([path, pathObj]) => Object.entries(pathObj || {})
|
|
72
|
+
const paths = Object.entries(openapi.paths).filter(([path]) => !['/mcp-openapi', '/mcp', '/mcp/message'].includes(path.replace(basePath, '')));
|
|
73
|
+
const tools = paths.flatMap(([path, pathObj]) => Object.entries(pathObj || {})
|
|
74
74
|
.filter(([method]) => method !== 'parameters')
|
|
75
75
|
.map(([method, operation]) => {
|
|
76
76
|
const properties = {};
|
|
@@ -118,7 +118,8 @@ function createMCPServer({ name = 'spiceflow', version = '1.0.0', openapi, app,
|
|
|
118
118
|
path = path.replace(`{${key}}`, encodeURIComponent(String(value)));
|
|
119
119
|
});
|
|
120
120
|
}
|
|
121
|
-
const
|
|
121
|
+
const basePath = app.topLevelApp.prefix || '';
|
|
122
|
+
const url = new URL(`http://localhost${basePath}${path}`);
|
|
122
123
|
if (query) {
|
|
123
124
|
Object.entries(query).forEach(([key, value]) => {
|
|
124
125
|
url.searchParams.set(key, String(value));
|
|
@@ -226,10 +227,11 @@ export const mcp = ({ path = '/mcp', name = 'spiceflow', version = '1.0.0', } =
|
|
|
226
227
|
return 'ok';
|
|
227
228
|
})
|
|
228
229
|
.get(path, async ({ request }) => {
|
|
229
|
-
const
|
|
230
|
+
const basePath = app.topLevelApp.prefix || '';
|
|
231
|
+
const transport = new SSEServerTransportSpiceflow(basePath + messagePath);
|
|
230
232
|
transports.set(transport.sessionId, transport);
|
|
231
233
|
const openapi = await app
|
|
232
|
-
.topLevelApp.handle(new Request(
|
|
234
|
+
.topLevelApp.handle(new Request(`http://localhost${basePath}/mcp-openapi`))
|
|
233
235
|
.then((r) => r.json());
|
|
234
236
|
const { server } = createMCPServer({
|
|
235
237
|
name,
|
|
@@ -265,4 +267,3 @@ function getPathFromToolName(toolName) {
|
|
|
265
267
|
const path = parts.slice(1).join(' ');
|
|
266
268
|
return { path, method };
|
|
267
269
|
}
|
|
268
|
-
//# sourceMappingURL=mcp.js.map
|
package/dist/mcp.test.js
CHANGED
|
@@ -16,7 +16,7 @@ describe('MCP Plugin', () => {
|
|
|
16
16
|
let transport;
|
|
17
17
|
beforeAll(async () => {
|
|
18
18
|
port = await getAvailablePort();
|
|
19
|
-
app = new Spiceflow()
|
|
19
|
+
app = new Spiceflow({ basePath: '/api' })
|
|
20
20
|
.use(mcp({ path: '/mcp' }))
|
|
21
21
|
.get('/goSomething', () => 'hi')
|
|
22
22
|
.get('/users', () => ({ users: [{ id: 1, name: 'John' }] }))
|
|
@@ -36,7 +36,7 @@ describe('MCP Plugin', () => {
|
|
|
36
36
|
.required(),
|
|
37
37
|
});
|
|
38
38
|
await app.listen(port);
|
|
39
|
-
transport = new SSEClientTransport(new URL(`http://localhost:${port}/mcp`));
|
|
39
|
+
transport = new SSEClientTransport(new URL(`http://localhost:${port}/api/mcp`));
|
|
40
40
|
client = new Client({
|
|
41
41
|
name: 'example-client',
|
|
42
42
|
version: '1.0.0',
|
|
@@ -53,23 +53,23 @@ describe('MCP Plugin', () => {
|
|
|
53
53
|
{
|
|
54
54
|
"tools": [
|
|
55
55
|
{
|
|
56
|
-
"description": "GET /goSomething",
|
|
56
|
+
"description": "GET /api/goSomething",
|
|
57
57
|
"inputSchema": {
|
|
58
58
|
"properties": {},
|
|
59
59
|
"type": "object",
|
|
60
60
|
},
|
|
61
|
-
"name": "GET /goSomething",
|
|
61
|
+
"name": "GET /api/goSomething",
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
|
-
"description": "GET /users",
|
|
64
|
+
"description": "GET /api/users",
|
|
65
65
|
"inputSchema": {
|
|
66
66
|
"properties": {},
|
|
67
67
|
"type": "object",
|
|
68
68
|
},
|
|
69
|
-
"name": "GET /users",
|
|
69
|
+
"name": "GET /api/users",
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
|
-
"description": "GET /somethingElse/{id}",
|
|
72
|
+
"description": "GET /api/somethingElse/{id}",
|
|
73
73
|
"inputSchema": {
|
|
74
74
|
"properties": {
|
|
75
75
|
"params": {
|
|
@@ -86,10 +86,10 @@ describe('MCP Plugin', () => {
|
|
|
86
86
|
},
|
|
87
87
|
"type": "object",
|
|
88
88
|
},
|
|
89
|
-
"name": "GET /somethingElse/{id}",
|
|
89
|
+
"name": "GET /api/somethingElse/{id}",
|
|
90
90
|
},
|
|
91
91
|
{
|
|
92
|
-
"description": "GET /search",
|
|
92
|
+
"description": "GET /api/search",
|
|
93
93
|
"inputSchema": {
|
|
94
94
|
"properties": {
|
|
95
95
|
"query": {
|
|
@@ -110,7 +110,7 @@ describe('MCP Plugin', () => {
|
|
|
110
110
|
},
|
|
111
111
|
"type": "object",
|
|
112
112
|
},
|
|
113
|
-
"name": "GET /search",
|
|
113
|
+
"name": "GET /api/search",
|
|
114
114
|
},
|
|
115
115
|
],
|
|
116
116
|
}
|
|
@@ -145,20 +145,30 @@ describe('MCP Plugin', () => {
|
|
|
145
145
|
[
|
|
146
146
|
{
|
|
147
147
|
"mimeType": "application/json",
|
|
148
|
-
"name": "GET /goSomething",
|
|
149
|
-
"uri": "http://localhost/goSomething",
|
|
148
|
+
"name": "GET /api/goSomething",
|
|
149
|
+
"uri": "http://localhost/api/goSomething",
|
|
150
150
|
},
|
|
151
151
|
{
|
|
152
152
|
"mimeType": "application/json",
|
|
153
|
-
"name": "GET /users",
|
|
154
|
-
"uri": "http://localhost/users",
|
|
153
|
+
"name": "GET /api/users",
|
|
154
|
+
"uri": "http://localhost/api/users",
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"mimeType": "application/json",
|
|
158
|
+
"name": "GET /api/mcp",
|
|
159
|
+
"uri": "http://localhost/api/mcp",
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"mimeType": "application/json",
|
|
163
|
+
"name": "GET /api/mcp-openapi",
|
|
164
|
+
"uri": "http://localhost/api/mcp-openapi",
|
|
155
165
|
},
|
|
156
166
|
]
|
|
157
167
|
`);
|
|
158
168
|
const resourceContent = await client.request({
|
|
159
169
|
method: 'resources/read',
|
|
160
170
|
params: {
|
|
161
|
-
uri: `http://localhost:${port}/users`,
|
|
171
|
+
uri: `http://localhost:${port}/api/users`,
|
|
162
172
|
},
|
|
163
173
|
}, ReadResourceResultSchema);
|
|
164
174
|
expect(resourceContent).toBeDefined();
|
|
@@ -167,7 +177,7 @@ describe('MCP Plugin', () => {
|
|
|
167
177
|
{
|
|
168
178
|
"mimeType": "application/json",
|
|
169
179
|
"text": "{"users":[{"id":1,"name":"John"}]}",
|
|
170
|
-
"uri": "http://localhost:4000/users",
|
|
180
|
+
"uri": "http://localhost:4000/api/users",
|
|
171
181
|
},
|
|
172
182
|
]
|
|
173
183
|
`);
|
|
@@ -205,4 +215,3 @@ async function getAvailablePort(startPort = 4000, maxRetries = 10) {
|
|
|
205
215
|
checkPort();
|
|
206
216
|
});
|
|
207
217
|
}
|
|
208
|
-
//# sourceMappingURL=mcp.test.js.map
|
package/dist/middleware.test.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Spiceflow } from './spiceflow.js';
|
|
1
|
+
import { expect, test } from 'vitest';
|
|
3
2
|
import { z } from 'zod';
|
|
3
|
+
import { Spiceflow } from './spiceflow.js';
|
|
4
4
|
test('middleware with next changes the response', async () => {
|
|
5
5
|
const res = await new Spiceflow()
|
|
6
6
|
.use(async ({ request }, next) => {
|
|
@@ -334,4 +334,3 @@ test('each middleware and route is called exactly once if an error is thrown', a
|
|
|
334
334
|
route: 1
|
|
335
335
|
});
|
|
336
336
|
});
|
|
337
|
-
//# sourceMappingURL=middleware.test.js.map
|
package/dist/openapi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AA8V9C,eAAO,MAAM,OAAO,GAAI,IAAI,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AA8V9C,eAAO,MAAM,OAAO,GAAI,IAAI,SAAS,MAAM,GAAG,UAAU,EAAE,0BAGvD;IACD,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,GAAG,IAAI,CACN,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EACzB,yCAAyC,GACzC,qCAAqC,CACxC,GAAG;IACA,uBAAuB,CAAC,EAAE,KAAK,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,CAAC,CAAA;IACF,gBAAgB,CAAC,EAAE;QACjB,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAA;YACd,OAAO,EAAE,MAAM,CAAA;YACf,MAAM,EAAE,MAAM,EAAE,CAAA;SACjB,CAAA;KACF,CAAA;CACG;;;;;;;;;;;;;;;;;;;GAkFP,CAAA"}
|
package/dist/openapi.js
CHANGED
package/dist/openapi.test.js
CHANGED
package/dist/simple.benchmark.js
CHANGED
package/dist/spiceflow.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ComposeSpiceflowResponse, ContentType, CreateClient, DefinitionBase, ErrorHandler, HTTPMethod, InlineHandler, InputSchema, IsAny, JoinPath, LocalHook, MaybeArray, MetadataBase, MiddlewareHandler, Reconcile, ResolvePath, RouteBase, RouteSchema, SingletonBase, UnwrapRoute } from './types.js';
|
|
2
2
|
import { ValidateFunction } from 'ajv';
|
|
3
|
+
import type { IncomingMessage, ServerResponse } from 'http';
|
|
3
4
|
import { ZodType } from 'zod';
|
|
4
5
|
export type InternalRoute = {
|
|
5
6
|
method: HTTPMethod;
|
|
@@ -142,7 +143,8 @@ export declare class Spiceflow<const in out BasePath extends string = '', const
|
|
|
142
143
|
private getAppAndParents;
|
|
143
144
|
private getAppsInScope;
|
|
144
145
|
listen(port: number, hostname?: string): Promise<any>;
|
|
145
|
-
listenNode(port: number, hostname?: string): Promise<import("http").Server<typeof
|
|
146
|
+
listenNode(port: number, hostname?: string): Promise<import("http").Server<typeof IncomingMessage, typeof ServerResponse>>;
|
|
147
|
+
handleNode(req: IncomingMessage, res: ServerResponse, hostname?: string): Promise<void>;
|
|
146
148
|
private handleStream;
|
|
147
149
|
}
|
|
148
150
|
declare const METHODS: readonly ["ALL", "CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT", "TRACE"];
|
package/dist/spiceflow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spiceflow.d.ts","sourceRoot":"","sources":["../src/spiceflow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spiceflow.d.ts","sourceRoot":"","sources":["../src/spiceflow.ts"],"names":[],"mappings":"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"}
|
package/dist/spiceflow.js
CHANGED
|
@@ -404,58 +404,9 @@ export class Spiceflow {
|
|
|
404
404
|
return this.listenNode(port, hostname);
|
|
405
405
|
}
|
|
406
406
|
async listenNode(port, hostname = '0.0.0.0') {
|
|
407
|
-
const { Readable } = await import('stream');
|
|
408
407
|
const { createServer } = await import('http');
|
|
409
|
-
const server = createServer(
|
|
410
|
-
|
|
411
|
-
const { signal } = abortController;
|
|
412
|
-
req.on('error', (err) => {
|
|
413
|
-
abortController.abort();
|
|
414
|
-
});
|
|
415
|
-
req.on('aborted', (err) => {
|
|
416
|
-
abortController.abort();
|
|
417
|
-
});
|
|
418
|
-
// this is how you see when a request is aborted in Node.js, laughable
|
|
419
|
-
res.on('close', function () {
|
|
420
|
-
let aborted = !res.writableFinished;
|
|
421
|
-
if (aborted) {
|
|
422
|
-
abortController.abort();
|
|
423
|
-
}
|
|
424
|
-
});
|
|
425
|
-
const url = new URL(req.url || '', `http://${req.headers.host || hostname || 'localhost'}`);
|
|
426
|
-
const typedRequest = new SpiceflowRequest(url.toString(), {
|
|
427
|
-
method: req.method,
|
|
428
|
-
headers: req.headers,
|
|
429
|
-
body: req.method !== 'GET' && req.method !== 'HEAD'
|
|
430
|
-
? Readable.toWeb(req)
|
|
431
|
-
: null,
|
|
432
|
-
signal,
|
|
433
|
-
// @ts-ignore
|
|
434
|
-
duplex: 'half',
|
|
435
|
-
// keepalive: true,
|
|
436
|
-
});
|
|
437
|
-
try {
|
|
438
|
-
const response = await this.handle(typedRequest);
|
|
439
|
-
res.statusCode = response.status;
|
|
440
|
-
for (const [key, value] of response.headers) {
|
|
441
|
-
res.setHeader(key, value);
|
|
442
|
-
}
|
|
443
|
-
if (response.body) {
|
|
444
|
-
const reader = response.body.getReader();
|
|
445
|
-
while (true) {
|
|
446
|
-
const { done, value } = await reader.read();
|
|
447
|
-
if (done)
|
|
448
|
-
break;
|
|
449
|
-
res.write(value);
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
res.end();
|
|
453
|
-
}
|
|
454
|
-
catch (error) {
|
|
455
|
-
console.error('Error handling request:', error);
|
|
456
|
-
res.statusCode = 500;
|
|
457
|
-
res.end(superjsonSerialize({ message: 'Internal Server Error' }));
|
|
458
|
-
}
|
|
408
|
+
const server = createServer((req, res) => {
|
|
409
|
+
return this.handleNode(req, res, hostname);
|
|
459
410
|
});
|
|
460
411
|
await new Promise((resolve, reject) => {
|
|
461
412
|
server.listen(port, hostname, () => {
|
|
@@ -465,6 +416,53 @@ export class Spiceflow {
|
|
|
465
416
|
});
|
|
466
417
|
return server;
|
|
467
418
|
}
|
|
419
|
+
async handleNode(req, res, hostname = '0.0.0.0') {
|
|
420
|
+
const { Readable } = await import('stream');
|
|
421
|
+
const abortController = new AbortController();
|
|
422
|
+
const { signal } = abortController;
|
|
423
|
+
req.on('error', (err) => {
|
|
424
|
+
abortController.abort();
|
|
425
|
+
});
|
|
426
|
+
req.on('aborted', (err) => {
|
|
427
|
+
abortController.abort();
|
|
428
|
+
});
|
|
429
|
+
res.on('close', function () {
|
|
430
|
+
let aborted = !res.writableFinished;
|
|
431
|
+
if (aborted) {
|
|
432
|
+
abortController.abort();
|
|
433
|
+
}
|
|
434
|
+
});
|
|
435
|
+
const url = new URL(req.url || '', `http://${req.headers.host || hostname || 'localhost'}`);
|
|
436
|
+
const typedRequest = new SpiceflowRequest(url.toString(), {
|
|
437
|
+
method: req.method,
|
|
438
|
+
headers: req.headers,
|
|
439
|
+
body: req.method !== 'GET' && req.method !== 'HEAD'
|
|
440
|
+
? Readable.toWeb(req)
|
|
441
|
+
: null,
|
|
442
|
+
signal,
|
|
443
|
+
// @ts-ignore
|
|
444
|
+
duplex: 'half',
|
|
445
|
+
});
|
|
446
|
+
try {
|
|
447
|
+
const response = await this.handle(typedRequest);
|
|
448
|
+
res.writeHead(response.status, Object.fromEntries(response.headers.entries()));
|
|
449
|
+
if (response.body) {
|
|
450
|
+
const reader = response.body.getReader();
|
|
451
|
+
while (true) {
|
|
452
|
+
const { done, value } = await reader.read();
|
|
453
|
+
if (done)
|
|
454
|
+
break;
|
|
455
|
+
res.write(value);
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
res.end();
|
|
459
|
+
}
|
|
460
|
+
catch (error) {
|
|
461
|
+
console.error('Error handling request:', error);
|
|
462
|
+
res.statusCode = 500;
|
|
463
|
+
res.end(superjsonSerialize({ message: 'Internal Server Error' }));
|
|
464
|
+
}
|
|
465
|
+
}
|
|
468
466
|
async handleStream({ onErrorHandlers, generator, request, route, }) {
|
|
469
467
|
let init = generator.next();
|
|
470
468
|
if (init instanceof Promise)
|
|
@@ -746,4 +744,3 @@ function parseQuery(queryString) {
|
|
|
746
744
|
export function cloneDeep(x) {
|
|
747
745
|
return lodashCloneDeep(x);
|
|
748
746
|
}
|
|
749
|
-
//# sourceMappingURL=spiceflow.js.map
|
package/dist/spiceflow.test.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { test, describe, expect } from 'vitest';
|
|
2
|
-
import { Type } from '@sinclair/typebox';
|
|
3
2
|
import { bfs, cloneDeep, Spiceflow } from './spiceflow.js';
|
|
4
3
|
import { z } from 'zod';
|
|
5
4
|
import { createSpiceflowClient } from './client/index.js';
|
|
@@ -340,8 +339,8 @@ test('validate body works, request success', async () => {
|
|
|
340
339
|
expect(body).toEqual({ name: 'John' });
|
|
341
340
|
return 'ok';
|
|
342
341
|
}, {
|
|
343
|
-
body:
|
|
344
|
-
name:
|
|
342
|
+
body: z.object({
|
|
343
|
+
name: z.string(),
|
|
345
344
|
}),
|
|
346
345
|
})
|
|
347
346
|
.handle(new Request('http://localhost/post', {
|
|
@@ -361,9 +360,9 @@ test('validate body works, request fails', async () => {
|
|
|
361
360
|
let body = await request.json();
|
|
362
361
|
expect(body).toEqual({ name: 'John' });
|
|
363
362
|
}, {
|
|
364
|
-
body:
|
|
365
|
-
name:
|
|
366
|
-
requiredField:
|
|
363
|
+
body: z.object({
|
|
364
|
+
name: z.string(),
|
|
365
|
+
requiredField: z.string(),
|
|
367
366
|
}),
|
|
368
367
|
})
|
|
369
368
|
.handle(new Request('http://localhost/post', {
|
|
@@ -664,4 +663,3 @@ test('can pass additional props to body schema', async () => {
|
|
|
664
663
|
additionalProp: 'extra data',
|
|
665
664
|
});
|
|
666
665
|
});
|
|
667
|
-
//# sourceMappingURL=spiceflow.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-node.d.ts","sourceRoot":"","sources":["../src/static-node.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAkC,MAAM,aAAa,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"static-node.d.ts","sourceRoot":"","sources":["../src/static-node.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAkC,MAAM,aAAa,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,eAAO,MAAM,WAAW,GAAI,SAAS,kBAAkB,KAAG,iBAgCzD,CAAA"}
|
package/dist/static-node.js
CHANGED
package/dist/static.benchmark.js
CHANGED
package/dist/static.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../src/static.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAG9C,KAAK,GAAG,GAAG,EAAE,CAAA;AACb,KAAK,OAAO,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,EAAE,CAAA;AACtC,KAAK,IAAI,GAAG,GAAG,CAAA;AAEf,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI;IACpD,IAAI,CAAC,EAAE,MAAM,CAAA;IAGb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACnE,CAAA;AAKD;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../src/static.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAG9C,KAAK,GAAG,GAAG,EAAE,CAAA;AACb,KAAK,OAAO,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,EAAE,CAAA;AACtC,KAAK,IAAI,GAAG,GAAG,CAAA;AAEf,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI;IACpD,IAAI,CAAC,EAAE,MAAM,CAAA;IAGb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACnE,CAAA;AAKD;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,GAAG,GAAG,GAAG,EAC7C,SAAS,kBAAkB,CAAC,CAAC,CAAC,GAAG;IAC/B,UAAU,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KACV,IAAI,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAA;IAC7D,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACtC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;CAC7E,KACA,iBAuEF,CAAA;AA4DD,eAAO,MAAM,WAAW,GACtB,UAAU,MAAM,EAEhB,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC9B,MAAM,GAAG,SAcX,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,KAAG,MAAM,GAAG,SAMxD,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,SAAS,eAAe,KAAG,MAAM,GAAG,SAkB/D,CAAA;AAED,eAAO,MAAM,iCAAiC,GAC5C,SAAS,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,KAChD,MAAM,GAAG,SAsBX,CAAA"}
|
package/dist/static.js
CHANGED
package/dist/stream.test.js
CHANGED
package/dist/types.js
CHANGED
package/dist/types.test.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Spiceflow } from './spiceflow.js';
|
|
1
|
+
import { expect, test } from 'vitest';
|
|
3
2
|
import { createSpiceflowClient } from './client/index.js';
|
|
3
|
+
import { Spiceflow } from './spiceflow.js';
|
|
4
4
|
test('`use` on non Spiceflow return', async () => {
|
|
5
5
|
function nonSpiceflowReturn() {
|
|
6
6
|
return new Spiceflow();
|
|
@@ -47,4 +47,3 @@ test('async generator type with client', async () => {
|
|
|
47
47
|
expect(typeof item.message).toBe('string');
|
|
48
48
|
}
|
|
49
49
|
});
|
|
50
|
-
//# sourceMappingURL=types.test.js.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,GAAI,OAAO,GAAG,QAOpC,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,MAAM,MAAM,EAAE,UAAU,WAAW,YACN,CAAA;AAEjD,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CASpE;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,oBAE/B;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DZ,CAAA;AAEV,eAAO,MAAM,iBAAiB,EAEzB,GACF,CAAC,IAAI,MAAM,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAC1C,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAA;AACxC,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAA;AAExD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GACnB,KAAK,MAAM,EACX,SAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAS,aACR,CAAA;AAEnC,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAA;AAEtC,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,QAAQ,CAoB1D"}
|