stitchkit 0.2.0 → 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.
- package/README.md +11 -10
- package/dist/browser/client.d.ts.map +1 -1
- package/dist/browser/http.d.ts +5 -0
- package/dist/browser/http.d.ts.map +1 -1
- package/dist/browser/socket-io.d.ts +17 -0
- package/dist/browser/socket-io.d.ts.map +1 -1
- package/dist/cli.d.ts +23 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +21 -0
- package/dist/contract/define.d.ts +35 -2
- package/dist/contract/define.d.ts.map +1 -1
- package/dist/contract/index.d.ts +1 -1
- package/dist/contract/index.d.ts.map +1 -1
- package/dist/contract/index.js +2 -1
- package/dist/index-0ed3bx43.js +33 -0
- package/dist/index-0ma1eqv4.js +1007 -0
- package/dist/index-1cf8jkhf.js +219 -0
- package/dist/index-37x76zdn.js +4 -0
- package/dist/{index-v2z2v3mq.js → index-3qmtdfpa.js} +304 -62
- package/dist/index-48ffdxgk.js +6 -0
- package/dist/{index-5sxnvwb1.js → index-78q1qm7v.js} +6 -3
- package/dist/{index-kckky6zw.js → index-afzt3nmx.js} +1 -1
- package/dist/{index-n7bmdwmz.js → index-d4rwrjbc.js} +8 -4
- package/dist/index-kzfs85xp.js +9 -0
- package/dist/index-mwmpw6j1.js +60 -0
- package/dist/{index-a35v22fh.js → index-vhdvv00d.js} +13 -5
- package/dist/index-x3fcszf8.js +8 -0
- package/dist/index.js +17 -4
- package/dist/internal/errors.d.ts +13 -1
- package/dist/internal/errors.d.ts.map +1 -1
- package/dist/internal/http-input.d.ts +13 -0
- package/dist/internal/http-input.d.ts.map +1 -0
- package/dist/internal/safe-json.d.ts +19 -0
- package/dist/internal/safe-json.d.ts.map +1 -0
- package/dist/internal/secure-fetch.d.ts +27 -0
- package/dist/internal/secure-fetch.d.ts.map +1 -0
- package/dist/internal/within-dir.d.ts +7 -0
- package/dist/internal/within-dir.d.ts.map +1 -0
- package/dist/node.d.ts +10 -1
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +41 -7
- package/dist/observability/audit.d.ts.map +1 -1
- package/dist/observability/context.d.ts +9 -1
- package/dist/observability/context.d.ts.map +1 -1
- package/dist/observability/event.d.ts +4 -0
- package/dist/observability/event.d.ts.map +1 -1
- package/dist/observability/index.js +38 -15
- package/dist/observability/sanitize.d.ts.map +1 -1
- package/dist/react.js +2 -0
- package/dist/server/context.d.ts +3 -2
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/create.d.ts.map +1 -1
- package/dist/server/event-bus.d.ts +10 -1
- package/dist/server/event-bus.d.ts.map +1 -1
- package/dist/server/implement.d.ts.map +1 -1
- package/dist/server/index.d.ts +6 -3
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +203 -193
- package/dist/server/logger.d.ts +5 -4
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/middleware/auth.d.ts +41 -1
- package/dist/server/middleware/auth.d.ts.map +1 -1
- package/dist/server/middleware/cookies.d.ts.map +1 -1
- package/dist/server/middleware/cors.d.ts +7 -0
- package/dist/server/middleware/cors.d.ts.map +1 -1
- package/dist/server/middleware/pkce.d.ts +17 -0
- package/dist/server/middleware/pkce.d.ts.map +1 -0
- package/dist/server/multipart.d.ts +2 -1
- package/dist/server/multipart.d.ts.map +1 -1
- package/dist/server/node.d.ts +9 -0
- package/dist/server/node.d.ts.map +1 -1
- package/dist/server/openapi.d.ts +52 -0
- package/dist/server/openapi.d.ts.map +1 -0
- package/dist/server/rate-limit.d.ts +7 -2
- package/dist/server/rate-limit.d.ts.map +1 -1
- package/dist/server/request.d.ts +27 -4
- package/dist/server/request.d.ts.map +1 -1
- package/dist/server/router.d.ts +4 -2
- package/dist/server/router.d.ts.map +1 -1
- package/dist/server/socket-io.d.ts +60 -15
- package/dist/server/socket-io.d.ts.map +1 -1
- package/dist/server/stream.d.ts +3 -1
- package/dist/server/stream.d.ts.map +1 -1
- package/dist/server/types.d.ts +17 -1
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/websocket.d.ts +73 -0
- package/dist/server/websocket.d.ts.map +1 -0
- package/dist/tools/cli-args.d.ts +68 -0
- package/dist/tools/cli-args.d.ts.map +1 -0
- package/dist/tools/cli-format.d.ts +39 -0
- package/dist/tools/cli-format.d.ts.map +1 -0
- package/dist/tools/cli-wait.d.ts +45 -0
- package/dist/tools/cli-wait.d.ts.map +1 -0
- package/dist/tools/cli.d.ts +77 -0
- package/dist/tools/cli.d.ts.map +1 -0
- package/dist/tools/coerce.d.ts +8 -4
- package/dist/tools/coerce.d.ts.map +1 -1
- package/dist/tools/execute.d.ts +1 -1
- package/dist/tools/execute.d.ts.map +1 -1
- package/dist/tools/json-schema.d.ts +29 -4
- package/dist/tools/json-schema.d.ts.map +1 -1
- package/dist/tools/manifest.d.ts +4 -0
- package/dist/tools/manifest.d.ts.map +1 -1
- package/dist/tools/mcp-app.d.ts +59 -0
- package/dist/tools/mcp-app.d.ts.map +1 -0
- package/dist/tools/mcp-handler.d.ts +18 -0
- package/dist/tools/mcp-handler.d.ts.map +1 -1
- package/dist/tools/mcp.d.ts +9 -0
- package/dist/tools/mcp.d.ts.map +1 -1
- package/dist/tools/mount-download.d.ts +30 -0
- package/dist/tools/mount-download.d.ts.map +1 -0
- package/dist/tools/mount-upload.d.ts +19 -0
- package/dist/tools/mount-upload.d.ts.map +1 -0
- package/dist/tools/mount-wait.d.ts +36 -0
- package/dist/tools/mount-wait.d.ts.map +1 -0
- package/dist/tools/mount.d.ts +8 -4
- package/dist/tools/mount.d.ts.map +1 -1
- package/dist/tools/native-result.d.ts +17 -0
- package/dist/tools/native-result.d.ts.map +1 -0
- package/dist/tools/oauth-metadata.d.ts +28 -0
- package/dist/tools/oauth-metadata.d.ts.map +1 -0
- package/dist/tools/oauth-provider.d.ts +85 -0
- package/dist/tools/oauth-provider.d.ts.map +1 -0
- package/dist/tools/remote.d.ts +2 -2
- package/dist/tools/remote.d.ts.map +1 -1
- package/dist/tools/toolkit.d.ts +51 -0
- package/dist/tools/toolkit.d.ts.map +1 -0
- package/dist/tools/view-file.d.ts +12 -0
- package/dist/tools/view-file.d.ts.map +1 -1
- package/dist/tools/wait-core.d.ts +33 -0
- package/dist/tools/wait-core.d.ts.map +1 -0
- package/dist/tools.d.ts +13 -2
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +637 -424
- package/package.json +22 -9
- package/dist/index-ke4mx4ea.js +0 -38
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stitchkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Contract-first backend framework — one defineContract() into an HTTP API, MCP tools, AI-agent tools and a typed client. Bun and Node.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bun",
|
|
@@ -54,6 +54,10 @@
|
|
|
54
54
|
"types": "./dist/tools.d.ts",
|
|
55
55
|
"import": "./dist/tools.js"
|
|
56
56
|
},
|
|
57
|
+
"./cli": {
|
|
58
|
+
"types": "./dist/cli.d.ts",
|
|
59
|
+
"import": "./dist/cli.js"
|
|
60
|
+
},
|
|
57
61
|
"./contract": {
|
|
58
62
|
"types": "./dist/contract/index.d.ts",
|
|
59
63
|
"import": "./dist/contract/index.js"
|
|
@@ -76,15 +80,18 @@
|
|
|
76
80
|
},
|
|
77
81
|
"scripts": {
|
|
78
82
|
"check": "bun x tsc --noEmit",
|
|
79
|
-
"build:js": "bun build src/index.ts src/react.ts src/tools.ts src/contract/index.ts src/server/index.ts src/observability/index.ts src/node.ts --outdir dist --target node --packages external --splitting --root src",
|
|
83
|
+
"build:js": "bun build src/index.ts src/react.ts src/tools.ts src/cli.ts src/contract/index.ts src/server/index.ts src/observability/index.ts src/node.ts --outdir dist --target node --packages external --splitting --root src",
|
|
80
84
|
"build:types": "bun x tsc -p tsconfig.build.json --emitDeclarationOnly",
|
|
81
85
|
"build": "rm -rf dist && bun run build:js && bun run build:types",
|
|
82
86
|
"dev": "bun run build:js -- --watch",
|
|
83
87
|
"prepublishOnly": "cp ../../README.md ./README.md && bun run build",
|
|
84
|
-
"test": "bun test"
|
|
88
|
+
"test": "bun test",
|
|
89
|
+
"smoke:node": "node scripts/node-smoke.mjs"
|
|
85
90
|
},
|
|
86
91
|
"peerDependencies": {
|
|
92
|
+
"@modelcontextprotocol/ext-apps": "^1.7.2",
|
|
87
93
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
94
|
+
"@types/bun": "^1.3.14",
|
|
88
95
|
"@socket.io/bun-engine": "^0.1.1",
|
|
89
96
|
"@socket.io/component-emitter": "^3.1.2",
|
|
90
97
|
"@tanstack/react-query": ">=5",
|
|
@@ -97,6 +104,12 @@
|
|
|
97
104
|
"zod": "^4.4.3"
|
|
98
105
|
},
|
|
99
106
|
"peerDependenciesMeta": {
|
|
107
|
+
"@modelcontextprotocol/ext-apps": {
|
|
108
|
+
"optional": true
|
|
109
|
+
},
|
|
110
|
+
"@types/bun": {
|
|
111
|
+
"optional": true
|
|
112
|
+
},
|
|
100
113
|
"@modelcontextprotocol/sdk": {
|
|
101
114
|
"optional": true
|
|
102
115
|
},
|
|
@@ -135,16 +148,16 @@
|
|
|
135
148
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
136
149
|
"@socket.io/bun-engine": "^0.1.1",
|
|
137
150
|
"@socket.io/component-emitter": "^3.1.2",
|
|
138
|
-
"@tanstack/react-query": "5.
|
|
151
|
+
"@tanstack/react-query": "5.101.0",
|
|
139
152
|
"@types/bun": "^1.3.14",
|
|
140
153
|
"@types/json-schema": "^7.0.15",
|
|
141
|
-
"@types/react": "^19.2.
|
|
142
|
-
"ai": "^6.0.
|
|
143
|
-
"react": "^19.2.
|
|
144
|
-
"react-query-kit": "^3.3.
|
|
154
|
+
"@types/react": "^19.2.16",
|
|
155
|
+
"ai": "^6.0.196",
|
|
156
|
+
"react": "^19.2.7",
|
|
157
|
+
"react-query-kit": "^3.3.4",
|
|
145
158
|
"socket.io": "^4.8.3",
|
|
146
159
|
"socket.io-client": "^4.8.3",
|
|
147
|
-
"srvx": "^0.11.
|
|
160
|
+
"srvx": "^0.11.16",
|
|
148
161
|
"typescript": "^6",
|
|
149
162
|
"zod": "^4.4.3"
|
|
150
163
|
}
|
package/dist/index-ke4mx4ea.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
// src/server/request.ts
|
|
2
|
-
function generateTraceId() {
|
|
3
|
-
return Date.now().toString(36) + Math.random().toString(36).slice(2, 8);
|
|
4
|
-
}
|
|
5
|
-
function resolveTraceId(req) {
|
|
6
|
-
const header = req.headers.get("x-request-id") ?? req.headers.get("x-trace-id");
|
|
7
|
-
const trimmed = header?.trim();
|
|
8
|
-
if (trimmed && trimmed.length <= 128 && /^[\w.-]+$/.test(trimmed)) {
|
|
9
|
-
return trimmed;
|
|
10
|
-
}
|
|
11
|
-
return generateTraceId();
|
|
12
|
-
}
|
|
13
|
-
function extractIp(req) {
|
|
14
|
-
const forwarded = req.headers.get("x-forwarded-for");
|
|
15
|
-
if (forwarded)
|
|
16
|
-
return (forwarded.split(",")[0] ?? "").trim().replace("::ffff:", "");
|
|
17
|
-
const realIp = req.headers.get("x-real-ip");
|
|
18
|
-
if (realIp)
|
|
19
|
-
return realIp.trim().replace("::ffff:", "");
|
|
20
|
-
return "";
|
|
21
|
-
}
|
|
22
|
-
function getClientInfo(req) {
|
|
23
|
-
return {
|
|
24
|
-
ipAddress: extractIp(req) || undefined,
|
|
25
|
-
userAgent: req.headers.get("user-agent") ?? undefined
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
function parseQueryParams(url) {
|
|
29
|
-
const query = {};
|
|
30
|
-
for (const key of new Set(url.searchParams.keys())) {
|
|
31
|
-
const values = url.searchParams.getAll(key);
|
|
32
|
-
const [first] = values;
|
|
33
|
-
query[key] = values.length === 1 && first !== undefined ? first : values;
|
|
34
|
-
}
|
|
35
|
-
return query;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export { generateTraceId, resolveTraceId, extractIp, getClientInfo, parseQueryParams };
|