@zeroxsolutions/server 0.3.3 → 0.3.5

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
@@ -1,3 +1,18 @@
1
+ ## 0.3.4 (2026-09-27)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **server:** declare the refusals content negotiation answers ([b137598](https://github.com/zeroxsolutions/zeroxsolutions/commit/b137598))
6
+
7
+ ### 🩹 Fixes
8
+
9
+ - **server:** stop repeating an unclaimed 500's title as its detail ([64c67d9](https://github.com/zeroxsolutions/zeroxsolutions/commit/64c67d9))
10
+
11
+ ### ❤️ Thank You
12
+
13
+ - Claude Opus 5.5 (1M context)
14
+ - Lương Văn Tú
15
+
1
16
  # @zeroxsolutions/server@0.3.3 (2026-09-18)
2
17
 
3
18
  ### 🚀 Features
@@ -14,4 +14,191 @@ import type { SurfaceVocabulary } from './surface-vocabulary.js';
14
14
  * ```
15
15
  */
16
16
  export declare function jsonApiContentNegotiation(options: SurfaceVocabulary): MiddlewareHandler;
17
+ /**
18
+ * The refusals {@link jsonApiContentNegotiation} answers with, for a route to spread into its declared
19
+ * responses, so a status the gate gains is declared wherever it is mounted.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * responses: { 200: okResponse('The place', placeResource), ...NEGOTIATION_RESPONSES, 500: errorResponse('An unhandled failure') }
24
+ * ```
25
+ */
26
+ export declare const NEGOTIATION_RESPONSES: {
27
+ readonly 406: import("@zeroxsolutions/response").JsonApiResponse<import("zod").ZodObject<{
28
+ errors: import("zod").ZodArray<import("zod").ZodObject<{
29
+ id: import("zod").ZodOptional<import("zod").ZodString>;
30
+ links: import("zod").ZodOptional<import("zod").ZodObject<{
31
+ about: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
32
+ rel: import("zod").ZodOptional<import("zod").ZodString>;
33
+ title: import("zod").ZodOptional<import("zod").ZodString>;
34
+ type: import("zod").ZodOptional<import("zod").ZodString>;
35
+ hreflang: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>>;
36
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
37
+ href: import("zod").ZodString;
38
+ describedby: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
39
+ rel: import("zod").ZodOptional<import("zod").ZodString>;
40
+ title: import("zod").ZodOptional<import("zod").ZodString>;
41
+ type: import("zod").ZodOptional<import("zod").ZodString>;
42
+ hreflang: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>>;
43
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
44
+ href: import("zod").ZodString;
45
+ }, import("zod/v4/core").$strip>, import("zod").ZodNull]>>;
46
+ }, import("zod/v4/core").$strip>, import("zod").ZodNull]>>;
47
+ type: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
48
+ rel: import("zod").ZodOptional<import("zod").ZodString>;
49
+ title: import("zod").ZodOptional<import("zod").ZodString>;
50
+ type: import("zod").ZodOptional<import("zod").ZodString>;
51
+ hreflang: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>>;
52
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
53
+ href: import("zod").ZodString;
54
+ describedby: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
55
+ rel: import("zod").ZodOptional<import("zod").ZodString>;
56
+ title: import("zod").ZodOptional<import("zod").ZodString>;
57
+ type: import("zod").ZodOptional<import("zod").ZodString>;
58
+ hreflang: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>>;
59
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
60
+ href: import("zod").ZodString;
61
+ }, import("zod/v4/core").$strip>, import("zod").ZodNull]>>;
62
+ }, import("zod/v4/core").$strip>, import("zod").ZodNull]>>;
63
+ }, import("zod/v4/core").$strip>>;
64
+ status: import("zod").ZodOptional<import("zod").ZodString>;
65
+ code: import("zod").ZodOptional<import("zod").ZodString>;
66
+ title: import("zod").ZodOptional<import("zod").ZodString>;
67
+ detail: import("zod").ZodOptional<import("zod").ZodString>;
68
+ source: import("zod").ZodOptional<import("zod").ZodObject<{
69
+ pointer: import("zod").ZodOptional<import("zod").ZodString>;
70
+ parameter: import("zod").ZodOptional<import("zod").ZodString>;
71
+ header: import("zod").ZodOptional<import("zod").ZodString>;
72
+ }, import("zod/v4/core").$strip>>;
73
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
74
+ }, import("zod/v4/core").$strip>>;
75
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
76
+ links: import("zod").ZodOptional<import("zod").ZodObject<{
77
+ self: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
78
+ rel: import("zod").ZodOptional<import("zod").ZodString>;
79
+ title: import("zod").ZodOptional<import("zod").ZodString>;
80
+ type: import("zod").ZodOptional<import("zod").ZodString>;
81
+ hreflang: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>>;
82
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
83
+ href: import("zod").ZodString;
84
+ describedby: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
85
+ rel: import("zod").ZodOptional<import("zod").ZodString>;
86
+ title: import("zod").ZodOptional<import("zod").ZodString>;
87
+ type: import("zod").ZodOptional<import("zod").ZodString>;
88
+ hreflang: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>>;
89
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
90
+ href: import("zod").ZodString;
91
+ }, import("zod/v4/core").$strip>, import("zod").ZodNull]>>;
92
+ }, import("zod/v4/core").$strip>, import("zod").ZodNull]>>;
93
+ describedby: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
94
+ rel: import("zod").ZodOptional<import("zod").ZodString>;
95
+ title: import("zod").ZodOptional<import("zod").ZodString>;
96
+ type: import("zod").ZodOptional<import("zod").ZodString>;
97
+ hreflang: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>>;
98
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
99
+ href: import("zod").ZodString;
100
+ describedby: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
101
+ rel: import("zod").ZodOptional<import("zod").ZodString>;
102
+ title: import("zod").ZodOptional<import("zod").ZodString>;
103
+ type: import("zod").ZodOptional<import("zod").ZodString>;
104
+ hreflang: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>>;
105
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
106
+ href: import("zod").ZodString;
107
+ }, import("zod/v4/core").$strip>, import("zod").ZodNull]>>;
108
+ }, import("zod/v4/core").$strip>, import("zod").ZodNull]>>;
109
+ }, import("zod/v4/core").$strip>>;
110
+ jsonapi: import("zod").ZodOptional<import("zod").ZodObject<{
111
+ version: import("zod").ZodOptional<import("zod").ZodString>;
112
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
113
+ }, import("zod/v4/core").$strip>>;
114
+ }, import("zod/v4/core").$strip>>;
115
+ readonly 415: import("@zeroxsolutions/response").JsonApiResponse<import("zod").ZodObject<{
116
+ errors: import("zod").ZodArray<import("zod").ZodObject<{
117
+ id: import("zod").ZodOptional<import("zod").ZodString>;
118
+ links: import("zod").ZodOptional<import("zod").ZodObject<{
119
+ about: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
120
+ rel: import("zod").ZodOptional<import("zod").ZodString>;
121
+ title: import("zod").ZodOptional<import("zod").ZodString>;
122
+ type: import("zod").ZodOptional<import("zod").ZodString>;
123
+ hreflang: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>>;
124
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
125
+ href: import("zod").ZodString;
126
+ describedby: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
127
+ rel: import("zod").ZodOptional<import("zod").ZodString>;
128
+ title: import("zod").ZodOptional<import("zod").ZodString>;
129
+ type: import("zod").ZodOptional<import("zod").ZodString>;
130
+ hreflang: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>>;
131
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
132
+ href: import("zod").ZodString;
133
+ }, import("zod/v4/core").$strip>, import("zod").ZodNull]>>;
134
+ }, import("zod/v4/core").$strip>, import("zod").ZodNull]>>;
135
+ type: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
136
+ rel: import("zod").ZodOptional<import("zod").ZodString>;
137
+ title: import("zod").ZodOptional<import("zod").ZodString>;
138
+ type: import("zod").ZodOptional<import("zod").ZodString>;
139
+ hreflang: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>>;
140
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
141
+ href: import("zod").ZodString;
142
+ describedby: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
143
+ rel: import("zod").ZodOptional<import("zod").ZodString>;
144
+ title: import("zod").ZodOptional<import("zod").ZodString>;
145
+ type: import("zod").ZodOptional<import("zod").ZodString>;
146
+ hreflang: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>>;
147
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
148
+ href: import("zod").ZodString;
149
+ }, import("zod/v4/core").$strip>, import("zod").ZodNull]>>;
150
+ }, import("zod/v4/core").$strip>, import("zod").ZodNull]>>;
151
+ }, import("zod/v4/core").$strip>>;
152
+ status: import("zod").ZodOptional<import("zod").ZodString>;
153
+ code: import("zod").ZodOptional<import("zod").ZodString>;
154
+ title: import("zod").ZodOptional<import("zod").ZodString>;
155
+ detail: import("zod").ZodOptional<import("zod").ZodString>;
156
+ source: import("zod").ZodOptional<import("zod").ZodObject<{
157
+ pointer: import("zod").ZodOptional<import("zod").ZodString>;
158
+ parameter: import("zod").ZodOptional<import("zod").ZodString>;
159
+ header: import("zod").ZodOptional<import("zod").ZodString>;
160
+ }, import("zod/v4/core").$strip>>;
161
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
162
+ }, import("zod/v4/core").$strip>>;
163
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
164
+ links: import("zod").ZodOptional<import("zod").ZodObject<{
165
+ self: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
166
+ rel: import("zod").ZodOptional<import("zod").ZodString>;
167
+ title: import("zod").ZodOptional<import("zod").ZodString>;
168
+ type: import("zod").ZodOptional<import("zod").ZodString>;
169
+ hreflang: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>>;
170
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
171
+ href: import("zod").ZodString;
172
+ describedby: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
173
+ rel: import("zod").ZodOptional<import("zod").ZodString>;
174
+ title: import("zod").ZodOptional<import("zod").ZodString>;
175
+ type: import("zod").ZodOptional<import("zod").ZodString>;
176
+ hreflang: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>>;
177
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
178
+ href: import("zod").ZodString;
179
+ }, import("zod/v4/core").$strip>, import("zod").ZodNull]>>;
180
+ }, import("zod/v4/core").$strip>, import("zod").ZodNull]>>;
181
+ describedby: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
182
+ rel: import("zod").ZodOptional<import("zod").ZodString>;
183
+ title: import("zod").ZodOptional<import("zod").ZodString>;
184
+ type: import("zod").ZodOptional<import("zod").ZodString>;
185
+ hreflang: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>>;
186
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
187
+ href: import("zod").ZodString;
188
+ describedby: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
189
+ rel: import("zod").ZodOptional<import("zod").ZodString>;
190
+ title: import("zod").ZodOptional<import("zod").ZodString>;
191
+ type: import("zod").ZodOptional<import("zod").ZodString>;
192
+ hreflang: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>>;
193
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
194
+ href: import("zod").ZodString;
195
+ }, import("zod/v4/core").$strip>, import("zod").ZodNull]>>;
196
+ }, import("zod/v4/core").$strip>, import("zod").ZodNull]>>;
197
+ }, import("zod/v4/core").$strip>>;
198
+ jsonapi: import("zod").ZodOptional<import("zod").ZodObject<{
199
+ version: import("zod").ZodOptional<import("zod").ZodString>;
200
+ meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
201
+ }, import("zod/v4/core").$strip>>;
202
+ }, import("zod/v4/core").$strip>>;
203
+ };
17
204
  //# sourceMappingURL=content-negotiation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-negotiation.d.ts","sourceRoot":"","sources":["../src/content-negotiation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,iBAAiB,CAQvF"}
