@innet/server 2.0.0-alpha.9 → 2.0.0-beta.2

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 (345) hide show
  1. package/README.md +1063 -445
  2. package/handler/handler.d.ts +23 -18
  3. package/handler/handler.es6.js +15 -14
  4. package/handler/handler.js +14 -13
  5. package/hooks/index.d.ts +6 -1
  6. package/hooks/index.es6.js +6 -1
  7. package/hooks/index.js +6 -1
  8. package/hooks/useAction/useAction.es6.js +1 -1
  9. package/hooks/useAction/useAction.js +1 -1
  10. package/hooks/useApi/useApi.d.ts +1 -3
  11. package/hooks/useClientIp/useClientIp.d.ts +1 -1
  12. package/hooks/useEndpoint/useEndpoint.d.ts +1 -1
  13. package/hooks/useEndpoint/useEndpoint.es6.js +3 -1
  14. package/hooks/useEndpoint/useEndpoint.js +3 -1
  15. package/hooks/useHeaders/useHeaders.d.ts +0 -1
  16. package/hooks/useIsServerHttps/index.d.ts +1 -0
  17. package/hooks/useIsServerHttps/index.es6.js +1 -0
  18. package/hooks/useIsServerHttps/index.js +10 -0
  19. package/hooks/useIsServerHttps/useIsServerHttps.d.ts +3 -0
  20. package/hooks/useIsServerHttps/useIsServerHttps.es6.js +14 -0
  21. package/hooks/useIsServerHttps/useIsServerHttps.js +19 -0
  22. package/hooks/useNewSchema/useNewSchema.es6.js +2 -2
  23. package/hooks/useNewSchema/useNewSchema.js +2 -2
  24. package/hooks/useObjectSchemaContext/index.d.ts +1 -0
  25. package/hooks/useObjectSchemaContext/index.es6.js +1 -0
  26. package/hooks/useObjectSchemaContext/index.js +10 -0
  27. package/hooks/useObjectSchemaContext/useObjectSchemaContext.d.ts +3 -0
  28. package/hooks/useObjectSchemaContext/useObjectSchemaContext.es6.js +14 -0
  29. package/hooks/useObjectSchemaContext/useObjectSchemaContext.js +19 -0
  30. package/hooks/useRequest/index.es6.js +1 -1
  31. package/hooks/useRequest/index.js +0 -1
  32. package/hooks/useRequest/useRequest.d.ts +1 -5
  33. package/hooks/useRequest/useRequest.es6.js +4 -4
  34. package/hooks/useRequest/useRequest.js +3 -4
  35. package/hooks/useRequestHandler/index.d.ts +1 -0
  36. package/hooks/useRequestHandler/index.es6.js +1 -0
  37. package/hooks/useRequestHandler/index.js +10 -0
  38. package/hooks/useRequestHandler/useRequestHandler.d.ts +4 -0
  39. package/hooks/useRequestHandler/useRequestHandler.es6.js +14 -0
  40. package/hooks/useRequestHandler/useRequestHandler.js +19 -0
  41. package/hooks/useResponse/index.es6.js +1 -1
  42. package/hooks/useResponse/index.js +0 -1
  43. package/hooks/useResponse/useResponse.d.ts +1 -5
  44. package/hooks/useResponse/useResponse.es6.js +4 -4
  45. package/hooks/useResponse/useResponse.js +3 -4
  46. package/hooks/useSchemaType/useSchemaType.d.ts +3 -2
  47. package/hooks/useSchemaType/useSchemaType.es6.js +16 -9
  48. package/hooks/useSchemaType/useSchemaType.js +16 -9
  49. package/hooks/useServer/useServer.d.ts +2 -3
  50. package/hooks/useServer/useServer.es6.js +3 -1
  51. package/hooks/useServer/useServer.js +3 -1
  52. package/hooks/useServerPlugin/index.d.ts +1 -0
  53. package/hooks/useServerPlugin/index.es6.js +1 -0
  54. package/hooks/useServerPlugin/index.js +9 -0
  55. package/hooks/useServerPlugin/useServerPlugin.d.ts +2 -0
  56. package/hooks/useServerPlugin/useServerPlugin.es6.js +13 -0
  57. package/hooks/useServerPlugin/useServerPlugin.js +17 -0
  58. package/hooks/useServerPlugins/index.d.ts +1 -0
  59. package/hooks/useServerPlugins/index.es6.js +1 -0
  60. package/hooks/useServerPlugins/index.js +10 -0
  61. package/hooks/useServerPlugins/useServerPlugins.d.ts +4 -0
  62. package/hooks/useServerPlugins/useServerPlugins.es6.js +14 -0
  63. package/hooks/useServerPlugins/useServerPlugins.js +19 -0
  64. package/hooks/useServerPort/index.d.ts +1 -0
  65. package/hooks/useServerPort/index.es6.js +1 -0
  66. package/hooks/useServerPort/index.js +10 -0
  67. package/hooks/useServerPort/useServerPort.d.ts +3 -0
  68. package/hooks/useServerPort/useServerPort.es6.js +14 -0
  69. package/hooks/useServerPort/useServerPort.js +19 -0
  70. package/index.es6.js +15 -9
  71. package/index.js +30 -14
  72. package/package.json +15 -16
  73. package/plugins/handler/serverFn/serverFn.es6.js +1 -1
  74. package/plugins/handler/serverFn/serverFn.js +1 -1
  75. package/plugins/main/api/api.d.ts +11 -8
  76. package/plugins/main/api/api.es6.js +112 -113
  77. package/plugins/main/api/api.js +111 -112
  78. package/plugins/main/body/body.d.ts +1 -0
  79. package/plugins/main/contact/contact.d.ts +2 -2
  80. package/plugins/main/endpoint/endpoint.d.ts +21 -15
  81. package/plugins/main/endpoint/endpoint.es6.js +11 -9
  82. package/plugins/main/endpoint/endpoint.js +10 -8
  83. package/plugins/main/host/host.d.ts +5 -5
  84. package/plugins/main/host/host.es6.js +3 -1
  85. package/plugins/main/host/host.js +3 -1
  86. package/plugins/main/index.d.ts +2 -2
  87. package/plugins/main/index.es6.js +2 -2
  88. package/plugins/main/index.js +2 -2
  89. package/plugins/main/license/license.d.ts +5 -5
  90. package/plugins/main/param/param.d.ts +12 -11
  91. package/plugins/main/param/param.es6.js +6 -7
  92. package/plugins/main/param/param.js +5 -6
  93. package/plugins/main/preset/index.d.ts +1 -0
  94. package/plugins/main/preset/index.es6.js +1 -0
  95. package/plugins/{utils/prod → main/preset}/index.js +2 -2
  96. package/plugins/main/preset/preset.d.ts +3 -0
  97. package/plugins/main/preset/preset.es6.js +13 -0
  98. package/plugins/{utils/dev/dev.js → main/preset/preset.js} +9 -6
  99. package/plugins/main/response/index.es6.js +1 -1
  100. package/plugins/main/response/index.js +1 -0
  101. package/plugins/main/response/response.d.ts +6 -1
  102. package/plugins/main/response/response.es6.js +28 -12
  103. package/plugins/main/response/response.js +27 -10
  104. package/plugins/main/return/index.d.ts +1 -0
  105. package/plugins/main/return/index.es6.js +1 -0
  106. package/plugins/main/return/index.js +9 -0
  107. package/plugins/main/return/return.d.ts +4 -0
  108. package/plugins/main/return/return.es6.js +10 -0
  109. package/plugins/main/return/return.js +14 -0
  110. package/plugins/main/server/server.d.ts +6 -6
  111. package/plugins/main/server/server.es6.js +40 -16
  112. package/plugins/main/server/server.js +39 -15
  113. package/plugins/main/tag/tag.d.ts +3 -2
  114. package/plugins/main/tag/tag.es6.js +6 -4
  115. package/plugins/main/tag/tag.js +5 -3
  116. package/plugins/main/variable/variable.d.ts +5 -5
  117. package/plugins/main/variable/variable.es6.js +4 -3
  118. package/plugins/main/variable/variable.js +4 -3
  119. package/plugins/request/cms/cms.d.ts +1 -0
  120. package/plugins/request/cms/cms.es6.js +3 -4
  121. package/plugins/request/cms/cms.js +2 -3
  122. package/plugins/request/cookie/cookie.d.ts +2 -2
  123. package/plugins/request/cookie/cookie.es6.js +1 -2
  124. package/plugins/request/cookie/cookie.js +1 -2
  125. package/plugins/request/error/error.d.ts +41 -40
  126. package/plugins/request/error/error.es6.js +47 -45
  127. package/plugins/request/error/error.js +46 -44
  128. package/plugins/request/file/file.d.ts +1 -0
  129. package/plugins/request/file/file.es6.js +4 -6
  130. package/plugins/request/file/file.js +3 -5
  131. package/plugins/request/header/header.es6.js +1 -1
  132. package/plugins/request/header/header.js +1 -1
  133. package/plugins/request/proxy/proxy.d.ts +3 -1
  134. package/plugins/request/proxy/proxy.es6.js +5 -2
  135. package/plugins/request/proxy/proxy.js +5 -2
  136. package/plugins/request/redirect/redirect.d.ts +8 -7
  137. package/plugins/request/redirect/redirect.es6.js +7 -7
  138. package/plugins/request/redirect/redirect.js +7 -7
  139. package/plugins/request/success/success.d.ts +8 -6
  140. package/plugins/request/success/success.es6.js +21 -11
  141. package/plugins/request/success/success.js +20 -10
  142. package/plugins/schema/any/any.d.ts +5 -0
  143. package/plugins/schema/any/any.es6.js +27 -0
  144. package/plugins/schema/any/any.js +31 -0
  145. package/plugins/schema/array/array.d.ts +1 -0
  146. package/plugins/schema/array/array.es6.js +2 -3
  147. package/plugins/schema/array/array.js +1 -2
  148. package/plugins/schema/binary/binary.d.ts +3 -3
  149. package/plugins/schema/date/date.d.ts +1 -1
  150. package/plugins/schema/date/date.es6.js +8 -4
  151. package/plugins/schema/date/date.js +8 -4
  152. package/plugins/schema/field/field.d.ts +2 -0
  153. package/plugins/schema/field/field.es6.js +8 -8
  154. package/plugins/schema/field/field.js +6 -6
  155. package/plugins/schema/index.d.ts +1 -0
  156. package/plugins/schema/index.es6.js +1 -0
  157. package/plugins/schema/index.js +1 -0
  158. package/plugins/schema/integer/integer.d.ts +3 -3
  159. package/plugins/schema/integer/integer.es6.js +8 -3
  160. package/plugins/schema/integer/integer.js +8 -3
  161. package/plugins/schema/number/number.d.ts +2 -2
  162. package/plugins/schema/number/number.es6.js +1 -2
  163. package/plugins/schema/number/number.js +1 -2
  164. package/plugins/schema/object/object.d.ts +1 -0
  165. package/plugins/schema/object/object.es6.js +19 -7
  166. package/plugins/schema/object/object.js +18 -6
  167. package/plugins/schema/string/string.d.ts +2 -2
  168. package/plugins/schema/string/string.es6.js +44 -31
  169. package/plugins/schema/string/string.js +44 -31
  170. package/plugins/schema/tuple/tuple.d.ts +1 -0
  171. package/plugins/schema/tuple/tuple.es6.js +4 -5
  172. package/plugins/schema/tuple/tuple.js +3 -4
  173. package/plugins/schema/uuid/uuid.es6.js +5 -3
  174. package/plugins/schema/uuid/uuid.js +5 -3
  175. package/plugins/utils/blacklist/blacklist.d.ts +5 -0
  176. package/plugins/utils/blacklist/blacklist.es6.js +17 -0
  177. package/plugins/utils/blacklist/blacklist.js +21 -0
  178. package/plugins/utils/blacklist/index.d.ts +1 -0
  179. package/plugins/utils/blacklist/index.es6.js +1 -0
  180. package/plugins/utils/blacklist/index.js +9 -0
  181. package/plugins/utils/dts/dts.d.ts +2 -1
  182. package/plugins/utils/dts/dts.es6.js +2 -2
  183. package/plugins/utils/dts/dts.js +2 -2
  184. package/plugins/utils/env/env.d.ts +7 -0
  185. package/plugins/utils/env/env.es6.js +11 -0
  186. package/plugins/utils/{prod/prod.js → env/env.js} +5 -4
  187. package/plugins/utils/env/index.d.ts +1 -0
  188. package/plugins/utils/env/index.es6.js +1 -0
  189. package/plugins/utils/{dev → env}/index.js +2 -2
  190. package/plugins/utils/index.d.ts +3 -2
  191. package/plugins/utils/index.es6.js +3 -2
  192. package/plugins/utils/index.js +3 -2
  193. package/plugins/utils/protection/protection.d.ts +4 -4
  194. package/plugins/utils/protection/protection.es6.js +13 -16
  195. package/plugins/utils/protection/protection.js +13 -16
  196. package/plugins/utils/swagger/swagger.es6.js +7 -5
  197. package/plugins/utils/swagger/swagger.js +7 -5
  198. package/plugins/utils/whitelist/index.d.ts +1 -0
  199. package/plugins/utils/whitelist/index.es6.js +1 -0
  200. package/plugins/utils/whitelist/index.js +9 -0
  201. package/plugins/utils/whitelist/whitelist.d.ts +5 -0
  202. package/plugins/utils/whitelist/whitelist.es6.js +19 -0
  203. package/plugins/utils/whitelist/whitelist.js +23 -0
  204. package/types.d.ts +15 -22
  205. package/utils/FileData/Bin.d.ts +13 -13
  206. package/utils/FileData/Bin.es6.js +2 -2
  207. package/utils/FileData/Bin.js +2 -2
  208. package/utils/action/Action.d.ts +13 -14
  209. package/utils/action/Action.es6.js +92 -92
  210. package/utils/action/Action.js +91 -91
  211. package/utils/dateFormat/dateFormat.d.ts +1 -1
  212. package/utils/dateFormat/dateFormat.es6.js +1 -1
  213. package/utils/dateFormat/dateFormat.js +1 -1
  214. package/utils/decorators/once/once.es6.js +1 -1
  215. package/utils/decorators/once/once.js +1 -1
  216. package/utils/generateTypes/generateTypes.d.ts +2 -2
  217. package/utils/generateTypes/generateTypes.es6.js +85 -25
  218. package/utils/generateTypes/generateTypes.js +85 -25
  219. package/utils/getEndpoint/getEndpoint.es6.js +2 -2
  220. package/utils/getEndpoint/getEndpoint.js +2 -2
  221. package/utils/getOrAdd/getOrAdd.d.ts +1 -1
  222. package/utils/httpOnStart/httpOnStart.d.ts +1 -1
  223. package/utils/httpOnStart/httpOnStart.es6.js +1 -1
  224. package/utils/httpOnStart/httpOnStart.js +1 -1
  225. package/utils/parseBody/parseBody.d.ts +0 -1
  226. package/utils/parseBody/parseBody.es6.js +13 -16
  227. package/utils/parseBody/parseBody.js +13 -16
  228. package/utils/parseFormBody/parseFormBody.d.ts +0 -1
  229. package/utils/parseFormBody/parseFormBody.es6.js +41 -41
  230. package/utils/parseFormBody/parseFormBody.js +41 -41
  231. package/utils/parseSearch/parseSearch.es6.js +4 -1
  232. package/utils/parseSearch/parseSearch.js +4 -1
  233. package/utils/rules/arrayOf/arrayOf.es6.js +1 -1
  234. package/utils/rules/arrayOf/arrayOf.js +1 -1
  235. package/utils/rules/bin/bin.es6.js +4 -1
  236. package/utils/rules/bin/bin.js +4 -1
  237. package/utils/rules/binaryAccept/binaryAccept.es6.js +5 -2
  238. package/utils/rules/binaryAccept/binaryAccept.js +5 -2
  239. package/utils/rules/dateTo/dateTo.d.ts +1 -1
  240. package/utils/rules/dateTo/dateTo.es6.js +4 -1
  241. package/utils/rules/dateTo/dateTo.js +4 -1
  242. package/utils/rules/helpers.d.ts +1 -1
  243. package/utils/rules/helpers.es6.js +4 -1
  244. package/utils/rules/helpers.js +4 -1
  245. package/utils/rules/index.d.ts +0 -1
  246. package/utils/rules/index.es6.js +0 -1
  247. package/utils/rules/index.js +0 -1
  248. package/utils/rules/int/int.es6.js +17 -4
  249. package/utils/rules/int/int.js +17 -4
  250. package/utils/rules/max/max.d.ts +1 -1
  251. package/utils/rules/max/max.es6.js +10 -4
  252. package/utils/rules/max/max.js +10 -4
  253. package/utils/rules/maxBin/maxBin.es6.js +5 -2
  254. package/utils/rules/maxBin/maxBin.js +5 -2
  255. package/utils/rules/maxDate/maxDate.es6.js +5 -1
  256. package/utils/rules/maxDate/maxDate.js +5 -1
  257. package/utils/rules/maxLength/maxLength.es6.js +5 -2
  258. package/utils/rules/maxLength/maxLength.js +5 -2
  259. package/utils/rules/min/min.d.ts +1 -1
  260. package/utils/rules/min/min.es6.js +10 -4
  261. package/utils/rules/min/min.js +10 -4
  262. package/utils/rules/minBin/minBin.es6.js +5 -2
  263. package/utils/rules/minBin/minBin.js +5 -2
  264. package/utils/rules/minDate/minDate.es6.js +5 -1
  265. package/utils/rules/minDate/minDate.js +5 -1
  266. package/utils/rules/minLength/minLength.es6.js +5 -2
  267. package/utils/rules/minLength/minLength.js +5 -2
  268. package/utils/rules/num/num.es6.js +4 -1
  269. package/utils/rules/num/num.js +4 -1
  270. package/utils/rules/objectOf/objectOf.d.ts +1 -1
  271. package/utils/rules/objectOf/objectOf.es6.js +16 -3
  272. package/utils/rules/objectOf/objectOf.js +16 -3
  273. package/utils/rules/pattern/pattern.d.ts +1 -1
  274. package/utils/rules/pattern/pattern.es6.js +6 -1
  275. package/utils/rules/pattern/pattern.js +6 -1
  276. package/utils/rules/tupleOf/tupleOf.es6.js +1 -1
  277. package/utils/rules/tupleOf/tupleOf.js +1 -1
  278. package/utils/rules/values/values.es6.js +5 -2
  279. package/utils/rules/values/values.js +5 -2
  280. package/utils/stringifySearch/stringifySearch.es6.js +4 -1
  281. package/utils/stringifySearch/stringifySearch.js +4 -1
  282. package/example/app/App/App.d.ts +0 -1
  283. package/example/app/App/index.d.ts +0 -1
  284. package/example/index.d.ts +0 -1
  285. package/example/requests/index.d.ts +0 -1
  286. package/example/requests/todo/AddTodo/AddTodo.d.ts +0 -1
  287. package/example/requests/todo/AddTodo/index.d.ts +0 -1
  288. package/example/requests/todo/DeleteTodo/DeleteTodo.d.ts +0 -1
  289. package/example/requests/todo/DeleteTodo/index.d.ts +0 -1
  290. package/example/requests/todo/EditTodo/EditTodo.d.ts +0 -1
  291. package/example/requests/todo/EditTodo/index.d.ts +0 -1
  292. package/example/requests/todo/GetTodo/GetTodo.d.ts +0 -1
  293. package/example/requests/todo/GetTodo/index.d.ts +0 -1
  294. package/example/requests/todo/GetTodos/GetTodos.d.ts +0 -1
  295. package/example/requests/todo/GetTodos/index.d.ts +0 -1
  296. package/example/requests/todo/index.d.ts +0 -5
  297. package/example/requests/todo/todos.d.ts +0 -1
  298. package/example/schemas/app/ListQueryParams/ListQueryParams.d.ts +0 -1
  299. package/example/schemas/app/ListQueryParams/index.d.ts +0 -1
  300. package/example/schemas/app/ListSchema/ListSchema.d.ts +0 -4
  301. package/example/schemas/app/ListSchema/index.d.ts +0 -1
  302. package/example/schemas/app/index.d.ts +0 -2
  303. package/example/schemas/index.d.ts +0 -2
  304. package/example/schemas/todo/TodoSchema/TodoSchema.d.ts +0 -4
  305. package/example/schemas/todo/TodoSchema/index.d.ts +0 -1
  306. package/example/schemas/todo/index.d.ts +0 -1
  307. package/example/tags/Todo/Todo.d.ts +0 -1
  308. package/example/tags/Todo/index.d.ts +0 -1
  309. package/example/tags/index.d.ts +0 -1
  310. package/hooks/useRequestPlugin/index.d.ts +0 -1
  311. package/hooks/useRequestPlugin/index.es6.js +0 -1
  312. package/hooks/useRequestPlugin/index.js +0 -9
  313. package/hooks/useRequestPlugin/useRequestPlugin.d.ts +0 -2
  314. package/hooks/useRequestPlugin/useRequestPlugin.es6.js +0 -13
  315. package/hooks/useRequestPlugin/useRequestPlugin.js +0 -17
  316. package/openApi.test.d.ts +0 -1
  317. package/plugins/main/fallback/fallback.d.ts +0 -4
  318. package/plugins/main/fallback/fallback.es6.js +0 -19
  319. package/plugins/main/fallback/fallback.js +0 -23
  320. package/plugins/main/fallback/index.d.ts +0 -1
  321. package/plugins/main/fallback/index.es6.js +0 -1
  322. package/plugins/main/fallback/index.js +0 -9
  323. package/plugins/main/request/index.d.ts +0 -1
  324. package/plugins/main/request/index.es6.js +0 -1
  325. package/plugins/main/request/index.js +0 -9
  326. package/plugins/main/request/request.d.ts +0 -4
  327. package/plugins/main/request/request.es6.js +0 -21
  328. package/plugins/main/request/request.js +0 -25
  329. package/plugins/utils/dev/dev.d.ts +0 -4
  330. package/plugins/utils/dev/dev.es6.js +0 -10
  331. package/plugins/utils/dev/index.d.ts +0 -1
  332. package/plugins/utils/dev/index.es6.js +0 -1
  333. package/plugins/utils/prod/index.d.ts +0 -1
  334. package/plugins/utils/prod/index.es6.js +0 -1
  335. package/plugins/utils/prod/prod.d.ts +0 -4
  336. package/plugins/utils/prod/prod.es6.js +0 -10
  337. package/utils/decorators/once/once.test.d.ts +0 -1
  338. package/utils/generateTypes/generateTypes.test.d.ts +0 -1
  339. package/utils/parseSearch/parseSearch.test.d.ts +0 -1
  340. package/utils/rules/any/any.d.ts +0 -1
  341. package/utils/rules/any/any.es6.js +0 -5
  342. package/utils/rules/any/any.js +0 -9
  343. /package/{utils/rules → plugins/schema}/any/index.d.ts +0 -0
  344. /package/{utils/rules → plugins/schema}/any/index.es6.js +0 -0
  345. /package/{utils/rules → plugins/schema}/any/index.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@innet/server",
