@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,59 +1,85 @@
1
- import { __runInitializers, __classPrivateFieldGet, __classPrivateFieldSet, __awaiter, __esDecorate } from 'tslib';
2
- import cookie from 'cookie';
1
+ import { __runInitializers, __awaiter, __classPrivateFieldGet, __classPrivateFieldSet, __esDecorate } from 'tslib';
2
+ import cookieLib from 'cookie';
3
+ import { getClientIp } from 'request-ip';
3
4
  import '../decorators/index.es6.js';
4
5
  import '../parseBody/index.es6.js';
5
6
  import '../parseFormBody/index.es6.js';
6
7
  import '../parseSearch/index.es6.js';
7
8
  import { allBodyTypes } from '../../constants.es6.js';
8
- import { parseSearch } from '../parseSearch/parseSearch.es6.js';
9
9
  import { parseFormBody } from '../parseFormBody/parseFormBody.es6.js';
10
+ import { parseSearch } from '../parseSearch/parseSearch.es6.js';
10
11
  import { parseBody } from '../parseBody/parseBody.es6.js';
11
12
  import { once } from '../decorators/once/once.es6.js';
12
13
 
13
14
  const URL_PARSER = /^(?<path>[^?]+)(\?(?<search>.*))?/;
14
15
  let Action = (() => {
15
- var _a, _Action_search, _Action_headers, _Action_cookie;
16
+ var _a, _Action_cookie, _Action_headers, _Action_search;
16
17
  let _instanceExtraInitializers = [];
17
- let _get_parsedUrl_decorators;
18
- let _get_originSearch_decorators;
19
- let _get_originCookies_decorators;
20
- let _get_bodyType_decorators;
21
18
  let _parseBody_decorators;
19
+ let _get_bodyType_decorators;
20
+ let _get_clientIp_decorators;
21
+ let _get_originCookies_decorators;
22
+ let _get_originSearch_decorators;
23
+ let _get_parsedUrl_decorators;
22
24
  return _a = class Action {
23
- constructor(req) {
25
+ constructor(req, res) {
24
26
  this.req = (__runInitializers(this, _instanceExtraInitializers), req);
25
- _Action_search.set(this, void 0);
26
- _Action_headers.set(this, {});
27
+ this.res = res;
27
28
  _Action_cookie.set(this, {});
29
+ _Action_headers.set(this, {});
30
+ _Action_search.set(this, void 0);
28
31
  }
29
- get parsedUrl() {
30
- var _a;
31
- const match = (_a = this.req.url) === null || _a === void 0 ? void 0 : _a.match(URL_PARSER);
32
- if (!match)
33
- throw Error('cannot parse url');
34
- const result = match.groups;
35
- result.path = result.path
36
- .replaceAll(/\/\.\.\//g, '/')
37
- .replaceAll(/\/+/g, '/');
38
- return result;
32
+ parseBody() {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ if (!this.bodyType) {
35
+ return;
36
+ }
37
+ if (this.bodyType === 'multipart/form-data') {
38
+ this.body = yield parseFormBody(this.req);
39
+ }
40
+ if (this.bodyType === 'application/x-www-form-urlencoded') {
41
+ this.body = parseSearch(yield parseBody(this.req));
42
+ }
43
+ if (this.bodyType === 'application/json') {
44
+ this.body = JSON.parse(yield parseBody(this.req));
45
+ }
46
+ });
39
47
  }
40
- get path() {
41
- return this.parsedUrl.path;
48
+ setCookie(name, value, options) {
49
+ let cookies = this.res.getHeader('Set-Cookie');
50
+ if (typeof cookies === 'string') {
51
+ cookies = [cookies];
52
+ }
53
+ const normValue = typeof value === 'string' ? cookieLib.serialize(name, value, options) : `${name}=; max-age=0`;
54
+ if (cookies) {
55
+ cookies.push(normValue);
56
+ }
57
+ else {
58
+ cookies = normValue;
59
+ }
60
+ this.res.setHeader('Set-Cookie', cookies);
42
61
  }
43
- get originSearch() {
44
- return parseSearch(this.parsedUrl.search);
62
+ get bodyType() {
63
+ const headerType = this.req.headers['content-type'];
64
+ if (!headerType)
65
+ return;
66
+ for (const bodyType of allBodyTypes) {
67
+ if (headerType.startsWith(bodyType)) {
68
+ return bodyType;
69
+ }
70
+ }
45
71
  }
46
- get search() {
47
- if (__classPrivateFieldGet(this, _Action_search, "f"))
48
- return __classPrivateFieldGet(this, _Action_search, "f");
49
- __classPrivateFieldSet(this, _Action_search, this.originSearch, "f");
50
- return __classPrivateFieldGet(this, _Action_search, "f");
72
+ get clientIp() {
73
+ return getClientIp(this.req);
51
74
  }
52
- set search(value) {
53
- __classPrivateFieldSet(this, _Action_search, value, "f");
75
+ get cookies() {
76
+ if (__classPrivateFieldGet(this, _Action_cookie, "f"))
77
+ return __classPrivateFieldGet(this, _Action_cookie, "f");
78
+ __classPrivateFieldSet(this, _Action_cookie, this.originCookies, "f");
79
+ return __classPrivateFieldGet(this, _Action_cookie, "f");
54
80
  }
55
- get originHeaders() {
56
- return this.req.headers;
81
+ set cookies(value) {
82
+ __classPrivateFieldSet(this, _Action_cookie, value, "f");
57
83
  }
58
84
  get headers() {
59
85
  if (__classPrivateFieldGet(this, _Action_headers, "f"))
@@ -65,59 +91,57 @@ let Action = (() => {
65
91
  __classPrivateFieldSet(this, _Action_headers, value, "f");
66
92
  }
67
93
  get originCookies() {
68
- var _a;
69
- return cookie.parse((_a = this.req.headers.cookie) !== null && _a !== void 0 ? _a : '');
94
+ var _b;
95
+ return cookieLib.parse((_b = this.req.headers.cookie) !== null && _b !== void 0 ? _b : '');
70
96
  }
71
- get cookies() {
72
- if (__classPrivateFieldGet(this, _Action_cookie, "f"))
73
- return __classPrivateFieldGet(this, _Action_cookie, "f");
74
- __classPrivateFieldSet(this, _Action_cookie, this.originCookies, "f");
75
- return __classPrivateFieldGet(this, _Action_cookie, "f");
97
+ get originHeaders() {
98
+ return this.req.headers;
76
99
  }
77
- set cookies(value) {
78
- __classPrivateFieldSet(this, _Action_cookie, value, "f");
100
+ get originSearch() {
101
+ return parseSearch(this.parsedUrl.search);
79
102
  }
80
- get bodyType() {
81
- const headerType = this.req.headers['content-type'];
82
- if (!headerType)
83
- return;
84
- for (const bodyType of allBodyTypes) {
85
- if (headerType.startsWith(bodyType)) {
86
- return bodyType;
87
- }
88
- }
103
+ get parsedUrl() {
104
+ var _b;
105
+ const match = (_b = this.req.url) === null || _b === void 0 ? void 0 : _b.match(URL_PARSER);
106
+ if (!match)
107
+ throw Error('cannot parse url');
108
+ const result = match.groups;
109
+ result.path = result.path
110
+ .replaceAll(/\/\.\.\//g, '/')
111
+ .replaceAll(/\/+/g, '/');
112
+ return result;
89
113
  }
90
- parseBody() {
91
- return __awaiter(this, void 0, void 0, function* () {
92
- if (!this.bodyType) {
93
- return;
94
- }
95
- if (this.bodyType === 'multipart/form-data') {
96
- this.body = yield parseFormBody(this.req);
97
- }
98
- if (this.bodyType === 'application/x-www-form-urlencoded') {
99
- this.body = parseSearch(yield parseBody(this.req));
100
- }
101
- if (this.bodyType === 'application/json') {
102
- this.body = JSON.parse(yield parseBody(this.req));
103
- }
104
- });
114
+ get path() {
115
+ return this.parsedUrl.path;
116
+ }
117
+ get search() {
118
+ if (__classPrivateFieldGet(this, _Action_search, "f"))
119
+ return __classPrivateFieldGet(this, _Action_search, "f");
120
+ __classPrivateFieldSet(this, _Action_search, this.originSearch, "f");
121
+ return __classPrivateFieldGet(this, _Action_search, "f");
122
+ }
123
+ set search(value) {
124
+ __classPrivateFieldSet(this, _Action_search, value, "f");
105
125
  }
106
126
  },
107
- _Action_search = new WeakMap(),
108
- _Action_headers = new WeakMap(),
109
127
  _Action_cookie = new WeakMap(),
128
+ _Action_headers = new WeakMap(),
129
+ _Action_search = new WeakMap(),
110
130
  (() => {
111
- _get_parsedUrl_decorators = [once];
112
- _get_originSearch_decorators = [once];
113
- _get_originCookies_decorators = [once];
114
- _get_bodyType_decorators = [once];
131
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
115
132
  _parseBody_decorators = [once];
116
- __esDecorate(_a, null, _get_parsedUrl_decorators, { kind: "getter", name: "parsedUrl", static: false, private: false, access: { has: obj => "parsedUrl" in obj, get: obj => obj.parsedUrl } }, null, _instanceExtraInitializers);
117
- __esDecorate(_a, null, _get_originSearch_decorators, { kind: "getter", name: "originSearch", static: false, private: false, access: { has: obj => "originSearch" in obj, get: obj => obj.originSearch } }, null, _instanceExtraInitializers);
118
- __esDecorate(_a, null, _get_originCookies_decorators, { kind: "getter", name: "originCookies", static: false, private: false, access: { has: obj => "originCookies" in obj, get: obj => obj.originCookies } }, null, _instanceExtraInitializers);
119
- __esDecorate(_a, null, _get_bodyType_decorators, { kind: "getter", name: "bodyType", static: false, private: false, access: { has: obj => "bodyType" in obj, get: obj => obj.bodyType } }, null, _instanceExtraInitializers);
120
- __esDecorate(_a, null, _parseBody_decorators, { kind: "method", name: "parseBody", static: false, private: false, access: { has: obj => "parseBody" in obj, get: obj => obj.parseBody } }, null, _instanceExtraInitializers);
133
+ _get_bodyType_decorators = [once];
134
+ _get_clientIp_decorators = [once];
135
+ _get_originCookies_decorators = [once];
136
+ _get_originSearch_decorators = [once];
137
+ _get_parsedUrl_decorators = [once];
138
+ __esDecorate(_a, null, _parseBody_decorators, { kind: "method", name: "parseBody", static: false, private: false, access: { has: obj => "parseBody" in obj, get: obj => obj.parseBody }, metadata: _metadata }, null, _instanceExtraInitializers);
139
+ __esDecorate(_a, null, _get_bodyType_decorators, { kind: "getter", name: "bodyType", static: false, private: false, access: { has: obj => "bodyType" in obj, get: obj => obj.bodyType }, metadata: _metadata }, null, _instanceExtraInitializers);
140
+ __esDecorate(_a, null, _get_clientIp_decorators, { kind: "getter", name: "clientIp", static: false, private: false, access: { has: obj => "clientIp" in obj, get: obj => obj.clientIp }, metadata: _metadata }, null, _instanceExtraInitializers);
141
+ __esDecorate(_a, null, _get_originCookies_decorators, { kind: "getter", name: "originCookies", static: false, private: false, access: { has: obj => "originCookies" in obj, get: obj => obj.originCookies }, metadata: _metadata }, null, _instanceExtraInitializers);
142
+ __esDecorate(_a, null, _get_originSearch_decorators, { kind: "getter", name: "originSearch", static: false, private: false, access: { has: obj => "originSearch" in obj, get: obj => obj.originSearch }, metadata: _metadata }, null, _instanceExtraInitializers);
143
+ __esDecorate(_a, null, _get_parsedUrl_decorators, { kind: "getter", name: "parsedUrl", static: false, private: false, access: { has: obj => "parsedUrl" in obj, get: obj => obj.parsedUrl }, metadata: _metadata }, null, _instanceExtraInitializers);
144
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
121
145
  })(),
122
146
  _a;
123
147
  })();
@@ -3,65 +3,91 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib = require('tslib');
6
- var cookie = require('cookie');
6
+ var cookieLib = require('cookie');
7
+ var requestIp = require('request-ip');
7
8
  require('../decorators/index.js');
8
9
  require('../parseBody/index.js');
9
10
  require('../parseFormBody/index.js');
10
11
  require('../parseSearch/index.js');
11
12
  var constants = require('../../constants.js');
12
- var parseSearch = require('../parseSearch/parseSearch.js');
13
13
  var parseFormBody = require('../parseFormBody/parseFormBody.js');
14
+ var parseSearch = require('../parseSearch/parseSearch.js');
14
15
  var parseBody = require('../parseBody/parseBody.js');
15
16
  var once = require('../decorators/once/once.js');
16
17
 
17
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
19
 
19
- var cookie__default = /*#__PURE__*/_interopDefaultLegacy(cookie);
20
+ var cookieLib__default = /*#__PURE__*/_interopDefaultLegacy(cookieLib);
20
21
 
21
22
  const URL_PARSER = /^(?<path>[^?]+)(\?(?<search>.*))?/;
22
23
  let Action = (() => {
23
- var _a, _Action_search, _Action_headers, _Action_cookie;
24
+ var _a, _Action_cookie, _Action_headers, _Action_search;
24
25
  let _instanceExtraInitializers = [];
25
- let _get_parsedUrl_decorators;
26
- let _get_originSearch_decorators;
27
- let _get_originCookies_decorators;
28
- let _get_bodyType_decorators;
29
26
  let _parseBody_decorators;
27
+ let _get_bodyType_decorators;
28
+ let _get_clientIp_decorators;
29
+ let _get_originCookies_decorators;
30
+ let _get_originSearch_decorators;
31
+ let _get_parsedUrl_decorators;
30
32
  return _a = class Action {
31
- constructor(req) {
33
+ constructor(req, res) {
32
34
  this.req = (tslib.__runInitializers(this, _instanceExtraInitializers), req);
33
- _Action_search.set(this, void 0);
34
- _Action_headers.set(this, {});
35
+ this.res = res;
35
36
  _Action_cookie.set(this, {});
37
+ _Action_headers.set(this, {});
38
+ _Action_search.set(this, void 0);
36
39
  }
37
- get parsedUrl() {
38
- var _a;
39
- const match = (_a = this.req.url) === null || _a === void 0 ? void 0 : _a.match(URL_PARSER);
40
- if (!match)
41
- throw Error('cannot parse url');
42
- const result = match.groups;
43
- result.path = result.path
44
- .replaceAll(/\/\.\.\//g, '/')
45
- .replaceAll(/\/+/g, '/');
46
- return result;
40
+ parseBody() {
41
+ return tslib.__awaiter(this, void 0, void 0, function* () {
42
+ if (!this.bodyType) {
43
+ return;
44
+ }
45
+ if (this.bodyType === 'multipart/form-data') {
46
+ this.body = yield parseFormBody.parseFormBody(this.req);
47
+ }
48
+ if (this.bodyType === 'application/x-www-form-urlencoded') {
49
+ this.body = parseSearch.parseSearch(yield parseBody.parseBody(this.req));
50
+ }
51
+ if (this.bodyType === 'application/json') {
52
+ this.body = JSON.parse(yield parseBody.parseBody(this.req));
53
+ }
54
+ });
47
55
  }
48
- get path() {
49
- return this.parsedUrl.path;
56
+ setCookie(name, value, options) {
57
+ let cookies = this.res.getHeader('Set-Cookie');
58
+ if (typeof cookies === 'string') {
59
+ cookies = [cookies];
60
+ }
61
+ const normValue = typeof value === 'string' ? cookieLib__default["default"].serialize(name, value, options) : `${name}=; max-age=0`;
62
+ if (cookies) {
63
+ cookies.push(normValue);
64
+ }
65
+ else {
66
+ cookies = normValue;
67
+ }
68
+ this.res.setHeader('Set-Cookie', cookies);
50
69
  }
51
- get originSearch() {
52
- return parseSearch.parseSearch(this.parsedUrl.search);
70
+ get bodyType() {
71
+ const headerType = this.req.headers['content-type'];
72
+ if (!headerType)
73
+ return;
74
+ for (const bodyType of constants.allBodyTypes) {
75
+ if (headerType.startsWith(bodyType)) {
76
+ return bodyType;
77
+ }
78
+ }
53
79
  }
54
- get search() {
55
- if (tslib.__classPrivateFieldGet(this, _Action_search, "f"))
56
- return tslib.__classPrivateFieldGet(this, _Action_search, "f");
57
- tslib.__classPrivateFieldSet(this, _Action_search, this.originSearch, "f");
58
- return tslib.__classPrivateFieldGet(this, _Action_search, "f");
80
+ get clientIp() {
81
+ return requestIp.getClientIp(this.req);
59
82
  }
60
- set search(value) {
61
- tslib.__classPrivateFieldSet(this, _Action_search, value, "f");
83
+ get cookies() {
84
+ if (tslib.__classPrivateFieldGet(this, _Action_cookie, "f"))
85
+ return tslib.__classPrivateFieldGet(this, _Action_cookie, "f");
86
+ tslib.__classPrivateFieldSet(this, _Action_cookie, this.originCookies, "f");
87
+ return tslib.__classPrivateFieldGet(this, _Action_cookie, "f");
62
88
  }
63
- get originHeaders() {
64
- return this.req.headers;
89
+ set cookies(value) {
90
+ tslib.__classPrivateFieldSet(this, _Action_cookie, value, "f");
65
91
  }
66
92
  get headers() {
67
93
  if (tslib.__classPrivateFieldGet(this, _Action_headers, "f"))
@@ -73,59 +99,57 @@ let Action = (() => {
73
99
  tslib.__classPrivateFieldSet(this, _Action_headers, value, "f");
74
100
  }
75
101
  get originCookies() {
76
- var _a;
77
- return cookie__default["default"].parse((_a = this.req.headers.cookie) !== null && _a !== void 0 ? _a : '');
102
+ var _b;
103
+ return cookieLib__default["default"].parse((_b = this.req.headers.cookie) !== null && _b !== void 0 ? _b : '');
78
104
  }
79
- get cookies() {
80
- if (tslib.__classPrivateFieldGet(this, _Action_cookie, "f"))
81
- return tslib.__classPrivateFieldGet(this, _Action_cookie, "f");
82
- tslib.__classPrivateFieldSet(this, _Action_cookie, this.originCookies, "f");
83
- return tslib.__classPrivateFieldGet(this, _Action_cookie, "f");
105
+ get originHeaders() {
106
+ return this.req.headers;
84
107
  }
85
- set cookies(value) {
86
- tslib.__classPrivateFieldSet(this, _Action_cookie, value, "f");
108
+ get originSearch() {
109
+ return parseSearch.parseSearch(this.parsedUrl.search);
87
110
  }
88
- get bodyType() {
89
- const headerType = this.req.headers['content-type'];
90
- if (!headerType)
91
- return;
92
- for (const bodyType of constants.allBodyTypes) {
93
- if (headerType.startsWith(bodyType)) {
94
- return bodyType;
95
- }
96
- }
111
+ get parsedUrl() {
112
+ var _b;
113
+ const match = (_b = this.req.url) === null || _b === void 0 ? void 0 : _b.match(URL_PARSER);
114
+ if (!match)
115
+ throw Error('cannot parse url');
116
+ const result = match.groups;
117
+ result.path = result.path
118
+ .replaceAll(/\/\.\.\//g, '/')
119
+ .replaceAll(/\/+/g, '/');
120
+ return result;
97
121
  }
98
- parseBody() {
99
- return tslib.__awaiter(this, void 0, void 0, function* () {
100
- if (!this.bodyType) {
101
- return;
102
- }
103
- if (this.bodyType === 'multipart/form-data') {
104
- this.body = yield parseFormBody.parseFormBody(this.req);
105
- }
106
- if (this.bodyType === 'application/x-www-form-urlencoded') {
107
- this.body = parseSearch.parseSearch(yield parseBody.parseBody(this.req));
108
- }
109
- if (this.bodyType === 'application/json') {
110
- this.body = JSON.parse(yield parseBody.parseBody(this.req));
111
- }
112
- });
122
+ get path() {
123
+ return this.parsedUrl.path;
124
+ }
125
+ get search() {
126
+ if (tslib.__classPrivateFieldGet(this, _Action_search, "f"))
127
+ return tslib.__classPrivateFieldGet(this, _Action_search, "f");
128
+ tslib.__classPrivateFieldSet(this, _Action_search, this.originSearch, "f");
129
+ return tslib.__classPrivateFieldGet(this, _Action_search, "f");
130
+ }
131
+ set search(value) {
132
+ tslib.__classPrivateFieldSet(this, _Action_search, value, "f");
113
133
  }
114
134
  },
115
- _Action_search = new WeakMap(),
116
- _Action_headers = new WeakMap(),
117
135
  _Action_cookie = new WeakMap(),
136
+ _Action_headers = new WeakMap(),
137
+ _Action_search = new WeakMap(),
118
138
  (() => {
119
- _get_parsedUrl_decorators = [once.once];
120
- _get_originSearch_decorators = [once.once];
121
- _get_originCookies_decorators = [once.once];
122
- _get_bodyType_decorators = [once.once];
139
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
123
140
  _parseBody_decorators = [once.once];
124
- tslib.__esDecorate(_a, null, _get_parsedUrl_decorators, { kind: "getter", name: "parsedUrl", static: false, private: false, access: { has: obj => "parsedUrl" in obj, get: obj => obj.parsedUrl } }, null, _instanceExtraInitializers);
125
- tslib.__esDecorate(_a, null, _get_originSearch_decorators, { kind: "getter", name: "originSearch", static: false, private: false, access: { has: obj => "originSearch" in obj, get: obj => obj.originSearch } }, null, _instanceExtraInitializers);
126
- tslib.__esDecorate(_a, null, _get_originCookies_decorators, { kind: "getter", name: "originCookies", static: false, private: false, access: { has: obj => "originCookies" in obj, get: obj => obj.originCookies } }, null, _instanceExtraInitializers);
127
- tslib.__esDecorate(_a, null, _get_bodyType_decorators, { kind: "getter", name: "bodyType", static: false, private: false, access: { has: obj => "bodyType" in obj, get: obj => obj.bodyType } }, null, _instanceExtraInitializers);
128
- tslib.__esDecorate(_a, null, _parseBody_decorators, { kind: "method", name: "parseBody", static: false, private: false, access: { has: obj => "parseBody" in obj, get: obj => obj.parseBody } }, null, _instanceExtraInitializers);
141
+ _get_bodyType_decorators = [once.once];
142
+ _get_clientIp_decorators = [once.once];
143
+ _get_originCookies_decorators = [once.once];
144
+ _get_originSearch_decorators = [once.once];
145
+ _get_parsedUrl_decorators = [once.once];
146
+ tslib.__esDecorate(_a, null, _parseBody_decorators, { kind: "method", name: "parseBody", static: false, private: false, access: { has: obj => "parseBody" in obj, get: obj => obj.parseBody }, metadata: _metadata }, null, _instanceExtraInitializers);
147
+ tslib.__esDecorate(_a, null, _get_bodyType_decorators, { kind: "getter", name: "bodyType", static: false, private: false, access: { has: obj => "bodyType" in obj, get: obj => obj.bodyType }, metadata: _metadata }, null, _instanceExtraInitializers);
148
+ tslib.__esDecorate(_a, null, _get_clientIp_decorators, { kind: "getter", name: "clientIp", static: false, private: false, access: { has: obj => "clientIp" in obj, get: obj => obj.clientIp }, metadata: _metadata }, null, _instanceExtraInitializers);
149
+ tslib.__esDecorate(_a, null, _get_originCookies_decorators, { kind: "getter", name: "originCookies", static: false, private: false, access: { has: obj => "originCookies" in obj, get: obj => obj.originCookies }, metadata: _metadata }, null, _instanceExtraInitializers);
150
+ tslib.__esDecorate(_a, null, _get_originSearch_decorators, { kind: "getter", name: "originSearch", static: false, private: false, access: { has: obj => "originSearch" in obj, get: obj => obj.originSearch }, metadata: _metadata }, null, _instanceExtraInitializers);
151
+ tslib.__esDecorate(_a, null, _get_parsedUrl_decorators, { kind: "getter", name: "parsedUrl", static: false, private: false, access: { has: obj => "parsedUrl" in obj, get: obj => obj.parsedUrl }, metadata: _metadata }, null, _instanceExtraInitializers);
152
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
129
153
  })(),
130
154
  _a;
131
155
  })();
@@ -1,2 +1,2 @@
1
- export type DateFormat = 'now' | string | number | Date;
1
+ export type DateFormat = 'now' | Date | number | string;
2
2
  export declare function dateFormat(date?: DateFormat): Date | undefined;
@@ -3,7 +3,7 @@ function dateFormat(date) {
3
3
  return;
4
4
  if (date === 'now')
5
5
  return new Date();
6
- if (['string', 'number'].includes(typeof date))
6
+ if (['number', 'string'].includes(typeof date))
7
7
  return new Date(date);
8
8
  return date;
9
9
  }
@@ -7,7 +7,7 @@ function dateFormat(date) {
7
7
  return;
8
8
  if (date === 'now')
9
9
  return new Date();
10
- if (['string', 'number'].includes(typeof date))
10
+ if (['number', 'string'].includes(typeof date))
11
11
  return new Date(date);
12
12
  return date;
13
13
  }
@@ -17,7 +17,7 @@ function once(target, context) {
17
17
  : function once() {
18
18
  // @ts-expect-error: FIXME
19
19
  const map = getCacheObject(this);
20
- if (map[context.name]) {
20
+ if (context.name in map) {
21
21
  return map[context.name];
22
22
  }
23
23
  // @ts-expect-error: FIXME
@@ -21,7 +21,7 @@ function once(target, context) {
21
21
  : function once() {
22
22
  // @ts-expect-error: FIXME
23
23
  const map = getCacheObject(this);
24
- if (map[context.name]) {
24
+ if (context.name in map) {
25
25
  return map[context.name];
26
26
  }
27
27
  // @ts-expect-error: FIXME
@@ -1,3 +1,3 @@
1
1
  import { type Document, type SchemaObject } from '../../types';
2
- export declare function generateSchemaTypes(schema: SchemaObject, spaces?: number): string;
3
- export declare function generateTypes(docs: Document): string;
2
+ export declare function generateSchemaTypes(schema: SchemaObject, spaces?: number, lastChar?: string): string;
3
+ export declare function generateTypes(docs: Document, namespace?: string): string;