1
+ {"version":3,"file":"content-negotiation.d.ts","sourceRoot":"","sources":["../src/content-negotiation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,iBAAiB,CAQvF;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGxB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { negotiateJsonApi } from '@zeroxsolutions/jsonapi';
2
- import { JSON_API_MEDIA_TYPE } from '@zeroxsolutions/response';
2
+ import { errorResponse, JSON_API_MEDIA_TYPE } from '@zeroxsolutions/response';
3
3
  /**
4
4
  * Hono adapter over {@link negotiateJsonApi}: rejects with 415/406 per JSON:API v1.1 content
5
5
  * negotiation, then stamps the JSON:API media type onto the response `Content-Type`.
@@ -23,3 +23,16 @@ export function jsonApiContentNegotiation(options) {
23
23
  c.header('Content-Type', JSON_API_MEDIA_TYPE);
24
24
  };
25
25
  }
26
+ /**
27
+ * The refusals {@link jsonApiContentNegotiation} answers with, for a route to spread into its declared
28
+ * responses, so a status the gate gains is declared wherever it is mounted.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * responses: { 200: okResponse('The place', placeResource), ...NEGOTIATION_RESPONSES, 500: errorResponse('An unhandled failure') }
33
+ * ```
34
+ */
35
+ export const NEGOTIATION_RESPONSES = {
36
+ 406: errorResponse('The Accept header names no type this surface answers in'),
37
+ 415: errorResponse('The Content-Type header names a type this surface does not read'),
38
+ };
@@ -16,7 +16,7 @@ const ANSWERED_LINE = 'http.error.answered {method} {path} {status} {claimedBy}'
16
16
  // Projects a failure hono raised - or one nothing claimed - onto a JSON:API error object by HTTP status.
17
17
  function errorObjectByStatus(err, status, namespace) {
18
18
  const meta = META_BY_STATUS.get(status) ?? { code: 'error', title: 'Error' };
19
- const detail = err instanceof HTTPException ? err.message : 'Internal server error';
19
+ const detail = err instanceof HTTPException ? err.message : undefined;
20
20
  return {
21
21
  status: String(status),
22
22
  code: `${namespace}.${meta.code}`,
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export { createEnvironment, type EnvironmentOptions } from './environment.js';
5
5
  export type { SurfaceVocabulary } from './surface-vocabulary.js';
6
- export { jsonApiContentNegotiation } from './content-negotiation.js';
6
+ export { jsonApiContentNegotiation, NEGOTIATION_RESPONSES } from './content-negotiation.js';
7
7
  export { createErrorHandler, type ErrorHandlerOptions } from './error-handler.js';
8
8
  export { PermissionRefused } from './permission-refused.js';
9
9
  export { Unauthenticated } from './unauthenticated.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  * Every Hono handler the house ships - the bindings gate, and the three the wire spelling decides.
3
3
  */
4
4
  export { createEnvironment } from './environment.js';
5
- export { jsonApiContentNegotiation } from './content-negotiation.js';
5
+ export { jsonApiContentNegotiation, NEGOTIATION_RESPONSES } from './content-negotiation.js';
6
6
  export { createErrorHandler } from './error-handler.js';
7
7
  export { PermissionRefused } from './permission-refused.js';
8
8
  export { Unauthenticated } from './unauthenticated.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeroxsolutions/server",
3
- "version": "0.3.3",
3
+ "version": "0.3.5",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -21,8 +21,8 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "tslib": "^2.3.0",
24
- "@zeroxsolutions/jsonapi": "0.11.1",
25
- "@zeroxsolutions/response": "0.12.1"
24
+ "@zeroxsolutions/jsonapi": "0.11.3",
25
+ "@zeroxsolutions/response": "0.13.0"
26
26
  },
27
27
  "peerDependencies": {
28
28
  "@hono/zod-openapi": "^1.0.0",