3
- "version": "2.0.0-alpha.9",
3
+ "version": "2.0.0-beta.2",
4
4
  "description": "Create server-side application with innet",
5
5
  "main": "index.js",
6
6
  "module": "index.es6.js",
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "repository": {
23
23
  "type": "git",
24
- "url": "https://github.com/d8corp/innet-server.git"
24
+ "url": "git+https://github.com/d8corp/innet-server.git"
25
25
  },
26
26
  "keywords": [
27
27
  "innet",
@@ -35,24 +35,23 @@
35
35
  },
36
36
  "homepage": "https://github.com/d8corp/innet-server",
37
37
  "dependencies": {
38
- "@cantinc/utils": "^1.4.2",
39
- "@innet/jsx": "^2.0.0-alpha.10",
40
- "@innet/utils": "^2.0.0-alpha.1",
41
- "@types/cookie": "^0.5.1",
42
- "@types/multiparty": "^0.0.33",
43
- "@types/qs": "^6.9.7",
44
- "cookie": "^0.5.0",
38
+ "@cantinc/utils": "^1.4.4",
39
+ "@innet/jsx": "^2.0.0-rc.3",
40
+ "@innet/utils": "^2.0.3-beta.1",
41
+ "@types/cookie": "^1.0.0",
42
+ "@types/multiparty": "^4.2.1",
43
+ "@types/qs": "^6.15.0",
44
+ "cookie": "^1.1.1",
45
45
  "http-proxy": "^1.18.1",
46
- "innet": "^2.0.0-alpha.3",
47
- "is-invalid-path": "^1.0.2",
48
- "mime": "^3.0.0",
46
+ "innet": "^2.0.1",
47
+ "mime": "^4.1.0",
49
48
  "multiparty": "^4.2.3",
50
49
  "openapi-types": "^12.1.3",
51
- "qs": "^6.11.2",
50
+ "qs": "^6.15.0",
52
51
  "request-ip": "^3.3.0",
53
52
  "string_decoder": "^1.3.0",
54
- "tslib": "^2.6.1",
55
- "uuid": "^9.0.0",
56
- "watch-state": "^3.5.0-alpha.3"
53
+ "tslib": "^2.8.1",
54
+ "uuid": "^13.0.0",
55
+ "watch-state": "^3.6.2"
57
56
  }
