@innet/server 2.0.0-alpha.8 → 2.0.0-beta.1

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 (322) hide show
  1. package/README.md +1200 -440
  2. package/_virtual/_rollup-plugin-process-env.es6.js +10 -0
  3. package/_virtual/_rollup-plugin-process-env.js +12 -0
  4. package/handler/handler.d.ts +27 -14
  5. package/handler/handler.es6.js +17 -11
  6. package/handler/handler.js +17 -11
  7. package/hooks/index.d.ts +6 -1
  8. package/hooks/index.es6.js +6 -1
  9. package/hooks/index.js +6 -1
  10. package/hooks/useAction/useAction.es6.js +1 -1
  11. package/hooks/useAction/useAction.js +1 -1
  12. package/hooks/useApi/useApi.d.ts +1 -3
  13. package/hooks/useClientIp/useClientIp.d.ts +1 -1
  14. package/hooks/useClientIp/useClientIp.es6.js +4 -10
  15. package/hooks/useClientIp/useClientIp.js +4 -10
  16. package/hooks/useEndpoint/useEndpoint.d.ts +1 -1
  17. package/hooks/useEndpoint/useEndpoint.es6.js +3 -1
  18. package/hooks/useEndpoint/useEndpoint.js +3 -1
  19. package/hooks/useIsServerHttps/index.d.ts +1 -0
  20. package/hooks/useIsServerHttps/index.es6.js +1 -0
  21. package/hooks/useIsServerHttps/index.js +10 -0
  22. package/hooks/useIsServerHttps/useIsServerHttps.d.ts +3 -0
  23. package/hooks/useIsServerHttps/useIsServerHttps.es6.js +14 -0
  24. package/hooks/useIsServerHttps/useIsServerHttps.js +19 -0
  25. package/hooks/useNewSchema/useNewSchema.es6.js +1 -1
  26. package/hooks/useNewSchema/useNewSchema.js +1 -1
  27. package/hooks/useObjectSchemaContext/index.d.ts +1 -0
  28. package/hooks/useObjectSchemaContext/index.es6.js +1 -0
  29. package/hooks/useObjectSchemaContext/index.js +10 -0
  30. package/hooks/useObjectSchemaContext/useObjectSchemaContext.d.ts +3 -0
  31. package/hooks/useObjectSchemaContext/useObjectSchemaContext.es6.js +14 -0
  32. package/hooks/useObjectSchemaContext/useObjectSchemaContext.js +19 -0
  33. package/hooks/useRequest/index.es6.js +1 -1
  34. package/hooks/useRequest/index.js +0 -1
  35. package/hooks/useRequest/useRequest.d.ts +1 -4
  36. package/hooks/useRequest/useRequest.es6.js +4 -4
  37. package/hooks/useRequest/useRequest.js +3 -4
  38. package/hooks/useRequestHandler/index.d.ts +1 -0
  39. package/hooks/useRequestHandler/index.es6.js +1 -0
  40. package/hooks/useRequestHandler/index.js +10 -0
  41. package/hooks/useRequestHandler/useRequestHandler.d.ts +4 -0
  42. package/hooks/useRequestHandler/useRequestHandler.es6.js +14 -0
  43. package/hooks/useRequestHandler/useRequestHandler.js +19 -0
  44. package/hooks/useResponse/index.es6.js +1 -1
  45. package/hooks/useResponse/index.js +0 -1
  46. package/hooks/useResponse/useResponse.d.ts +1 -4
  47. package/hooks/useResponse/useResponse.es6.js +4 -4
  48. package/hooks/useResponse/useResponse.js +3 -4
  49. package/hooks/useSchemaType/useSchemaType.d.ts +3 -2
  50. package/hooks/useSchemaType/useSchemaType.es6.js +5 -6
  51. package/hooks/useSchemaType/useSchemaType.js +5 -6
  52. package/hooks/useServer/useServer.d.ts +2 -1
  53. package/hooks/useServer/useServer.es6.js +3 -1
  54. package/hooks/useServer/useServer.js +3 -1
  55. package/hooks/useServerPlugin/index.d.ts +1 -0
  56. package/hooks/useServerPlugin/index.es6.js +1 -0
  57. package/hooks/useServerPlugin/index.js +9 -0
  58. package/hooks/useServerPlugin/useServerPlugin.d.ts +2 -0
  59. package/hooks/useServerPlugin/useServerPlugin.es6.js +13 -0
  60. package/hooks/useServerPlugin/useServerPlugin.js +17 -0
  61. package/hooks/useServerPlugins/index.d.ts +1 -0
  62. package/hooks/useServerPlugins/index.es6.js +1 -0
  63. package/hooks/useServerPlugins/index.js +10 -0
  64. package/hooks/useServerPlugins/useServerPlugins.d.ts +4 -0
  65. package/hooks/useServerPlugins/useServerPlugins.es6.js +14 -0
  66. package/hooks/useServerPlugins/useServerPlugins.js +19 -0
  67. package/hooks/useServerPort/index.d.ts +1 -0
  68. package/hooks/useServerPort/index.es6.js +1 -0
  69. package/hooks/useServerPort/index.js +10 -0
  70. package/hooks/useServerPort/useServerPort.d.ts +3 -0
  71. package/hooks/useServerPort/useServerPort.es6.js +14 -0
  72. package/hooks/useServerPort/useServerPort.js +19 -0
  73. package/index.es6.js +17 -9
  74. package/index.js +33 -14
  75. package/package.json +2 -3
  76. package/plugins/main/api/api.d.ts +11 -8
  77. package/plugins/main/api/api.es6.js +55 -56
  78. package/plugins/main/api/api.js +54 -55
  79. package/plugins/main/body/body.d.ts +1 -0
  80. package/plugins/main/contact/contact.d.ts +2 -2
  81. package/plugins/main/endpoint/endpoint.d.ts +16 -15
  82. package/plugins/main/endpoint/endpoint.es6.js +8 -6
  83. package/plugins/main/endpoint/endpoint.js +7 -5
  84. package/plugins/main/host/host.d.ts +5 -5
  85. package/plugins/main/index.d.ts +2 -2
  86. package/plugins/main/index.es6.js +2 -2
  87. package/plugins/main/index.js +2 -2
  88. package/plugins/main/license/license.d.ts +5 -5
  89. package/plugins/main/param/param.d.ts +12 -11
  90. package/plugins/main/param/param.es6.js +6 -6
  91. package/plugins/main/param/param.js +5 -5
  92. package/plugins/main/preset/index.d.ts +1 -0
  93. package/plugins/main/preset/index.es6.js +1 -0
  94. package/plugins/{utils/prod → main/preset}/index.js +2 -2
  95. package/plugins/main/preset/preset.d.ts +3 -0
  96. package/plugins/main/preset/preset.es6.js +13 -0
  97. package/plugins/{utils/dev/dev.js → main/preset/preset.js} +9 -6
  98. package/plugins/main/response/index.es6.js +1 -1
  99. package/plugins/main/response/index.js +1 -0
  100. package/plugins/main/response/response.d.ts +6 -1
  101. package/plugins/main/response/response.es6.js +22 -13
  102. package/plugins/main/response/response.js +21 -11
  103. package/plugins/main/return/index.d.ts +1 -0
  104. package/plugins/main/return/index.es6.js +1 -0
  105. package/plugins/main/return/index.js +9 -0
  106. package/plugins/main/return/return.d.ts +4 -0
  107. package/plugins/main/return/return.es6.js +10 -0
  108. package/plugins/main/return/return.js +14 -0
  109. package/plugins/main/server/server.d.ts +6 -5
  110. package/plugins/main/server/server.es6.js +43 -16
  111. package/plugins/main/server/server.js +42 -15
  112. package/plugins/main/tag/tag.d.ts +3 -2
  113. package/plugins/main/tag/tag.es6.js +6 -4
  114. package/plugins/main/tag/tag.js +5 -3
  115. package/plugins/main/variable/variable.d.ts +5 -5
  116. package/plugins/main/variable/variable.es6.js +3 -1
  117. package/plugins/main/variable/variable.js +3 -1
  118. package/plugins/request/cms/cms.d.ts +1 -0
  119. package/plugins/request/cms/cms.es6.js +3 -4
  120. package/plugins/request/cms/cms.js +2 -3
  121. package/plugins/request/cookie/cookie.es6.js +3 -19
  122. package/plugins/request/cookie/cookie.js +3 -23
  123. package/plugins/request/error/error.d.ts +41 -40
  124. package/plugins/request/error/error.es6.js +48 -45
  125. package/plugins/request/error/error.js +47 -44
  126. package/plugins/request/file/file.d.ts +1 -0
  127. package/plugins/request/file/file.es6.js +5 -6
  128. package/plugins/request/file/file.js +4 -5
  129. package/plugins/request/header/header.es6.js +1 -1
  130. package/plugins/request/header/header.js +1 -1
  131. package/plugins/request/proxy/proxy.d.ts +4 -1
  132. package/plugins/request/proxy/proxy.es6.js +5 -2
  133. package/plugins/request/proxy/proxy.js +5 -2
  134. package/plugins/request/redirect/redirect.d.ts +8 -7
  135. package/plugins/request/redirect/redirect.es6.js +7 -7
  136. package/plugins/request/redirect/redirect.js +7 -7
  137. package/plugins/request/success/success.d.ts +8 -6
  138. package/plugins/request/success/success.es6.js +21 -11
  139. package/plugins/request/success/success.js +20 -10
  140. package/plugins/schema/any/any.d.ts +5 -0
  141. package/plugins/schema/any/any.es6.js +27 -0
  142. package/plugins/schema/any/any.js +31 -0
  143. package/plugins/schema/array/array.d.ts +1 -0
  144. package/plugins/schema/array/array.es6.js +3 -3
  145. package/plugins/schema/array/array.js +2 -2
  146. package/plugins/schema/binary/binary.d.ts +3 -3
  147. package/plugins/schema/date/date.d.ts +1 -1
  148. package/plugins/schema/date/date.es6.js +3 -3
  149. package/plugins/schema/date/date.js +3 -3
  150. package/plugins/schema/field/field.d.ts +2 -0
  151. package/plugins/schema/field/field.es6.js +8 -8
  152. package/plugins/schema/field/field.js +6 -6
  153. package/plugins/schema/index.d.ts +1 -0
  154. package/plugins/schema/index.es6.js +1 -0
  155. package/plugins/schema/index.js +1 -0
  156. package/plugins/schema/integer/integer.d.ts +3 -3
  157. package/plugins/schema/integer/integer.es6.js +1 -1
  158. package/plugins/schema/integer/integer.js +1 -1
  159. package/plugins/schema/number/number.d.ts +2 -2
  160. package/plugins/schema/number/number.es6.js +1 -1
  161. package/plugins/schema/number/number.js +1 -1
  162. package/plugins/schema/object/object.d.ts +1 -0
  163. package/plugins/schema/object/object.es6.js +20 -7
  164. package/plugins/schema/object/object.js +19 -6
  165. package/plugins/schema/string/string.d.ts +2 -2
  166. package/plugins/schema/string/string.es6.js +44 -30
  167. package/plugins/schema/string/string.js +44 -30
  168. package/plugins/schema/tuple/tuple.d.ts +1 -0
  169. package/plugins/schema/tuple/tuple.es6.js +5 -5
  170. package/plugins/schema/tuple/tuple.js +4 -4
  171. package/plugins/schema/uuid/uuid.es6.js +1 -1
  172. package/plugins/schema/uuid/uuid.js +1 -1
  173. package/plugins/utils/blacklist/blacklist.d.ts +5 -0
  174. package/plugins/utils/blacklist/blacklist.es6.js +17 -0
  175. package/plugins/utils/blacklist/blacklist.js +21 -0
  176. package/plugins/utils/blacklist/index.d.ts +1 -0
  177. package/plugins/utils/blacklist/index.es6.js +1 -0
  178. package/plugins/utils/blacklist/index.js +9 -0
  179. package/plugins/utils/dts/dts.d.ts +2 -1
  180. package/plugins/utils/dts/dts.es6.js +2 -2
  181. package/plugins/utils/dts/dts.js +2 -2
  182. package/plugins/utils/env/env.d.ts +7 -0
  183. package/plugins/utils/env/env.es6.js +11 -0
  184. package/plugins/utils/{prod/prod.js → env/env.js} +5 -4
  185. package/plugins/utils/env/index.d.ts +1 -0
  186. package/plugins/utils/env/index.es6.js +1 -0
  187. package/plugins/utils/{dev → env}/index.js +2 -2
  188. package/plugins/utils/index.d.ts +4 -2
  189. package/plugins/utils/index.es6.js +4 -2
  190. package/plugins/utils/index.js +4 -2
  191. package/plugins/utils/protection/index.d.ts +1 -0
  192. package/plugins/utils/protection/index.es6.js +1 -0
  193. package/plugins/utils/protection/index.js +9 -0
  194. package/plugins/utils/protection/protection.d.ts +9 -0
  195. package/plugins/utils/protection/protection.es6.js +35 -0
  196. package/plugins/utils/protection/protection.js +39 -0
  197. package/plugins/utils/swagger/swagger.es6.js +10 -8
  198. package/plugins/utils/swagger/swagger.js +10 -8
  199. package/plugins/utils/whitelist/index.d.ts +1 -0
  200. package/plugins/utils/whitelist/index.es6.js +1 -0
  201. package/plugins/utils/whitelist/index.js +9 -0
  202. package/plugins/utils/whitelist/whitelist.d.ts +5 -0
  203. package/plugins/utils/whitelist/whitelist.es6.js +19 -0
  204. package/plugins/utils/whitelist/whitelist.js +23 -0
  205. package/types.d.ts +15 -23
  206. package/utils/FileData/Bin.d.ts +13 -13
  207. package/utils/FileData/Bin.es6.js +2 -2
  208. package/utils/FileData/Bin.js +2 -2
  209. package/utils/action/Action.d.ts +17 -14
  210. package/utils/action/Action.es6.js +102 -78
  211. package/utils/action/Action.js +102 -78
  212. package/utils/dateFormat/dateFormat.d.ts +1 -1
  213. package/utils/dateFormat/dateFormat.es6.js +1 -1
  214. package/utils/dateFormat/dateFormat.js +1 -1
  215. package/utils/decorators/once/once.es6.js +1 -1
  216. package/utils/decorators/once/once.js +1 -1
  217. package/utils/generateTypes/generateTypes.d.ts +2 -2
  218. package/utils/generateTypes/generateTypes.es6.js +85 -25
  219. package/utils/generateTypes/generateTypes.js +85 -25
  220. package/utils/getEndpoint/getEndpoint.es6.js +2 -2
  221. package/utils/getEndpoint/getEndpoint.js +2 -2
  222. package/utils/getOrAdd/getOrAdd.d.ts +1 -1
  223. package/utils/httpOnStart/httpOnStart.d.ts +1 -1
  224. package/utils/httpOnStart/httpOnStart.es6.js +1 -1
  225. package/utils/httpOnStart/httpOnStart.js +1 -1
  226. package/utils/rules/binaryAccept/binaryAccept.es6.js +2 -2
  227. package/utils/rules/binaryAccept/binaryAccept.js +2 -2
  228. package/utils/rules/dateTo/dateTo.d.ts +1 -1
  229. package/utils/rules/helpers.d.ts +1 -1
  230. package/utils/rules/index.d.ts +0 -1
  231. package/utils/rules/index.es6.js +0 -1
  232. package/utils/rules/index.js +0 -1
  233. package/utils/rules/int/int.es6.js +2 -2
  234. package/utils/rules/int/int.js +2 -2
  235. package/utils/rules/max/max.d.ts +1 -1
  236. package/utils/rules/max/max.es6.js +3 -3
  237. package/utils/rules/max/max.js +3 -3
  238. package/utils/rules/maxBin/maxBin.es6.js +2 -2
  239. package/utils/rules/maxBin/maxBin.js +2 -2
  240. package/utils/rules/maxDate/maxDate.es6.js +1 -1
  241. package/utils/rules/maxDate/maxDate.js +1 -1
  242. package/utils/rules/maxLength/maxLength.es6.js +2 -2
  243. package/utils/rules/maxLength/maxLength.js +2 -2
  244. package/utils/rules/min/min.d.ts +1 -1
  245. package/utils/rules/min/min.es6.js +3 -3
  246. package/utils/rules/min/min.js +3 -3
  247. package/utils/rules/minBin/minBin.es6.js +2 -2
  248. package/utils/rules/minBin/minBin.js +2 -2
  249. package/utils/rules/minDate/minDate.es6.js +1 -1
  250. package/utils/rules/minDate/minDate.js +1 -1
  251. package/utils/rules/minLength/minLength.es6.js +2 -2
  252. package/utils/rules/minLength/minLength.js +2 -2
  253. package/utils/rules/objectOf/objectOf.d.ts +1 -1
  254. package/utils/rules/objectOf/objectOf.es6.js +11 -1
  255. package/utils/rules/objectOf/objectOf.js +11 -1
  256. package/utils/rules/pattern/pattern.d.ts +1 -1
  257. package/utils/rules/pattern/pattern.es6.js +2 -1
  258. package/utils/rules/pattern/pattern.js +2 -1
  259. package/example/app/App/App.d.ts +0 -1
  260. package/example/app/App/index.d.ts +0 -1
  261. package/example/index.d.ts +0 -1
  262. package/example/requests/index.d.ts +0 -1
  263. package/example/requests/todo/AddTodo/AddTodo.d.ts +0 -1
  264. package/example/requests/todo/AddTodo/index.d.ts +0 -1
  265. package/example/requests/todo/DeleteTodo/DeleteTodo.d.ts +0 -1
  266. package/example/requests/todo/DeleteTodo/index.d.ts +0 -1
  267. package/example/requests/todo/EditTodo/EditTodo.d.ts +0 -1
  268. package/example/requests/todo/EditTodo/index.d.ts +0 -1
  269. package/example/requests/todo/GetTodo/GetTodo.d.ts +0 -1
  270. package/example/requests/todo/GetTodo/index.d.ts +0 -1
  271. package/example/requests/todo/GetTodos/GetTodos.d.ts +0 -1
  272. package/example/requests/todo/GetTodos/index.d.ts +0 -1
  273. package/example/requests/todo/index.d.ts +0 -5
  274. package/example/requests/todo/todos.d.ts +0 -1
  275. package/example/schemas/app/ListQueryParams/ListQueryParams.d.ts +0 -1
  276. package/example/schemas/app/ListQueryParams/index.d.ts +0 -1
  277. package/example/schemas/app/ListSchema/ListSchema.d.ts +0 -4
  278. package/example/schemas/app/ListSchema/index.d.ts +0 -1
  279. package/example/schemas/app/index.d.ts +0 -2
  280. package/example/schemas/index.d.ts +0 -2
  281. package/example/schemas/todo/TodoSchema/TodoSchema.d.ts +0 -4
  282. package/example/schemas/todo/TodoSchema/index.d.ts +0 -1
  283. package/example/schemas/todo/index.d.ts +0 -1
  284. package/example/tags/Todo/Todo.d.ts +0 -1
  285. package/example/tags/Todo/index.d.ts +0 -1
  286. package/example/tags/index.d.ts +0 -1
  287. package/hooks/useRequestPlugin/index.d.ts +0 -1
  288. package/hooks/useRequestPlugin/index.es6.js +0 -1
  289. package/hooks/useRequestPlugin/index.js +0 -9
  290. package/hooks/useRequestPlugin/useRequestPlugin.d.ts +0 -2
  291. package/hooks/useRequestPlugin/useRequestPlugin.es6.js +0 -13
  292. package/hooks/useRequestPlugin/useRequestPlugin.js +0 -17
  293. package/openApi.test.d.ts +0 -1
  294. package/plugins/main/fallback/fallback.d.ts +0 -4
  295. package/plugins/main/fallback/fallback.es6.js +0 -19
  296. package/plugins/main/fallback/fallback.js +0 -23
  297. package/plugins/main/fallback/index.d.ts +0 -1
  298. package/plugins/main/fallback/index.es6.js +0 -1
  299. package/plugins/main/fallback/index.js +0 -9
  300. package/plugins/main/request/index.d.ts +0 -1
  301. package/plugins/main/request/index.es6.js +0 -1
  302. package/plugins/main/request/index.js +0 -9
  303. package/plugins/main/request/request.d.ts +0 -4
  304. package/plugins/main/request/request.es6.js +0 -21
  305. package/plugins/main/request/request.js +0 -25
  306. package/plugins/utils/dev/dev.d.ts +0 -4
  307. package/plugins/utils/dev/dev.es6.js +0 -10
  308. package/plugins/utils/dev/index.d.ts +0 -1
  309. package/plugins/utils/dev/index.es6.js +0 -1
  310. package/plugins/utils/prod/index.d.ts +0 -1
  311. package/plugins/utils/prod/index.es6.js +0 -1
  312. package/plugins/utils/prod/prod.d.ts +0 -4
  313. package/plugins/utils/prod/prod.es6.js +0 -10
  314. package/utils/decorators/once/once.test.d.ts +0 -1
  315. package/utils/generateTypes/generateTypes.test.d.ts +0 -1
  316. package/utils/parseSearch/parseSearch.test.d.ts +0 -1
  317. package/utils/rules/any/any.d.ts +0 -1
  318. package/utils/rules/any/any.es6.js +0 -5
  319. package/utils/rules/any/any.js +0 -9
  320. /package/{utils/rules → plugins/schema}/any/index.d.ts +0 -0
  321. /package/{utils/rules → plugins/schema}/any/index.es6.js +0 -0
  322. /package/{utils/rules → plugins/schema}/any/index.js +0 -0
