@beignet/next 0.0.52 → 0.0.53
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 +11 -0
- package/README.md +8 -2
- package/package.json +4 -4
- package/skills/routes-server/SKILL.md +8 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @beignet/next
|
|
2
2
|
|
|
3
|
+
## 0.0.53
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 6ef881c: Reject incompatible default route-binder inputs at compile time and classify
|
|
8
|
+
type-erased runtime mismatches as framework-owned validation errors. Generated
|
|
9
|
+
resource cursors now remain optional at the request boundary and normalize to
|
|
10
|
+
nullable repository pagination state inside the use case.
|
|
11
|
+
- ce6a5f6: Require patched Next.js and Nodemailer releases, and use them in generated apps and SMTP provider setup.
|
|
12
|
+
- @beignet/web@0.0.53
|
|
13
|
+
|
|
3
14
|
## 0.0.52
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -25,8 +25,8 @@ request/response conversion.
|
|
|
25
25
|
npm install @beignet/next @beignet/core next
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
Beignet supports the maintained Next.js release lines: Next.js 15.5.
|
|
29
|
-
newer within v15, and Next.js 16.
|
|
28
|
+
Beignet supports the maintained Next.js release lines: Next.js 15.5.24 or
|
|
29
|
+
newer within v15, and Next.js 16.3.3 or newer within v16. These floors follow
|
|
30
30
|
Next.js security releases; generated apps currently use Next.js 16.3.
|
|
31
31
|
|
|
32
32
|
### Optional add-ons
|
|
@@ -128,6 +128,12 @@ contract to a use case (`{ contract, useCase }`); the full
|
|
|
128
128
|
routes that own headers, streaming, or multi-status responses. Compose those
|
|
129
129
|
groups once in `server/routes.ts`:
|
|
130
130
|
|
|
131
|
+
The default binder passes through one request schema or merges object inputs
|
|
132
|
+
with path over body over query precedence. TypeScript rejects a default
|
|
133
|
+
binding whose inferred input does not satisfy the use case input; add an
|
|
134
|
+
explicit `input: (parts) => ...` mapper when the shapes differ or the use case
|
|
135
|
+
reads validated headers.
|
|
136
|
+
|
|
131
137
|
```typescript
|
|
132
138
|
// server/routes.ts
|
|
133
139
|
import { contractsFromRoutes, defineRoutes } from "@beignet/core/server";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beignet/next",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.53",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Next.js server-side handlers for Beignet",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -58,17 +58,17 @@
|
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
60
|
"@beignet/core": ">=0.0.3 <1.0.0",
|
|
61
|
-
"next": ">=15.5.
|
|
61
|
+
"next": ">=15.5.24 <16 || >=16.3.3 <17"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@beignet/web": "^0.0.
|
|
64
|
+
"@beignet/web": "^0.0.53",
|
|
65
65
|
"@standard-schema/spec": "^1.0.0"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@beignet/core": "*",
|
|
69
69
|
"@types/bun": "^1.4.0",
|
|
70
70
|
"@types/node": "^22.0.0",
|
|
71
|
-
"next": "^16.3.
|
|
71
|
+
"next": "^16.3.3",
|
|
72
72
|
"typescript": "^5.3.0",
|
|
73
73
|
"zod": "^4.0.0"
|
|
74
74
|
}
|
|
@@ -9,8 +9,8 @@ Use this skill when working in a Next.js app that depends on `@beignet/next`.
|
|
|
9
9
|
Read local `AGENTS.md`, `beignet.config.*`, and existing route/server files
|
|
10
10
|
before changing code.
|
|
11
11
|
|
|
12
|
-
Use a maintained Next.js release: Next.js 15.5.
|
|
13
|
-
Next.js 16.
|
|
12
|
+
Use a maintained Next.js release: Next.js 15.5.24 or newer within v15, or
|
|
13
|
+
Next.js 16.3.3 or newer within v16.
|
|
14
14
|
|
|
15
15
|
## App-Bound Route Builders
|
|
16
16
|
|
|
@@ -60,6 +60,12 @@ export const projectRoutes = defineRouteGroup({
|
|
|
60
60
|
Keep route entries thin: hooks, input mapping, policy checks, and use-case
|
|
61
61
|
binding. Business behavior belongs in use cases.
|
|
62
62
|
|
|
63
|
+
Without an `input` mapper, TypeScript checks the default binder result against
|
|
64
|
+
the use-case input. One request schema passes through unchanged; multiple
|
|
65
|
+
object sources merge with path over body over query precedence. Add an
|
|
66
|
+
explicit mapper when the shapes differ, validated headers contribute input, or
|
|
67
|
+
a scalar or array body is combined with another source.
|
|
68
|
+
|
|
63
69
|
## Central Registry
|
|
64
70
|
|
|
65
71
|
Register feature route groups once in `server/routes.ts`.
|