58
57
  }
@@ -5,7 +5,7 @@ const serverFn = () => {
5
5
  return () => {
6
6
  const handler = useHandler();
7
7
  const fn = useApp();
8
- new Watch(update => {
8
+ new Watch((update) => {
9
9
  innet(fn(update), handler);
10
10
  });
11
11
  };
@@ -13,7 +13,7 @@ const serverFn = () => {
13
13
  return () => {
14
14
  const handler = innet.useHandler();
15
15
  const fn = innet.useApp();
16
- new watchState.Watch(update => {
16
+ new watchState.Watch((update) => {
17
17
  innet__default["default"](fn(update), handler);
18
18
  });
19
19
  };
@@ -1,5 +1,16 @@
1
1
  import { type HandlerPlugin } from 'innet';
2
2
  export interface ApiProps {
3
+ children?: any;
4
+ /** A description of the API. [CommonMark syntax](https://spec.commonmark.or.org) MAY be used for rich text representation. */
5
+ description?: string;
6
+ exclude?: RegExp;
7
+ include?: RegExp;
8
+ /** URL path prefix scopes the API. */
9
+ prefix?: string;
10
+ /** A short summary of the API. */
11
+ summary?: string;
12
+ /** A URL to the Terms of Service for the API. This MUST be in the form of a URL. */
13
+ termsOfService?: string;
3
14
  /** The title of the API. */
4
15
  title?: string;
5
16
  /**
@@ -10,13 +21,5 @@ export interface ApiProps {
10
21
  * @default: 0.0.0
11
22
  * */
12
23
  version?: string;
13
- /** A short summary of the API. */
14
- summary?: string;
15
- /** A description of the API. [CommonMark syntax](https://spec.commonmark.or.org) MAY be used for rich text representation. */
16
- description?: string;
17
- /** A URL to the Terms of Service for the API. This MUST be in the form of a URL. */
18
- termsOfService?: string;
19
- /** URL path prefix scopes the API. */
20
- prefix?: string;
21
24
  }
22
25
  export declare const api: HandlerPlugin;
@@ -1,56 +1,58 @@
1
- import { __rest, __awaiter } from 'tslib';
2
- import innet, { useNewHandler, useApp } from 'innet';
3
- import { onDestroy } from 'watch-state';
1
+ import innet, { useNewHandler } from 'innet';
2
+ import { useProps } from '@innet/jsx';
4
3
  import '../../../hooks/index.es6.js';
5
4
  import '../../../utils/index.es6.js';
6
5
  import '../../../utils/rules/index.es6.js';
7
- import { useServer } from '../../../hooks/useServer/useServer.es6.js';
6
+ import { serverPlugins } from '../../../hooks/useServerPlugins/useServerPlugins.es6.js';
8
7
  import { apiContext } from '../../../hooks/useApi/useApi.es6.js';
9
- import { Action } from '../../../utils/action/Action.es6.js';
8
+ import { useServerPlugin } from '../../../hooks/useServerPlugin/useServerPlugin.es6.js';
9
+ import { useAction, actionContext } from '../../../hooks/useAction/useAction.es6.js';
10
10
  import { JSONString } from '../../../utils/JSONString/JSONString.es6.js';
11
11
  import { RulesError } from '../../../utils/rules/helpers.es6.js';
12
- import { responseContext } from '../../../hooks/useResponse/useResponse.es6.js';
13
- import { requestContext } from '../../../hooks/useRequest/useRequest.es6.js';
14
12
  import { paramsContext } from '../../../hooks/useParams/useParams.es6.js';
15
- import { actionContext } from '../../../hooks/useAction/useAction.es6.js';
16
13
 
17
14
  const api = () => {
18
- var _a;
19
15
  const handler = useNewHandler();
20
- const { props = {}, children } = useApp();
21
- const { server } = useServer();
22
- const { prefix = '', title = '' } = props, rest = __rest(props, ["prefix", "title"]);
23
- const info = Object.assign(Object.assign({}, rest), { version: (_a = rest.version) !== null && _a !== void 0 ? _a : '0.0.0', title });
16
+ const props = useProps();
17
+ const { children, exclude, include, prefix = process.env.INNET_API_PREFIX || '', title = '', version = process.env.INNET_API_VERSION || '0.0.0', ...rest } = props;
18
+ const info = { ...rest, title, version };
24
19
  const endpoints = {};
25
20
  const docs = {
26
- openapi: '3.1.0',
27
21
  info,
22
+ openapi: '3.1.0',
28
23
  paths: {},
29
24
  };
30
- const requestPlugins = new Set();
31
- const context = { docs, endpoints, prefix, requestPlugins, refRules: {} };
25
+ const plugins = new Set();
26
+ const context = { docs, endpoints, prefix, refRules: {} };
27
+ const condition = (action) => {
28
+ const path = action.parsedUrl.path;
29
+ const url = path.endsWith('/') ? path.slice(0, -1) : path;
30
+ if (!url.startsWith(prefix) || (exclude === null || exclude === void 0 ? void 0 : exclude.test(url))) {
31
+ return false;
32
+ }
33
+ if (include && !include.test(url)) {
34
+ return false;
35
+ }
36
+ return true;
37
+ };
38
+ serverPlugins.set(handler, plugins);
32
39
  apiContext.set(handler, context);
33
- const listener = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
34
- var _b, _c, _d, _e, _f, _g;
35
- if (res.writableEnded)
40
+ useServerPlugin(async () => {
41
+ var _a, _b, _c, _d, _e, _f;
42
+ const action = useAction();
43
+ if (!condition(action))
36
44
  return;
37
- const action = new Action(req, res);
45
+ const actionHandler = useNewHandler();
38
46
  const path = action.parsedUrl.path;
39
47
  const url = path.endsWith('/') ? path.slice(0, -1) : path;
48
+ const { req, res, } = action;
40
49
  if (url === (prefix || '')) {
41
50
  res.setHeader('Content-Type', 'application/json');
42
51
  res.write(JSONString(docs));
43
52
  res.end();
44
- return;
45
- }
46
- if (!url.startsWith(prefix)) {
47
- return;
48
- }
49
- for (const requestPlugin of requestPlugins) {
50
- if (requestPlugin(action))
51
- return;
53
+ return null;
52
54
  }
53
- const method = ((_c = (_b = req.method) === null || _b === void 0 ? void 0 : _b.toLowerCase()) !== null && _c !== void 0 ? _c : 'get');
55
+ const method = ((_b = (_a = req.method) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : 'get');
54
56
  const rawSplitPath = url.slice(prefix.length).split('/').slice(1);
55
57
  const splitPath = rawSplitPath.at(-1) ? rawSplitPath : rawSplitPath.slice(0, -1);
56
58
  const endpoint = endpoints[method];
@@ -59,121 +61,118 @@ const api = () => {
59
61
  const [deep, currentEndpoint, params] = endpointQueue.shift();
60
62
  const key = splitPath[deep];
61
63
  if (deep + 1 === splitPath.length) {
62
- function run(runEndpoint, params) {
64
+ async function run(runEndpoint, params) {
63
65
  var _a, _b, _c, _d, _e;
64
- return __awaiter(this, void 0, void 0, function* () {
65
- const pathRules = (_a = runEndpoint.rules) === null || _a === void 0 ? void 0 : _a.path;
66
- const headerRules = (_b = runEndpoint.rules) === null || _b === void 0 ? void 0 : _b.header;
67
- const cookieRules = (_c = runEndpoint.rules) === null || _c === void 0 ? void 0 : _c.cookie;
68
- const searchRules = (_d = runEndpoint.rules) === null || _d === void 0 ? void 0 : _d.search;
69
- const bodyRules = (_e = runEndpoint.rules) === null || _e === void 0 ? void 0 : _e.body;
70
- if (pathRules) {
66
+ const pathRules = (_a = runEndpoint.rules) === null || _a === void 0 ? void 0 : _a.path;
67
+ const headerRules = (_b = runEndpoint.rules) === null || _b === void 0 ? void 0 : _b.header;
68
+ const cookieRules = (_c = runEndpoint.rules) === null || _c === void 0 ? void 0 : _c.cookie;
69
+ const searchRules = (_d = runEndpoint.rules) === null || _d === void 0 ? void 0 : _d.search;
70
+ const bodyRules = (_e = runEndpoint.rules) === null || _e === void 0 ? void 0 : _e.body;
71
+ if (pathRules) {
72
+ try {
73
+ Object.assign(params, pathRules(params, { in: 'path' }));
74
+ }
75
+ catch (_f) {
76
+ return false;
77
+ }
78
+ }
79
+ function checkActionRules(rules, key = 'search') {
80
+ if (rules) {
71
81
  try {
72
- Object.assign(params, pathRules(params, { in: 'path' }));
73
- }
74
- catch (_f) {
75
- return false;
82
+ action[key] = rules(action[key]);
76
83
  }
77
- }
78
- function checkActionRules(rules, key = 'search') {
79
- if (rules) {
80
- try {
81
- action[key] = rules(action[key]);
84
+ catch (e) {
85
+ res.setHeader('Content-Type', 'application/json');
86
+ if (e instanceof RulesError) {
87
+ res.statusCode = 400;
88
+ res.write(JSONString({
89
+ data: {
90
+ ...e.data,
91
+ in: key,
92
+ },
93
+ error: 'requestValidation',
94
+ }));
95
+ res.end();
82
96
  }
83
- catch (e) {
84
- res.setHeader('Content-Type', 'application/json');
85
- if (e instanceof RulesError) {
86
- res.statusCode = 400;
87
- res.write(JSONString({
88
- error: 'requestValidation',
89
- data: Object.assign(Object.assign({}, e.data), { in: key }),
90
- }));
91
- res.end();
92
- }
93
- else {
94
- console.error(e);
95
- res.statusCode = 500;
96
- res.write(JSONString({
97
- error: 'unknown',
98
- data: { in: key },
99
- }));
100
- res.end();
101
- }
102
- return true;
97
+ else {
98
+ console.error(e);
99
+ res.statusCode = 500;
100
+ res.write(JSONString({
101
+ data: { in: key },
102
+ error: 'unknown',
103
+ }));
104
+ res.end();
103
105
  }
106
+ return true;
104
107
  }
105
- return false;
106
108
  }
107
- if (checkActionRules(headerRules, 'headers'))
108
- return true;
109
- if (checkActionRules(cookieRules, 'cookies'))
110
- return true;
111
- if (checkActionRules(searchRules, 'search'))
109
+ return false;
110
+ }
111
+ if (checkActionRules(headerRules, 'headers'))
112
+ return true;
113
+ if (checkActionRules(cookieRules, 'cookies'))
114
+ return true;
115
+ if (checkActionRules(searchRules, 'search'))
116
+ return true;
117
+ if (bodyRules) {
118
+ await action.parseBody();
119
+ if (!action.body) {
120
+ res.statusCode = 400;
121
+ res.setHeader('Content-Type', 'application/json');
122
+ res.write(JSONString({
123
+ error: 'requestBodyContentType',
124
+ }));
125
+ res.end();
112
126
  return true;
113
- if (bodyRules) {
114
- yield action.parseBody();
115
- if (!action.body) {
116
- res.statusCode = 400;
117
- res.setHeader('Content-Type', 'application/json');
118
- res.write(JSONString({
119
- error: 'requestBodyContentType',
120
- }));
121
- res.end();
122
- return true;
123
- }
124
- if (checkActionRules(bodyRules, 'body'))
125
- return true;
126
127
  }
127
- const newHandler = Object.create(runEndpoint.handler);
128
- responseContext.set(newHandler, res);
129
- requestContext.set(newHandler, req);
130
- paramsContext.set(newHandler, params);
131
- actionContext.set(newHandler, action);
132
- innet(runEndpoint.content, newHandler);
128
+ if (checkActionRules(bodyRules, 'body'))
129
+ return true;
130
+ }
131
+ paramsContext.set(actionHandler, params);
132
+ for (const plugin of runEndpoint.plugins) {
133
+ const result = await plugin();
134
+ if (result === undefined)
135
+ continue;
136
+ innet(result, actionHandler);
133
137
  return true;
134
- });
138
+ }
139
+ return true;
135
140
  }
136
- if ((_e = (_d = currentEndpoint.static) === null || _d === void 0 ? void 0 : _d[key]) === null || _e === void 0 ? void 0 : _e.content) {
137
- if (!(yield run((_f = currentEndpoint.static) === null || _f === void 0 ? void 0 : _f[key], params)))
141
+ if ((_d = (_c = currentEndpoint.static) === null || _c === void 0 ? void 0 : _c[key]) === null || _d === void 0 ? void 0 : _d.plugins) {
142
+ if (!await run((_e = currentEndpoint.static) === null || _e === void 0 ? void 0 : _e[key], params))
138
143
  continue;
139
- return;
144
+ return null;
140
145
  }
141
146
  if (currentEndpoint.dynamic) {
142
147
  for (const dynamicEndpoint of currentEndpoint.dynamic) {
143
- if (dynamicEndpoint.content) {
144
- if (!(yield run(dynamicEndpoint, Object.assign(Object.assign({}, params), { [dynamicEndpoint.key.slice(1, -1)]: key }))))
148
+ if (dynamicEndpoint.plugins) {
149
+ if (!await run(dynamicEndpoint, { ...params, [dynamicEndpoint.key.slice(1, -1)]: key }))
145
150
  continue;
146
- return;
151
+ return null;
147
152
  }
148
153
  }
149
154
  }
150
155
  break;
151
156
  }
152
- if ((_g = currentEndpoint.static) === null || _g === void 0 ? void 0 : _g[key]) {
157
+ if ((_f = currentEndpoint.static) === null || _f === void 0 ? void 0 : _f[key]) {
153
158
  endpointQueue.push([deep + 1, currentEndpoint.static[key], params]);
154
159
  }
155
160
  if (currentEndpoint.dynamic) {
156
161
  for (const dynamicEndpoint of currentEndpoint.dynamic) {
157
- endpointQueue.push([deep + 1, dynamicEndpoint, Object.assign(Object.assign({}, params), { [dynamicEndpoint.key.slice(1, -1)]: key })]);
162
+ endpointQueue.push([deep + 1, dynamicEndpoint, { ...params, [dynamicEndpoint.key.slice(1, -1)]: key }]);
158
163
  }
159
164
  }
160
165
  }
161
- if (context.fallback) {
162
- const newHandler = Object.create(context.fallback.handler);
163
- responseContext.set(newHandler, res);
164
- requestContext.set(newHandler, req);
166
+ for (const plugin of plugins) {
167
+ const result = await plugin();
168
+ if (result === undefined)
169
+ continue;
170
+ const newHandler = Object.create(handler);
165
171
  actionContext.set(newHandler, action);
166
- innet(context.fallback.children, newHandler);
167
- }
168
- else {
169
- res.statusCode = 404;
170
- res.end();
172
+ innet(result, newHandler);
173
+ return null;
171
174
  }
172
175
  });
173
- server.on('request', listener);
174
- onDestroy(() => {
175
- server.off('request', listener);
176
- });
177
176
  innet(children, handler);
178
177
  };
179
178