@innet/server 2.0.0-alpha.3 → 2.0.0-alpha.30

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 (304) hide show
  1. package/README.md +1375 -541
  2. package/handler/handler.d.ts +19 -13
  3. package/handler/handler.es6.js +17 -11
  4. package/handler/handler.js +17 -11
  5. package/hooks/index.d.ts +6 -0
  6. package/hooks/index.es6.js +6 -0
  7. package/hooks/index.js +6 -0
  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/index.d.ts +1 -0
  12. package/hooks/useClientIp/index.es6.js +1 -0
  13. package/hooks/useClientIp/index.js +9 -0
  14. package/hooks/useClientIp/useClientIp.d.ts +1 -0
  15. package/hooks/useClientIp/useClientIp.es6.js +9 -0
  16. package/hooks/useClientIp/useClientIp.js +13 -0
  17. package/hooks/useComponentName/useComponentName.d.ts +1 -1
  18. package/hooks/useEndpoint/useEndpoint.d.ts +1 -1
  19. package/hooks/useEndpoint/useEndpoint.es6.js +3 -1
  20. package/hooks/useEndpoint/useEndpoint.js +3 -1
  21. package/hooks/useIsServerHttps/index.d.ts +1 -0
  22. package/hooks/useIsServerHttps/index.es6.js +1 -0
  23. package/hooks/useIsServerHttps/index.js +10 -0
  24. package/hooks/useIsServerHttps/useIsServerHttps.d.ts +3 -0
  25. package/hooks/useIsServerHttps/useIsServerHttps.es6.js +14 -0
  26. package/hooks/useIsServerHttps/useIsServerHttps.js +19 -0
  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/useResponse/index.es6.js +1 -1
  39. package/hooks/useResponse/index.js +0 -1
  40. package/hooks/useResponse/useResponse.d.ts +1 -4
  41. package/hooks/useResponse/useResponse.es6.js +4 -4
  42. package/hooks/useResponse/useResponse.js +3 -4
  43. package/hooks/useSchemaType/useSchemaType.d.ts +3 -2
  44. package/hooks/useSchemaType/useSchemaType.es6.js +5 -6
  45. package/hooks/useSchemaType/useSchemaType.js +5 -6
  46. package/hooks/useServer/useServer.d.ts +2 -1
  47. package/hooks/useServer/useServer.es6.js +3 -1
  48. package/hooks/useServer/useServer.js +3 -1
  49. package/hooks/useServerPlugin/index.d.ts +1 -0
  50. package/hooks/useServerPlugin/index.es6.js +1 -0
  51. package/hooks/useServerPlugin/index.js +9 -0
  52. package/hooks/useServerPlugin/useServerPlugin.d.ts +2 -0
  53. package/hooks/useServerPlugin/useServerPlugin.es6.js +13 -0
  54. package/hooks/useServerPlugin/useServerPlugin.js +17 -0
  55. package/hooks/useServerPlugins/index.d.ts +1 -0
  56. package/hooks/useServerPlugins/index.es6.js +1 -0
  57. package/hooks/useServerPlugins/index.js +10 -0
  58. package/hooks/useServerPlugins/useServerPlugins.d.ts +4 -0
  59. package/hooks/useServerPlugins/useServerPlugins.es6.js +14 -0
  60. package/hooks/useServerPlugins/useServerPlugins.js +19 -0
  61. package/hooks/useServerPort/index.d.ts +1 -0
  62. package/hooks/useServerPort/index.es6.js +1 -0
  63. package/hooks/useServerPort/index.js +10 -0
  64. package/hooks/useServerPort/useServerPort.d.ts +3 -0
  65. package/hooks/useServerPort/useServerPort.es6.js +14 -0
  66. package/hooks/useServerPort/useServerPort.js +19 -0
  67. package/index.es6.js +17 -8
  68. package/index.js +34 -12
  69. package/package.json +2 -2
  70. package/plugins/main/api/api.d.ts +10 -8
  71. package/plugins/main/api/api.es6.js +53 -55
  72. package/plugins/main/api/api.js +53 -55
  73. package/plugins/main/contact/contact.d.ts +2 -2
  74. package/plugins/main/endpoint/endpoint.d.ts +15 -15
  75. package/plugins/main/endpoint/endpoint.es6.js +7 -4
  76. package/plugins/main/endpoint/endpoint.js +7 -4
  77. package/plugins/main/host/host.d.ts +5 -5
  78. package/plugins/main/index.d.ts +2 -2
  79. package/plugins/main/index.es6.js +2 -2
  80. package/plugins/main/index.js +2 -2
  81. package/plugins/main/license/license.d.ts +5 -5
  82. package/plugins/main/param/param.d.ts +11 -11
  83. package/plugins/main/param/param.es6.js +3 -3
  84. package/plugins/main/param/param.js +3 -3
  85. package/plugins/main/preset/index.d.ts +1 -0
  86. package/plugins/main/preset/index.es6.js +1 -0
  87. package/plugins/{utils/prod → main/preset}/index.js +2 -2
  88. package/plugins/main/preset/preset.d.ts +3 -0
  89. package/plugins/main/preset/preset.es6.js +13 -0
  90. package/plugins/{utils/dev/dev.js → main/preset/preset.js} +9 -6
  91. package/plugins/main/response/index.es6.js +1 -1
  92. package/plugins/main/response/index.js +1 -0
  93. package/plugins/main/response/response.d.ts +6 -2
  94. package/plugins/main/response/response.es6.js +18 -10
  95. package/plugins/main/response/response.js +18 -9
  96. package/plugins/main/return/index.d.ts +1 -0
  97. package/plugins/main/return/index.es6.js +1 -0
  98. package/plugins/main/return/index.js +9 -0
  99. package/plugins/main/return/return.d.ts +4 -0
  100. package/plugins/main/return/return.es6.js +10 -0
  101. package/plugins/main/return/return.js +14 -0
  102. package/plugins/main/server/server.d.ts +5 -5
  103. package/plugins/main/server/server.es6.js +36 -10
  104. package/plugins/main/server/server.js +36 -10
  105. package/plugins/main/tag/tag.d.ts +2 -2
  106. package/plugins/main/tag/tag.es6.js +5 -2
  107. package/plugins/main/tag/tag.js +5 -2
  108. package/plugins/main/variable/variable.d.ts +5 -5
  109. package/plugins/main/variable/variable.es6.js +3 -1
  110. package/plugins/main/variable/variable.js +3 -1
  111. package/plugins/request/cms/cms.es6.js +2 -2
  112. package/plugins/request/cms/cms.js +2 -2
  113. package/plugins/request/cookie/cookie.es6.js +3 -19
  114. package/plugins/request/cookie/cookie.js +3 -23
  115. package/plugins/request/error/error.d.ts +40 -40
  116. package/plugins/request/error/error.es6.js +45 -42
  117. package/plugins/request/error/error.js +45 -42
  118. package/plugins/request/file/file.es6.js +2 -3
  119. package/plugins/request/file/file.js +2 -3
  120. package/plugins/request/header/header.es6.js +1 -1
  121. package/plugins/request/header/header.js +1 -1
  122. package/plugins/request/proxy/proxy.d.ts +4 -1
  123. package/plugins/request/proxy/proxy.es6.js +5 -2
  124. package/plugins/request/proxy/proxy.js +5 -2
  125. package/plugins/request/redirect/redirect.d.ts +8 -7
  126. package/plugins/request/redirect/redirect.es6.js +7 -7
  127. package/plugins/request/redirect/redirect.js +7 -7
  128. package/plugins/request/success/success.d.ts +7 -6
  129. package/plugins/request/success/success.es6.js +21 -10
  130. package/plugins/request/success/success.js +21 -10
  131. package/plugins/schema/any/any.d.ts +5 -0
  132. package/plugins/schema/any/any.es6.js +27 -0
  133. package/plugins/schema/any/any.js +31 -0
  134. package/plugins/schema/binary/binary.d.ts +3 -3
  135. package/plugins/schema/boolean/boolean.es6.js +2 -4
  136. package/plugins/schema/boolean/boolean.js +1 -3
  137. package/plugins/schema/date/date.d.ts +1 -1
  138. package/plugins/schema/date/date.es6.js +3 -3
  139. package/plugins/schema/date/date.js +3 -3
  140. package/plugins/schema/field/field.d.ts +1 -0
  141. package/plugins/schema/field/field.es6.js +7 -6
  142. package/plugins/schema/field/field.js +6 -5
  143. package/plugins/schema/index.d.ts +1 -0
  144. package/plugins/schema/index.es6.js +1 -0
  145. package/plugins/schema/index.js +1 -0
  146. package/plugins/schema/integer/integer.d.ts +3 -3
  147. package/plugins/schema/integer/integer.es6.js +1 -1
  148. package/plugins/schema/integer/integer.js +1 -1
  149. package/plugins/schema/number/number.d.ts +2 -2
  150. package/plugins/schema/number/number.es6.js +1 -1
  151. package/plugins/schema/number/number.js +1 -1
  152. package/plugins/schema/object/object.es6.js +17 -4
  153. package/plugins/schema/object/object.js +17 -4
  154. package/plugins/schema/string/string.d.ts +2 -2
  155. package/plugins/schema/string/string.es6.js +44 -30
  156. package/plugins/schema/string/string.js +44 -30
  157. package/plugins/utils/blacklist/blacklist.d.ts +4 -0
  158. package/plugins/utils/blacklist/blacklist.es6.js +18 -0
  159. package/plugins/utils/blacklist/blacklist.js +22 -0
  160. package/plugins/utils/blacklist/index.d.ts +1 -0
  161. package/plugins/utils/blacklist/index.es6.js +1 -0
  162. package/plugins/utils/blacklist/index.js +9 -0
  163. package/plugins/utils/dts/dts.d.ts +3 -3
  164. package/plugins/utils/dts/dts.es6.js +6 -25
  165. package/plugins/utils/dts/dts.js +5 -29
  166. package/plugins/utils/env/env.d.ts +6 -0
  167. package/plugins/utils/env/env.es6.js +11 -0
  168. package/plugins/utils/{prod/prod.js → env/env.js} +4 -3
  169. package/plugins/utils/env/index.d.ts +1 -0
  170. package/plugins/utils/env/index.es6.js +1 -0
  171. package/plugins/utils/{dev → env}/index.js +2 -2
  172. package/plugins/utils/index.d.ts +4 -2
  173. package/plugins/utils/index.es6.js +4 -2
  174. package/plugins/utils/index.js +4 -2
  175. package/plugins/utils/protection/index.d.ts +1 -0
  176. package/plugins/utils/protection/index.es6.js +1 -0
  177. package/plugins/utils/protection/index.js +9 -0
  178. package/plugins/utils/protection/protection.d.ts +8 -0
  179. package/plugins/utils/protection/protection.es6.js +36 -0
  180. package/plugins/utils/protection/protection.js +40 -0
  181. package/plugins/utils/swagger/swagger.es6.js +10 -12
  182. package/plugins/utils/swagger/swagger.js +10 -12
  183. package/plugins/utils/whitelist/index.d.ts +1 -0
  184. package/plugins/utils/whitelist/index.es6.js +1 -0
  185. package/plugins/utils/whitelist/index.js +9 -0
  186. package/plugins/utils/whitelist/whitelist.d.ts +4 -0
  187. package/plugins/utils/whitelist/whitelist.es6.js +20 -0
  188. package/plugins/utils/whitelist/whitelist.js +24 -0
  189. package/types.d.ts +15 -23
  190. package/utils/FileData/Bin.d.ts +13 -13
  191. package/utils/FileData/Bin.es6.js +2 -2
  192. package/utils/FileData/Bin.js +2 -2
  193. package/utils/action/Action.d.ts +17 -14
  194. package/utils/action/Action.es6.js +102 -78
  195. package/utils/action/Action.js +102 -78
  196. package/utils/dateFormat/dateFormat.d.ts +1 -1
  197. package/utils/dateFormat/dateFormat.es6.js +1 -1
  198. package/utils/dateFormat/dateFormat.js +1 -1
  199. package/utils/generateTypes/generateTypes.d.ts +3 -0
  200. package/utils/generateTypes/generateTypes.es6.js +157 -0
  201. package/utils/generateTypes/generateTypes.js +162 -0
  202. package/utils/generateTypes/index.d.ts +1 -0
  203. package/utils/generateTypes/index.es6.js +1 -0
  204. package/utils/generateTypes/index.js +10 -0
  205. package/utils/getEndpoint/getEndpoint.es6.js +2 -2
  206. package/utils/getEndpoint/getEndpoint.js +2 -2
  207. package/utils/getOrAdd/getOrAdd.d.ts +1 -1
  208. package/utils/httpOnStart/httpOnStart.d.ts +1 -1
  209. package/utils/httpOnStart/httpOnStart.es6.js +1 -1
  210. package/utils/httpOnStart/httpOnStart.js +1 -1
  211. package/utils/index.d.ts +1 -0
  212. package/utils/index.es6.js +1 -0
  213. package/utils/index.js +1 -0
  214. package/utils/rules/binaryAccept/binaryAccept.es6.js +2 -2
  215. package/utils/rules/binaryAccept/binaryAccept.js +2 -2
  216. package/utils/rules/dateTo/dateTo.d.ts +1 -1
  217. package/utils/rules/helpers.d.ts +1 -1
  218. package/utils/rules/index.d.ts +0 -1
  219. package/utils/rules/index.es6.js +0 -1
  220. package/utils/rules/index.js +0 -1
  221. package/utils/rules/int/int.es6.js +2 -2
  222. package/utils/rules/int/int.js +2 -2
  223. package/utils/rules/max/max.d.ts +1 -1
  224. package/utils/rules/max/max.es6.js +3 -3
  225. package/utils/rules/max/max.js +3 -3
  226. package/utils/rules/maxBin/maxBin.es6.js +2 -2
  227. package/utils/rules/maxBin/maxBin.js +2 -2
  228. package/utils/rules/maxDate/maxDate.es6.js +1 -1
  229. package/utils/rules/maxDate/maxDate.js +1 -1
  230. package/utils/rules/maxLength/maxLength.es6.js +2 -2
  231. package/utils/rules/maxLength/maxLength.js +2 -2
  232. package/utils/rules/min/min.d.ts +1 -1
  233. package/utils/rules/min/min.es6.js +3 -3
  234. package/utils/rules/min/min.js +3 -3
  235. package/utils/rules/minBin/minBin.es6.js +2 -2
  236. package/utils/rules/minBin/minBin.js +2 -2
  237. package/utils/rules/minDate/minDate.es6.js +1 -1
  238. package/utils/rules/minDate/minDate.js +1 -1
  239. package/utils/rules/minLength/minLength.es6.js +2 -2
  240. package/utils/rules/minLength/minLength.js +2 -2
  241. package/utils/rules/objectOf/objectOf.d.ts +1 -1
  242. package/utils/rules/objectOf/objectOf.es6.js +15 -2
  243. package/utils/rules/objectOf/objectOf.js +15 -2
  244. package/utils/rules/pattern/pattern.d.ts +1 -1
  245. package/utils/rules/pattern/pattern.es6.js +2 -1
  246. package/utils/rules/pattern/pattern.js +2 -1
  247. package/example/app/App/App.d.ts +0 -1
  248. package/example/app/App/index.d.ts +0 -1
  249. package/example/index.d.ts +0 -1
  250. package/example/requests/index.d.ts +0 -1
  251. package/example/requests/partners/EditPartner/EditPartner.d.ts +0 -1
  252. package/example/requests/partners/EditPartner/index.d.ts +0 -1
  253. package/example/requests/partners/GetPartner/GetPartner.d.ts +0 -1
  254. package/example/requests/partners/GetPartner/index.d.ts +0 -1
  255. package/example/requests/partners/GetPartners/GetPartners.d.ts +0 -1
  256. package/example/requests/partners/GetPartners/index.d.ts +0 -1
  257. package/example/requests/partners/index.d.ts +0 -3
  258. package/example/schemas/address/AddressSchema/AddressSchema.d.ts +0 -1
  259. package/example/schemas/address/AddressSchema/index.d.ts +0 -1
  260. package/example/schemas/address/index.d.ts +0 -1
  261. package/example/schemas/app/ListSchema/ListSchema.d.ts +0 -1
  262. package/example/schemas/app/ListSchema/index.d.ts +0 -1
  263. package/example/schemas/app/index.d.ts +0 -1
  264. package/example/schemas/index.d.ts +0 -4
  265. package/example/schemas/location/LocationSchema/LocationSchema.d.ts +0 -1
  266. package/example/schemas/location/LocationSchema/index.d.ts +0 -1
  267. package/example/schemas/location/index.d.ts +0 -1
  268. package/example/schemas/partner/EditPartnerSchema/EditPartnerSchema.d.ts +0 -1
  269. package/example/schemas/partner/EditPartnerSchema/index.d.ts +0 -1
  270. package/example/schemas/partner/PartnerSchema/PartnerSchema.d.ts +0 -1
  271. package/example/schemas/partner/PartnerSchema/index.d.ts +0 -1
  272. package/example/schemas/partner/index.d.ts +0 -2
  273. package/example/tags/Partner/Partner.d.ts +0 -1
  274. package/example/tags/Partner/index.d.ts +0 -1
  275. package/example/tags/index.d.ts +0 -1
  276. package/openApi.test.d.ts +0 -1
  277. package/plugins/main/fallback/fallback.d.ts +0 -4
  278. package/plugins/main/fallback/fallback.es6.js +0 -19
  279. package/plugins/main/fallback/fallback.js +0 -23
  280. package/plugins/main/fallback/index.d.ts +0 -1
  281. package/plugins/main/fallback/index.es6.js +0 -1
  282. package/plugins/main/fallback/index.js +0 -9
  283. package/plugins/main/request/index.d.ts +0 -1
  284. package/plugins/main/request/index.es6.js +0 -1
  285. package/plugins/main/request/index.js +0 -9
  286. package/plugins/main/request/request.d.ts +0 -4
  287. package/plugins/main/request/request.es6.js +0 -21
  288. package/plugins/main/request/request.js +0 -25
  289. package/plugins/utils/dev/dev.d.ts +0 -4
  290. package/plugins/utils/dev/dev.es6.js +0 -10
  291. package/plugins/utils/dev/index.d.ts +0 -1
  292. package/plugins/utils/dev/index.es6.js +0 -1
  293. package/plugins/utils/prod/index.d.ts +0 -1
  294. package/plugins/utils/prod/index.es6.js +0 -1
  295. package/plugins/utils/prod/prod.d.ts +0 -4
  296. package/plugins/utils/prod/prod.es6.js +0 -10
  297. package/utils/decorators/once/once.test.d.ts +0 -1
  298. package/utils/parseSearch/parseSearch.test.d.ts +0 -1
  299. package/utils/rules/any/any.d.ts +0 -1
  300. package/utils/rules/any/any.es6.js +0 -5
  301. package/utils/rules/any/any.js +0 -9
  302. /package/{utils/rules → plugins/schema}/any/index.d.ts +0 -0
  303. /package/{utils/rules → plugins/schema}/any/index.es6.js +0 -0
  304. /package/{utils/rules → plugins/schema}/any/index.js +0 -0
