@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
@@ -1,9 +1,9 @@
1
1
  export interface ProtectionProps {
2
- html: string;
3
- value?: string;
4
- maxAge?: number;
5
- excludeIp?: string | string[];
2
+ children?: any;
6
3
  cookieKey?: string;
4
+ excludeIp?: string | string[];
5
+ maxAge?: number;
7
6
  searchKey?: string;
7
+ value?: string;
8
8
  }
9
9
  export declare function protection(): void;
@@ -1,37 +1,34 @@
1
1
  import { useProps } from '@innet/jsx';
2
2
  import '../../../hooks/index.es6.js';
3
- import { useRequestPlugin } from '../../../hooks/useRequestPlugin/useRequestPlugin.es6.js';
3
+ import { useServerPlugin } from '../../../hooks/useServerPlugin/useServerPlugin.es6.js';
4
+ import { useAction } from '../../../hooks/useAction/useAction.es6.js';
4
5
 
5
6
  function protection() {
6
- const { html, maxAge = Number(process.env.PROTECTION_MAX_AGE) || 365 * 24 * 60 * 60, value = process.env.PROTECTION, excludeIp = process.env.PROTECTED_IP, cookieKey = process.env.PROTECTION_COOKIE_KEY || 'protection', searchKey = process.env.PROTECTION_SEARCH_KEY || 'protection', } = useProps();
7
+ const { children, cookieKey = process.env.INNET_PROTECTION_COOKIE_KEY || 'protection', excludeIp = process.env.INNET_PROTECTED_IP, maxAge = Number(process.env.INNET_PROTECTION_MAX_AGE) || 365 * 24 * 60 * 60, searchKey = process.env.INNET_PROTECTION_SEARCH_KEY || 'protection', value = process.env.INNET_PROTECTION, } = useProps();
7
8
  if (!value)
8
9
  return;
9
10
  const excludeIps = Array.isArray(excludeIp) ? excludeIp : excludeIp === null || excludeIp === void 0 ? void 0 : excludeIp.split(',');
10
- useRequestPlugin(action => {
11
- if (!action.clientIp) {
12
- action.res.write(html);
13
- action.res.end();
14
- return true;
15
- }
11
+ useServerPlugin(() => {
12
+ const action = useAction();
13
+ if (!action.clientIp)
14
+ return children;
16
15
  if (excludeIps === null || excludeIps === void 0 ? void 0 : excludeIps.includes(action.clientIp))
17
- return false;
16
+ return;
18
17
  const { [cookieKey]: cookieProtection } = action.cookies;
19
18
  if (cookieProtection && cookieProtection === value)
20
- return false;
19
+ return;
21
20
  const { [searchKey]: searchProtection } = action.search;
22
21
  if (searchProtection && searchProtection === value) {
23
22
  action.setCookie(cookieKey, value, {
24
- maxAge,
25
23
  httpOnly: true,
26
- secure: true,
24
+ maxAge,
27
25
  path: '/',
26
+ secure: true,
28
27
  });
29
- return false;
28
+ return;
30
29
  }
31
30
  action.setCookie(cookieKey);
32
- action.res.write(html);
33
- action.res.end();
34
- return true;
31
+ return children;
35
32
  });
36
33
  }
37
34
 
@@ -4,38 +4,35 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var jsx = require('@innet/jsx');
6
6
  require('../../../hooks/index.js');
7
- var useRequestPlugin = require('../../../hooks/useRequestPlugin/useRequestPlugin.js');
7
+ var useServerPlugin = require('../../../hooks/useServerPlugin/useServerPlugin.js');
8
+ var useAction = require('../../../hooks/useAction/useAction.js');
8
9
 
9
10
  function protection() {
10
- const { html, maxAge = Number(process.env.PROTECTION_MAX_AGE) || 365 * 24 * 60 * 60, value = process.env.PROTECTION, excludeIp = process.env.PROTECTED_IP, cookieKey = process.env.PROTECTION_COOKIE_KEY || 'protection', searchKey = process.env.PROTECTION_SEARCH_KEY || 'protection', } = jsx.useProps();
11
+ const { children, cookieKey = process.env.INNET_PROTECTION_COOKIE_KEY || 'protection', excludeIp = process.env.INNET_PROTECTED_IP, maxAge = Number(process.env.INNET_PROTECTION_MAX_AGE) || 365 * 24 * 60 * 60, searchKey = process.env.INNET_PROTECTION_SEARCH_KEY || 'protection', value = process.env.INNET_PROTECTION, } = jsx.useProps();
11
12
  if (!value)
12
13
  return;
13
14
  const excludeIps = Array.isArray(excludeIp) ? excludeIp : excludeIp === null || excludeIp === void 0 ? void 0 : excludeIp.split(',');
14
- useRequestPlugin.useRequestPlugin(action => {
15
- if (!action.clientIp) {
16
- action.res.write(html);
17
- action.res.end();
18
- return true;
19
- }
15
+ useServerPlugin.useServerPlugin(() => {
16
+ const action = useAction.useAction();
17
+ if (!action.clientIp)
18
+ return children;
20
19
  if (excludeIps === null || excludeIps === void 0 ? void 0 : excludeIps.includes(action.clientIp))
21
- return false;
20
+ return;
22
21
  const { [cookieKey]: cookieProtection } = action.cookies;
23
22
  if (cookieProtection && cookieProtection === value)
24
- return false;
23
+ return;
25
24
  const { [searchKey]: searchProtection } = action.search;
26
25
  if (searchProtection && searchProtection === value) {
27
26
  action.setCookie(cookieKey, value, {
28
- maxAge,
29
27
  httpOnly: true,
30
- secure: true,
28
+ maxAge,
31
29
  path: '/',
30
+ secure: true,
32
31
  });
33
- return false;
32
+ return;
34
33
  }
35
34
  action.setCookie(cookieKey);
36
- action.res.write(html);
37
- action.res.end();
38
- return true;
35
+ return children;
39
36
  });
40
37
  }
41
38
 
@@ -2,14 +2,16 @@ import { useProps } from '@innet/jsx';
2
2
  import '../../../hooks/index.es6.js';
3
3
  import html from './swagger.html.es6.js';
4
4
  import { useApi } from '../../../hooks/useApi/useApi.es6.js';
5
- import { useRequestPlugin } from '../../../hooks/useRequestPlugin/useRequestPlugin.es6.js';
5
+ import { useServerPlugin } from '../../../hooks/useServerPlugin/useServerPlugin.es6.js';
6
+ import { useAction } from '../../../hooks/useAction/useAction.es6.js';
6
7
 
7
8
  const swagger = () => {
8
- const { path = '/swagger-ui' } = useProps() || {};
9
- const { docs, prefix } = useApi();
9
+ const { path = process.env.INNET_SWAGGER_PATH || '/swagger-ui', } = useProps() || {};
10
+ const { docs, prefix, } = useApi();
10
11
  let swaggerResponse;
11
- useRequestPlugin(action => {
12
- if (action.req.url === prefix + path) {
12
+ useServerPlugin(() => {
13
+ const action = useAction();
14
+ if (action.path === prefix + path) {
13
15
  if (!swaggerResponse) {
14
16
  swaggerResponse = html.replace('spec: {},', `spec: ${JSON.stringify(docs)},`);
15
17
  }
@@ -6,14 +6,16 @@ var jsx = require('@innet/jsx');
6
6
  require('../../../hooks/index.js');
7
7
  var swagger$1 = require('./swagger.html.js');
8
8
  var useApi = require('../../../hooks/useApi/useApi.js');
9
- var useRequestPlugin = require('../../../hooks/useRequestPlugin/useRequestPlugin.js');
9
+ var useServerPlugin = require('../../../hooks/useServerPlugin/useServerPlugin.js');
10
+ var useAction = require('../../../hooks/useAction/useAction.js');
10
11
 
11
12
  const swagger = () => {
12
- const { path = '/swagger-ui' } = jsx.useProps() || {};
13
- const { docs, prefix } = useApi.useApi();
13
+ const { path = process.env.INNET_SWAGGER_PATH || '/swagger-ui', } = jsx.useProps() || {};
14
+ const { docs, prefix, } = useApi.useApi();
14
15
  let swaggerResponse;
15
- useRequestPlugin.useRequestPlugin(action => {
16
- if (action.req.url === prefix + path) {
16
+ useServerPlugin.useServerPlugin(() => {
17
+ const action = useAction.useAction();
18
+ if (action.path === prefix + path) {
17
19
  if (!swaggerResponse) {
18
20
  swaggerResponse = swagger$1["default"].replace('spec: {},', `spec: ${JSON.stringify(docs)},`);
19
21
  }
@@ -0,0 +1 @@
1
+ export * from './whitelist';
@@ -0,0 +1 @@
1
+ export { whitelist } from './whitelist.es6.js';
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var whitelist = require('./whitelist.js');
6
+
7
+
8
+
9
+ exports.whitelist = whitelist.whitelist;
@@ -0,0 +1,5 @@
1
+ export interface WhitelistProps {
2
+ children?: any;
3
+ ip?: string | string[];
4
+ }
5
+ export declare function whitelist(): void;
@@ -0,0 +1,19 @@
1
+ import { useProps } from '@innet/jsx';
2
+ import '../../../hooks/index.es6.js';
3
+ import { useServerPlugin } from '../../../hooks/useServerPlugin/useServerPlugin.es6.js';
4
+ import { useAction } from '../../../hooks/useAction/useAction.es6.js';
5
+
6
+ function whitelist() {
7
+ const { children, ip = process.env.INNET_WHITELIST_IP, } = useProps();
8
+ const ips = typeof ip === 'string' ? ip.split(',') : ip;
9
+ if (!ips)
10
+ return;
11
+ useServerPlugin(() => {
12
+ const action = useAction();
13
+ if (!action.clientIp || !ips.includes(action.clientIp)) {
14
+ return children;
15
+ }
16
+ });
17
+ }
18
+
19
+ export { whitelist };
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsx = require('@innet/jsx');
6
+ require('../../../hooks/index.js');
7
+ var useServerPlugin = require('../../../hooks/useServerPlugin/useServerPlugin.js');
8
+ var useAction = require('../../../hooks/useAction/useAction.js');
9
+
10
+ function whitelist() {
11
+ const { children, ip = process.env.INNET_WHITELIST_IP, } = jsx.useProps();
12
+ const ips = typeof ip === 'string' ? ip.split(',') : ip;
13
+ if (!ips)
14
+ return;
15
+ useServerPlugin.useServerPlugin(() => {
16
+ const action = useAction.useAction();
17
+ if (!action.clientIp || !ips.includes(action.clientIp)) {
18
+ return children;
19
+ }
20
+ });
21
+ }
22
+
23
+ exports.whitelist = whitelist;
package/types.d.ts CHANGED
@@ -1,7 +1,6 @@
1
- import type { Handler } from 'innet';
2
1
  import type { OpenAPIV3_1 as API } from 'openapi-types';
3
2
  import type { ApiErrorValue } from './constants';
4
- import { type Action } from './utils';
3
+ import { type ServerPlugin } from './hooks';
5
4
  import { type Rule, type RulesErrors } from './utils/rules';
6
5
  export type TagObject = API.TagObject;
7
6
  export type Document = API.Document;
@@ -16,60 +15,54 @@ export type ReferenceObject = API.ReferenceObject;
16
15
  export type ParameterObject = API.ParameterObject;
17
16
  export type RequestBodyObject = API.RequestBodyObject;
18
17
  export type ObjectType = ArraySchemaObjectType | NonArraySchemaObjectType;
19
- export type RefSchemaObject = SchemaObject | ReferenceObject;
18
+ export type RefSchemaObject = ReferenceObject | SchemaObject;
20
19
  export interface IValidationErrorData extends Record<string, any> {
21
20
  error: RulesErrors;
22
21
  }
23
22
  export type ValidationErrorData = IValidationErrorData | undefined;
24
23
  export interface EndpointRules {
25
- path?: Rule;
26
- search?: Rule;
24
+ body?: Rule;
27
25
  cookie?: Rule;
28
26
  header?: Rule;
29
- body?: Rule;
27
+ path?: Rule;
30
28
  response?: Rule;
29
+ search?: Rule;
31
30
  }
32
31
  export interface EndpointRulesMaps {
33
- path?: Record<string, Rule>;
34
- search?: Record<string, Rule>;
35
32
  cookie?: Record<string, Rule>;
36
33
  header?: Record<string, Rule>;
34
+ path?: Record<string, Rule>;
35
+ search?: Record<string, Rule>;
37
36
  }
38
37
  export interface Endpoint<I = unknown, O = unknown, E extends ApiErrorValue = ApiErrorValue, P extends InValidationErrorParam = InValidationErrorParam, D extends ValidationErrorData = ValidationErrorData> {
38
+ dynamic?: Endpoint<I, O, E, P, D>[];
39
39
  key: string;
40
- content?: any;
40
+ plugins: Set<ServerPlugin>;
41
41
  rules?: EndpointRules;
42
42
  rulesMaps?: EndpointRulesMaps;
43
- handler?: Handler;
44
43
  static?: Record<string, Endpoint<I, O, E, P, D>>;
45
- dynamic?: Endpoint<I, O, E, P, D>[];
46
44
  }
47
45
  export type IntegerFormats = 'int32' | 'int64';
48
- export type EndpointsMethods = 'get' | 'post' | 'put' | 'patch' | 'delete' | 'options' | 'head' | 'trace';
49
- export type InParam = 'query' | 'header' | 'path' | 'cookie';
50
- export type InValidationErrorParam = InParam | 'body';
51
- export type BodyType = 'application/x-www-form-urlencoded' | 'application/json' | 'multipart/form-data';
46
+ export type EndpointsMethods = 'delete' | 'get' | 'head' | 'options' | 'patch' | 'post' | 'put' | 'trace';
47
+ export type InParam = 'cookie' | 'header' | 'path' | 'query';
48
+ export type InValidationErrorParam = 'body' | InParam;
49
+ export type BodyType = 'application/json' | 'application/x-www-form-urlencoded' | 'multipart/form-data';
52
50
  export type Endpoints<I = unknown, O = unknown, E extends ApiErrorValue = ApiErrorValue, P extends InValidationErrorParam = InValidationErrorParam, D extends ValidationErrorData = ValidationErrorData> = Partial<Record<EndpointsMethods, Endpoint<I, O, E, P, D>>>;
53
51
  export interface SSL {
54
52
  cert: string;
55
53
  key: string;
56
54
  }
57
55
  export interface ServerStartParams {
58
- port: number;
59
56
  https: boolean;
57
+ port: number;
60
58
  }
61
59
  export interface BaseSchemaProps<T> {
62
60
  default?: T;
61
+ description?: string;
63
62
  example?: T;
64
63
  examples?: T[];
65
- description?: string;
66
64
  ref?: string;
67
65
  }
68
66
  export interface ValuesSchemaProps<T> extends BaseSchemaProps<T> {
69
67
  values?: T[];
70
68
  }
71
- export interface Fallback {
72
- children: any;
73
- handler: Handler;
74
- }
75
- export type RequestPlugin = (action: Action) => boolean | undefined;
@@ -1,4 +1,5 @@
1
1
  export interface BinOptions {
2
+ disposition: string;
2
3
  /**
3
4
  * A field name of FormData request
4
5
  */
@@ -11,37 +12,36 @@ export interface BinOptions {
11
12
  * Full path to the file on server, you MUST use it only on server side for the safe
12
13
  */
13
14
  path: string;
14
- /**
15
- * MIME-type of the file
16
- */
17
- type: string;
18
- disposition: string;
19
15
  /**
20
16
  * The file size
21
17
  */
22
18
  size: number;
23
- }
24
- export declare class Bin implements BinOptions {
25
19
  /**
26
- * A file name, without extension
20
+ * MIME-type of the file
27
21
  */
28
- filename: string;
22
+ type: string;
23
+ }
24
+ export declare class Bin implements BinOptions {
25
+ disposition: string;
29
26
  /**
30
27
  * The extension of the origin file from originalFilename
31
28
  */
32
29
  extension?: string;
33
- type: string;
34
- disposition: string;
35
30
  fieldName: string;
31
+ /**
32
+ * A file name, without extension
33
+ */
34
+ filename: string;
36
35
  originalFilename: string;
37
36
  path: string;
38
37
  size: number;
38
+ type: string;
39
39
  constructor(options: BinOptions);
40
40
  toJSON(): {
41
41
  $: string;
42
- originalFilename: string;
43
- type: string;
44
42
  disposition: string;
43
+ originalFilename: string;
45
44
  size: number;
45
+ type: string;
46
46
  };
47
47
  }
@@ -8,10 +8,10 @@ class Bin {
8
8
  toJSON() {
9
9
  return {
10
10
  $: 'binary',
11
- originalFilename: this.originalFilename,
12
- type: this.type,
13
11
  disposition: this.disposition,
12
+ originalFilename: this.originalFilename,
14
13
  size: this.size,
14
+ type: this.type,
15
15
  };
16
16
  }
17
17
  }
@@ -12,10 +12,10 @@ class Bin {
12
12
  toJSON() {
13
13
  return {
14
14
  $: 'binary',
15
- originalFilename: this.originalFilename,
16
- type: this.type,
17
15
  disposition: this.disposition,
16
+ originalFilename: this.originalFilename,
18
17
  size: this.size,
18
+ type: this.type,
19
19
  };
20
20
  }
21
21
  }
@@ -1,5 +1,4 @@
1
- /// <reference types="node" />
2
- import { type CookieSerializeOptions } from 'cookie';
1
+ import { type Cookies, type SerializeOptions } from 'cookie';
3
2
  import { type IncomingHttpHeaders, type IncomingMessage, type ServerResponse } from 'http';
4
3
  import { type ParsedQs } from 'qs';
5
4
  import { type BodyType } from '../../types';
@@ -12,21 +11,21 @@ export declare class Action {
12
11
  #private;
13
12
  readonly req: IncomingMessage;
14
13
  readonly res: ServerResponse;
14
+ body?: object;
15
15
  constructor(req: IncomingMessage, res: ServerResponse);
16
+ parseBody(): Promise<void>;
17
+ setCookie(name: string, value?: string, options?: SerializeOptions): void;
18
+ get bodyType(): BodyType | undefined;
19
+ get clientIp(): string | null;
20
+ get cookies(): Cookies;
21
+ set cookies(value: Record<string, string>);
22
+ get headers(): IncomingHttpHeaders;
23
+ set headers(value: IncomingHttpHeaders);
24
+ get originCookies(): Cookies;
25
+ get originHeaders(): IncomingHttpHeaders;
26
+ get originSearch(): ParsedQs;
16
27
  get parsedUrl(): ParsedUrl;
17
28
  get path(): string;
18
- get originSearch(): ParsedQs;
19
29
  get search(): ParsedQs;
20
30
  set search(value: ParsedQs);
21
- get originHeaders(): IncomingHttpHeaders;
22
- get headers(): IncomingHttpHeaders;
23
- set headers(value: IncomingHttpHeaders);
24
- get originCookies(): Record<string, string>;
25
- get cookies(): Record<string, string>;
26
- set cookies(value: Record<string, string>);
27
- get bodyType(): BodyType | undefined;
28
- body?: object;
29
- parseBody(): Promise<void>;
30
- setCookie(name: string, value?: string, options?: CookieSerializeOptions): void;
31
- get clientIp(): string | null;
32
31
  }