@visulima/error-handler 2.0.0-alpha.3 → 2.0.0-alpha.31

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +339 -0
  2. package/LICENSE.md +1 -1
  3. package/dist/error-handler/html-error-handler.d.ts +13 -12
  4. package/dist/error-handler/html-error-handler.js +1 -1
  5. package/dist/error-handler/json-error-handler.d.ts +13 -12
  6. package/dist/error-handler/json-error-handler.js +1 -1
  7. package/dist/error-handler/jsonapi-error-handler.d.ts +3 -2
  8. package/dist/error-handler/jsonapi-error-handler.js +1 -1
  9. package/dist/error-handler/jsonp-error-handler.d.ts +14 -13
  10. package/dist/error-handler/jsonp-error-handler.js +1 -1
  11. package/dist/error-handler/problem-error-handler.d.ts +6 -5
  12. package/dist/error-handler/problem-error-handler.js +1 -1
  13. package/dist/error-handler/text-error-handler.d.ts +12 -11
  14. package/dist/error-handler/text-error-handler.js +1 -1
  15. package/dist/error-handler/xml-error-handler.d.ts +24 -23
  16. package/dist/error-handler/xml-error-handler.js +1 -1
  17. package/dist/handler/cli-handler.d.ts +27 -4
  18. package/dist/handler/http/fetch-handler.d.ts +8 -7
  19. package/dist/handler/http/fetch-handler.js +1 -1
  20. package/dist/handler/http/node-handler.d.ts +8 -8
  21. package/dist/handler/http/node-handler.js +1 -1
  22. package/dist/index.d.ts +12 -14
  23. package/dist/index.js +1 -1
  24. package/dist/packem_shared/add-status-code-to-response-Dc6Pvpeh.js +1 -0
  25. package/dist/packem_shared/{createNegotiatedErrorHandler-BLks0_Ak.js → createNegotiatedErrorHandler-DlEHBPFw.js} +1 -1
  26. package/dist/packem_shared/send-json-DfdjS9Xp.js +1 -0
  27. package/dist/packem_shared/types.d-C763gSYq.d.ts +13 -0
  28. package/package.json +31 -33
  29. package/dist/error-handler/create-negotiated-error-handler.d.ts +0 -4
  30. package/dist/error-handler/fetch-create-negotiated-error-handler.d.ts +0 -3
  31. package/dist/error-handler/fetch-html-error-handler.d.ts +0 -3
  32. package/dist/error-handler/utils/add-status-code-to-response.d.ts +0 -2
  33. package/dist/error-handler/utils/send-json.d.ts +0 -8
  34. package/dist/error-handler/utils/set-error-headers.d.ts +0 -3
  35. package/dist/packem_shared/add-status-code-to-response-BE6paXjR.js +0 -1
  36. package/dist/packem_shared/send-json-Cedv8-Bt.js +0 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,342 @@