@@ -1,24 +1,31 @@
1
- import innet, { useNewHandler, useApp } from 'innet';
1
+ import { __awaiter } from 'tslib';
2
+ import innet, { useNewHandler } from 'innet';
3
+ import { useProps } from '@innet/jsx';
2
4
  import fs from 'node:fs';
3
5
  import http from 'node:http';
4
6
  import http2 from 'node:https';
5
7
  import { onDestroy } from 'watch-state';
6
8
  import '../../../hooks/index.es6.js';
9
+ import '../../../utils/index.es6.js';
7
10
  import { serverContext } from '../../../hooks/useServer/useServer.es6.js';
11
+ import { serverPlugins } from '../../../hooks/useServerPlugins/useServerPlugins.es6.js';
12
+ import { serverPortContext } from '../../../hooks/useServerPort/useServerPort.es6.js';
13
+ import { serverHttpsContext } from '../../../hooks/useIsServerHttps/useIsServerHttps.es6.js';
14
+ import { Action } from '../../../utils/action/Action.es6.js';
15
+ import { actionContext } from '../../../hooks/useAction/useAction.es6.js';
16
+ import { requestHandlerContext } from '../../../hooks/useRequestHandler/useRequestHandler.es6.js';
8
17
 
9
- // eslint-disable-next-line @typescript-eslint/no-var-requires
10
- const isInvalidPath = require('is-invalid-path');
11
18
  const server = () => {
12
19
  var _a, _b, _c;
13
20
  const handler = useNewHandler();
14
- const { props = {}, children } = useApp();
21
+ const props = useProps();
15
22
  const { env } = process;
16
- let { ssl: { key = (_a = env.SSL_KEY) !== null && _a !== void 0 ? _a : 'localhost.key', cert = (_b = env.SSL_CRT) !== null && _b !== void 0 ? _b : 'localhost.crt', } = {}, } = props;
23
+ let { ssl: { cert = (_a = env.INNET_SSL_CRT) !== null && _a !== void 0 ? _a : 'localhost.crt', key = (_b = env.INNET_SSL_KEY) !== null && _b !== void 0 ? _b : 'localhost.key', } = {}, } = props;
17
24
  try {
18
- if (!isInvalidPath(key)) {
25
+ if (!key.startsWith('-----BEGIN PRIVATE KEY-----')) {
19
26
  key = fs.readFileSync(key).toString();
20
27
  }
21
- if (!isInvalidPath(cert)) {
28
+ if (!cert.startsWith('-----BEGIN CERTIFICATE-----')) {
22
29
  cert = fs.readFileSync(cert).toString();
23
30
  }
24
31
  }
@@ -27,23 +34,43 @@ const server = () => {
27
34
  cert = '';
28
35
  }
29
36
  const https = Boolean(key && cert);
30
- const { port = Number((_c = env.PORT) !== null && _c !== void 0 ? _c : (https ? 442 : 80)), onStart, onError, onRequest, } = props;
31
- const server = https ? http2.createServer({ key, cert }) : http.createServer();
32
- handler[serverContext.key] = { server, port };
37
+ const { onClose, onError, onRequest, onStart, port = Number((_c = env.INNET_PORT) !== null && _c !== void 0 ? _c : (https ? 443 : 80)), } = props;
38
+ const plugins = new Set();
39
+ const server = https ? http2.createServer({ cert, key }) : http.createServer();
40
+ serverContext.set(handler, { port, server });
41
+ serverPlugins.set(handler, plugins);
42
+ serverPortContext.set(handler, port);
43
+ serverHttpsContext.set(handler, https);
33
44
  onDestroy(() => {
34
- var _a;
35
- (_a = props.onDestroy) === null || _a === void 0 ? void 0 : _a.call(props);
36
45
  server.close();
37
46
  });
38
47
  if (onError) {
39
48
  server.on('error', onError);
40
49
  }
41
- if (onRequest) {
42
- server.on('request', onRequest);
50
+ if (onClose) {
51
+ server.addListener('close', onClose);
43
52
  }
44
- innet(children, handler);
53
+ server.on('request', (req, res) => {
54
+ onRequest === null || onRequest === void 0 ? void 0 : onRequest(req, res);
55
+ const action = new Action(req, res);
56
+ const requestHandler = Object.create(handler);
57
+ actionContext.set(requestHandler, action);
58
+ requestHandlerContext.set(requestHandler, requestHandler);
59
+ function server() {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ for (const plugin of plugins) {
62
+ const result = yield plugin();
63
+ if (result !== undefined) {
64
+ return result;
65
+ }
66
+ }
67
+ });
68
+ }
69
+ innet({ props, type: server }, requestHandler);
70
+ });
71
+ innet(props.children, handler);
45
72
  server.listen(port, () => {
46
- onStart === null || onStart === void 0 ? void 0 : onStart({ port, https });
73
+ onStart === null || onStart === void 0 ? void 0 : onStart({ https, port });
47
74
  });
48
75
  };
49
76
 
@@ -2,13 +2,22 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var tslib = require('tslib');
5
6
  var innet = require('innet');
7
+ var jsx = require('@innet/jsx');
6
8
  var fs = require('node:fs');
7
9
  var http = require('node:http');
8
10
  var http2 = require('node:https');
9
11
  var watchState = require('watch-state');
10
12
  require('../../../hooks/index.js');
13
+ require('../../../utils/index.js');
11
14
  var useServer = require('../../../hooks/useServer/useServer.js');
15
+ var useServerPlugins = require('../../../hooks/useServerPlugins/useServerPlugins.js');
16
+ var useServerPort = require('../../../hooks/useServerPort/useServerPort.js');
17
+ var useIsServerHttps = require('../../../hooks/useIsServerHttps/useIsServerHttps.js');
18
+ var Action = require('../../../utils/action/Action.js');
19
+ var useAction = require('../../../hooks/useAction/useAction.js');
20
+ var useRequestHandler = require('../../../hooks/useRequestHandler/useRequestHandler.js');
12
21
 
13
22
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
23
 
@@ -17,19 +26,17 @@ var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
17
26
  var http__default = /*#__PURE__*/_interopDefaultLegacy(http);
18
27
  var http2__default = /*#__PURE__*/_interopDefaultLegacy(http2);
19
28
 
20
- // eslint-disable-next-line @typescript-eslint/no-var-requires
21
- const isInvalidPath = require('is-invalid-path');
22
29
  const server = () => {
23
30
  var _a, _b, _c;
24
31
  const handler = innet.useNewHandler();
25
- const { props = {}, children } = innet.useApp();
32
+ const props = jsx.useProps();
26
33
  const { env } = process;
27
- let { ssl: { key = (_a = env.SSL_KEY) !== null && _a !== void 0 ? _a : 'localhost.key', cert = (_b = env.SSL_CRT) !== null && _b !== void 0 ? _b : 'localhost.crt', } = {}, } = props;
34
+ let { ssl: { cert = (_a = env.INNET_SSL_CRT) !== null && _a !== void 0 ? _a : 'localhost.crt', key = (_b = env.INNET_SSL_KEY) !== null && _b !== void 0 ? _b : 'localhost.key', } = {}, } = props;
28
35
  try {
29
- if (!isInvalidPath(key)) {
36
+ if (!key.startsWith('-----BEGIN PRIVATE KEY-----')) {
30
37
  key = fs__default["default"].readFileSync(key).toString();
31
38
  }
32
- if (!isInvalidPath(cert)) {
39
+ if (!cert.startsWith('-----BEGIN CERTIFICATE-----')) {
33
40
  cert = fs__default["default"].readFileSync(cert).toString();
34
41
  }
35
42
  }
@@ -38,23 +45,43 @@ const server = () => {
38
45
  cert = '';
39
46
  }
40
47
  const https = Boolean(key && cert);
41
- const { port = Number((_c = env.PORT) !== null && _c !== void 0 ? _c : (https ? 442 : 80)), onStart, onError, onRequest, } = props;
42
- const server = https ? http2__default["default"].createServer({ key, cert }) : http__default["default"].createServer();
43
- handler[useServer.serverContext.key] = { server, port };
48
+ const { onClose, onError, onRequest, onStart, port = Number((_c = env.INNET_PORT) !== null && _c !== void 0 ? _c : (https ? 443 : 80)), } = props;
49
+ const plugins = new Set();
50
+ const server = https ? http2__default["default"].createServer({ cert, key }) : http__default["default"].createServer();
51
+ useServer.serverContext.set(handler, { port, server });
52
+ useServerPlugins.serverPlugins.set(handler, plugins);
53
+ useServerPort.serverPortContext.set(handler, port);
54
+ useIsServerHttps.serverHttpsContext.set(handler, https);
44
55
  watchState.onDestroy(() => {
45
- var _a;
46
- (_a = props.onDestroy) === null || _a === void 0 ? void 0 : _a.call(props);
47
56
  server.close();
48
57
  });
49
58
  if (onError) {
50
59
  server.on('error', onError);
51
60
  }
52
- if (onRequest) {
53
- server.on('request', onRequest);
61
+ if (onClose) {
62
+ server.addListener('close', onClose);
54
63
  }
55
- innet__default["default"](children, handler);
64
+ server.on('request', (req, res) => {
65
+ onRequest === null || onRequest === void 0 ? void 0 : onRequest(req, res);
66
+ const action = new Action.Action(req, res);
67
+ const requestHandler = Object.create(handler);
68
+ useAction.actionContext.set(requestHandler, action);
69
+ useRequestHandler.requestHandlerContext.set(requestHandler, requestHandler);
70
+ function server() {
71
+ return tslib.__awaiter(this, void 0, void 0, function* () {
72
+ for (const plugin of plugins) {
73
+ const result = yield plugin();
74
+ if (result !== undefined) {
75
+ return result;
76
+ }
77
+ }
78
+ });
79
+ }
80
+ innet__default["default"]({ props, type: server }, requestHandler);
81
+ });
82
+ innet__default["default"](props.children, handler);
56
83
  server.listen(port, () => {
57
- onStart === null || onStart === void 0 ? void 0 : onStart({ port, https });
84
+ onStart === null || onStart === void 0 ? void 0 : onStart({ https, port });
58
85
  });
59
86
  };
60
87
 
@@ -1,11 +1,12 @@
1
1
  import { type HandlerPlugin } from 'innet';
2
2
  export interface TagProps {
3
- /** The name of the tag. */
4
- name: string;
3
+ children?: any;
5
4
  /**
6
5
  * A description for the tag.
7
6
  * [CommonMark syntax](https://spec.commonmark.org) MAY be used for rich text representation.
8
7
  * */
9
8
  description?: string;
9
+ /** The name of the tag. */
10
+ name: string;
10
11
  }
11
12
  export declare const tag: HandlerPlugin;
@@ -1,5 +1,5 @@
1
1
  import innet, { useNewHandler } from 'innet';
2
- import { useContext, useProps, useChildren } from '@innet/jsx';
2
+ import { useContext, useProps } from '@innet/jsx';
3
3
  import '../../../hooks/index.es6.js';
4
4
  import { tagContext } from '../../../hooks/useTag/useTag.es6.js';
5
5
  import { useApi } from '../../../hooks/useApi/useApi.es6.js';
@@ -8,10 +8,12 @@ const tag = () => {
8
8
  if (useContext(tagContext)) {
9
9
  throw Error('You cannot use a <tag> inside another one');
10
10
  }
11
- const { name, description } = useProps();
12
- const children = useChildren();
11
+ const { children, description, name, } = useProps();
13
12
  const { docs } = useApi();
14
- const tag = description ? { name, description } : { name };
13
+ const tag = { name };
14
+ if (description) {
15
+ tag.description = description;
16
+ }
15
17
  if (!docs.tags) {
16
18
  docs.tags = [tag];
17
19
  }
@@ -16,10 +16,12 @@ const tag = () => {
16
16
  if (jsx.useContext(useTag.tagContext)) {
17
17
  throw Error('You cannot use a <tag> inside another one');
18
18
  }
19
- const { name, description } = jsx.useProps();
20
- const children = jsx.useChildren();
19
+ const { children, description, name, } = jsx.useProps();
21
20
  const { docs } = useApi.useApi();
22
- const tag = description ? { name, description } : { name };
21
+ const tag = { name };
22
+ if (description) {
23
+ tag.description = description;
24
+ }
23
25
  if (!docs.tags) {
24
26
  docs.tags = [tag];
25
27
  }
@@ -1,5 +1,10 @@
1
1
  import { type HandlerPlugin } from 'innet';
2
2
  export interface VariableProps {
3
+ /**
4
+ * An optional description for the server variable.
5
+ * [CommonMark syntax](https://spec.commonmark.org) MAY be used for rich text representation.
6
+ * */
7
+ description?: string;
3
8
  /**
4
9
  * A server url parameter
5
10
  * */
@@ -15,10 +20,5 @@ export interface VariableProps {
15
20
  * The array MUST NOT be empty.
16
21
  * */
17
22
  values?: [string, string, ...string[]];
18
- /**
19
- * An optional description for the server variable.
20
- * [CommonMark syntax](https://spec.commonmark.org) MAY be used for rich text representation.
21
- * */
22
- description?: string;
23
23
  }
24
24
  export declare const variable: HandlerPlugin;
@@ -5,7 +5,9 @@ import { useHost } from '../../../hooks/useHost/useHost.es6.js';
5
5
 
6
6
  const variable = () => {
7
7
  const { server } = useHost();
8
- const _a = useProps(), { key, values, value = values === null || values === void 0 ? void 0 : values[0] } = _a, rest = __rest(_a, ["key", "values", "value"]);
8
+ const _a = useProps(), { key, values,
9
+ // predefine
10
+ value = values === null || values === void 0 ? void 0 : values[0] } = _a, rest = __rest(_a, ["key", "values", "value"]);
9
11
  if (!server.variables) {
10
12
  server.variables = {};
11
13
  }
@@ -9,7 +9,9 @@ var useHost = require('../../../hooks/useHost/useHost.js');
9
9
 
10
10
  const variable = () => {
11
11
  const { server } = useHost.useHost();
12
- const _a = jsx.useProps(), { key, values, value = values === null || values === void 0 ? void 0 : values[0] } = _a, rest = tslib.__rest(_a, ["key", "values", "value"]);
12
+ const _a = jsx.useProps(), { key, values,
13
+ // predefine
14
+ value = values === null || values === void 0 ? void 0 : values[0] } = _a, rest = tslib.__rest(_a, ["key", "values", "value"]);
13
15
  if (!server.variables) {
14
16
  server.variables = {};
15
17
  }
@@ -1,4 +1,5 @@
1
1
  export interface CmsProps {
2
+ children?: any;
2
3
  dir?: string;
3
4
  prefix?: string;
4
5
  }
@@ -1,5 +1,5 @@
1
1
  import innet, { useHandler } from 'innet';
2
- import { useProps, useChildren } from '@innet/jsx';
2
+ import { useProps } from '@innet/jsx';
3
3
  import path from 'node:path';
4
4
  import '../file/index.es6.js';
5
5
  import '../../../hooks/index.es6.js';
@@ -7,8 +7,7 @@ import { usePath } from '../../../hooks/usePath/usePath.es6.js';
7
7
  import { file } from '../file/file.es6.js';
8
8
 
9
9
  function cms() {
10
- const { prefix = '/', dir = '.' } = useProps() || {};
11
- const children = useChildren();
10
+ const { children, dir = process.env.INNET_CMS_DIR || '.', prefix = process.env.INNET_CMS_PREFIX || '/', } = useProps();
12
11
  const handler = useHandler();
13
12
  let url = usePath();
14
13
  if (url.startsWith(prefix)) {
@@ -18,7 +17,7 @@ function cms() {
18
17
  return innet(children, handler);
19
18
  }
20
19
  const filePath = path.join(dir, url);
21
- innet({ type: file, props: { path: filePath }, children }, handler);
20
+ innet({ children, props: { path: filePath }, type: file }, handler);
22
21
  }
23
22
 
24
23
  export { cms };
@@ -16,8 +16,7 @@ var innet__default = /*#__PURE__*/_interopDefaultLegacy(innet);
16
16
  var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
17
17
 
18
18
  function cms() {
19
- const { prefix = '/', dir = '.' } = jsx.useProps() || {};
20
- const children = jsx.useChildren();
19
+ const { children, dir = process.env.INNET_CMS_DIR || '.', prefix = process.env.INNET_CMS_PREFIX || '/', } = jsx.useProps();
21
20
  const handler = innet.useHandler();
22
21
  let url = usePath.usePath();
23
22
  if (url.startsWith(prefix)) {
@@ -27,7 +26,7 @@ function cms() {
27
26
  return innet__default["default"](children, handler);
28
27
  }
29
28
  const filePath = path__default["default"].join(dir, url);
30
- innet__default["default"]({ type: file.file, props: { path: filePath }, children }, handler);
29
+ innet__default["default"]({ children, props: { path: filePath }, type: file.file }, handler);
31
30
  }
32
31
 
33
32
  exports.cms = cms;
@@ -1,28 +1,12 @@
1
1
  import { __rest } from 'tslib';
2
2
  import { useProps } from '@innet/jsx';
3
- import cookie$1 from 'cookie';
4
3
  import '../../../hooks/index.es6.js';
5
- import { useResponse } from '../../../hooks/useResponse/useResponse.es6.js';
6
- import { useThrow } from '../../../hooks/useThrow/useThrow.es6.js';
4
+ import { useAction } from '../../../hooks/useAction/useAction.es6.js';
7
5
 
8
6
  const cookie = () => {
9
- const res = useResponse();
10
- if (!res) {
11
- useThrow('<{type}> MUST be in <request> or <fallback>');
12
- }
7
+ const action = useAction();
13
8
  const _a = useProps(), { key, value } = _a, opt = __rest(_a, ["key", "value"]);
14
- let cookies = res.getHeader('Set-Cookie');
15
- if (typeof cookies === 'string') {
16
- cookies = [cookies];
17
- }
18
- const normValue = typeof value === 'string' ? cookie$1.serialize(key, value, opt) : `${key}=; max-age=0`;
19
- if (cookies) {
20
- cookies.push(normValue);
21
- }
22
- else {
23
- cookies = normValue;
24
- }
25
- res.setHeader('Set-Cookie', cookies);
9
+ action.setCookie(key, value, opt);
26
10
  };
27
11
 
28
12
  export { cookie };
@@ -4,33 +4,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib = require('tslib');
6
6
  var jsx = require('@innet/jsx');
7
- var cookie$1 = require('cookie');
8
7
  require('../../../hooks/index.js');
9
- var useResponse = require('../../../hooks/useResponse/useResponse.js');
10
- var useThrow = require('../../../hooks/useThrow/useThrow.js');
11
-
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
-
14
- var cookie__default = /*#__PURE__*/_interopDefaultLegacy(cookie$1);
8
+ var useAction = require('../../../hooks/useAction/useAction.js');
15
9
 
16
10
  const cookie = () => {
17
- const res = useResponse.useResponse();
18
- if (!res) {
19
- useThrow.useThrow('<{type}> MUST be in <request> or <fallback>');
20
- }
11
+ const action = useAction.useAction();
21
12
  const _a = jsx.useProps(), { key, value } = _a, opt = tslib.__rest(_a, ["key", "value"]);
22
- let cookies = res.getHeader('Set-Cookie');
23
- if (typeof cookies === 'string') {
24
- cookies = [cookies];
25
- }
26
- const normValue = typeof value === 'string' ? cookie__default["default"].serialize(key, value, opt) : `${key}=; max-age=0`;
27
- if (cookies) {
28
- cookies.push(normValue);
29
- }
30
- else {
31
- cookies = normValue;
32
- }
33
- res.setHeader('Set-Cookie', cookies);
13
+ action.setCookie(key, value, opt);
34
14
  };
35
15
 
36
16
  exports.cookie = cookie;
@@ -1,59 +1,60 @@
1
1
  import { type HandlerPlugin } from 'innet';
2
2
  export declare const errorStatuses: {
3
+ readonly aTimeoutOccurred: 524;
4
+ readonly authenticationTimeout: 419;
5
+ readonly badGateway: 502;
3
6
  readonly badRequest: 400;
4
- readonly unauthorized: 401;
5
- readonly paymentRequired: 402;
6
- readonly forbidden: 403;
7
- readonly notFound: 404;
8
- readonly methodNotAllowed: 405;
9
- readonly notAcceptable: 406;
10
- readonly proxyAuthenticationRequired: 407;
11
- readonly requestTimeout: 408;
7
+ readonly bandwidthLimitExceeded: 509;
8
+ readonly clientClosedRequest: 499;
12
9
  readonly conflict: 409;
13
- readonly gone: 410;
14
- readonly lengthRequired: 411;
15
- readonly preconditionFailed: 412;
16
- readonly payloadTooLarge: 413;
17
- readonly URITooLong: 414;
18
- readonly unsupportedMediaType: 415;
19
- readonly rangeNotSatisfiable: 416;
10
+ readonly connectionTimedOut: 522;
20
11
  readonly expectationFailed: 417;
21
- readonly imATeapot: 418;
22
- readonly authenticationTimeout: 419;
23
- readonly misdirectedRequest: 421;
24
- readonly unprocessableEntity: 422;
25
- readonly locked: 423;
26
12
  readonly failedDependency: 424;
27
- readonly tooEarly: 425;
28
- readonly upgradeRequired: 426;
29
- readonly preconditionRequired: 428;
30
- readonly tooManyRequests: 429;
31
- readonly requestHeaderFieldsTooLarge: 431;
32
- readonly retryWith: 449;
33
- readonly unavailableForLegalReasons: 451;
34
- readonly clientClosedRequest: 499;
35
- readonly internalServerError: 500;
36
- readonly notImplemented: 501;
37
- readonly badGateway: 502;
38
- readonly serviceUnavailable: 503;
13
+ readonly forbidden: 403;
39
14
  readonly gatewayTimeout: 504;
15
+ readonly gone: 410;
40
16
  readonly HTTPVersionNotSupported: 505;
41
- readonly variantAlsoNegotiates: 506;
17
+ readonly imATeapot: 418;
42
18
  readonly insufficientStorage: 507;
19
+ readonly internalServerError: 500;
20
+ readonly invalidSSLCertificate: 526;
21
+ readonly lengthRequired: 411;
22
+ readonly locked: 423;
43
23
  readonly loopDetected: 508;
44
- readonly bandwidthLimitExceeded: 509;
45
- readonly notExtended: 510;
24
+ readonly methodNotAllowed: 405;
25
+ readonly misdirectedRequest: 421;
46
26
  readonly networkAuthenticationRequired: 511;
47
- readonly unknownError: 520;
48
- readonly webServerIsDown: 521;
49
- readonly connectionTimedOut: 522;
27
+ readonly notAcceptable: 406;
28
+ readonly notExtended: 510;
29
+ readonly notFound: 404;
30
+ readonly notImplemented: 501;
50
31
  readonly originIsUnreachable: 523;
51
- readonly aTimeoutOccurred: 524;
32
+ readonly payloadTooLarge: 413;
33
+ readonly paymentRequired: 402;
34
+ readonly preconditionFailed: 412;
35
+ readonly preconditionRequired: 428;
36
+ readonly proxyAuthenticationRequired: 407;
37
+ readonly rangeNotSatisfiable: 416;
38
+ readonly requestHeaderFieldsTooLarge: 431;
39
+ readonly requestTimeout: 408;
40
+ readonly retryWith: 449;
41
+ readonly serviceUnavailable: 503;
52
42
  readonly SSLHandshakeFailed: 525;
53
- readonly invalidSSLCertificate: 526;
43
+ readonly tooEarly: 425;
44
+ readonly tooManyRequests: 429;
45
+ readonly unauthorized: 401;
46
+ readonly unavailableForLegalReasons: 451;
47
+ readonly unknownError: 520;
48
+ readonly unprocessableEntity: 422;
49
+ readonly unsupportedMediaType: 415;
50
+ readonly upgradeRequired: 426;
51
+ readonly URITooLong: 414;
52
+ readonly variantAlsoNegotiates: 506;
53
+ readonly webServerIsDown: 521;
54
54
  };
55
55
  export type ErrorStatuses = keyof typeof errorStatuses;
56
56
  export interface ErrorProps {
57
+ children?: any;
57
58
  code?: string;
58
59
  status?: ErrorStatuses | number;
59
60
  }
@@ -1,72 +1,75 @@
1
- import { useChildren, useProps } from '@innet/jsx';
1
+ import { __rest } from 'tslib';
2
+ import { useProps } from '@innet/jsx';
2
3
  import '../../../hooks/index.es6.js';
3
4
  import '../../../utils/index.es6.js';
4
5
  import { useResponse } from '../../../hooks/useResponse/useResponse.es6.js';
5
6
  import { JSONString } from '../../../utils/JSONString/JSONString.es6.js';
6
7
 
7
8
  const errorStatuses = {
9
+ aTimeoutOccurred: 524,
10
+ authenticationTimeout: 419,
11
+ badGateway: 502,
8
12
  badRequest: 400,
9
- unauthorized: 401,
10
- paymentRequired: 402,
11
- forbidden: 403,
12
- notFound: 404,
13
- methodNotAllowed: 405,
14
- notAcceptable: 406,
15
- proxyAuthenticationRequired: 407,
16
- requestTimeout: 408,
13
+ bandwidthLimitExceeded: 509,
14
+ clientClosedRequest: 499,
17
15
  conflict: 409,
18
- gone: 410,
19
- lengthRequired: 411,
20
- preconditionFailed: 412,
21
- payloadTooLarge: 413,
22
- URITooLong: 414,
23
- unsupportedMediaType: 415,
24
- rangeNotSatisfiable: 416,
16
+ connectionTimedOut: 522,
25
17
  expectationFailed: 417,
26
- imATeapot: 418,
27
- authenticationTimeout: 419,
28
- misdirectedRequest: 421,
29
- unprocessableEntity: 422,
30
- locked: 423,
31
18
  failedDependency: 424,
32
- tooEarly: 425,
33
- upgradeRequired: 426,
34
- preconditionRequired: 428,
35
- tooManyRequests: 429,
36
- requestHeaderFieldsTooLarge: 431,
37
- retryWith: 449,
38
- unavailableForLegalReasons: 451,
39
- clientClosedRequest: 499,
40
- internalServerError: 500,
41
- notImplemented: 501,
42
- badGateway: 502,
43
- serviceUnavailable: 503,
19
+ forbidden: 403,
44
20
  gatewayTimeout: 504,
21
+ gone: 410,
45
22
  HTTPVersionNotSupported: 505,
46
- variantAlsoNegotiates: 506,
23
+ imATeapot: 418,
47
24
  insufficientStorage: 507,
25
+ internalServerError: 500,
26
+ invalidSSLCertificate: 526,
27
+ lengthRequired: 411,
28
+ locked: 423,
48
29
  loopDetected: 508,
49
- bandwidthLimitExceeded: 509,
50
- notExtended: 510,
30
+ methodNotAllowed: 405,
31
+ misdirectedRequest: 421,
51
32
  networkAuthenticationRequired: 511,
52
- unknownError: 520,
53
- webServerIsDown: 521,
54
- connectionTimedOut: 522,
33
+ notAcceptable: 406,
34
+ notExtended: 510,
35
+ notFound: 404,
36
+ notImplemented: 501,
55
37
  originIsUnreachable: 523,
56
- aTimeoutOccurred: 524,
38
+ payloadTooLarge: 413,
39
+ paymentRequired: 402,
40
+ preconditionFailed: 412,
41
+ preconditionRequired: 428,
42
+ proxyAuthenticationRequired: 407,
43
+ rangeNotSatisfiable: 416,
44
+ requestHeaderFieldsTooLarge: 431,
45
+ requestTimeout: 408,
46
+ retryWith: 449,
47
+ serviceUnavailable: 503,
57
48
  SSLHandshakeFailed: 525,
58
- invalidSSLCertificate: 526,
49
+ tooEarly: 425,
50
+ tooManyRequests: 429,
51
+ unauthorized: 401,
52
+ unavailableForLegalReasons: 451,
53
+ unknownError: 520,
54
+ unprocessableEntity: 422,
55
+ unsupportedMediaType: 415,
56
+ upgradeRequired: 426,
57
+ URITooLong: 414,
58
+ variantAlsoNegotiates: 506,
59
+ webServerIsDown: 521,
59
60
  };
60
61
  const error = () => {
61
- const [children] = (useChildren()) || [];
62
- const props = useProps();
62
+ const _a = useProps(), { children } = _a, props = __rest(_a, ["children"]);
63
63
  const res = useResponse();
64
64
  if (!res) {
65
65
  throw Error('<error> MUST be in <request>');
66
66
  }
67
- const { status = 520, code = 'undefined' } = props || {};
67
+ const { code = 'undefined', status = 520, } = props;
68
68
  res.statusCode = typeof status === 'string' ? errorStatuses[status] : status;
69
- res.write(JSONString({ error: code, data: children }));
69
+ const content = JSONString({ data: children, error: code });
70
+ res.setHeader('Content-Type', 'application/json');
71
+ res.setHeader('Content-Length', content.length);
72
+ res.write(content);
70
73
  res.end();
71
74
  };
72
75