@@ -9,27 +9,38 @@ var useResponse = require('../../../hooks/useResponse/useResponse.js');
9
9
  var JSONString = require('../../../utils/JSONString/JSONString.js');
10
10
 
11
11
  const successStatuses = {
12
- ok: 200,
13
- created: 201,
14
12
  accepted: 202,
15
- outside: 203,
13
+ alreadyReported: 208,
14
+ created: 201,
15
+ multiStatus: 207,
16
16
  noContent: 204,
17
- resetContent: 205,
17
+ ok: 200,
18
+ outside: 203,
18
19
  partialContent: 206,
19
- multiStatus: 207,
20
- alreadyReported: 208,
20
+ resetContent: 205,
21
21
  };
22
22
  const success = () => {
23
23
  const children = jsx.useChildren();
24
- const props = jsx.useProps();
24
+ const { status, type, } = jsx.useProps() || {};
25
25
  const res = useResponse.useResponse();
26
- const status = props === null || props === void 0 ? void 0 : props.status;
27
26
  if (!res) {
28
27
  throw Error('<success> MUST be in <request>');
29
28
  }
30
29
  res.statusCode = typeof status === 'string' ? successStatuses[status] : status !== null && status !== void 0 ? status : ((children) ? 200 : 204);
31
- if (children) {
32
- res.write(JSONString.JSONString(children[0]));
30
+ if (children === null || children === void 0 ? void 0 : children[0]) {
31
+ const child = children[0];
32
+ const contentType = type || (['bigint', 'boolean', 'number', 'string'].includes(typeof child)
33
+ ? 'text/plain'
34
+ : 'application/json');
35
+ const content = contentType === 'application/json' ? JSONString.JSONString(child) : String(child);
36
+ res.setHeader('Content-Type', contentType);
37
+ res.setHeader('Content-Length', content.length);
38
+ if (contentType === 'application/json') {
39
+ res.write(JSONString.JSONString(child));
40
+ }
41
+ else {
42
+ res.write(String(child));
43
+ }
33
44
  }
34
45
  res.end();
35
46
  };
@@ -0,0 +1,5 @@
1
+ import { type HandlerPlugin } from 'innet';
2
+ import { type BaseSchemaProps } from '../../../types';
3
+ export interface AnyProps extends BaseSchemaProps<any> {
4
+ }
5
+ export declare const any: HandlerPlugin;
@@ -0,0 +1,27 @@
1
+ import { useProps } from '@innet/jsx';
2
+ import '../../../hooks/index.es6.js';
3
+ import '../../../hooks/useParentRule/index.es6.js';
4
+ import '../../../utils/index.es6.js';
5
+ import { useSchemaType } from '../../../hooks/useSchemaType/useSchemaType.es6.js';
6
+ import { defaultTo } from '../../../utils/rules/defaultTo/defaultTo.es6.js';
7
+ import { useParentRule } from '../../../hooks/useParentRule/useParentRule.es6.js';
8
+ import { useRule } from '../../../hooks/useRule/useRule.es6.js';
9
+ import { pipe } from '../../../utils/rules/pipe/pipe.es6.js';
10
+
11
+ const any = () => {
12
+ const props = useProps();
13
+ useSchemaType('any', props);
14
+ const rules = [];
15
+ if ((props === null || props === void 0 ? void 0 : props.default) !== undefined) {
16
+ rules.push(defaultTo(props.default));
17
+ }
18
+ if ((props === null || props === void 0 ? void 0 : props.default) === undefined) {
19
+ const parentRule = useParentRule();
20
+ useRule(parentRule(pipe(...rules)));
21
+ }
22
+ else {
23
+ useRule(pipe(...rules));
24
+ }
25
+ };
26
+
27
+ export { any };
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsx = require('@innet/jsx');
6
+ require('../../../hooks/index.js');
7
+ require('../../../hooks/useParentRule/index.js');
8
+ require('../../../utils/index.js');
9
+ var useSchemaType = require('../../../hooks/useSchemaType/useSchemaType.js');
10
+ var defaultTo = require('../../../utils/rules/defaultTo/defaultTo.js');
11
+ var useParentRule = require('../../../hooks/useParentRule/useParentRule.js');
12
+ var useRule = require('../../../hooks/useRule/useRule.js');
13
+ var pipe = require('../../../utils/rules/pipe/pipe.js');
14
+
15
+ const any = () => {
16
+ const props = jsx.useProps();
17
+ useSchemaType.useSchemaType('any', props);
18
+ const rules = [];
19
+ if ((props === null || props === void 0 ? void 0 : props.default) !== undefined) {
20
+ rules.push(defaultTo.defaultTo(props.default));
21
+ }
22
+ if ((props === null || props === void 0 ? void 0 : props.default) === undefined) {
23
+ const parentRule = useParentRule.useParentRule();
24
+ useRule.useRule(parentRule(pipe.pipe(...rules)));
25
+ }
26
+ else {
27
+ useRule.useRule(pipe.pipe(...rules));
28
+ }
29
+ };
30
+
31
+ exports.any = any;
@@ -1,9 +1,9 @@
1
1
  import { type HandlerPlugin } from 'innet';
2
2
  export interface BinaryProps {
3
- ref?: string;
4
- description?: string;
5
3
  accept?: string;
6
- min?: number;
4
+ description?: string;
7
5
  max?: number;
6
+ min?: number;
7
+ ref?: string;
8
8
  }
9
9
  export declare const binary: HandlerPlugin;
@@ -1,10 +1,9 @@
1
- import { useProps, useContext } from '@innet/jsx';
1
+ import { useProps } from '@innet/jsx';
2
2
  import '../../../hooks/index.es6.js';
3
3
  import '../../../hooks/useParentRule/index.es6.js';
4
4
  import '../../../utils/index.es6.js';
5
5
  import { useBlock } from '../../../hooks/useBlock/useBlock.es6.js';
6
6
  import { useSchemaType } from '../../../hooks/useSchemaType/useSchemaType.es6.js';
7
- import { paramContext } from '../../../hooks/useParam/useParam.es6.js';
8
7
  import { defaultTo } from '../../../utils/rules/defaultTo/defaultTo.es6.js';
9
8
  import { useParentRule } from '../../../hooks/useParentRule/useParentRule.es6.js';
10
9
  import { useRule } from '../../../hooks/useRule/useRule.es6.js';
@@ -14,12 +13,11 @@ const boolean = () => {
14
13
  useBlock('path');
15
14
  const props = useProps();
16
15
  useSchemaType('boolean', props);
17
- const param = useContext(paramContext);
18
16
  const rules = [];
19
17
  if ((props === null || props === void 0 ? void 0 : props.default) !== undefined) {
20
18
  rules.push(defaultTo(props.default));
21
19
  }
22
- rules.push(param ? val => val === 'true' || (val === 'false' ? false : Boolean(val)) : Boolean);
20
+ rules.push(val => val === 'true' || (val === 'false' ? false : Boolean(val)));
23
21
  if ((props === null || props === void 0 ? void 0 : props.default) === undefined) {
24
22
  const parentRule = useParentRule();
25
23
  useRule(parentRule(pipe(...rules)));
@@ -8,7 +8,6 @@ require('../../../hooks/useParentRule/index.js');
8
8
  require('../../../utils/index.js');
9
9
  var useBlock = require('../../../hooks/useBlock/useBlock.js');
10
10
  var useSchemaType = require('../../../hooks/useSchemaType/useSchemaType.js');
11
- var useParam = require('../../../hooks/useParam/useParam.js');
12
11
  var defaultTo = require('../../../utils/rules/defaultTo/defaultTo.js');
13
12
  var useParentRule = require('../../../hooks/useParentRule/useParentRule.js');
14
13
  var useRule = require('../../../hooks/useRule/useRule.js');
@@ -18,12 +17,11 @@ const boolean = () => {
18
17
  useBlock.useBlock('path');
19
18
  const props = jsx.useProps();
20
19
  useSchemaType.useSchemaType('boolean', props);
21
- const param = jsx.useContext(useParam.paramContext);
22
20
  const rules = [];
23
21
  if ((props === null || props === void 0 ? void 0 : props.default) !== undefined) {
24
22
  rules.push(defaultTo.defaultTo(props.default));
25
23
  }
26
- rules.push(param ? val => val === 'true' || (val === 'false' ? false : Boolean(val)) : Boolean);
24
+ rules.push(val => val === 'true' || (val === 'false' ? false : Boolean(val)));
27
25
  if ((props === null || props === void 0 ? void 0 : props.default) === undefined) {
28
26
  const parentRule = useParentRule.useParentRule();
29
27
  useRule.useRule(parentRule(pipe.pipe(...rules)));
@@ -2,7 +2,7 @@ import { type HandlerPlugin } from 'innet';
2
2
  import { type ValuesSchemaProps } from '../../../types';
3
3
  import { type DateFormat } from '../../../utils';
4
4
  export interface DateProps extends ValuesSchemaProps<DateFormat> {
5
- min?: DateFormat;
6
5
  max?: DateFormat;
6
+ min?: DateFormat;
7
7
  }
8
8
  export declare const date: HandlerPlugin;
@@ -16,7 +16,7 @@ import { useRule } from '../../../hooks/useRule/useRule.es6.js';
16
16
  import { pipe } from '../../../utils/rules/pipe/pipe.es6.js';
17
17
 
18
18
  const date = () => {
19
- const _a = useProps() || {}, { min, max, default: defaultValue, example, examples, values: values$1 } = _a, props = __rest(_a, ["min", "max", "default", "example", "examples", "values"]);
19
+ const _a = useProps() || {}, { default: defaultValue, example, examples, max, min, values: values$1 } = _a, props = __rest(_a, ["default", "example", "examples", "max", "min", "values"]);
20
20
  const normMin = dateFormat(min);
21
21
  const normMax = dateFormat(max);
22
22
  const normDefault = dateFormat(defaultValue);
@@ -25,9 +25,9 @@ const date = () => {
25
25
  // @ts-expect-error: FIXME
26
26
  const stringValues = normValues === null || normValues === void 0 ? void 0 : normValues.map(value => value.toISOString());
27
27
  const normExamples = examples === null || examples === void 0 ? void 0 : examples.map(dateFormat);
28
- const schema = useSchemaType('string', Object.assign(Object.assign({}, props), { values: stringValues, example: normExample === null || normExample === void 0 ? void 0 : normExample.toISOString(),
28
+ const schema = useSchemaType('string', Object.assign(Object.assign({}, props), { default: defaultValue === 'now' ? undefined : normDefault === null || normDefault === void 0 ? void 0 : normDefault.toISOString(), example: normExample === null || normExample === void 0 ? void 0 : normExample.toISOString(),
29
29
  // @ts-expect-error: FIXME
30
- examples: normExamples === null || normExamples === void 0 ? void 0 : normExamples.map(example => example.toISOString()), default: defaultValue === 'now' ? undefined : normDefault === null || normDefault === void 0 ? void 0 : normDefault.toISOString() }));
30
+ examples: normExamples === null || normExamples === void 0 ? void 0 : normExamples.map(example => example.toISOString()), values: stringValues }));
31
31
  const rules = [];
32
32
  if (defaultValue !== undefined) {
33
33
  rules.push(defaultTo(defaultValue === 'now' ? () => new Date(Date.now()) : normDefault));
@@ -20,7 +20,7 @@ var useRule = require('../../../hooks/useRule/useRule.js');
20
20
  var pipe = require('../../../utils/rules/pipe/pipe.js');
21
21
 
22
22
  const date = () => {
23
- const _a = jsx.useProps() || {}, { min, max, default: defaultValue, example, examples, values: values$1 } = _a, props = tslib.__rest(_a, ["min", "max", "default", "example", "examples", "values"]);
23
+ const _a = jsx.useProps() || {}, { default: defaultValue, example, examples, max, min, values: values$1 } = _a, props = tslib.__rest(_a, ["default", "example", "examples", "max", "min", "values"]);
24
24
  const normMin = dateFormat.dateFormat(min);
25
25
  const normMax = dateFormat.dateFormat(max);
26
26
  const normDefault = dateFormat.dateFormat(defaultValue);
@@ -29,9 +29,9 @@ const date = () => {
29
29
  // @ts-expect-error: FIXME
30
30
  const stringValues = normValues === null || normValues === void 0 ? void 0 : normValues.map(value => value.toISOString());
31
31
  const normExamples = examples === null || examples === void 0 ? void 0 : examples.map(dateFormat.dateFormat);
32
- const schema = useSchemaType.useSchemaType('string', Object.assign(Object.assign({}, props), { values: stringValues, example: normExample === null || normExample === void 0 ? void 0 : normExample.toISOString(),
32
+ const schema = useSchemaType.useSchemaType('string', Object.assign(Object.assign({}, props), { default: defaultValue === 'now' ? undefined : normDefault === null || normDefault === void 0 ? void 0 : normDefault.toISOString(), example: normExample === null || normExample === void 0 ? void 0 : normExample.toISOString(),
33
33
  // @ts-expect-error: FIXME
34
- examples: normExamples === null || normExamples === void 0 ? void 0 : normExamples.map(example => example.toISOString()), default: defaultValue === 'now' ? undefined : normDefault === null || normDefault === void 0 ? void 0 : normDefault.toISOString() }));
34
+ examples: normExamples === null || normExamples === void 0 ? void 0 : normExamples.map(example => example.toISOString()), values: stringValues }));
35
35
  const rules = [];
36
36
  if (defaultValue !== undefined) {
37
37
  rules.push(defaultTo.defaultTo(defaultValue === 'now' ? () => new Date(Date.now()) : normDefault));
@@ -1,5 +1,6 @@
1
1
  import { type HandlerPlugin } from 'innet';
2
2
  export interface FieldProps {
3
+ deprecated?: boolean;
3
4
  key: string;
4
5
  optional?: boolean;
5
6
  }
@@ -2,19 +2,17 @@ import innet, { useNewHandler } from 'innet';
2
2
  import { useProps, useChildren } from '@innet/jsx';
3
3
  import '../../../hooks/index.es6.js';
4
4
  import '../../../utils/index.es6.js';
5
- import { useSchemaContext, schemaContext } from '../../../hooks/useSchemaContext/useSchemaContext.es6.js';
5
+ import { useObjectSchemaContext } from '../../../hooks/useObjectSchemaContext/useObjectSchemaContext.es6.js';
6
+ import { schemaContext } from '../../../hooks/useSchemaContext/useSchemaContext.es6.js';
6
7
  import { useObjectRule, objectRuleContext } from '../../../hooks/useObjectRule/useObjectRule.es6.js';
7
8
  import { ruleContext } from '../../../hooks/useRule/useRule.es6.js';
8
9
  import { required } from '../../../utils/rules/required/required.es6.js';
9
10
 
10
11
  const field = () => {
11
12
  const handler = useNewHandler();
12
- const { key, optional } = useProps();
13
- const schema = useSchemaContext();
13
+ const { deprecated, key, optional, } = useProps();
14
+ const schema = useObjectSchemaContext();
14
15
  const children = useChildren();
15
- if (Array.isArray(schema) || (schema === null || schema === void 0 ? void 0 : schema.type) !== 'object') {
16
- throw Error('Use <field> inside <object>');
17
- }
18
16
  if (!schema.properties) {
19
17
  schema.properties = {};
20
18
  }
@@ -23,6 +21,9 @@ const field = () => {
23
21
  }
24
22
  const fieldSchema = {};
25
23
  schemaContext.set(handler, fieldSchema);
24
+ if (deprecated) {
25
+ fieldSchema.deprecated = true;
26
+ }
26
27
  schema.properties[key] = fieldSchema;
27
28
  if (!optional) {
28
29
  if (!schema.required) {
@@ -6,6 +6,7 @@ var innet = require('innet');
6
6
  var jsx = require('@innet/jsx');
7
7
  require('../../../hooks/index.js');
8
8
  require('../../../utils/index.js');
9
+ var useObjectSchemaContext = require('../../../hooks/useObjectSchemaContext/useObjectSchemaContext.js');
9
10
  var useSchemaContext = require('../../../hooks/useSchemaContext/useSchemaContext.js');
10
11
  var useObjectRule = require('../../../hooks/useObjectRule/useObjectRule.js');
11
12
  var useRule = require('../../../hooks/useRule/useRule.js');
@@ -17,12 +18,9 @@ var innet__default = /*#__PURE__*/_interopDefaultLegacy(innet);
17
18
 
18
19
  const field = () => {
19
20
  const handler = innet.useNewHandler();
20
- const { key, optional } = jsx.useProps();
21
- const schema = useSchemaContext.useSchemaContext();
21
+ const { deprecated, key, optional, } = jsx.useProps();
22
+ const schema = useObjectSchemaContext.useObjectSchemaContext();
22
23
  const children = jsx.useChildren();
23
- if (Array.isArray(schema) || (schema === null || schema === void 0 ? void 0 : schema.type) !== 'object') {
24
- throw Error('Use <field> inside <object>');
25
- }
26
24
  if (!schema.properties) {
27
25
  schema.properties = {};
28
26
  }
@@ -31,6 +29,9 @@ const field = () => {
31
29
  }
32
30
  const fieldSchema = {};
33
31
  useSchemaContext.schemaContext.set(handler, fieldSchema);
32
+ if (deprecated) {
33
+ fieldSchema.deprecated = true;
34
+ }
34
35
  schema.properties[key] = fieldSchema;
35
36
  if (!optional) {
36
37
  if (!schema.required) {
@@ -10,3 +10,4 @@ export * from './date';
10
10
  export * from './tuple';
11
11
  export * from './uuid';
12
12
  export * from './binary';
13
+ export * from './any';
@@ -10,3 +10,4 @@ import './date/index.es6.js';
10
10
  import './tuple/index.es6.js';
11
11
  import './uuid/index.es6.js';
12
12
  import './binary/index.es6.js';
13
+ import './any/index.es6.js';
@@ -12,4 +12,5 @@ require('./date/index.js');
12
12
  require('./tuple/index.js');
13
13
  require('./uuid/index.js');
14
14
  require('./binary/index.js');
15
+ require('./any/index.js');
15
16
 
@@ -1,8 +1,8 @@
1
1
  import { type HandlerPlugin } from 'innet';
2
2
  import { type IntegerFormats, type ValuesSchemaProps } from '../../../types';
3
- export interface IntegerProps extends ValuesSchemaProps<number | bigint> {
3
+ export interface IntegerProps extends ValuesSchemaProps<bigint | number> {
4
4
  format?: IntegerFormats;
5
- min?: number | bigint;
6
- max?: number | bigint;
5
+ max?: bigint | number;
6
+ min?: bigint | number;
7
7
  }
8
8
  export declare const integer: HandlerPlugin;
@@ -13,7 +13,7 @@ import { optional } from '../../../utils/rules/optional/optional.es6.js';
13
13
  import { pipe } from '../../../utils/rules/pipe/pipe.es6.js';
14
14
 
15
15
  const integer = () => {
16
- const _a = useProps() || {}, { format = 'int32', min: min$1, max: max$1, values: values$1, example, examples, default: defaultValue } = _a, props = __rest(_a, ["format", "min", "max", "values", "example", "examples", "default"]);
16
+ const _a = useProps() || {}, { default: defaultValue, example, examples, format = 'int32', max: max$1, min: min$1, values: values$1 } = _a, props = __rest(_a, ["default", "example", "examples", "format", "max", "min", "values"]);
17
17
  const schema = useSchemaType('integer', Object.assign(Object.assign({}, props), { default: defaultValue !== undefined ? Number(defaultValue) : undefined, example: example !== undefined ? Number(example) : undefined, examples: examples === null || examples === void 0 ? void 0 : examples.map(Number), values: values$1 === null || values$1 === void 0 ? void 0 : values$1.map(Number) }));
18
18
  // @ts-expect-error: FIXME
19
19
  schema.format = format;
@@ -17,7 +17,7 @@ var optional = require('../../../utils/rules/optional/optional.js');
17
17
  var pipe = require('../../../utils/rules/pipe/pipe.js');
18
18
 
19
19
  const integer = () => {
20
- const _a = jsx.useProps() || {}, { format = 'int32', min: min$1, max: max$1, values: values$1, example, examples, default: defaultValue } = _a, props = tslib.__rest(_a, ["format", "min", "max", "values", "example", "examples", "default"]);
20
+ const _a = jsx.useProps() || {}, { default: defaultValue, example, examples, format = 'int32', max: max$1, min: min$1, values: values$1 } = _a, props = tslib.__rest(_a, ["default", "example", "examples", "format", "max", "min", "values"]);
21
21
  const schema = useSchemaType.useSchemaType('integer', Object.assign(Object.assign({}, props), { default: defaultValue !== undefined ? Number(defaultValue) : undefined, example: example !== undefined ? Number(example) : undefined, examples: examples === null || examples === void 0 ? void 0 : examples.map(Number), values: values$1 === null || values$1 === void 0 ? void 0 : values$1.map(Number) }));
22
22
  // @ts-expect-error: FIXME
23
23
  schema.format = format;
@@ -1,9 +1,9 @@
1
1
  import { type HandlerPlugin } from 'innet';
2
2
  import { type ValuesSchemaProps } from '../../../types';
3
3
  export interface NumberProps extends ValuesSchemaProps<number> {
4
- /** Validate the number value by minimum. */
5
- min?: number;
6
4
  /** Validate the number value by maximum. */
7
5
  max?: number;
6
+ /** Validate the number value by minimum. */
7
+ min?: number;
8
8
  }
9
9
  export declare const number: HandlerPlugin;
@@ -14,7 +14,7 @@ import { useRule } from '../../../hooks/useRule/useRule.es6.js';
14
14
  import { pipe } from '../../../utils/rules/pipe/pipe.es6.js';
15
15
 
16
16
  const number = () => {
17
- const _a = useProps() || {}, { min: min$1, max: max$1 } = _a, props = __rest(_a, ["min", "max"]);
17
+ const _a = useProps() || {}, { max: max$1, min: min$1 } = _a, props = __rest(_a, ["max", "min"]);
18
18
  const schema = useSchemaType('number', props);
19
19
  // @ts-expect-error: FIXME
20
20
  schema.minimum = min$1;
@@ -18,7 +18,7 @@ var useRule = require('../../../hooks/useRule/useRule.js');
18
18
  var pipe = require('../../../utils/rules/pipe/pipe.js');
19
19
 
20
20
  const number = () => {
21
- const _a = jsx.useProps() || {}, { min: min$1, max: max$1 } = _a, props = tslib.__rest(_a, ["min", "max"]);
21
+ const _a = jsx.useProps() || {}, { max: max$1, min: min$1 } = _a, props = tslib.__rest(_a, ["max", "min"]);
22
22
  const schema = useSchemaType.useSchemaType('number', props);
23
23
  // @ts-expect-error: FIXME
24
24
  schema.minimum = min$1;
@@ -1,11 +1,13 @@
1
1
  import innet, { useNewHandler } from 'innet';
2
2
  import { useChildren, useProps } from '@innet/jsx';
3
+ import { callHandler } from '@innet/utils';
3
4
  import '../../../hooks/index.es6.js';
4
5
  import '../../../hooks/useParentRule/index.es6.js';
5
6
  import '../../../utils/index.es6.js';
6
7
  import { useBlock } from '../../../hooks/useBlock/useBlock.es6.js';
7
8
  import { useApi } from '../../../hooks/useApi/useApi.es6.js';
8
9
  import { useSchemaType } from '../../../hooks/useSchemaType/useSchemaType.es6.js';
10
+ import { objectSchemaContext } from '../../../hooks/useObjectSchemaContext/useObjectSchemaContext.es6.js';
9
11
  import { schemaContext } from '../../../hooks/useSchemaContext/useSchemaContext.es6.js';
10
12
  import { parentRuleContext, useParentRule } from '../../../hooks/useParentRule/useParentRule.es6.js';
11
13
  import { defaultTo } from '../../../utils/rules/defaultTo/defaultTo.es6.js';
@@ -22,19 +24,23 @@ const object = () => {
22
24
  const schema = useSchemaType('object', props);
23
25
  const handler = useNewHandler();
24
26
  if (schema) {
25
- schemaContext.set(handler, schema);
27
+ schema.additionalProperties = {};
28
+ objectSchemaContext.set(handler, schema);
29
+ schemaContext.set(handler, schema.additionalProperties);
26
30
  parentRuleContext.reset(handler);
27
31
  const rules = [];
28
32
  const rulesMap = {};
29
33
  if ((props === null || props === void 0 ? void 0 : props.default) !== undefined) {
30
34
  rules.push(defaultTo(props.default));
31
35
  }
36
+ let childRule = v => v;
37
+ const restRule = (value, data) => childRule(value, data);
32
38
  if ((props === null || props === void 0 ? void 0 : props.default) !== undefined) {
33
- rules.push(objectOf(rulesMap));
39
+ rules.push(objectOf(rulesMap, restRule));
34
40
  }
35
41
  else {
36
42
  const parentRule = useParentRule();
37
- rules.push(parentRule(objectOf(rulesMap)));
43
+ rules.push(parentRule(objectOf(rulesMap, restRule)));
38
44
  }
39
45
  const rule = pipe(...rules);
40
46
  if (props.ref) {
@@ -42,9 +48,16 @@ const object = () => {
42
48
  }
43
49
  useRule(rule);
44
50
  objectRuleContext.set(handler, rulesMap);
45
- ruleContext.set(handler, null);
51
+ ruleContext.set(handler, rule => {
52
+ childRule = rule;
53
+ });
46
54
  parentRuleContext.reset(handler);
47
55
  innet(children, handler);
56
+ innet(() => {
57
+ if (!Object.keys(schema.additionalProperties).length) {
58
+ delete schema.additionalProperties;
59
+ }
60
+ }, callHandler);
48
61
  }
49
62
  else if (props.ref) {
50
63
  useRule(refRules[props.ref]);
@@ -4,12 +4,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var innet = require('innet');
6
6
  var jsx = require('@innet/jsx');
7
+ var utils = require('@innet/utils');
7
8
  require('../../../hooks/index.js');
8
9
  require('../../../hooks/useParentRule/index.js');
9
10
  require('../../../utils/index.js');
10
11
  var useBlock = require('../../../hooks/useBlock/useBlock.js');
11
12
  var useApi = require('../../../hooks/useApi/useApi.js');
12
13
  var useSchemaType = require('../../../hooks/useSchemaType/useSchemaType.js');
14
+ var useObjectSchemaContext = require('../../../hooks/useObjectSchemaContext/useObjectSchemaContext.js');
13
15
  var useSchemaContext = require('../../../hooks/useSchemaContext/useSchemaContext.js');
14
16
  var useParentRule = require('../../../hooks/useParentRule/useParentRule.js');
15
17
  var defaultTo = require('../../../utils/rules/defaultTo/defaultTo.js');
@@ -30,19 +32,23 @@ const object = () => {
30
32
  const schema = useSchemaType.useSchemaType('object', props);
31
33
  const handler = innet.useNewHandler();
32
34
  if (schema) {
33
- useSchemaContext.schemaContext.set(handler, schema);
35
+ schema.additionalProperties = {};
36
+ useObjectSchemaContext.objectSchemaContext.set(handler, schema);
37
+ useSchemaContext.schemaContext.set(handler, schema.additionalProperties);
34
38
  useParentRule.parentRuleContext.reset(handler);
35
39
  const rules = [];
36
40
  const rulesMap = {};
37
41
  if ((props === null || props === void 0 ? void 0 : props.default) !== undefined) {
38
42
  rules.push(defaultTo.defaultTo(props.default));
39
43
  }
44
+ let childRule = v => v;
45
+ const restRule = (value, data) => childRule(value, data);
40
46
  if ((props === null || props === void 0 ? void 0 : props.default) !== undefined) {
41
- rules.push(objectOf.objectOf(rulesMap));
47
+ rules.push(objectOf.objectOf(rulesMap, restRule));
42
48
  }
43
49
  else {
44
50
  const parentRule = useParentRule.useParentRule();
45
- rules.push(parentRule(objectOf.objectOf(rulesMap)));
51
+ rules.push(parentRule(objectOf.objectOf(rulesMap, restRule)));
46
52
  }
47
53
  const rule = pipe.pipe(...rules);
48
54
  if (props.ref) {
@@ -50,9 +56,16 @@ const object = () => {
50
56
  }
51
57
  useRule.useRule(rule);
52
58
  useObjectRule.objectRuleContext.set(handler, rulesMap);
53
- useRule.ruleContext.set(handler, null);
59
+ useRule.ruleContext.set(handler, rule => {
60
+ childRule = rule;
61
+ });
54
62
  useParentRule.parentRuleContext.reset(handler);
55
63
  innet__default["default"](children, handler);
64
+ innet__default["default"](() => {
65
+ if (!Object.keys(schema.additionalProperties).length) {
66
+ delete schema.additionalProperties;
67
+ }
68
+ }, utils.callHandler);
56
69
  }
57
70
  else if (props.ref) {
58
71
  useRule.useRule(refRules[props.ref]);
@@ -1,9 +1,9 @@
1
1
  import { type HandlerPlugin } from 'innet';
2
2
  import { type ValuesSchemaProps } from '../../../types';
3
3
  export interface StringProps extends ValuesSchemaProps<string> {
4
- min?: number;
5
4
  max?: number;
6
- pattern?: string | RegExp;
5
+ min?: number;
6
+ pattern?: RegExp | string;
7
7
  patternId?: string;
8
8
  }
9
9
  export declare const string: HandlerPlugin;
@@ -3,48 +3,62 @@ import { useProps } from '@innet/jsx';
3
3
  import '../../../hooks/index.es6.js';
4
4
  import '../../../hooks/useParentRule/index.es6.js';
5
5
  import '../../../utils/index.es6.js';
6
+ import { useApi } from '../../../hooks/useApi/useApi.es6.js';
6
7
  import { useSchemaType } from '../../../hooks/useSchemaType/useSchemaType.es6.js';
7
8
  import { defaultTo } from '../../../utils/rules/defaultTo/defaultTo.es6.js';
8
9
  import { values } from '../../../utils/rules/values/values.es6.js';
9
10
  import { minLength } from '../../../utils/rules/minLength/minLength.es6.js';
10
11
  import { maxLength } from '../../../utils/rules/maxLength/maxLength.es6.js';
11
12
  import { pattern } from '../../../utils/rules/pattern/pattern.es6.js';
12
- import { useRule } from '../../../hooks/useRule/useRule.es6.js';
13
13
  import { pipe } from '../../../utils/rules/pipe/pipe.es6.js';
14
+ import { useRule } from '../../../hooks/useRule/useRule.es6.js';
14
15
  import { useParentRule } from '../../../hooks/useParentRule/useParentRule.es6.js';
15
16
 
16
17
  const string = () => {
17
- const _a = useProps() || {}, { min, max, pattern: pattern$1, patternId } = _a, props = __rest(_a, ["min", "max", "pattern", "patternId"]);
18
+ const _a = useProps() || {}, { max, min, pattern: pattern$1, patternId } = _a, props = __rest(_a, ["max", "min", "pattern", "patternId"]);
19
+ const { refRules } = useApi();
18
20
  const schema = useSchemaType('string', props);
19
- const rules = [];
20
- if (props.default !== undefined) {
21
- rules.push(defaultTo(props.default));
22
- }
23
- rules.push(String);
24
- if (props.values) {
25
- rules.push(values(props.values));
26
- }
27
- if (min !== undefined) {
28
- // @ts-expect-error: FIXME
29
- schema.minimum = min;
30
- rules.push(minLength(min));
31
- }
32
- if (max !== undefined) {
33
- // @ts-expect-error: FIXME
34
- schema.maximum = max;
35
- rules.push(maxLength(max));
36
- }
37
- if (pattern$1 !== undefined) {
38
- // @ts-expect-error: FIXME
39
- schema.pattern = String(pattern$1);
40
- rules.push(pattern(pattern$1, patternId));
41
- }
42
- if (props.default) {
43
- useRule(pipe(...rules));
21
+ if (schema) {
22
+ const rules = [];
23
+ if (props.default !== undefined) {
24
+ rules.push(defaultTo(props.default));
25
+ }
26
+ rules.push(String);
27
+ if (props.values) {
28
+ rules.push(values(props.values));
29
+ }
30
+ if (min !== undefined) {
31
+ schema.minimum = min;
32
+ rules.push(minLength(min));
33
+ }
34
+ if (max !== undefined) {
35
+ schema.maximum = max;
36
+ rules.push(maxLength(max));
37
+ }
38
+ if (pattern$1 !== undefined) {
39
+ schema.pattern = String(pattern$1);
40
+ rules.push(pattern(pattern$1, patternId));
41
+ }
42
+ const rule = pipe(...rules);
43
+ if (props.ref) {
44
+ refRules[props.ref] = rule;
45
+ }
46
+ if (props.default) {
47
+ useRule(rule);
48
+ }
49
+ else {
50
+ const parentRule = useParentRule();
51
+ useRule(parentRule(rule));
52
+ }
44
53
  }
45
- else {
46
- const parentRule = useParentRule();
47
- useRule(parentRule(pipe(...rules)));
54
+ else if (props.ref) {
55
+ if (props.default) {
56
+ useRule(refRules[props.ref]);
57
+ }
58
+ else {
59
+ const parentRule = useParentRule();
60
+ useRule(parentRule(refRules[props.ref]));
61
+ }
48
62
  }
49
63
  };
50
64