create-stitchkit 0.6.9 → 0.6.11
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/CHANGELOG.md
CHANGED
|
@@ -12,6 +12,24 @@ step is overwritten by the next release.
|
|
|
12
12
|
|
|
13
13
|
## [Unreleased]
|
|
14
14
|
|
|
15
|
+
## [0.6.11] - 2026-10-06
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- Generated projects track Stitchkit `^0.105.1`; the template lockfile resolves 0.105.1.
|
|
20
|
+
|
|
21
|
+
## [0.6.10] - 2026-10-05
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- Generated projects track Stitchkit `^0.105.0`. The template's query-client test
|
|
26
|
+
builds its `ApiError` values with named options (`{ status: 500 }`), which 0.105
|
|
27
|
+
requires; a project that upgrades its own Stitchkit past 0.104 migrates the same
|
|
28
|
+
way (see Stitchkit's upgrading guide).
|
|
29
|
+
- The Telegram-bot template's journal no longer passes a token pattern: with
|
|
30
|
+
Stitchkit 0.101 every logger masks a bot token by shape and keeps the bot's
|
|
31
|
+
id (`123456:[redacted]`), and an error's own fields reach the line.
|
|
32
|
+
|
|
15
33
|
## [0.6.9] — 2026-09-29
|
|
16
34
|
|
|
17
35
|
### Changed
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-stitchkit",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.11",
|
|
4
4
|
"description": "Create a production-shaped Stitchkit application",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Max Listov <maxlistov@gmail.com>",
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"@types/react": "^19.3.0",
|
|
85
85
|
"ai": "^7.0.111",
|
|
86
86
|
"react": "^19.3.0",
|
|
87
|
-
"stitchkit": "0.
|
|
87
|
+
"stitchkit": "0.105.1",
|
|
88
88
|
"typescript": "^7.0.2"
|
|
89
89
|
},
|
|
90
90
|
"engines": {
|
package/template/bun.lock
CHANGED
|
@@ -145,7 +145,7 @@
|
|
|
145
145
|
"zod": "4.6.5",
|
|
146
146
|
},
|
|
147
147
|
"catalog": {
|
|
148
|
-
"stitchkit": "^0.
|
|
148
|
+
"stitchkit": "^0.105.1",
|
|
149
149
|
},
|
|
150
150
|
"packages": {
|
|
151
151
|
"@ai-sdk/gateway": ["@ai-sdk/gateway@4.0.89", "", { "dependencies": { "@ai-sdk/provider": "4.0.17", "@ai-sdk/provider-utils": "5.0.45", "@vercel/oidc": "3.2.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-n0Q88UUASYQBGK3Ogs9pCe8h3ZXeTHFSuGOLBJAyH73MVGNKUv9w8EJX2f340WUF3eDWWOV305gO7YBpSCPblA=="],
|
|
@@ -1128,7 +1128,7 @@
|
|
|
1128
1128
|
|
|
1129
1129
|
"std-env": ["std-env@3.10.0", "", {}, "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg=="],
|
|
1130
1130
|
|
|
1131
|
-
"stitchkit": ["stitchkit@0.
|
|
1131
|
+
"stitchkit": ["stitchkit@0.105.1", "", { "dependencies": { "ky": "^2.1.0" }, "peerDependencies": { "@modelcontextprotocol/ext-apps": "^1.7.2 || ^2.0.0", "@modelcontextprotocol/server": "^2.0.0", "@openrouter/ai-sdk-provider": "^3.1.0", "@opentelemetry/api": "^1.9.0", "@socket.io/bun-engine": "^0.1.2", "@socket.io/component-emitter": "^3.1.2", "@tanstack/react-query": ">=5", "@types/bun": "^1.4.2", "ai": "^7.0.107", "google-auth-library": "^11.1.0", "grammy": "^1.46.0", "maxmind": "^5.0.7", "react": ">=18", "react-query-kit": "^3.3.3", "socket.io": "^4.8.3", "socket.io-client": "^4.8.3", "srvx": "^0.12.5 || ^1.0.5", "zod": "^4.6.5" }, "optionalPeers": ["@modelcontextprotocol/ext-apps", "@modelcontextprotocol/server", "@openrouter/ai-sdk-provider", "@opentelemetry/api", "@socket.io/bun-engine", "@socket.io/component-emitter", "@tanstack/react-query", "@types/bun", "ai", "google-auth-library", "grammy", "maxmind", "react", "react-query-kit", "socket.io", "socket.io-client", "srvx"], "bin": { "stitchkit": "dist/entrypoints/bin/upgrade-cli.js" } }, "sha512-aclbv0bLekzEHC3eRD5EcCi8eUwsfg7M6v2wZH4sZk4uem1ACBzpxDWcz7qeWL8vWOxU7gF97QdIWGBP6s5RdA=="],
|
|
1132
1132
|
|
|
1133
1133
|
"stringify-entities": ["stringify-entities@4.0.4", "", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="],
|
|
1134
1134
|
|
package/template/package.json
CHANGED
|
@@ -28,7 +28,7 @@ describe('query dehydration policy', () => {
|
|
|
28
28
|
const defaults = getQueryClient().getDefaultOptions();
|
|
29
29
|
const retry = defaults.queries?.retry;
|
|
30
30
|
if (typeof retry !== 'function') throw new Error('query retry policy is required');
|
|
31
|
-
const serverFailure = new ApiError('INTERNAL_SERVER_ERROR', 500);
|
|
31
|
+
const serverFailure = new ApiError('INTERNAL_SERVER_ERROR', { status: 500 });
|
|
32
32
|
expect(retry(0, serverFailure)).toBe(true);
|
|
33
33
|
expect(retry(1, serverFailure)).toBe(false);
|
|
34
34
|
expect(defaults.mutations?.retry).toBe(false);
|
|
@@ -39,7 +39,7 @@ describe('query dehydration policy', () => {
|
|
|
39
39
|
const retry = defaults.queries?.retry;
|
|
40
40
|
if (typeof retry !== 'function') throw new Error('query retry policy is required');
|
|
41
41
|
for (const code of ['UNAUTHORIZED', 'FORBIDDEN', 'VALIDATION_ERROR']) {
|
|
42
|
-
expect(retry(0, new ApiError(code, 401))).toBe(false);
|
|
42
|
+
expect(retry(0, new ApiError(code, { status: 401 }))).toBe(false);
|
|
43
43
|
}
|
|
44
44
|
});
|
|
45
45
|
});
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import { createJsonLogger } from 'stitchkit/observability';
|
|
2
|
-
import { TELEGRAM_BOT_TOKEN_PATTERN } from 'stitchkit/telegram';
|
|
3
2
|
import type { Env } from './env';
|
|
4
3
|
|
|
5
4
|
/**
|
|
6
5
|
* The process journal: one JSON line per event on standard output. An `Error`
|
|
7
|
-
* under any key keeps its name, message, stack and
|
|
8
|
-
* inside a URL or an error message is masked
|
|
9
|
-
* error — the one contract a supervisor reading
|
|
6
|
+
* under any key keeps its name, message, stack, cause and own fields, and a bot
|
|
7
|
+
* token inside a URL or an error message is masked to `<bot id>:[redacted]`. A
|
|
8
|
+
* line with `"level":50` is an error — the one contract a supervisor reading
|
|
9
|
+
* the journal relies on.
|
|
10
10
|
*/
|
|
11
11
|
export function createLog(env: Pick<Env, 'LOG_LEVEL'>) {
|
|
12
|
-
return createJsonLogger({
|
|
13
|
-
level: env.LOG_LEVEL,
|
|
14
|
-
sensitiveUrlPatterns: [TELEGRAM_BOT_TOKEN_PATTERN],
|
|
15
|
-
});
|
|
12
|
+
return createJsonLogger({ level: env.LOG_LEVEL });
|
|
16
13
|
}
|
|
17
14
|
|
|
18
15
|
export type Log = ReturnType<typeof createLog>;
|