1
+ ## @visulima/error-handler [2.0.0-alpha.31](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.30...@visulima/error-handler@2.0.0-alpha.31) (2026-06-04)
2
+
3
+
4
+ ### Dependencies
5
+
6
+ * **@visulima/boxen:** upgraded to 3.0.0-alpha.13
7
+
8
+ ## @visulima/error-handler [2.0.0-alpha.30](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.29...@visulima/error-handler@2.0.0-alpha.30) (2026-06-04)
9
+
10
+ ### Bug Fixes
11
+
12
+ * **error-handler:** 3 bug fixes ([550c3f1](https://github.com/visulima/visulima/commit/550c3f16fb702d01c24192c434ea190e83d2a21b))
13
+ * **lint:** clear pre-existing eslint rot across packages ([#674](https://github.com/visulima/visulima/issues/674)) ([5354253](https://github.com/visulima/visulima/commit/5354253b163bd50bcefaf8a3fddf831bdb5df32b))
14
+
15
+
16
+ ### Dependencies
17
+
18
+ * **@visulima/boxen:** upgraded to 3.0.0-alpha.12
19
+ * **@visulima/error:** upgraded to 6.0.0-alpha.32
20
+
21
+ ## @visulima/error-handler [2.0.0-alpha.29](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.28...@visulima/error-handler@2.0.0-alpha.29) (2026-06-02)
22
+
23
+ ### Bug Fixes
24
+
25
+ * **tests:** revert unsafe vitest autofixes from the lint sweep ([378f27c](https://github.com/visulima/visulima/commit/378f27caa370f1d3188aef2ed36d46839abc88c4))
26
+
27
+ ### Miscellaneous Chores
28
+
29
+ * apply eslint + prettier autofixes across packages ([c1bb784](https://github.com/visulima/visulima/commit/c1bb7848a0d93d0dfe2960c77e3cda22239c79a0))
30
+
31
+ ### Tests
32
+
33
+ * **error-handler:** cover negotiation, formatters, and onError paths ([9826de9](https://github.com/visulima/visulima/commit/9826de9093bf5a08c3e073390d6fc0da22ab93b1))
34
+ * **error-handler:** cover negotiator, reason-phrase and status branches ([3ad3ed0](https://github.com/visulima/visulima/commit/3ad3ed0bfac60a441091212bbc907f2440d364b3))
35
+ * improve coverage across packages ([91bd6d3](https://github.com/visulima/visulima/commit/91bd6d3b61736e3c8bd1fc59b0b5955f76a5d323))
36
+
37
+
38
+ ### Dependencies
39
+
40
+ * **@visulima/error:** upgraded to 6.0.0-alpha.31
41
+
42
+ ## @visulima/error-handler [2.0.0-alpha.28](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.27...@visulima/error-handler@2.0.0-alpha.28) (2026-05-27)
43
+
44
+ ### Bug Fixes
45
+
46
+ * **storage-client:** percent-encode user fields in defaultFingerprint ([7c78a0f](https://github.com/visulima/visulima/commit/7c78a0f9512e2a673b941d80839e9f1e86b7b5d0))
47
+
48
+ ### Documentation
49
+
50
+ * prettier-format agent instructions ([71b6414](https://github.com/visulima/visulima/commit/71b6414528780ac82c4e0bb25b5f4f11faba5549))
51
+
52
+ ### Miscellaneous Chores
53
+
54
+ * sorted package.json ([b47c545](https://github.com/visulima/visulima/commit/b47c545591600fdab17d5cd3a3fbc68b61e199da))
55
+
56
+
57
+ ### Dependencies
58
+
59
+ * **@visulima/boxen:** upgraded to 3.0.0-alpha.11
60
+ * **@visulima/error:** upgraded to 6.0.0-alpha.30
61
+
62
+ ## @visulima/error-handler [2.0.0-alpha.27](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.26...@visulima/error-handler@2.0.0-alpha.27) (2026-05-26)
63
+
64
+ ### Miscellaneous Chores
65
+
66
+ * **ci-stability:** green CI across vis, native, lint, tests, attw ([#651](https://github.com/visulima/visulima/issues/651)) ([d4eb684](https://github.com/visulima/visulima/commit/d4eb684b5f75c818c9251048c605a0ed54a268e3))
67
+ * **repo:** sort package.json keys across all packages ([e1fd9ab](https://github.com/visulima/visulima/commit/e1fd9ab467ef96a98c777da1572ff6a50fcf7e71))
68
+
69
+ ### Tests
70
+
71
+ * **repo:** add dist runtime + types integration tests ([32ee300](https://github.com/visulima/visulima/commit/32ee300b7184117a0ddf9f9d390f75f8932d5ed9))
72
+
73
+
74
+ ### Dependencies
75
+
76
+ * **@visulima/error:** upgraded to 6.0.0-alpha.28
77
+
78
+ ## @visulima/error-handler [2.0.0-alpha.26](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.25...@visulima/error-handler@2.0.0-alpha.26) (2026-05-20)
79
+
80
+
81
+ ### Dependencies
82
+
83
+ * **@visulima/error:** upgraded to 6.0.0-alpha.27
84
+
85
+ ## @visulima/error-handler [2.0.0-alpha.25](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.24...@visulima/error-handler@2.0.0-alpha.25) (2026-05-19)
86
+
87
+
88
+ ### Dependencies
89
+
90
+ * **@visulima/error:** upgraded to 6.0.0-alpha.26
91
+
92
+ ## @visulima/error-handler [2.0.0-alpha.24](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.23...@visulima/error-handler@2.0.0-alpha.24) (2026-05-16)
93
+
94
+
95
+ ### Dependencies
96
+
97
+ * **@visulima/error:** upgraded to 6.0.0-alpha.25
98
+
99
+ ## @visulima/error-handler [2.0.0-alpha.23](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.22...@visulima/error-handler@2.0.0-alpha.23) (2026-05-14)
100
+
101
+ ### Miscellaneous Chores
102
+
103
+ * **error:** apply prettier and eslint formatting sweep ([25c5eaf](https://github.com/visulima/visulima/commit/25c5eaf4989bddfe860b52aea113b3e229fea84f))
104
+
105
+
106
+ ### Dependencies
107
+
108
+ * **@visulima/error:** upgraded to 6.0.0-alpha.24
109
+
110
+ ## @visulima/error-handler [2.0.0-alpha.22](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.21...@visulima/error-handler@2.0.0-alpha.22) (2026-05-11)
111
+
112
+
113
+ ### Dependencies
114
+
115
+ * **@visulima/error:** upgraded to 6.0.0-alpha.23
116
+
117
+ ## @visulima/error-handler [2.0.0-alpha.21](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.20...@visulima/error-handler@2.0.0-alpha.21) (2026-05-11)
118
+
119
+
120
+ ### Dependencies
121
+
122
+ * **@visulima/error:** upgraded to 6.0.0-alpha.22
123
+
124
+ ## @visulima/error-handler [2.0.0-alpha.20](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.19...@visulima/error-handler@2.0.0-alpha.20) (2026-05-10)
125
+
126
+
127
+ ### Dependencies
128
+
129
+ * **@visulima/error:** upgraded to 6.0.0-alpha.21
130
+
131
+ ## @visulima/error-handler [2.0.0-alpha.19](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.18...@visulima/error-handler@2.0.0-alpha.19) (2026-05-10)
132
+
133
+
134
+ ### Dependencies
135
+
136
+ * **@visulima/error:** upgraded to 6.0.0-alpha.20
137
+
138
+ ## @visulima/error-handler [2.0.0-alpha.18](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.17...@visulima/error-handler@2.0.0-alpha.18) (2026-05-07)
139
+
140
+
141
+ ### Dependencies
142
+
143
+ * **@visulima/error:** upgraded to 6.0.0-alpha.19
144
+
145
+ ## @visulima/error-handler [2.0.0-alpha.17](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.16...@visulima/error-handler@2.0.0-alpha.17) (2026-05-07)
146
+
147
+
148
+ ### Dependencies
149
+
150
+ * **@visulima/error:** upgraded to 6.0.0-alpha.18
151
+
152
+ ## @visulima/error-handler [2.0.0-alpha.16](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.15...@visulima/error-handler@2.0.0-alpha.16) (2026-05-06)
153
+
154
+
155
+ ### Dependencies
156
+
157
+ * **@visulima/error:** upgraded to 6.0.0-alpha.17
158
+
159
+ ## @visulima/error-handler [2.0.0-alpha.15](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.14...@visulima/error-handler@2.0.0-alpha.15) (2026-05-06)
160
+
161
+ ### Miscellaneous Chores
162
+
163
+ * **error-handler:** apply prettier and eslint quote-style auto-fix ([27f45d8](https://github.com/visulima/visulima/commit/27f45d8686fefcf9a6ca8519d4199150617dbd9a))
164
+ * **error-handler:** housekeeping cleanup ([ea3f457](https://github.com/visulima/visulima/commit/ea3f457736922835b42e3b46aa83c575e76c4864))
165
+
166
+
167
+ ### Dependencies
168
+
169
+ * **@visulima/error:** upgraded to 6.0.0-alpha.16
170
+
171
+ ## @visulima/error-handler [2.0.0-alpha.14](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.13...@visulima/error-handler@2.0.0-alpha.14) (2026-05-04)
172
+
173
+
174
+ ### Dependencies
175
+
176
+ * **@visulima/error:** upgraded to 6.0.0-alpha.15
177
+
178
+ ## @visulima/error-handler [2.0.0-alpha.13](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.12...@visulima/error-handler@2.0.0-alpha.13) (2026-04-30)
179
+
180
+ ### Miscellaneous Chores
181
+
182
+ * **error-handler:** upgrade packem to 2.0.0-alpha.76 ([33bd1ff](https://github.com/visulima/visulima/commit/33bd1ffe927a6637444696b4acfd7a9052b26a8f))
183
+ * re-sort workspace package.json files via vis sort-package-json ([f625696](https://github.com/visulima/visulima/commit/f625696cfac974325774b3243e1a83c3d23acbd7))
184
+
185
+
186
+ ### Dependencies
187
+
188
+ * **@visulima/error:** upgraded to 6.0.0-alpha.14
189
+
190
+ ## @visulima/error-handler [2.0.0-alpha.12](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.11...@visulima/error-handler@2.0.0-alpha.12) (2026-04-22)
191
+
192
+ ### Bug Fixes
193
+
194
+ * **error-debugging:** resolve eslint and formatting issues ([7d0ada8](https://github.com/visulima/visulima/commit/7d0ada8787bf624df5a7d504448a4d1b69165aba))
195
+ * **error-debugging:** resolve eslint and type-safety issues ([886dbff](https://github.com/visulima/visulima/commit/886dbffe3f744c9493fcc54e781de3fd21eebf78))
196
+ * **error-handler:** remove unused [@ts-expect-error](https://github.com/ts-expect-error) on end() overload ([a8eb6a6](https://github.com/visulima/visulima/commit/a8eb6a6ab8d42c1a6881dda5c605a4d20dde069f))
197
+ * **error-handler:** resolve eslint and formatting issues ([324f5d8](https://github.com/visulima/visulima/commit/324f5d89f1bcceac4fbe44c6002040aa63be1ec9))
198
+ * Remove JSR configuration generation script and generated jsr.json files ([#616](https://github.com/visulima/visulima/issues/616)) ([533744b](https://github.com/visulima/visulima/commit/533744b103b74896941db5b727173e617a27a63b))
199
+
200
+ ### Miscellaneous Chores
201
+
202
+ * bump engines.node to ^22.14.0 || >=24.10.0 ([c3d0931](https://github.com/visulima/visulima/commit/c3d0931d1504e4f21ebf50ea680cfa7ce4ba15ce))
203
+ * **error-handler:** apply formatter and lint fixes ([9ab7d48](https://github.com/visulima/visulima/commit/9ab7d48758f89b434e8c463c45f94eedc4619ab9))
204
+ * **error-handler:** enforce curly braces and apply lint fixes ([ced1569](https://github.com/visulima/visulima/commit/ced1569c34fde28975eda76e5e84db6d87059865))
205
+ * fixed jsr.json ([5d85e51](https://github.com/visulima/visulima/commit/5d85e5179de38e284ec433b14d77c71a1619c8d6))
206
+
207
+ ### Continuous Integration
208
+
209
+ * disable isolatedDeclarationTransformer ([d5845d8](https://github.com/visulima/visulima/commit/d5845d888012fbe20a020cb2c02ec57269356e56))
210
+
211
+
212
+ ### Dependencies
213
+
214
+ * **@visulima/boxen:** upgraded to 3.0.0-alpha.10
215
+
216
+ ## @visulima/error-handler [2.0.0-alpha.11](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.10...@visulima/error-handler@2.0.0-alpha.11) (2026-04-08)
217
+
218
+ ### Bug Fixes
219
+
220
+ * **error-handler:** properly fix eslint errors in code ([591179f](https://github.com/visulima/visulima/commit/591179fb1b56587986449878a95abfc18f6d735b))
221
+ * **error-handler:** remove remaining eslint suppressions with proper code fixes ([58b05d6](https://github.com/visulima/visulima/commit/58b05d6cb5d98c29e0abe57af35120696504b22b))
222
+ * **error-handler:** resolve eslint errors ([ab613b8](https://github.com/visulima/visulima/commit/ab613b8683677fd0ca7e09b06b3fe94e59df9bd0))
223
+
224
+ ### Miscellaneous Chores
225
+
226
+ * apply linting and formatting fixes across packages ([5d150a5](https://github.com/visulima/visulima/commit/5d150a578f9ce861c791843c683deeb849b774a9))
227
+ * **error-debugging:** remove empty dependency objects from package.json ([7eb7c8e](https://github.com/visulima/visulima/commit/7eb7c8eba1394e515fa77c0f56baf41c0810de2e))
228
+ * **error-handler:** add tsconfig.eslint.json for type-aware linting ([8e52a91](https://github.com/visulima/visulima/commit/8e52a916c1b7a0262b5ef097985be5ccaa735401))
229
+ * **error-handler:** apply prettier formatting ([eeb50dd](https://github.com/visulima/visulima/commit/eeb50ddf301722cb7f1439001d2b1c06e88797ae))
230
+ * **error-handler:** migrate .prettierrc.cjs to prettier.config.js ([6fb8eb8](https://github.com/visulima/visulima/commit/6fb8eb8832335f8b249cded58fe78c3ee5edc000))
231
+
232
+
233
+ ### Dependencies
234
+
235
+ * **@visulima/boxen:** upgraded to 3.0.0-alpha.9
236
+ * **@visulima/error:** upgraded to 6.0.0-alpha.8
237
+
238
+ ## @visulima/error-handler [2.0.0-alpha.10](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.9...@visulima/error-handler@2.0.0-alpha.10) (2026-03-26)
239
+
240
+ ### Features
241
+
242
+ * **web:** auto-generate packages page from workspace metadata ([623e520](https://github.com/visulima/visulima/commit/623e5207693a7fe720f5f2f179593a3654c880e3))
243
+
244
+
245
+ ### Dependencies
246
+
247
+ * **@visulima/boxen:** upgraded to 3.0.0-alpha.8
248
+ * **@visulima/error:** upgraded to 6.0.0-alpha.7
249
+
250
+ ## @visulima/error-handler [2.0.0-alpha.9](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.8...@visulima/error-handler@2.0.0-alpha.9) (2026-03-26)
251
+
252
+ ### Bug Fixes
253
+
254
+ * **error-handler:** use workspace:* for internal [@visulima](https://github.com/visulima) deps ([d453330](https://github.com/visulima/visulima/commit/d4533305f56a3e6f06e7381f639aa89ce4ae477b))
255
+ * **web:** improve build setup with incremental stats caching and prod install ([fe33e75](https://github.com/visulima/visulima/commit/fe33e75827586779b4b3a0c6d57b39f889ee6207))
256
+
257
+ ### Miscellaneous Chores
258
+
259
+ * **error-handler:** migrate deps to pnpm catalogs ([cc75436](https://github.com/visulima/visulima/commit/cc75436984973d46084af7aa592cb5bf45736b30))
260
+
261
+
262
+ ### Dependencies
263
+
264
+ * **@visulima/boxen:** upgraded to 3.0.0-alpha.7
265
+ * **@visulima/error:** upgraded to 6.0.0-alpha.6
266
+
267
+ ## @visulima/error-handler [2.0.0-alpha.8](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.7...@visulima/error-handler@2.0.0-alpha.8) (2026-03-16)
268
+
269
+ ### Bug Fixes
270
+
271
+ * resolve 5 audit vulnerabilities (simple-git, express-rate-limit, tar, file-type, hono) ([2986d77](https://github.com/visulima/visulima/commit/2986d770746afd3223a074dc1a1a0040cca56e61))
272
+
273
+ ### Miscellaneous Chores
274
+
275
+ * **error-handler:** update dependencies ([7423461](https://github.com/visulima/visulima/commit/742346112111d015094b7db7e759e422acaf52d5))
276
+ * visulima website ([#591](https://github.com/visulima/visulima/issues/591)) ([59ab2e2](https://github.com/visulima/visulima/commit/59ab2e2befb03e51cd2088956f83d9b87de6d033))
277
+
278
+ ## @visulima/error-handler [2.0.0-alpha.7](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.6...@visulima/error-handler@2.0.0-alpha.7) (2026-03-06)
279
+
280
+ ### Bug Fixes
281
+
282
+ * **error-handler:** update packem to 2.0.0-alpha.54 ([03aad29](https://github.com/visulima/visulima/commit/03aad29df5527fa431ad01b561ea296d6f1cf622))
283
+
284
+ ### Documentation
285
+
286
+ * **error,error-handler,ono,inspector,source-map,vite-overlay:** add comprehensive Fumadocs documentation ([a0c8c92](https://github.com/visulima/visulima/commit/a0c8c92949cff2730fc6122f717fe344c030f366))
287
+
288
+ ### Miscellaneous Chores
289
+
290
+ * **error-debugging:** update dependencies ([6002ece](https://github.com/visulima/visulima/commit/6002ece1803b2ba8261cff42a362dd6e8ddcc3ee))
291
+ * **error-handler:** update dependencies ([306a3b8](https://github.com/visulima/visulima/commit/306a3b89dedbe6e50ff1978e3635ddea99e527e4))
292
+ * update lock file maintenance ([d83e716](https://github.com/visulima/visulima/commit/d83e71697b75d24704185b66bb521a934d2db02d))
293
+ * year update ([47f4105](https://github.com/visulima/visulima/commit/47f410596ce7190cfea36a073db32e0cec50bbcd))
294
+
295
+
296
+ ### Dependencies
297
+
298
+ * **@visulima/boxen:** upgraded to 3.0.0-alpha.6
299
+ * **@visulima/error:** upgraded to 6.0.0-alpha.5
300
+
301
+ ## @visulima/error-handler [2.0.0-alpha.6](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.5...@visulima/error-handler@2.0.0-alpha.6) (2026-01-17)
302
+
303
+ ### Miscellaneous Chores
304
+
305
+ * **error-handler:** update dependencies ([e84d234](https://github.com/visulima/visulima/commit/e84d234a98400af596aecc265b7121ef607237dd))
306
+
307
+
308
+ ### Dependencies
309
+
310
+ * **@visulima/error:** upgraded to 6.0.0-alpha.4
311
+
312
+ ## @visulima/error-handler [2.0.0-alpha.5](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.4...@visulima/error-handler@2.0.0-alpha.5) (2025-12-27)
313
+
314
+ ### Bug Fixes
315
+
316
+ * **dependencies:** update hono and related packages to version 4.11.2 and update @hono/swagger-ui to version 0.5.3 ([5d3eed5](https://github.com/visulima/visulima/commit/5d3eed57d30d8216bf91484f35d39678938651fb))
317
+ * **error-handler:** update package files ([a059109](https://github.com/visulima/visulima/commit/a059109774f5b961326ab917083db91cff641667))
318
+
319
+ ### Miscellaneous Chores
320
+
321
+ * **dependencies:** update msw to version 2.12.6, jsdom to version 27.4.0, and [@tanstack](https://github.com/tanstack) packages to version 1.144.0 in package.json files ([1aa0236](https://github.com/visulima/visulima/commit/1aa0236e1f8190eecf7526cf2dc0f369cac02d87))
322
+
323
+
324
+ ### Dependencies
325
+
326
+ * **@visulima/boxen:** upgraded to 3.0.0-alpha.5
327
+ * **@visulima/error:** upgraded to 6.0.0-alpha.3
328
+
329
+ ## @visulima/error-handler [2.0.0-alpha.4](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.3...@visulima/error-handler@2.0.0-alpha.4) (2025-12-13)
330
+
331
+ ### Miscellaneous Chores
332
+
333
+ * fixed project.json names and schema path ([964722f](https://github.com/visulima/visulima/commit/964722f691db205c7edb9aa6db29e849a647500b))
334
+
335
+
336
+ ### Dependencies
337
+
338
+ * **@visulima/boxen:** upgraded to 3.0.0-alpha.4
339
+
1
340
  ## @visulima/error-handler [2.0.0-alpha.3](https://github.com/visulima/visulima/compare/@visulima/error-handler@2.0.0-alpha.2...@visulima/error-handler@2.0.0-alpha.3) (2025-12-11)
2
341
 
3
342
  ### Bug Fixes
package/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 visulima
3
+ Copyright (c) 2026 visulima
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,13 +1,14 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { ErrorHandler } from "./types.d.d.ts";
3
- export type HtmlErrorHandlerOptions = {
4
- cspNonce?: string;
5
- errorPage?: string | ((parameters: {
6
- error: Error;
7
- reasonPhrase: string;
8
- request: IncomingMessage;
9
- response: ServerResponse;
10
- statusCode: number;
11
- }) => string | Promise<string>);
1
+ import { IncomingMessage, ServerResponse } from 'node:http';
2
+ import { a as ErrorHandler } from "../packem_shared/types.d-C763gSYq.js";
3
+ type HtmlErrorHandlerOptions = {
4
+ cspNonce?: string;
5
+ errorPage?: string | ((parameters: {
6
+ error: Error;
7
+ reasonPhrase: string;
8
+ request: IncomingMessage;
9
+ response: ServerResponse;
10
+ statusCode: number;
11
+ }) => string | Promise<string>);
12
12
  };
13
- export declare const htmlErrorHandler: (options?: HtmlErrorHandlerOptions) => ErrorHandler;
13
+ declare const htmlErrorHandler: (options?: HtmlErrorHandlerOptions) => ErrorHandler;
14
+ export { HtmlErrorHandlerOptions, htmlErrorHandler };
@@ -1,4 +1,4 @@
1
- var l=Object.defineProperty;var n=(e,r)=>l(e,"name",{value:r,configurable:!0});import{getReasonPhrase as c}from"http-status-codes";import{a as m}from"../packem_shared/add-status-code-to-response-BE6paXjR.js";var g=Object.defineProperty,s=n((e,r)=>g(e,"name",{value:r,configurable:!0}),"n");const x=s((e={})=>async(r,d,t)=>{m(t,r),t.setHeader("content-type","text/html; charset=utf-8");const o=c(t.statusCode)||"Error",a=e.cspNonce?` nonce="${e.cspNonce}"`:"";if(e.errorPage){const i=typeof e.errorPage=="function"?await e.errorPage({error:r,reasonPhrase:o,request:d,response:t,statusCode:t.statusCode}):e.errorPage;if(i){t.end(i);return}}t.end(String.raw`<!DOCTYPE html>
1
+ var l=Object.defineProperty;var n=(e,r)=>l(e,"name",{value:r,configurable:!0});import{getReasonPhrase as c}from"http-status-codes";import{p as m}from"../packem_shared/add-status-code-to-response-Dc6Pvpeh.js";var g=Object.defineProperty,s=n((e,r)=>g(e,"name",{value:r,configurable:!0}),"n");const x=s((e={})=>async(r,d,t)=>{m(t,r),t.setHeader("content-type","text/html; charset=utf-8");const o=c(t.statusCode)||"Error",a=e.cspNonce?` nonce="${e.cspNonce}"`:"";if(e.errorPage){const i=typeof e.errorPage=="function"?await e.errorPage({error:r,reasonPhrase:o,request:d,response:t,statusCode:t.statusCode}):e.errorPage;if(i){t.end(i);return}}t.end(String.raw`<!DOCTYPE html>
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="utf-8">
@@ -1,14 +1,15 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { ErrorHandler } from "./types.d.d.ts";
3
- export type JsonErrorBody = Record<string, unknown> | unknown[];
4
- export type JsonErrorFormatter = (parameters: {
5
- error: Error;
6
- reasonPhrase: string;
7
- request: IncomingMessage;
8
- response: ServerResponse;
9
- statusCode: number;
1
+ import { IncomingMessage, ServerResponse } from 'node:http';
2
+ import { a as ErrorHandler } from "../packem_shared/types.d-C763gSYq.js";
3
+ type JsonErrorBody = Record<string, unknown> | unknown[];
4
+ type JsonErrorFormatter = (parameters: {
5
+ error: Error;
6
+ reasonPhrase: string;
7
+ request: IncomingMessage;
8
+ response: ServerResponse;
9
+ statusCode: number;
10
10
  }) => JsonErrorBody | Promise<JsonErrorBody>;
11
- export type JsonErrorHandlerOptions = {
12
- formatter?: JsonErrorFormatter;
11
+ type JsonErrorHandlerOptions = {
12
+ formatter?: JsonErrorFormatter;
13
13
  };
14
- export declare const jsonErrorHandler: (options?: JsonErrorHandlerOptions) => ErrorHandler;
14
+ declare const jsonErrorHandler: (options?: JsonErrorHandlerOptions) => ErrorHandler;
15
+ export { JsonErrorBody, JsonErrorFormatter, JsonErrorHandlerOptions, jsonErrorHandler };
@@ -1 +1 @@
1
- var p=Object.defineProperty;var a=(e,r)=>p(e,"name",{value:r,configurable:!0});import{getReasonPhrase as u}from"http-status-codes";import{a as f}from"../packem_shared/add-status-code-to-response-BE6paXjR.js";import{s as n}from"../packem_shared/send-json-Cedv8-Bt.js";import{a as i}from"../packem_shared/set-error-headers-DT9rVGtW.js";var g=Object.defineProperty,l=a((e,r)=>g(e,"name",{value:r,configurable:!0}),"n");const h=l((e={})=>async(r,m,s)=>{f(s,r),i(s,r);const{statusCode:o}=s,t=u(o)||"An error occurred";if(e.formatter){const c=await e.formatter({error:r,reasonPhrase:t,request:m,response:s,statusCode:o});n(s,c);return}const{expose:d}=r;n(s,{message:r.message||t,error:t,statusCode:o,...d?{stack:r.stack}:{}})},"jsonErrorHandler");export{h as jsonErrorHandler};
1
+ var f=Object.defineProperty;var a=(e,r)=>f(e,"name",{value:r,configurable:!0});import{getReasonPhrase as i}from"http-status-codes";import{p as u}from"../packem_shared/add-status-code-to-response-Dc6Pvpeh.js";import{s as n}from"../packem_shared/send-json-DfdjS9Xp.js";import{a as d}from"../packem_shared/set-error-headers-DT9rVGtW.js";var g=Object.defineProperty,l=a((e,r)=>g(e,"name",{value:r,configurable:!0}),"n");const h=l((e={})=>async(r,m,s)=>{u(s,r),d(s,r);const{statusCode:t}=s,o=i(t)||"An error occurred";if(e.formatter){const p=await e.formatter({error:r,reasonPhrase:o,request:m,response:s,statusCode:t});n(s,p);return}const{expose:c}=r;n(s,{message:r.message||o,error:o,statusCode:t,...c?{stack:r.stack}:{}})},"jsonErrorHandler");export{h as jsonErrorHandler};
@@ -1,3 +1,4 @@
1
- import type { ErrorHandler } from "./types.d.d.ts";
1
+ import { a as ErrorHandler } from "../packem_shared/types.d-C763gSYq.js";
2
+ import 'node:http';
2
3
  declare const jsonapiErrorHandler: ErrorHandler;
3
- export default jsonapiErrorHandler;
4
+ export { jsonapiErrorHandler as default };
@@ -1 +1 @@
1
- var u=Object.defineProperty;var i=(e,s)=>u(e,"name",{value:s,configurable:!0});import{isHttpError as f}from"http-errors";import{getReasonPhrase as n}from"http-status-codes";import a from"ts-japi";import{a as l}from"../packem_shared/add-status-code-to-response-BE6paXjR.js";import{s as t}from"../packem_shared/send-json-Cedv8-Bt.js";import{a as c}from"../packem_shared/set-error-headers-DT9rVGtW.js";var g=Object.defineProperty,C=i((e,s)=>g(e,"name",{value:s,configurable:!0}),"n");const d="An error occurred",H=C((e,s,r)=>{if(l(r,e),c(r,e),e instanceof a.JapiError||a.JapiError.isLikeJapiError(e)){const o=new a.ErrorSerializer;t(r,o.serialize(e))}else if(f(e)){const o="statusCode"in e&&typeof e.statusCode=="number"?e.statusCode:"status"in e&&typeof e.status=="number"?e.status:r.statusCode,m="title"in e&&typeof e.title=="string"?e.title:void 0,p="message"in e&&typeof e.message=="string"?e.message:"";t(r,{errors:[{code:o??r.statusCode,title:m||n(o)||d,detail:p}]})}else{const{message:o}=e;t(r,{errors:[{code:"500",title:n(r.statusCode)||d,detail:o}]})}},"jsonapiErrorHandler");export{H as default};
1
+ var l=Object.defineProperty;var a=(e,o)=>l(e,"name",{value:o,configurable:!0});import{isHttpError as u}from"http-errors";import{getReasonPhrase as n}from"http-status-codes";import i from"ts-japi";import{p as d}from"../packem_shared/add-status-code-to-response-Dc6Pvpeh.js";import{s as t}from"../packem_shared/send-json-DfdjS9Xp.js";import{a as c}from"../packem_shared/set-error-headers-DT9rVGtW.js";var g=Object.defineProperty,m=a((e,o)=>g(e,"name",{value:o,configurable:!0}),"i");const E=m((e,o)=>"statusCode"in e&&typeof e.statusCode=="number"?e.statusCode:"status"in e&&typeof e.status=="number"?e.status:o,"resolveStatusCode"),H=m((e,o,r)=>{if(d(r,e),c(r,e),e instanceof i.JapiError||i.JapiError.isLikeJapiError(e)){const s=new i.ErrorSerializer;t(r,s.serialize(e))}else if(u(e)){const s=E(e,r.statusCode),p="title"in e&&typeof e.title=="string"?e.title:void 0,f="message"in e&&typeof e.message=="string"?e.message:"";t(r,{errors:[{code:s,title:p??n(s),detail:f}]})}else{const{message:s}=e;t(r,{errors:[{code:"500",title:n(r.statusCode),detail:s}]})}},"jsonapiErrorHandler");export{H as default};
@@ -1,15 +1,16 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { ErrorHandler } from "./types.d.d.ts";
3
- export type JsonpErrorBody = Record<string, unknown> | unknown[];
4
- export type JsonpErrorFormatter = (parameters: {
5
- error: Error;
6
- reasonPhrase: string;
7
- request: IncomingMessage;
8
- response: ServerResponse;
9
- statusCode: number;
1
+ import { IncomingMessage, ServerResponse } from 'node:http';
2
+ import { a as ErrorHandler } from "../packem_shared/types.d-C763gSYq.js";
3
+ declare const jsonpErrorHandler: (options?: JsonpErrorHandlerOptions) => ErrorHandler;
4
+ type JsonpErrorBody = Record<string, unknown> | unknown[];
5
+ type JsonpErrorFormatter = (parameters: {
6
+ error: Error;
7
+ reasonPhrase: string;
8
+ request: IncomingMessage;
9
+ response: ServerResponse;
10
+ statusCode: number;
10
11
  }) => JsonpErrorBody | Promise<JsonpErrorBody>;
11
- export type JsonpErrorHandlerOptions = {
12
- callbackParamName?: string;
13
- formatter?: JsonpErrorFormatter;
12
+ type JsonpErrorHandlerOptions = {
13
+ callbackParamName?: string;
14
+ formatter?: JsonpErrorFormatter;
14
15
  };
15
- export declare const jsonpErrorHandler: (options?: JsonpErrorHandlerOptions) => ErrorHandler;
16
+ export { JsonpErrorBody, JsonpErrorFormatter, JsonpErrorHandlerOptions, jsonpErrorHandler };
@@ -1 +1 @@
1
- var i=Object.defineProperty;var n=(e,a)=>i(e,"name",{value:a,configurable:!0});import{getReasonPhrase as f}from"http-status-codes";import{a as u}from"../packem_shared/add-status-code-to-response-BE6paXjR.js";import{a as h}from"../packem_shared/set-error-headers-DT9rVGtW.js";var g=Object.defineProperty,b=n((e,a)=>g(e,"name",{value:a,configurable:!0}),"c");const k="callback",C=b((e={})=>async(a,c,t)=>{u(t,a),h(t,a);const{statusCode:r}=t,s=f(r)||"An error occurred",l=new URL(c.url??"http://localhost","http://localhost"),p=e.callbackParamName||k,m=l.searchParams.get(p)||"callback";let o;if(e.formatter)o=await e.formatter({error:a,reasonPhrase:s,request:c,response:t,statusCode:r});else{const{expose:d}=a;o={message:a.message||s,error:s,statusCode:r,...d?{stack:a.stack}:{}}}t.setHeader("content-type","application/javascript; charset=utf-8"),t.end(`${m}(${JSON.stringify(o)});`)},"jsonpErrorHandler");export{C as jsonpErrorHandler};
1
+ var h=Object.defineProperty;var p=(t,a)=>h(t,"name",{value:a,configurable:!0});import{getReasonPhrase as u}from"http-status-codes";import{p as d}from"../packem_shared/add-status-code-to-response-Dc6Pvpeh.js";import{a as g}from"../packem_shared/set-error-headers-DT9rVGtW.js";var $=Object.defineProperty,P=p((t,a)=>$(t,"name",{value:a,configurable:!0}),"c");const c="callback",y=P((t={})=>async(a,l,e)=>{d(e,a),g(e,a);const{statusCode:s}=e,o=u(s),i=new URL(l.url??"http://localhost","http://localhost"),m=t.callbackParamName??c;let r=i.searchParams.get(m)??c,n;if(t.formatter)n=await t.formatter({error:a,reasonPhrase:o,request:l,response:e,statusCode:s});else{const{expose:f}=a;n={message:a.message||o,error:o,statusCode:s,...f?{stack:a.stack}:{}}}(r.length>64||!/^[A-Za-z_$][\w$.]*$/u.test(r))&&(r=c),e.setHeader("content-type","application/javascript; charset=utf-8"),e.end(`${r}(${JSON.stringify(n)});`)},"jsonpErrorHandler");export{y as jsonpErrorHandler};
@@ -1,7 +1,8 @@
1
- import type { ErrorHandler } from "./types.d.d.ts";
1
+ import { a as ErrorHandler } from "../packem_shared/types.d-C763gSYq.js";
2
+ import 'node:http';
2
3
  /**
3
- * Normalizes errors according to the API Problem spec (RFC 7807).
4
- * @see https://tools.ietf.org/html/rfc7807
5
- */
4
+ * Normalizes errors according to the API Problem spec (RFC 7807).
5
+ * @see https://tools.ietf.org/html/rfc7807
6
+ */
6
7
  declare const problemErrorHandler: ErrorHandler;
7
- export default problemErrorHandler;
8
+ export { problemErrorHandler as default };
@@ -1 +1 @@
1
- var c=Object.defineProperty;var i=(e,o)=>c(e,"name",{value:o,configurable:!0});import{isHttpError as y}from"http-errors";import{getReasonPhrase as p}from"http-status-codes";import{a as b}from"../packem_shared/add-status-code-to-response-BE6paXjR.js";import{s as n}from"../packem_shared/send-json-Cedv8-Bt.js";import{a as C}from"../packem_shared/set-error-headers-DT9rVGtW.js";var v=Object.defineProperty,g=i((e,o)=>v(e,"name",{value:o,configurable:!0}),"i");const d="about:blank",u="An error occurred",R=g((e,o,t)=>{const{message:a,stack:r}=e;if(y(e)){const l="expose"in e?e.expose:void 0,s="statusCode"in e&&typeof e.statusCode=="number"?e.statusCode:"status"in e&&typeof e.status=="number"?e.status:t.statusCode,m="title"in e&&typeof e.title=="string"?e.title:void 0,f="type"in e&&typeof e.type=="string"?e.type:void 0;t.statusCode=s,C(t,e),n(t,{type:f||d,title:m||p(s)||u,status:s,detail:a,...l?{trace:r}:{}},"application/problem+json")}else b(t,e),n(t,{type:d,title:p(t.statusCode)||u,status:t.statusCode,detail:a,...e.expose?{trace:r}:{}},"application/problem+json")},"problemErrorHandler");export{R as default};
1
+ var y=Object.defineProperty;var i=(e,o)=>y(e,"name",{value:o,configurable:!0});import{isHttpError as c}from"http-errors";import{getReasonPhrase as p}from"http-status-codes";import{p as b}from"../packem_shared/add-status-code-to-response-Dc6Pvpeh.js";import{s as n}from"../packem_shared/send-json-DfdjS9Xp.js";import{a as C}from"../packem_shared/set-error-headers-DT9rVGtW.js";var v=Object.defineProperty,l=i((e,o)=>v(e,"name",{value:o,configurable:!0}),"o");const u="about:blank",g=l((e,o)=>"statusCode"in e&&typeof e.statusCode=="number"?e.statusCode:"status"in e&&typeof e.status=="number"?e.status:o,"resolveStatusCode"),h=l((e,o,t)=>{const{message:a,stack:r}=e;if(c(e)){const m="expose"in e?e.expose:void 0,s=g(e,t.statusCode),d="title"in e&&typeof e.title=="string"?e.title:void 0,f="type"in e&&typeof e.type=="string"?e.type:void 0;t.statusCode=s,C(t,e),n(t,{type:f??u,title:d??p(s),status:s,detail:a,...m?{trace:r}:{}},"application/problem+json")}else b(t,e),n(t,{type:u,title:p(t.statusCode),status:t.statusCode,detail:a,...e.expose?{trace:r}:{}},"application/problem+json")},"problemErrorHandler");export{h as default};
@@ -1,13 +1,14 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { ErrorHandler } from "./types.d.d.ts";
3
- export type TextErrorFormatter = (parameters: {
4
- error: Error;
5
- reasonPhrase: string;
6
- request: IncomingMessage;
7
- response: ServerResponse;
8
- statusCode: number;
1
+ import { IncomingMessage, ServerResponse } from 'node:http';
2
+ import { a as ErrorHandler } from "../packem_shared/types.d-C763gSYq.js";
3
+ type TextErrorFormatter = (parameters: {
4
+ error: Error;
5
+ reasonPhrase: string;
6
+ request: IncomingMessage;
7
+ response: ServerResponse;
8
+ statusCode: number;
9
9
  }) => string | Promise<string>;
10
- export type TextErrorHandlerOptions = {
11
- formatter?: TextErrorFormatter;
10
+ type TextErrorHandlerOptions = {
11
+ formatter?: TextErrorFormatter;
12
12
  };
13
- export declare const textErrorHandler: (options?: TextErrorHandlerOptions) => ErrorHandler;
13
+ declare const textErrorHandler: (options?: TextErrorHandlerOptions) => ErrorHandler;
14
+ export { TextErrorFormatter, TextErrorHandlerOptions, textErrorHandler };
@@ -1,3 +1,3 @@
1
- var f=Object.defineProperty;var d=(r,e)=>f(r,"name",{value:e,configurable:!0});import{getReasonPhrase as i}from"http-status-codes";import{a as u}from"../packem_shared/add-status-code-to-response-BE6paXjR.js";import{a as l}from"../packem_shared/set-error-headers-DT9rVGtW.js";var x=Object.defineProperty,v=d((r,e)=>x(r,"name",{value:e,configurable:!0}),"m");const E=v((r={})=>async(e,c,t)=>{u(t,e),l(t,e);const{statusCode:o}=t,a=i(o)||"Error";if(t.setHeader("content-type","text/plain; charset=utf-8"),r.formatter){const p=await r.formatter({error:e,reasonPhrase:a,request:c,response:t,statusCode:o});t.end(p);return}const s=e.message||a,{expose:m}=e,n=m?e.stack:void 0;t.end(n?`${s}
1
+ var f=Object.defineProperty;var c=(t,e)=>f(t,"name",{value:e,configurable:!0});import{getReasonPhrase as i}from"http-status-codes";import{p as u}from"../packem_shared/add-status-code-to-response-Dc6Pvpeh.js";import{a as l}from"../packem_shared/set-error-headers-DT9rVGtW.js";var x=Object.defineProperty,v=c((t,e)=>x(t,"name",{value:e,configurable:!0}),"m");const E=v((t={})=>async(e,m,r)=>{u(r,e),l(r,e);const{statusCode:o}=r,a=i(o)||"Error";if(r.setHeader("content-type","text/plain; charset=utf-8"),t.formatter){const d=await t.formatter({error:e,reasonPhrase:a,request:m,response:r,statusCode:o});r.end(d);return}const s=e.message||a,{expose:p}=e,n=p?e.stack:void 0;r.end(n?`${s}
2
2
 
3
3
  ${n}`:s)},"textErrorHandler");export{E as textErrorHandler};
@@ -1,26 +1,27 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { ErrorHandler } from "./types.d.d.ts";
3
- export type XmlErrorBody = Record<string, unknown> | unknown[];
4
- export type XmlErrorFormatter = (parameters: {
5
- error: Error;
6
- reasonPhrase: string;
7
- request: IncomingMessage;
8
- response: ServerResponse;
9
- statusCode: number;
1
+ import { IncomingMessage, ServerResponse } from 'node:http';
2
+ import { a as ErrorHandler } from "../packem_shared/types.d-C763gSYq.js";
3
+ type XmlErrorBody = Record<string, unknown> | unknown[];
4
+ type XmlErrorFormatter = (parameters: {
5
+ error: Error;
6
+ reasonPhrase: string;
7
+ request: IncomingMessage;
8
+ response: ServerResponse;
9
+ statusCode: number;
10
10
  }) => XmlErrorBody | Promise<XmlErrorBody>;
11
- export type ToXmlOptions = {
12
- attributeExplicitTrue?: boolean;
13
- attributeFilter?: (key: string, value: unknown) => boolean;
14
- attributeReplacements?: Record<string, string>;
15
- contentMap?: (content: string) => string;
16
- contentReplacements?: Record<string, string>;
17
- header?: string | boolean;
18
- indent?: string;
19
- selfCloseTags?: boolean;
11
+ type ToXmlOptions = {
12
+ attributeExplicitTrue?: boolean;
13
+ attributeFilter?: (key: string, value: unknown) => boolean;
14
+ attributeReplacements?: Record<string, string>;
15
+ contentMap?: (content: string) => string;
16
+ contentReplacements?: Record<string, string>;
17
+ header?: string | boolean;
18
+ indent?: string;
19
+ selfCloseTags?: boolean;
20
20
  };
21
- export type XmlErrorHandlerOptions = {
22
- formatter?: XmlErrorFormatter;
23
- toXml?: ToXmlOptions;
24
- xmlHeader?: boolean;
21
+ type XmlErrorHandlerOptions = {
22
+ formatter?: XmlErrorFormatter;
23
+ toXml?: ToXmlOptions;
24
+ xmlHeader?: boolean;
25
25
  };
26
- export declare const xmlErrorHandler: (options?: XmlErrorHandlerOptions) => ErrorHandler;
26
+ declare const xmlErrorHandler: (options?: XmlErrorHandlerOptions) => ErrorHandler;
27
+ export { ToXmlOptions, XmlErrorBody, XmlErrorFormatter, XmlErrorHandlerOptions, xmlErrorHandler };
@@ -1 +1 @@
1
- var c=Object.defineProperty;var l=(t,e)=>c(t,"name",{value:e,configurable:!0});import{getReasonPhrase as p}from"http-status-codes";import{toXML as u}from"jstoxml";import{a as d}from"../packem_shared/add-status-code-to-response-BE6paXjR.js";import{a as X}from"../packem_shared/set-error-headers-DT9rVGtW.js";var f=Object.defineProperty,b=l((t,e)=>f(t,"name",{value:e,configurable:!0}),"l");const h=b((t={})=>async(e,n,o)=>{d(o,e),X(o,e);const{statusCode:r}=o,a=p(r)||"An error occurred";let s;if(t.formatter)s=await t.formatter({error:e,reasonPhrase:a,request:n,response:o,statusCode:r});else{const{expose:i}=e;s={error:{statusCode:r,name:a,message:e.message||a,...i?{stack:e.stack}:{}}}}const m=u(s,{header:t.toXml?.header??t.xmlHeader??!0,indent:t.toXml?.indent??" ",...t.toXml?.attributeReplacements?{attributeReplacements:t.toXml.attributeReplacements}:{},...t.toXml?.attributeFilter?{attributeFilter:t.toXml.attributeFilter}:{},...t.toXml?.attributeExplicitTrue===void 0?{}:{attributeExplicitTrue:t.toXml.attributeExplicitTrue},...t.toXml?.contentMap?{contentMap:t.toXml.contentMap}:{},...t.toXml?.contentReplacements?{contentReplacements:t.toXml.contentReplacements}:{},...t.toXml?.selfCloseTags===void 0?{}:{selfCloseTags:t.toXml.selfCloseTags}});o.setHeader("content-type","application/xml; charset=utf-8"),o.end(m)},"xmlErrorHandler");export{h as xmlErrorHandler};
1
+ var c=Object.defineProperty;var s=(t,e)=>c(t,"name",{value:e,configurable:!0});import{getReasonPhrase as p}from"http-status-codes";import{toXML as u}from"jstoxml";import{p as d}from"../packem_shared/add-status-code-to-response-Dc6Pvpeh.js";import{a as X}from"../packem_shared/set-error-headers-DT9rVGtW.js";var f=Object.defineProperty,b=s((t,e)=>f(t,"name",{value:e,configurable:!0}),"l");const h=b((t={})=>async(e,n,o)=>{d(o,e),X(o,e);const{statusCode:r}=o,a=p(r)||"An error occurred";let l;if(t.formatter)l=await t.formatter({error:e,reasonPhrase:a,request:n,response:o,statusCode:r});else{const{expose:i}=e;l={error:{statusCode:r,name:a,message:e.message||a,...i?{stack:e.stack}:{}}}}const m=u(l,{header:t.toXml?.header??t.xmlHeader??!0,indent:t.toXml?.indent??" ",...t.toXml?.attributeReplacements?{attributeReplacements:t.toXml.attributeReplacements}:{},...t.toXml?.attributeFilter?{attributeFilter:t.toXml.attributeFilter}:{},...t.toXml?.attributeExplicitTrue===void 0?{}:{attributeExplicitTrue:t.toXml.attributeExplicitTrue},...t.toXml?.contentMap?{contentMap:t.toXml.contentMap}:{},...t.toXml?.contentReplacements?{contentReplacements:t.toXml.contentReplacements}:{},...t.toXml?.selfCloseTags===void 0?{}:{selfCloseTags:t.toXml.selfCloseTags}});o.setHeader("content-type","application/xml; charset=utf-8"),o.end(m)},"xmlErrorHandler");export{h as xmlErrorHandler};
@@ -1,4 +1,27 @@
1
- import type { BaseCliOptions } from "../../../../../shared/utils/cli-error-builder.d.ts";
2
- export type { BaseCliOptions, CliHandlerOptions } from "../../../../../shared/utils/cli-error-builder.d.ts";
3
- export declare const ansiHandler: (error: Error, options?: BaseCliOptions) => Promise<string>;
4
- export { terminalOutput as cliHandler } from "../../../../../shared/utils/cli-error-builder.d.ts";
1
+ import { RenderErrorOptions } from '@visulima/error/error';
2
+ import { SolutionFinder } from '@visulima/error/solution';
3
+ type CliLogger = {
4
+ error: (...arguments_: unknown[]) => void;
5
+ log: (...arguments_: unknown[]) => void;
6
+ };
7
+ type ColorizeMethod = (value: string) => string;
8
+ type BaseCliOptions = {
9
+ solutionTitle?: string;
10
+ solutionFinders?: SolutionFinder[];
11
+ debug?: boolean;
12
+ } & Partial<Omit<RenderErrorOptions, "color">> & {
13
+ color?: {
14
+ codeFrame?: RenderErrorOptions["color"];
15
+ boxen?: {
16
+ headerTextColor?: ColorizeMethod;
17
+ textColor?: ColorizeMethod;
18
+ borderColor?: ColorizeMethod;
19
+ };
20
+ };
21
+ };
22
+ type CliHandlerOptions = BaseCliOptions & {
23
+ logger?: CliLogger;
24
+ };
25
+ declare const terminalOutput: (error: Error, options?: CliHandlerOptions) => Promise<void>;
26
+ declare const ansiHandler: (error: Error, options?: BaseCliOptions) => Promise<string>;
27
+ export { type BaseCliOptions, type CliHandlerOptions, ansiHandler, terminalOutput as cliHandler };
@@ -1,8 +1,9 @@
1
- import type { HtmlErrorHandlerOptions } from "../../error-handler/html-error-handler.d.ts";
2
- import type { FetchErrorHandlers } from "../../error-handler/types.d.d.ts";
1
+ import { HtmlErrorHandlerOptions } from "../../error-handler/html-error-handler.js";
2
+ import { F as FetchErrorHandlers } from "../../packem_shared/types.d-C763gSYq.js";
3
+ import 'node:http';
3
4
  declare const fetchHandler: (error: Error, options?: HtmlErrorHandlerOptions & {
4
- extraHandlers?: FetchErrorHandlers;
5
- onError?: (error: Error, request: Request) => void | Promise<void>;
6
- showTrace?: boolean;
7
- }) => Promise<(request: Request) => Promise<Response>>;
8
- export default fetchHandler;
5
+ extraHandlers?: FetchErrorHandlers;
6
+ onError?: (error: Error, request: Request) => void | Promise<void>;
7
+ showTrace?: boolean;
8
+ }) => (request: Request) => Promise<Response>;
9
+ export { fetchHandler as default };
@@ -1 +1 @@
1
- var b=Object.defineProperty;var c=(r,e)=>b(r,"name",{value:e,configurable:!0});import{jsonErrorHandler as g}from"../../error-handler/json-error-handler.js";import w from"../../error-handler/jsonapi-error-handler.js";import{jsonpErrorHandler as y}from"../../error-handler/jsonp-error-handler.js";import u from"../../error-handler/problem-error-handler.js";import{textErrorHandler as H}from"../../error-handler/text-error-handler.js";import{xmlErrorHandler as v}from"../../error-handler/xml-error-handler.js";import{htmlErrorHandler as L}from"../../error-handler/html-error-handler.js";var j=Object.defineProperty,h=c((r,e)=>j(r,"name",{value:e,configurable:!0}),"a$1");class x{static{c(this,"j")}static{h(this,"MockServerResponse")}statusCode=200;headers={};_body="";setHeader(e,s){this.headers[e.toLowerCase()]=s}getHeader(e){return this.headers[e.toLowerCase()]}getHeaders(){return{...this.headers}}writeHead(e){this.statusCode=e}write(e){this._body+=e.toString()}end(e){e&&(this._body+=e.toString())}flushHeaders(){}}const k=h(r=>{if(!r)return"text/html";const e=r.toLowerCase();return e.includes("text/html")?"text/html":e.includes("application/vnd.api+json")?"application/vnd.api+json":e.includes("application/problem+json")?"application/problem+json":e.includes("application/json")?"application/json":e.includes("text/plain")?"text/plain":e.includes("application/javascript")||e.includes("text/javascript")?"application/javascript":e.includes("application/xml")||e.includes("text/xml")?"application/xml":"text/html"},"negotiateContentType"),d=h(r=>async(e,s)=>{const a={headers:Object.fromEntries(s.headers.entries()),method:s.method,url:s.url},i=new x;await r(e,a,i);const o={};for(const[l,n]of Object.entries(i.headers))o[l]=Array.isArray(n)?n.join(", "):String(n);return new Response(i._body,{headers:o,status:i.statusCode})},"adaptErrorHandlerToFetch"),C=h((r,e,s)=>async(a,i)=>{const o=i.headers.get("accept"),l=k(o);let n=s||d(u);if(l==="text/html"&&s)n=s;else switch(l){case"application/javascript":{n=d(y());break}case"application/json":{n=d(g());break}case"application/problem+json":{n=d(u);break}case"application/vnd.api+json":{n=d(w);break}case"application/xml":{n=d(v());break}case"text/plain":{n=d(H());break}}for(const{handler:p,regex:m}of r){const f=o??"";if(m.test(f)){n=p;break}}return a.expose=e,n(a,i)},"createFetchNegotiatedErrorHandler");var E=Object.defineProperty,t=c((r,e)=>E(r,"name",{value:e,configurable:!0}),"e");class S{static{c(this,"b")}static{t(this,"MockServerResponse")}statusCode=200;statusMessage="";headers={};headersSent=!1;writable=!0;finished=!1;writableEnded=!1;writableFinished=!1;writableHighWaterMark=16384;writableLength=0;destroyed=!1;writableCorked=0;readable=!1;readableHighWaterMark=16384;readableLength=0;errored=null;closed=!1;readableAborted=!1;readableDidRead=!1;readableEncoding=null;readableEnded=!1;readableFlowing=null;_events;_eventsCount=0;_maxListeners;body="";sendDate=!0;strictContentLength=!1;chunkedEncoding=!1;shouldKeepAlive=!0;useChunkedEncodingByDefault=!0;_hasBody=!0;_trailer="";connection=null;socket=null;setHeader(e,s){return this.headers[e.toLowerCase()]=s,this}getHeader(e){return this.headers[e.toLowerCase()]}getHeaders(){return{...this.headers}}getHeaderNames(){return Object.keys(this.headers)}hasHeader(e){return e.toLowerCase()in this.headers}removeHeader(e){return delete this.headers[e.toLowerCase()],this}writeHead(e,s,a){return this.statusCode=e,typeof s=="string"&&(this.statusMessage=s),typeof s=="object"&&(a=s),a&&Object.assign(this.headers,a),this}write(e){return this.body+=e.toString(),!0}end(e,s,a){return e&&(this.body+=e.toString()),this.finished=!0,this}flushHeaders(){this.headersSent=!0}addListener=t(()=>this,"addListener");on=t(()=>this,"on");once=t(()=>this,"once");removeListener=t(()=>this,"removeListener");off=t(()=>this,"off");removeAllListeners=t(()=>this,"removeAllListeners");setMaxListeners=t(()=>this,"setMaxListeners");getMaxListeners=t(()=>10,"getMaxListeners");listeners=t(()=>[],"listeners");rawListeners=t(()=>[],"rawListeners");emit=t(()=>!1,"emit");eventNames=t(()=>[],"eventNames");listenerCount=t(()=>0,"listenerCount");prependListener=t(()=>this,"prependListener");prependOnceListener=t(()=>this,"prependOnceListener");cork=t(()=>{},"cork");uncork=t(()=>{},"uncork");destroy=t(()=>this,"destroy");read=t(()=>null,"read");setEncoding=t(()=>this,"setEncoding");pause=t(()=>this,"pause");resume=t(()=>this,"resume");isPaused=t(()=>!1,"isPaused");destroySoon=t(()=>this,"destroySoon");pipe=t(()=>({}),"pipe");unpipe=t(()=>this,"unpipe");unshift=t(()=>{},"unshift");wrap=t(()=>this,"wrap");setTimeout=t(()=>this,"setTimeout");assignSocket=t(()=>{},"assignSocket");detachSocket=t(()=>{},"detachSocket");writeContinue=t(()=>{},"writeContinue");writeEarlyHints=t(()=>{},"writeEarlyHints")}const M=t((r={})=>{const e=L(r);return async(s,a)=>{const i={headers:Object.fromEntries(a.headers.entries()),method:a.method,url:a.url},o=new S;await e(s,i,o);const l=o.getHeader("content-type")||"text/html; charset=utf-8";return new Response(o.body,{headers:{"content-type":l,...o.headers},status:o.statusCode})}},"fetchHtmlErrorHandler");var O=Object.defineProperty,_=c((r,e)=>O(r,"name",{value:e,configurable:!0}),"t");const B=_(async(r,e={})=>{const s=M(e),a=C(e.extraHandlers??[],e.showTrace??!0,s);return async i=>(e?.onError&&await e.onError(r,i),a(r,i))},"fetchHandler");export{B as default};
1
+ var w=Object.defineProperty;var h=(n,e)=>w(n,"name",{value:e,configurable:!0});import{jsonErrorHandler as v}from"../../error-handler/json-error-handler.js";import H from"../../error-handler/jsonapi-error-handler.js";import{jsonpErrorHandler as x}from"../../error-handler/jsonp-error-handler.js";import b from"../../error-handler/problem-error-handler.js";import{textErrorHandler as j}from"../../error-handler/text-error-handler.js";import{xmlErrorHandler as L}from"../../error-handler/xml-error-handler.js";import{htmlErrorHandler as k}from"../../error-handler/html-error-handler.js";var E=Object.defineProperty,p=h((n,e)=>E(n,"name",{value:e,configurable:!0}),"c");class C{static{h(this,"v")}static{p(this,"MockServerResponse")}statusCode=200;headers={};responseBody="";setHeader(e,s){this.headers[e.toLowerCase()]=s}getHeader(e){return this.headers[e.toLowerCase()]}getHeaders(){return{...this.headers}}writeHead(e){this.statusCode=e}write(e){this.responseBody+=e.toString()}end(e){e&&(this.responseBody+=e.toString())}flushHeaders(){}}const S=[{chosen:"text/html",types:["text/html"]},{chosen:"application/vnd.api+json",types:["application/vnd.api+json"]},{chosen:"application/problem+json",types:["application/problem+json"]},{chosen:"application/json",types:["application/json"]},{chosen:"text/plain",types:["text/plain"]},{chosen:"application/javascript",types:["application/javascript","text/javascript"]},{chosen:"application/xml",types:["application/xml","text/xml"]}],O=p(n=>{if(!n)return"text/html";const e=[];for(const o of n.split(",")){const[a,...i]=o.trim().split(";"),d=(a??"").trim().toLowerCase();if(d==="")continue;let r=1;for(const f of i){const[y,g]=f.trim().split("=");if((y??"").trim().toLowerCase()==="q"){const m=Number.parseFloat((g??"").trim());Number.isNaN(m)||(r=m)}}if(r<=0)continue;const[c="",u=""]=d.split("/");e.push({quality:r,subtype:u,type:c})}if(e.length===0)return"text/html";const s=p(o=>{const[a,i]=o.split("/");return e.some(({subtype:d,type:r})=>r==="*"&&d==="*"||r===a&&d==="*"?!0:r===a&&d===i)},"matches");for(const{chosen:o,types:a}of S)if(a.some(i=>s(i)))return o;return"text/html"},"negotiateContentType"),l=p(n=>async(e,s)=>{const o={headers:Object.fromEntries(s.headers.entries()),method:s.method,url:s.url},a=new C;await n(e,o,a);const i={};for(const[d,r]of Object.entries(a.headers))i[d]=Array.isArray(r)?r.join(", "):String(r);return new Response(a.responseBody,{headers:i,status:a.statusCode})},"adaptErrorHandlerToFetch"),M=p((n,e,s)=>async(o,a)=>{const i=a.headers.get("accept"),d=O(i);let r=s??l(b);if(d==="text/html"&&s)r=s;else switch(d){case"application/javascript":{r=l(x());break}case"application/json":{r=l(v());break}case"application/problem+json":{r=l(b);break}case"application/vnd.api+json":{r=l(H);break}case"application/xml":{r=l(L());break}case"text/plain":{r=l(j());break}}for(const{handler:c,regex:u}of n){const f=i??"";if(u.test(f)){r=c;break}}return e?"expose"in o||(o.expose=!0):o.expose=!1,r(o,a)},"createFetchNegotiatedErrorHandler");var A=Object.defineProperty,t=h((n,e)=>A(n,"name",{value:e,configurable:!0}),"e");class N{static{h(this,"b")}static{t(this,"MockServerResponse")}statusCode=200;statusMessage="";headers={};headersSent=!1;writable=!0;finished=!1;writableEnded=!1;writableFinished=!1;writableHighWaterMark=16384;writableLength=0;destroyed=!1;writableCorked=0;readable=!1;readableHighWaterMark=16384;readableLength=0;errored=void 0;closed=!1;readableAborted=!1;readableDidRead=!1;readableEncoding=void 0;readableEnded=!1;readableFlowing=void 0;body="";sendDate=!0;strictContentLength=!1;chunkedEncoding=!1;shouldKeepAlive=!0;useChunkedEncodingByDefault=!0;connection=void 0;socket=void 0;setHeader(e,s){return this.headers[e.toLowerCase()]=s,this}getHeader(e){return this.headers[e.toLowerCase()]}getHeaders(){return{...this.headers}}getHeaderNames(){return Object.keys(this.headers)}hasHeader(e){return e.toLowerCase()in this.headers}removeHeader(e){return delete this.headers[e.toLowerCase()],this}writeHead(e,s,o){this.statusCode=e;let a=o;return typeof s=="string"&&(this.statusMessage=s),typeof s=="object"&&(a=s),a&&Object.assign(this.headers,a),this}write(e){return this.body+=e.toString(),!0}end(e,s,o){return e&&(this.body+=e.toString()),this.finished=!0,this}flushHeaders(){this.headersSent=!0}addListener=t(()=>this,"addListener");on=t(()=>this,"on");once=t(()=>this,"once");removeListener=t(()=>this,"removeListener");off=t(()=>this,"off");removeAllListeners=t(()=>this,"removeAllListeners");setMaxListeners=t(()=>this,"setMaxListeners");getMaxListeners=t(()=>10,"getMaxListeners");listeners=t(()=>[],"listeners");rawListeners=t(()=>[],"rawListeners");emit=t(()=>!1,"emit");eventNames=t(()=>[],"eventNames");listenerCount=t(()=>0,"listenerCount");prependListener=t(()=>this,"prependListener");prependOnceListener=t(()=>this,"prependOnceListener");cork=t(()=>{},"cork");uncork=t(()=>{},"uncork");destroy=t(()=>this,"destroy");read=t(()=>{},"read");setEncoding=t(()=>this,"setEncoding");pause=t(()=>this,"pause");resume=t(()=>this,"resume");isPaused=t(()=>!1,"isPaused");destroySoon=t(()=>this,"destroySoon");pipe=t(()=>({}),"pipe");unpipe=t(()=>this,"unpipe");unshift=t(()=>{},"unshift");wrap=t(()=>this,"wrap");setTimeout=t(()=>this,"setTimeout");assignSocket=t(()=>{},"assignSocket");detachSocket=t(()=>{},"detachSocket");writeContinue=t(()=>{},"writeContinue");writeEarlyHints=t(()=>{},"writeEarlyHints")}const R=t((n={})=>{const e=k(n);return async(s,o)=>{const a={headers:Object.fromEntries(o.headers.entries()),method:o.method,url:o.url},i=new N;await e(s,a,i);const d={"content-type":i.getHeader("content-type")??"text/html; charset=utf-8"};for(const[r,c]of Object.entries(i.headers))r!=="content-type"&&(d[r]=Array.isArray(c)?c.join(", "):String(c));return new Response(i.body,{headers:d,status:i.statusCode})}},"fetchHtmlErrorHandler");var B=Object.defineProperty,F=h((n,e)=>B(n,"name",{value:e,configurable:!0}),"t");const G=F((n,e={})=>{const s=R(e),o=M(e.extraHandlers??[],e.showTrace??!0,s);return async a=>(e.onError&&await e.onError(n,a),o(n,a))},"fetchHandler");export{G as default};
@@ -1,9 +1,9 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { HtmlErrorHandlerOptions } from "../../error-handler/html-error-handler.d.ts";
3
- import type { ErrorHandlers } from "../../error-handler/types.d.d.ts";
1
+ import { IncomingMessage, ServerResponse } from 'node:http';
2
+ import { HtmlErrorHandlerOptions } from "../../error-handler/html-error-handler.js";
3
+ import { E as ErrorHandlers } from "../../packem_shared/types.d-C763gSYq.js";
4
4
  declare const nodeHandler: (error: Error, options?: HtmlErrorHandlerOptions & {
5
- extraHandlers?: ErrorHandlers;
6
- onError?: (error: Error, request: IncomingMessage, response: ServerResponse) => void | Promise<void>;
7
- showTrace?: boolean;
8
- }) => Promise<(request: IncomingMessage, response: ServerResponse) => Promise<void>>;
9
- export default nodeHandler;
5
+ extraHandlers?: ErrorHandlers;
6
+ onError?: (error: Error, request: IncomingMessage, response: ServerResponse) => void | Promise<void>;
7
+ showTrace?: boolean;
8
+ }) => (request: IncomingMessage, response: ServerResponse) => Promise<void>;
9
+ export { nodeHandler as default };
@@ -1 +1 @@
1
- var s=Object.defineProperty;var o=(a,r)=>s(a,"name",{value:r,configurable:!0});import c from"../../packem_shared/createNegotiatedErrorHandler-BLks0_Ak.js";import{htmlErrorHandler as m}from"../../error-handler/html-error-handler.js";var d=Object.defineProperty,i=o((a,r)=>d(a,"name",{value:r,configurable:!0}),"s");const v=i(async(a,r={})=>{const n=m(r),l=c(r.extraHandlers??[],r.showTrace??!0,n);return async(e,t)=>{r?.onError&&await r.onError(a,e,t),await l(a,e,t)}},"nodeHandler");export{v as default};
1
+ var i=Object.defineProperty;var o=(a,r)=>i(a,"name",{value:r,configurable:!0});import l from"../../packem_shared/createNegotiatedErrorHandler-DlEHBPFw.js";import{htmlErrorHandler as s}from"../../error-handler/html-error-handler.js";var c=Object.defineProperty,m=o((a,r)=>c(a,"name",{value:r,configurable:!0}),"t");const v=m((a,r={})=>{const n=s(r),d=l(r.extraHandlers??[],r.showTrace??!0,n);return async(e,t)=>{r.onError&&await r.onError(a,e,t),await d(a,e,t)}},"nodeHandler");export{v as default};
package/dist/index.d.ts CHANGED
@@ -1,14 +1,12 @@
1
- export { default as createNegotiatedErrorHandler } from "./error-handler/create-negotiated-error-handler.d.ts";
2
- export type { HtmlErrorHandlerOptions } from "./error-handler/html-error-handler.d.ts";
3
- export { htmlErrorHandler } from "./error-handler/html-error-handler.d.ts";
4
- export type { JsonErrorBody, JsonErrorFormatter, JsonErrorHandlerOptions } from "./error-handler/json-error-handler.d.ts";
5
- export { jsonErrorHandler } from "./error-handler/json-error-handler.d.ts";
6
- export { default as jsonapiErrorHandler } from "./error-handler/jsonapi-error-handler.d.ts";
7
- export type { JsonpErrorBody, JsonpErrorFormatter, JsonpErrorHandlerOptions } from "./error-handler/jsonp-error-handler.d.ts";
8
- export { jsonpErrorHandler } from "./error-handler/jsonp-error-handler.d.ts";
9
- export { default as problemErrorHandler } from "./error-handler/problem-error-handler.d.ts";
10
- export type { TextErrorFormatter, TextErrorHandlerOptions } from "./error-handler/text-error-handler.d.ts";
11
- export { textErrorHandler } from "./error-handler/text-error-handler.d.ts";
12
- export type { ApiFormat, ErrorHandler, ErrorHandlers } from "./error-handler/types.d.d.ts";
13
- export type { ToXmlOptions, XmlErrorBody, XmlErrorFormatter, XmlErrorHandlerOptions } from "./error-handler/xml-error-handler.d.ts";
14
- export { xmlErrorHandler } from "./error-handler/xml-error-handler.d.ts";
1
+ import { IncomingMessage, ServerResponse } from 'node:http';
2
+ import { E as ErrorHandlers, a as ErrorHandler } from "./packem_shared/types.d-C763gSYq.js";
3
+ export { type A as ApiFormat } from "./packem_shared/types.d-C763gSYq.js";
4
+ export { type HtmlErrorHandlerOptions, htmlErrorHandler } from "./error-handler/html-error-handler.js";
5
+ export { type JsonErrorBody, type JsonErrorFormatter, type JsonErrorHandlerOptions, jsonErrorHandler } from "./error-handler/json-error-handler.js";
6
+ export { default as jsonapiErrorHandler } from "./error-handler/jsonapi-error-handler.js";
7
+ export { type JsonpErrorBody, type JsonpErrorFormatter, type JsonpErrorHandlerOptions, jsonpErrorHandler } from "./error-handler/jsonp-error-handler.js";
8
+ export { default as problemErrorHandler } from "./error-handler/problem-error-handler.js";
9
+ export { type TextErrorFormatter, type TextErrorHandlerOptions, textErrorHandler } from "./error-handler/text-error-handler.js";
10
+ export { type ToXmlOptions, type XmlErrorBody, type XmlErrorFormatter, type XmlErrorHandlerOptions, xmlErrorHandler } from "./error-handler/xml-error-handler.js";
11
+ declare const createNegotiatedErrorHandler: (errorHandlers: ErrorHandlers, showTrace: boolean, defaultHtmlHandler?: ErrorHandler) => (error: Error, request: IncomingMessage, response: ServerResponse) => Promise<void>;
12
+ export { type ErrorHandler, type ErrorHandlers, createNegotiatedErrorHandler };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{default as e}from"./packem_shared/createNegotiatedErrorHandler-BLks0_Ak.js";import{htmlErrorHandler as t}from"./error-handler/html-error-handler.js";import{jsonErrorHandler as d}from"./error-handler/json-error-handler.js";import{default as m}from"./error-handler/jsonapi-error-handler.js";import{jsonpErrorHandler as p}from"./error-handler/jsonp-error-handler.js";import{default as E}from"./error-handler/problem-error-handler.js";import{textErrorHandler as s}from"./error-handler/text-error-handler.js";import{xmlErrorHandler as u}from"./error-handler/xml-error-handler.js";export{e as createNegotiatedErrorHandler,t as htmlErrorHandler,d as jsonErrorHandler,m as jsonapiErrorHandler,p as jsonpErrorHandler,E as problemErrorHandler,s as textErrorHandler,u as xmlErrorHandler};
1
+ import{default as e}from"./packem_shared/createNegotiatedErrorHandler-DlEHBPFw.js";import{htmlErrorHandler as t}from"./error-handler/html-error-handler.js";import{jsonErrorHandler as d}from"./error-handler/json-error-handler.js";import{default as m}from"./error-handler/jsonapi-error-handler.js";import{jsonpErrorHandler as p}from"./error-handler/jsonp-error-handler.js";import{default as E}from"./error-handler/problem-error-handler.js";import{textErrorHandler as s}from"./error-handler/text-error-handler.js";import{xmlErrorHandler as u}from"./error-handler/xml-error-handler.js";export{e as createNegotiatedErrorHandler,t as htmlErrorHandler,d as jsonErrorHandler,m as jsonapiErrorHandler,p as jsonpErrorHandler,E as problemErrorHandler,s as textErrorHandler,u as xmlErrorHandler};
@@ -0,0 +1 @@
1
+ var a=Object.defineProperty;var r=(e,t)=>a(e,"name",{value:t,configurable:!0});import{StatusCodes as u}from"http-status-codes";var d=Object.defineProperty,n=r((e,t)=>d(e,"name",{value:t,configurable:!0}),"s");const i=n((e,t)=>{const o=t,s=Number(o.statusCode??o.status);if(Number.isInteger(s)&&s>=400&&s<=599){e.statusCode=s;return}e.statusCode<400&&(e.statusCode=u.INTERNAL_SERVER_ERROR)},"addStatusCodeToResponse");export{i as p};
@@ -1 +1 @@
1
- var j=Object.defineProperty;var c=(r,e)=>j(r,"name",{value:e,configurable:!0});import{Accepts as d}from"@tinyhttp/accepts";import{jsonErrorHandler as b}from"../error-handler/json-error-handler.js";import v from"../error-handler/jsonapi-error-handler.js";import{jsonpErrorHandler as k}from"../error-handler/jsonp-error-handler.js";import l from"../error-handler/problem-error-handler.js";import{textErrorHandler as E}from"../error-handler/text-error-handler.js";import{xmlErrorHandler as h}from"../error-handler/xml-error-handler.js";var y=Object.defineProperty,H=c((r,e)=>y(r,"name",{value:e,configurable:!0}),"i");const q=H((r,e,t)=>async(p,o,s)=>{const n=new d(o).type(["text/html","application/vnd.api+json","application/problem+json","application/json","text/plain","application/javascript","text/javascript","application/xml","text/xml"]);let a=t||l;if(n==="text/html"&&t)a=t;else switch(n){case"application/javascript":case"text/javascript":{a=k();break}case"application/json":{a=b();break}case"application/problem+json":{a=l;break}case"application/vnd.api+json":{a=v;break}case"application/xml":case"text/xml":{a=h();break}case"text/plain":{a=E();break}}for(const{handler:m,regex:x}of r){const i=o.headers.accept??"",f=Array.isArray(i)?i.join(","):i;if(x.test(f)){a=m;break}}p.expose=e,await a(p,o,s)},"createNegotiatedErrorHandler");export{q as default};
1
+ var j=Object.defineProperty;var n=(r,e)=>j(r,"name",{value:e,configurable:!0});import{Accepts as d}from"@tinyhttp/accepts";import{jsonErrorHandler as b}from"../error-handler/json-error-handler.js";import v from"../error-handler/jsonapi-error-handler.js";import{jsonpErrorHandler as k}from"../error-handler/jsonp-error-handler.js";import c from"../error-handler/problem-error-handler.js";import{textErrorHandler as E}from"../error-handler/text-error-handler.js";import{xmlErrorHandler as h}from"../error-handler/xml-error-handler.js";var g=Object.defineProperty,u=n((r,e)=>g(r,"name",{value:e,configurable:!0}),"i");const q=u((r,e,o)=>async(t,p,l)=>{const s=new d(p).type(["text/html","application/vnd.api+json","application/problem+json","application/json","text/plain","application/javascript","text/javascript","application/xml","text/xml"]);let a=o??c;if(s==="text/html"&&o)a=o;else switch(s){case"application/javascript":case"text/javascript":{a=k();break}case"application/json":{a=b();break}case"application/problem+json":{a=c;break}case"application/vnd.api+json":{a=v;break}case"application/xml":case"text/xml":{a=h();break}case"text/plain":{a=E();break}}for(const{handler:m,regex:x}of r){const i=p.headers.accept??"",f=Array.isArray(i)?i.join(","):i;if(x.test(f)){a=m;break}}e?"expose"in t||(t.expose=!0):t.expose=!1,await a(t,p,l)},"createNegotiatedErrorHandler");export{q as default};
@@ -0,0 +1 @@
1
+ var a=Object.defineProperty;var t=(e,n)=>a(e,"name",{value:n,configurable:!0});var o=Object.defineProperty,s=t((e,n)=>o(e,"name",{value:n,configurable:!0}),"n");const i=s((e,n,r="application/json; charset=utf-8")=>{e.setHeader("content-type",r),e.end(JSON.stringify(n))},"sendJson");export{i as s};
@@ -0,0 +1,13 @@
1
+ import { IncomingMessage, ServerResponse } from 'node:http';
2
+ type ErrorHandler = (error: Error, request: IncomingMessage, response: ServerResponse) => Promise<void> | void;
3
+ type FetchErrorHandler = (error: unknown, request: Request) => Promise<Response>;
4
+ type ErrorHandlers = {
5
+ handler: ErrorHandler;
6
+ regex: RegExp;
7
+ }[];
8
+ type FetchErrorHandlers = {
9
+ handler: FetchErrorHandler;
10
+ regex: RegExp;
11
+ }[];
12
+ type ApiFormat = "jsonapi" | "problem" | "html";
13
+ export { ApiFormat as A, ErrorHandlers as E, FetchErrorHandlers as F, ErrorHandler as a };
package/package.json CHANGED
@@ -1,43 +1,41 @@
1
1
  {
2
2
  "name": "@visulima/error-handler",
3
- "version": "2.0.0-alpha.3",
3
+ "version": "2.0.0-alpha.31",
4
4
  "description": "Error handlers for use in development and production environments.",
5
5
  "keywords": [
6
- "visulima",
7
- "error",
8
- "exception",
9
- "error-handlers",
10
- "diagnostics",
11
- "debugging",
12
- "stacktrace",
6
+ "anolilab",
7
+ "cli",
13
8
  "code-frame",
14
9
  "codeframe",
15
- "source-code-preview",
10
+ "connect",
16
11
  "content-negotiation",
17
- "problem-json",
18
- "rfc7807",
19
- "jsonapi",
12
+ "debugging",
13
+ "devtools",
14
+ "diagnostics",
15
+ "error",
16
+ "error-handler",
17
+ "error-handlers",
18
+ "error-reporting",
19
+ "exception",
20
+ "express",
21
+ "html-error",
22
+ "http-errors",
20
23
  "json-api",
24
+ "jsonapi",
21
25
  "jsonp",
22
- "xml",
23
- "html-error",
24
- "cli",
25
- "node",
26
- "express",
27
- "connect",
28
26
  "middleware",
29
- "http-errors",
30
- "devtools",
31
- "error-reporting",
27
+ "node",
28
+ "problem-json",
29
+ "rfc7807",
30
+ "source-code-preview",
31
+ "stacktrace",
32
+ "visulima",
32
33
  "whoops",
33
- "youch",
34
- "anolilab",
35
- "error-handler"
34
+ "xml",
35
+ "youch"
36
36
  ],
37
37
  "homepage": "https://visulima.com/packages/error-handler",
38
- "bugs": {
39
- "url": "https://github.com/visulima/visulima/issues"
40
- },
38
+ "bugs": "https://github.com/visulima/visulima/issues",
41
39
  "repository": {
42
40
  "type": "git",
43
41
  "url": "git+https://github.com/visulima/visulima.git",
@@ -133,16 +131,16 @@
133
131
  "CHANGELOG.md"
134
132
  ],
135
133
  "dependencies": {
136
- "@tinyhttp/accepts": "^2.2.4",
137
- "@visulima/boxen": "3.0.0-alpha.3",
138
- "@visulima/error": "6.0.0-alpha.2",
134
+ "@tinyhttp/accepts": "^2.3.0",
135
+ "@visulima/boxen": "3.0.0-alpha.13",
136
+ "@visulima/error": "6.0.0-alpha.32",
139
137
  "http-errors": "^2.0.1",
140
138
  "http-status-codes": "^2.3.0",
141
- "jstoxml": "^7.0.1",
142
- "ts-japi": "^1.12.1"
139
+ "jstoxml": "^7.1.0",
140
+ "ts-japi": "^1.12.3"
143
141
  },
144
142
  "engines": {
145
- "node": ">=22.13 <=25.x"
143
+ "node": "^22.14.0 || >=24.10.0"
146
144
  },
147
145
  "publishConfig": {
148
146
  "access": "public",
@@ -1,4 +0,0 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { ErrorHandler, ErrorHandlers } from "./types.d.d.ts";
3
- declare const createNegotiatedErrorHandler: <Request extends IncomingMessage, Response extends ServerResponse>(errorHandlers: ErrorHandlers, showTrace: boolean, defaultHtmlHandler?: ErrorHandler) => (error: Error, request: Request, response: Response) => Promise<void>;
4
- export default createNegotiatedErrorHandler;
@@ -1,3 +0,0 @@
1
- import type { FetchErrorHandlers } from "./types.d.d.ts";
2
- declare const createFetchNegotiatedErrorHandler: (errorHandlers: FetchErrorHandlers, showTrace: boolean, defaultHtmlHandler?: (error: Error, request: Request) => Promise<Response>) => (error: Error, request: Request) => Promise<Response>;
3
- export default createFetchNegotiatedErrorHandler;
@@ -1,3 +0,0 @@
1
- import type { HtmlErrorHandlerOptions } from "./html-error-handler.d.ts";
2
- export declare const fetchHtmlErrorHandler: (options?: HtmlErrorHandlerOptions) => (error: Error, request: Request) => Promise<Response>;
3
- export default fetchHtmlErrorHandler;
@@ -1,2 +0,0 @@
1
- import type { ServerResponse } from "node:http";
2
- export declare const addStatusCodeToResponse: (response: ServerResponse, error: unknown) => void;
@@ -1,8 +0,0 @@
1
- import type { ServerResponse } from "node:http";
2
- /**
3
- * Send `JSON` object
4
- * @param response response object
5
- * @param jsonBody of data
6
- * @param contentType optional content-type header value
7
- */
8
- export declare const sendJson: (response: ServerResponse, jsonBody: unknown, contentType?: string) => void;
@@ -1,3 +0,0 @@
1
- import type { ServerResponse } from "node:http";
2
- declare const setErrorHeaders: (response: ServerResponse, error: unknown) => void;
3
- export default setErrorHeaders;
@@ -1 +0,0 @@
1
- var r=Object.defineProperty;var o=(e,s)=>r(e,"name",{value:s,configurable:!0});import{StatusCodes as u}from"http-status-codes";var d=Object.defineProperty,n=o((e,s)=>d(e,"name",{value:s,configurable:!0}),"s");const i=n((e,s)=>{const a=s,t=Number(a.statusCode??a.status);if(Number.isInteger(t)&&t>=400&&t<=599){e.statusCode=t;return}e.statusCode<400&&(e.statusCode=u.INTERNAL_SERVER_ERROR)},"addStatusCodeToResponse");export{i as a};
@@ -1 +0,0 @@
1
- var s=Object.defineProperty;var t=(e,n)=>s(e,"name",{value:n,configurable:!0});var a=Object.defineProperty,o=t((e,n)=>a(e,"name",{value:n,configurable:!0}),"t");const i=o((e,n,r="application/json; charset=utf-8")=>{e.setHeader("content-type",r),e.end(JSON.stringify(n))},"sendJson");export{i as s};