@craft-ts/core 0.7.0-beta.13

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 (682) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +58 -0
  3. package/src/index.d.ts +148 -0
  4. package/src/index.d.ts.map +1 -0
  5. package/src/index.js +150 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/after-recomputation.d.ts +327 -0
  8. package/src/lib/after-recomputation.d.ts.map +1 -0
  9. package/src/lib/after-recomputation.js +25 -0
  10. package/src/lib/after-recomputation.js.map +1 -0
  11. package/src/lib/app-checked-di.d.ts +82 -0
  12. package/src/lib/app-checked-di.d.ts.map +1 -0
  13. package/src/lib/app-checked-di.js +1 -0
  14. package/src/lib/app-checked-di.js.map +1 -0
  15. package/src/lib/async-process.d.ts +411 -0
  16. package/src/lib/async-process.d.ts.map +1 -0
  17. package/src/lib/async-process.js +702 -0
  18. package/src/lib/async-process.js.map +1 -0
  19. package/src/lib/branded-component/branded-component.d.ts +129 -0
  20. package/src/lib/branded-component/branded-component.d.ts.map +1 -0
  21. package/src/lib/branded-component/branded-component.js +7 -0
  22. package/src/lib/branded-component/branded-component.js.map +1 -0
  23. package/src/lib/browser-boundaries.d.ts +165 -0
  24. package/src/lib/browser-boundaries.d.ts.map +1 -0
  25. package/src/lib/browser-boundaries.js +550 -0
  26. package/src/lib/browser-boundaries.js.map +1 -0
  27. package/src/lib/client-di-requirement.d.ts +28 -0
  28. package/src/lib/client-di-requirement.d.ts.map +1 -0
  29. package/src/lib/client-di-requirement.js +11 -0
  30. package/src/lib/client-di-requirement.js.map +1 -0
  31. package/src/lib/client-function-middleware.d.ts +130 -0
  32. package/src/lib/client-function-middleware.d.ts.map +1 -0
  33. package/src/lib/client-function-middleware.js +144 -0
  34. package/src/lib/client-function-middleware.js.map +1 -0
  35. package/src/lib/component-monitoring.d.ts +7 -0
  36. package/src/lib/component-monitoring.d.ts.map +1 -0
  37. package/src/lib/component-monitoring.js +28 -0
  38. package/src/lib/component-monitoring.js.map +1 -0
  39. package/src/lib/component-register.d.ts +12 -0
  40. package/src/lib/component-register.d.ts.map +1 -0
  41. package/src/lib/component-register.js +13 -0
  42. package/src/lib/component-register.js.map +1 -0
  43. package/src/lib/computed-source.d.ts +303 -0
  44. package/src/lib/computed-source.d.ts.map +1 -0
  45. package/src/lib/computed-source.js +319 -0
  46. package/src/lib/computed-source.js.map +1 -0
  47. package/src/lib/correlation-id-plugin.d.ts +3 -0
  48. package/src/lib/correlation-id-plugin.d.ts.map +1 -0
  49. package/src/lib/correlation-id-plugin.js +73 -0
  50. package/src/lib/correlation-id-plugin.js.map +1 -0
  51. package/src/lib/correlation-id.d.ts +30 -0
  52. package/src/lib/correlation-id.d.ts.map +1 -0
  53. package/src/lib/correlation-id.js +86 -0
  54. package/src/lib/correlation-id.js.map +1 -0
  55. package/src/lib/craft-a11y.d.ts +22 -0
  56. package/src/lib/craft-a11y.d.ts.map +1 -0
  57. package/src/lib/craft-a11y.js +32 -0
  58. package/src/lib/craft-a11y.js.map +1 -0
  59. package/src/lib/craft-activated-route.d.ts +21 -0
  60. package/src/lib/craft-activated-route.d.ts.map +1 -0
  61. package/src/lib/craft-activated-route.js +20 -0
  62. package/src/lib/craft-activated-route.js.map +1 -0
  63. package/src/lib/craft-app-config.d.ts +91 -0
  64. package/src/lib/craft-app-config.d.ts.map +1 -0
  65. package/src/lib/craft-app-config.js +64 -0
  66. package/src/lib/craft-app-config.js.map +1 -0
  67. package/src/lib/craft-codec.d.ts +16 -0
  68. package/src/lib/craft-codec.d.ts.map +1 -0
  69. package/src/lib/craft-codec.js +1 -0
  70. package/src/lib/craft-codec.js.map +1 -0
  71. package/src/lib/craft-computed.d.ts +31 -0
  72. package/src/lib/craft-computed.d.ts.map +1 -0
  73. package/src/lib/craft-computed.js +81 -0
  74. package/src/lib/craft-computed.js.map +1 -0
  75. package/src/lib/craft-control-flow.d.ts +14 -0
  76. package/src/lib/craft-control-flow.d.ts.map +1 -0
  77. package/src/lib/craft-control-flow.js +18 -0
  78. package/src/lib/craft-control-flow.js.map +1 -0
  79. package/src/lib/craft-effect.d.ts +13 -0
  80. package/src/lib/craft-effect.d.ts.map +1 -0
  81. package/src/lib/craft-effect.js +93 -0
  82. package/src/lib/craft-effect.js.map +1 -0
  83. package/src/lib/craft-exception.d.ts +40 -0
  84. package/src/lib/craft-exception.d.ts.map +1 -0
  85. package/src/lib/craft-exception.js +16 -0
  86. package/src/lib/craft-exception.js.map +1 -0
  87. package/src/lib/craft-gen.d.ts +123 -0
  88. package/src/lib/craft-gen.d.ts.map +1 -0
  89. package/src/lib/craft-gen.js +90 -0
  90. package/src/lib/craft-gen.js.map +1 -0
  91. package/src/lib/craft-generator-runtime.d.ts +110 -0
  92. package/src/lib/craft-generator-runtime.d.ts.map +1 -0
  93. package/src/lib/craft-generator-runtime.js +191 -0
  94. package/src/lib/craft-generator-runtime.js.map +1 -0
  95. package/src/lib/craft-guard-runtime.d.ts +70 -0
  96. package/src/lib/craft-guard-runtime.d.ts.map +1 -0
  97. package/src/lib/craft-guard-runtime.js +195 -0
  98. package/src/lib/craft-guard-runtime.js.map +1 -0
  99. package/src/lib/craft-handshake.d.ts +35 -0
  100. package/src/lib/craft-handshake.d.ts.map +1 -0
  101. package/src/lib/craft-handshake.js +34 -0
  102. package/src/lib/craft-handshake.js.map +1 -0
  103. package/src/lib/craft-http-client.d.ts +236 -0
  104. package/src/lib/craft-http-client.d.ts.map +1 -0
  105. package/src/lib/craft-http-client.js +437 -0
  106. package/src/lib/craft-http-client.js.map +1 -0
  107. package/src/lib/craft-http-trace.d.ts +12 -0
  108. package/src/lib/craft-http-trace.d.ts.map +1 -0
  109. package/src/lib/craft-http-trace.js +28 -0
  110. package/src/lib/craft-http-trace.js.map +1 -0
  111. package/src/lib/craft-lazy.d.ts +42 -0
  112. package/src/lib/craft-lazy.d.ts.map +1 -0
  113. package/src/lib/craft-lazy.js +83 -0
  114. package/src/lib/craft-lazy.js.map +1 -0
  115. package/src/lib/craft-load-retry.d.ts +76 -0
  116. package/src/lib/craft-load-retry.d.ts.map +1 -0
  117. package/src/lib/craft-load-retry.js +160 -0
  118. package/src/lib/craft-load-retry.js.map +1 -0
  119. package/src/lib/craft-machine-history.d.ts +145 -0
  120. package/src/lib/craft-machine-history.d.ts.map +1 -0
  121. package/src/lib/craft-machine-history.js +276 -0
  122. package/src/lib/craft-machine-history.js.map +1 -0
  123. package/src/lib/craft-match.d.ts +49 -0
  124. package/src/lib/craft-match.d.ts.map +1 -0
  125. package/src/lib/craft-match.js +58 -0
  126. package/src/lib/craft-match.js.map +1 -0
  127. package/src/lib/craft-method.d.ts +28 -0
  128. package/src/lib/craft-method.d.ts.map +1 -0
  129. package/src/lib/craft-method.js +45 -0
  130. package/src/lib/craft-method.js.map +1 -0
  131. package/src/lib/craft-node-directive.d.ts +32 -0
  132. package/src/lib/craft-node-directive.d.ts.map +1 -0
  133. package/src/lib/craft-node-directive.js +22 -0
  134. package/src/lib/craft-node-directive.js.map +1 -0
  135. package/src/lib/craft-pending.d.ts +115 -0
  136. package/src/lib/craft-pending.d.ts.map +1 -0
  137. package/src/lib/craft-pending.js +187 -0
  138. package/src/lib/craft-pending.js.map +1 -0
  139. package/src/lib/craft-pipe.d.ts +63 -0
  140. package/src/lib/craft-pipe.d.ts.map +1 -0
  141. package/src/lib/craft-pipe.js +57 -0
  142. package/src/lib/craft-pipe.js.map +1 -0
  143. package/src/lib/craft-platform.d.ts +50 -0
  144. package/src/lib/craft-platform.d.ts.map +1 -0
  145. package/src/lib/craft-platform.js +175 -0
  146. package/src/lib/craft-platform.js.map +1 -0
  147. package/src/lib/craft-primitive-gen.d.ts +137 -0
  148. package/src/lib/craft-primitive-gen.d.ts.map +1 -0
  149. package/src/lib/craft-primitive-gen.js +76 -0
  150. package/src/lib/craft-primitive-gen.js.map +1 -0
  151. package/src/lib/craft-primitive-registry.d.ts +113 -0
  152. package/src/lib/craft-primitive-registry.d.ts.map +1 -0
  153. package/src/lib/craft-primitive-registry.js +159 -0
  154. package/src/lib/craft-primitive-registry.js.map +1 -0
  155. package/src/lib/craft-program-operators.d.ts +101 -0
  156. package/src/lib/craft-program-operators.d.ts.map +1 -0
  157. package/src/lib/craft-program-operators.js +116 -0
  158. package/src/lib/craft-program-operators.js.map +1 -0
  159. package/src/lib/craft-program-runtime.d.ts +80 -0
  160. package/src/lib/craft-program-runtime.d.ts.map +1 -0
  161. package/src/lib/craft-program-runtime.js +166 -0
  162. package/src/lib/craft-program-runtime.js.map +1 -0
  163. package/src/lib/craft-register-for-runtime.d.ts +39 -0
  164. package/src/lib/craft-register-for-runtime.d.ts.map +1 -0
  165. package/src/lib/craft-register-for-runtime.js +96 -0
  166. package/src/lib/craft-register-for-runtime.js.map +1 -0
  167. package/src/lib/craft-register-for.d.ts +57 -0
  168. package/src/lib/craft-register-for.d.ts.map +1 -0
  169. package/src/lib/craft-register-for.js +200 -0
  170. package/src/lib/craft-register-for.js.map +1 -0
  171. package/src/lib/craft-render-identity.d.ts +19 -0
  172. package/src/lib/craft-render-identity.d.ts.map +1 -0
  173. package/src/lib/craft-render-identity.js +23 -0
  174. package/src/lib/craft-render-identity.js.map +1 -0
  175. package/src/lib/craft-replay.d.ts +5 -0
  176. package/src/lib/craft-replay.d.ts.map +1 -0
  177. package/src/lib/craft-replay.js +28 -0
  178. package/src/lib/craft-replay.js.map +1 -0
  179. package/src/lib/craft-resolve.d.ts +39 -0
  180. package/src/lib/craft-resolve.d.ts.map +1 -0
  181. package/src/lib/craft-resolve.js +9 -0
  182. package/src/lib/craft-resolve.js.map +1 -0
  183. package/src/lib/craft-resource.d.ts +11 -0
  184. package/src/lib/craft-resource.d.ts.map +1 -0
  185. package/src/lib/craft-resource.js +264 -0
  186. package/src/lib/craft-resource.js.map +1 -0
  187. package/src/lib/craft-route-exceptions.d.ts +785 -0
  188. package/src/lib/craft-route-exceptions.d.ts.map +1 -0
  189. package/src/lib/craft-route-exceptions.js +86 -0
  190. package/src/lib/craft-route-exceptions.js.map +1 -0
  191. package/src/lib/craft-route-load-error.d.ts +1145 -0
  192. package/src/lib/craft-route-load-error.d.ts.map +1 -0
  193. package/src/lib/craft-route-load-error.js +173 -0
  194. package/src/lib/craft-route-load-error.js.map +1 -0
  195. package/src/lib/craft-route-meta.d.ts +52 -0
  196. package/src/lib/craft-route-meta.d.ts.map +1 -0
  197. package/src/lib/craft-route-meta.js +16 -0
  198. package/src/lib/craft-route-meta.js.map +1 -0
  199. package/src/lib/craft-route-target.d.ts +27 -0
  200. package/src/lib/craft-route-target.d.ts.map +1 -0
  201. package/src/lib/craft-route-target.js +22 -0
  202. package/src/lib/craft-route-target.js.map +1 -0
  203. package/src/lib/craft-router-outlet.d.ts +105 -0
  204. package/src/lib/craft-router-outlet.d.ts.map +1 -0
  205. package/src/lib/craft-router-outlet.js +735 -0
  206. package/src/lib/craft-router-outlet.js.map +1 -0
  207. package/src/lib/craft-router-tokens.d.ts +49 -0
  208. package/src/lib/craft-router-tokens.d.ts.map +1 -0
  209. package/src/lib/craft-router-tokens.js +15 -0
  210. package/src/lib/craft-router-tokens.js.map +1 -0
  211. package/src/lib/craft-router-trace.d.ts +18 -0
  212. package/src/lib/craft-router-trace.d.ts.map +1 -0
  213. package/src/lib/craft-router-trace.js +54 -0
  214. package/src/lib/craft-router-trace.js.map +1 -0
  215. package/src/lib/craft-router.d.ts +248 -0
  216. package/src/lib/craft-router.d.ts.map +1 -0
  217. package/src/lib/craft-router.js +559 -0
  218. package/src/lib/craft-router.js.map +1 -0
  219. package/src/lib/craft-routes.d.ts +755 -0
  220. package/src/lib/craft-routes.d.ts.map +1 -0
  221. package/src/lib/craft-routes.js +510 -0
  222. package/src/lib/craft-routes.js.map +1 -0
  223. package/src/lib/craft-service.d.ts +1034 -0
  224. package/src/lib/craft-service.d.ts.map +1 -0
  225. package/src/lib/craft-service.js +1072 -0
  226. package/src/lib/craft-service.js.map +1 -0
  227. package/src/lib/craft-service.shared.d.ts +35 -0
  228. package/src/lib/craft-service.shared.d.ts.map +1 -0
  229. package/src/lib/craft-service.shared.js +4 -0
  230. package/src/lib/craft-service.shared.js.map +1 -0
  231. package/src/lib/craft-settled.d.ts +171 -0
  232. package/src/lib/craft-settled.d.ts.map +1 -0
  233. package/src/lib/craft-settled.js +130 -0
  234. package/src/lib/craft-settled.js.map +1 -0
  235. package/src/lib/craft-ssr.d.ts +29 -0
  236. package/src/lib/craft-ssr.d.ts.map +1 -0
  237. package/src/lib/craft-ssr.js +27 -0
  238. package/src/lib/craft-ssr.js.map +1 -0
  239. package/src/lib/craft-state-machine-runtime.d.ts +88 -0
  240. package/src/lib/craft-state-machine-runtime.d.ts.map +1 -0
  241. package/src/lib/craft-state-machine-runtime.js +167 -0
  242. package/src/lib/craft-state-machine-runtime.js.map +1 -0
  243. package/src/lib/craft-state-machine.d.ts +233 -0
  244. package/src/lib/craft-state-machine.d.ts.map +1 -0
  245. package/src/lib/craft-state-machine.js +254 -0
  246. package/src/lib/craft-state-machine.js.map +1 -0
  247. package/src/lib/craft-target-runtime.d.ts +20 -0
  248. package/src/lib/craft-target-runtime.d.ts.map +1 -0
  249. package/src/lib/craft-target-runtime.js +42 -0
  250. package/src/lib/craft-target-runtime.js.map +1 -0
  251. package/src/lib/craft-transfer-snapshot.d.ts +19 -0
  252. package/src/lib/craft-transfer-snapshot.d.ts.map +1 -0
  253. package/src/lib/craft-transfer-snapshot.js +90 -0
  254. package/src/lib/craft-transfer-snapshot.js.map +1 -0
  255. package/src/lib/craft-unique.d.ts +7 -0
  256. package/src/lib/craft-unique.d.ts.map +1 -0
  257. package/src/lib/craft-unique.js +16 -0
  258. package/src/lib/craft-unique.js.map +1 -0
  259. package/src/lib/craft-until-settled.d.ts +99 -0
  260. package/src/lib/craft-until-settled.d.ts.map +1 -0
  261. package/src/lib/craft-until-settled.js +81 -0
  262. package/src/lib/craft-until-settled.js.map +1 -0
  263. package/src/lib/craft-use.d.ts +26 -0
  264. package/src/lib/craft-use.d.ts.map +1 -0
  265. package/src/lib/craft-use.js +37 -0
  266. package/src/lib/craft-use.js.map +1 -0
  267. package/src/lib/craft-view-transition.d.ts +102 -0
  268. package/src/lib/craft-view-transition.d.ts.map +1 -0
  269. package/src/lib/craft-view-transition.js +130 -0
  270. package/src/lib/craft-view-transition.js.map +1 -0
  271. package/src/lib/dom-event-hook.d.ts +30 -0
  272. package/src/lib/dom-event-hook.d.ts.map +1 -0
  273. package/src/lib/dom-event-hook.js +16 -0
  274. package/src/lib/dom-event-hook.js.map +1 -0
  275. package/src/lib/fn-wrapper.d.ts +13 -0
  276. package/src/lib/fn-wrapper.d.ts.map +1 -0
  277. package/src/lib/fn-wrapper.js +66 -0
  278. package/src/lib/fn-wrapper.js.map +1 -0
  279. package/src/lib/form/craft-field.d.ts +155 -0
  280. package/src/lib/form/craft-field.d.ts.map +1 -0
  281. package/src/lib/form/craft-field.directive.d.ts +70 -0
  282. package/src/lib/form/craft-field.directive.d.ts.map +1 -0
  283. package/src/lib/form/craft-field.directive.js +549 -0
  284. package/src/lib/form/craft-field.directive.js.map +1 -0
  285. package/src/lib/form/craft-field.js +586 -0
  286. package/src/lib/form/craft-field.js.map +1 -0
  287. package/src/lib/form/field-exception.d.ts +62 -0
  288. package/src/lib/form/field-exception.d.ts.map +1 -0
  289. package/src/lib/form/field-exception.js +37 -0
  290. package/src/lib/form/field-exception.js.map +1 -0
  291. package/src/lib/form/field-lens.d.ts +29 -0
  292. package/src/lib/form/field-lens.d.ts.map +1 -0
  293. package/src/lib/form/field-lens.js +32 -0
  294. package/src/lib/form/field-lens.js.map +1 -0
  295. package/src/lib/form/insert-form-attributes.d.ts +69 -0
  296. package/src/lib/form/insert-form-attributes.d.ts.map +1 -0
  297. package/src/lib/form/insert-form-attributes.js +163 -0
  298. package/src/lib/form/insert-form-attributes.js.map +1 -0
  299. package/src/lib/form/insert-form-internals.d.ts +110 -0
  300. package/src/lib/form/insert-form-internals.d.ts.map +1 -0
  301. package/src/lib/form/insert-form-internals.js +276 -0
  302. package/src/lib/form/insert-form-internals.js.map +1 -0
  303. package/src/lib/form/insert-form-schema.d.ts +10 -0
  304. package/src/lib/form/insert-form-schema.d.ts.map +1 -0
  305. package/src/lib/form/insert-form-schema.js +62 -0
  306. package/src/lib/form/insert-form-schema.js.map +1 -0
  307. package/src/lib/form/insert-form-submit.d.ts +79 -0
  308. package/src/lib/form/insert-form-submit.d.ts.map +1 -0
  309. package/src/lib/form/insert-form-submit.js +126 -0
  310. package/src/lib/form/insert-form-submit.js.map +1 -0
  311. package/src/lib/form/insert-form.d.ts +39 -0
  312. package/src/lib/form/insert-form.d.ts.map +1 -0
  313. package/src/lib/form/insert-form.js +255 -0
  314. package/src/lib/form/insert-form.js.map +1 -0
  315. package/src/lib/form/insert-select-form-tree.d.ts +33 -0
  316. package/src/lib/form/insert-select-form-tree.d.ts.map +1 -0
  317. package/src/lib/form/insert-select-form-tree.js +144 -0
  318. package/src/lib/form/insert-select-form-tree.js.map +1 -0
  319. package/src/lib/form/insert-sub-form-field.d.ts +17 -0
  320. package/src/lib/form/insert-sub-form-field.d.ts.map +1 -0
  321. package/src/lib/form/insert-sub-form-field.js +41 -0
  322. package/src/lib/form/insert-sub-form-field.js.map +1 -0
  323. package/src/lib/form/make-form-tree-insert.d.ts +22 -0
  324. package/src/lib/form/make-form-tree-insert.d.ts.map +1 -0
  325. package/src/lib/form/make-form-tree-insert.js +43 -0
  326. package/src/lib/form/make-form-tree-insert.js.map +1 -0
  327. package/src/lib/form/target-form-field.d.ts +11 -0
  328. package/src/lib/form/target-form-field.d.ts.map +1 -0
  329. package/src/lib/form/target-form-field.js +1 -0
  330. package/src/lib/form/target-form-field.js.map +1 -0
  331. package/src/lib/form/validator.d.ts +174 -0
  332. package/src/lib/form/validator.d.ts.map +1 -0
  333. package/src/lib/form/validator.js +465 -0
  334. package/src/lib/form/validator.js.map +1 -0
  335. package/src/lib/from-event-to-source$.d.ts +210 -0
  336. package/src/lib/from-event-to-source$.d.ts.map +1 -0
  337. package/src/lib/from-event-to-source$.js +29 -0
  338. package/src/lib/from-event-to-source$.js.map +1 -0
  339. package/src/lib/global-persister-handler.service.d.ts +10 -0
  340. package/src/lib/global-persister-handler.service.d.ts.map +1 -0
  341. package/src/lib/global-persister-handler.service.js +40 -0
  342. package/src/lib/global-persister-handler.service.js.map +1 -0
  343. package/src/lib/host/craft-compat.d.ts +242 -0
  344. package/src/lib/host/craft-compat.d.ts.map +1 -0
  345. package/src/lib/host/craft-compat.js +444 -0
  346. package/src/lib/host/craft-compat.js.map +1 -0
  347. package/src/lib/host/craft-dom.d.ts +16 -0
  348. package/src/lib/host/craft-dom.d.ts.map +1 -0
  349. package/src/lib/host/craft-dom.js +24 -0
  350. package/src/lib/host/craft-dom.js.map +1 -0
  351. package/src/lib/host/craft-http.d.ts +22 -0
  352. package/src/lib/host/craft-http.d.ts.map +1 -0
  353. package/src/lib/host/craft-http.js +80 -0
  354. package/src/lib/host/craft-http.js.map +1 -0
  355. package/src/lib/host/craft-injector-host.d.ts +3 -0
  356. package/src/lib/host/craft-injector-host.d.ts.map +1 -0
  357. package/src/lib/host/craft-injector-host.js +2 -0
  358. package/src/lib/host/craft-injector-host.js.map +1 -0
  359. package/src/lib/host/craft-injector.d.ts +40 -0
  360. package/src/lib/host/craft-injector.d.ts.map +1 -0
  361. package/src/lib/host/craft-injector.js +318 -0
  362. package/src/lib/host/craft-injector.js.map +1 -0
  363. package/src/lib/host/craft-linked-signal.d.ts +17 -0
  364. package/src/lib/host/craft-linked-signal.d.ts.map +1 -0
  365. package/src/lib/host/craft-linked-signal.js +86 -0
  366. package/src/lib/host/craft-linked-signal.js.map +1 -0
  367. package/src/lib/host/craft-router-runtime.d.ts +61 -0
  368. package/src/lib/host/craft-router-runtime.d.ts.map +1 -0
  369. package/src/lib/host/craft-router-runtime.js +456 -0
  370. package/src/lib/host/craft-router-runtime.js.map +1 -0
  371. package/src/lib/host/craft-router-types.d.ts +84 -0
  372. package/src/lib/host/craft-router-types.d.ts.map +1 -0
  373. package/src/lib/host/craft-router-types.js +35 -0
  374. package/src/lib/host/craft-router-types.js.map +1 -0
  375. package/src/lib/host/craft-signal.d.ts +45 -0
  376. package/src/lib/host/craft-signal.d.ts.map +1 -0
  377. package/src/lib/host/craft-signal.js +161 -0
  378. package/src/lib/host/craft-signal.js.map +1 -0
  379. package/src/lib/host/craft-test-bed.d.ts +63 -0
  380. package/src/lib/host/craft-test-bed.d.ts.map +1 -0
  381. package/src/lib/host/craft-test-bed.js +114 -0
  382. package/src/lib/host/craft-test-bed.js.map +1 -0
  383. package/src/lib/host-tag.d.ts +2 -0
  384. package/src/lib/host-tag.d.ts.map +1 -0
  385. package/src/lib/host-tag.js +2 -0
  386. package/src/lib/host-tag.js.map +1 -0
  387. package/src/lib/insert-entities.d.ts +131 -0
  388. package/src/lib/insert-entities.d.ts.map +1 -0
  389. package/src/lib/insert-entities.js +159 -0
  390. package/src/lib/insert-entities.js.map +1 -0
  391. package/src/lib/insert-noop-typing-anchor.d.ts +15 -0
  392. package/src/lib/insert-noop-typing-anchor.d.ts.map +1 -0
  393. package/src/lib/insert-noop-typing-anchor.js +16 -0
  394. package/src/lib/insert-noop-typing-anchor.js.map +1 -0
  395. package/src/lib/insert-pagination-placeholder-data.d.ts +122 -0
  396. package/src/lib/insert-pagination-placeholder-data.d.ts.map +1 -0
  397. package/src/lib/insert-pagination-placeholder-data.js +244 -0
  398. package/src/lib/insert-pagination-placeholder-data.js.map +1 -0
  399. package/src/lib/insert-react-on-mutation.d.ts +261 -0
  400. package/src/lib/insert-react-on-mutation.d.ts.map +1 -0
  401. package/src/lib/insert-react-on-mutation.js +227 -0
  402. package/src/lib/insert-react-on-mutation.js.map +1 -0
  403. package/src/lib/insert-select-resource.d.ts +31 -0
  404. package/src/lib/insert-select-resource.d.ts.map +1 -0
  405. package/src/lib/insert-select-resource.js +27 -0
  406. package/src/lib/insert-select-resource.js.map +1 -0
  407. package/src/lib/insert-select.d.ts +126 -0
  408. package/src/lib/insert-select.d.ts.map +1 -0
  409. package/src/lib/insert-select.js +535 -0
  410. package/src/lib/insert-select.js.map +1 -0
  411. package/src/lib/insert-storage-persister.d.ts +27 -0
  412. package/src/lib/insert-storage-persister.d.ts.map +1 -0
  413. package/src/lib/insert-storage-persister.js +65 -0
  414. package/src/lib/insert-storage-persister.js.map +1 -0
  415. package/src/lib/insert-typed-pipes.d.ts +64 -0
  416. package/src/lib/insert-typed-pipes.d.ts.map +1 -0
  417. package/src/lib/insert-typed-pipes.js +32 -0
  418. package/src/lib/insert-typed-pipes.js.map +1 -0
  419. package/src/lib/linked-source.d.ts +8 -0
  420. package/src/lib/linked-source.d.ts.map +1 -0
  421. package/src/lib/linked-source.js +24 -0
  422. package/src/lib/linked-source.js.map +1 -0
  423. package/src/lib/local-storage-persister.d.ts +4 -0
  424. package/src/lib/local-storage-persister.d.ts.map +1 -0
  425. package/src/lib/local-storage-persister.js +342 -0
  426. package/src/lib/local-storage-persister.js.map +1 -0
  427. package/src/lib/middleware-schema-shared.d.ts +67 -0
  428. package/src/lib/middleware-schema-shared.d.ts.map +1 -0
  429. package/src/lib/middleware-schema-shared.js +34 -0
  430. package/src/lib/middleware-schema-shared.js.map +1 -0
  431. package/src/lib/mock-http-request-for-route.d.ts +173 -0
  432. package/src/lib/mock-http-request-for-route.d.ts.map +1 -0
  433. package/src/lib/mock-http-request-for-route.js +127 -0
  434. package/src/lib/mock-http-request-for-route.js.map +1 -0
  435. package/src/lib/mutation.d.ts +332 -0
  436. package/src/lib/mutation.d.ts.map +1 -0
  437. package/src/lib/mutation.js +923 -0
  438. package/src/lib/mutation.js.map +1 -0
  439. package/src/lib/on$.d.ts +26 -0
  440. package/src/lib/on$.d.ts.map +1 -0
  441. package/src/lib/on$.js +19 -0
  442. package/src/lib/on$.js.map +1 -0
  443. package/src/lib/portable-server-function.d.ts +68 -0
  444. package/src/lib/portable-server-function.d.ts.map +1 -0
  445. package/src/lib/portable-server-function.js +97 -0
  446. package/src/lib/portable-server-function.js.map +1 -0
  447. package/src/lib/preserved-resource.d.ts +4 -0
  448. package/src/lib/preserved-resource.d.ts.map +1 -0
  449. package/src/lib/preserved-resource.js +60 -0
  450. package/src/lib/preserved-resource.js.map +1 -0
  451. package/src/lib/primitive-method-runtime-context.d.ts +28 -0
  452. package/src/lib/primitive-method-runtime-context.d.ts.map +1 -0
  453. package/src/lib/primitive-method-runtime-context.js +38 -0
  454. package/src/lib/primitive-method-runtime-context.js.map +1 -0
  455. package/src/lib/primitive-resource-runtime-context.d.ts +46 -0
  456. package/src/lib/primitive-resource-runtime-context.d.ts.map +1 -0
  457. package/src/lib/primitive-resource-runtime-context.js +102 -0
  458. package/src/lib/primitive-resource-runtime-context.js.map +1 -0
  459. package/src/lib/query-params.d.ts +216 -0
  460. package/src/lib/query-params.d.ts.map +1 -0
  461. package/src/lib/query-params.js +324 -0
  462. package/src/lib/query-params.js.map +1 -0
  463. package/src/lib/query.core.d.ts +214 -0
  464. package/src/lib/query.core.d.ts.map +1 -0
  465. package/src/lib/query.core.js +210 -0
  466. package/src/lib/query.core.js.map +1 -0
  467. package/src/lib/query.d.ts +324 -0
  468. package/src/lib/query.d.ts.map +1 -0
  469. package/src/lib/query.js +971 -0
  470. package/src/lib/query.js.map +1 -0
  471. package/src/lib/reactive-read.d.ts +162 -0
  472. package/src/lib/reactive-read.d.ts.map +1 -0
  473. package/src/lib/reactive-read.js +389 -0
  474. package/src/lib/reactive-read.js.map +1 -0
  475. package/src/lib/resource-by-id.d.ts +71 -0
  476. package/src/lib/resource-by-id.d.ts.map +1 -0
  477. package/src/lib/resource-by-id.js +294 -0
  478. package/src/lib/resource-by-id.js.map +1 -0
  479. package/src/lib/resource-exception.d.ts +30 -0
  480. package/src/lib/resource-exception.d.ts.map +1 -0
  481. package/src/lib/resource-exception.js +86 -0
  482. package/src/lib/resource-exception.js.map +1 -0
  483. package/src/lib/route-checked-di.d.ts +229 -0
  484. package/src/lib/route-checked-di.d.ts.map +1 -0
  485. package/src/lib/route-checked-di.js +1 -0
  486. package/src/lib/route-checked-di.js.map +1 -0
  487. package/src/lib/schema-validation.d.ts +89 -0
  488. package/src/lib/schema-validation.d.ts.map +1 -0
  489. package/src/lib/schema-validation.js +110 -0
  490. package/src/lib/schema-validation.js.map +1 -0
  491. package/src/lib/send-context-to-ai.d.ts +20 -0
  492. package/src/lib/send-context-to-ai.d.ts.map +1 -0
  493. package/src/lib/send-context-to-ai.js +18 -0
  494. package/src/lib/send-context-to-ai.js.map +1 -0
  495. package/src/lib/send-context-to-ai.tokens.d.ts +12 -0
  496. package/src/lib/send-context-to-ai.tokens.d.ts.map +1 -0
  497. package/src/lib/send-context-to-ai.tokens.js +1 -0
  498. package/src/lib/send-context-to-ai.tokens.js.map +1 -0
  499. package/src/lib/server-function-client.d.ts +102 -0
  500. package/src/lib/server-function-client.d.ts.map +1 -0
  501. package/src/lib/server-function-client.js +106 -0
  502. package/src/lib/server-function-client.js.map +1 -0
  503. package/src/lib/server-function-contract.d.ts +42 -0
  504. package/src/lib/server-function-contract.d.ts.map +1 -0
  505. package/src/lib/server-function-contract.js +23 -0
  506. package/src/lib/server-function-contract.js.map +1 -0
  507. package/src/lib/server-function-middleware.d.ts +222 -0
  508. package/src/lib/server-function-middleware.d.ts.map +1 -0
  509. package/src/lib/server-function-middleware.js +189 -0
  510. package/src/lib/server-function-middleware.js.map +1 -0
  511. package/src/lib/server-function.d.ts +114 -0
  512. package/src/lib/server-function.d.ts.map +1 -0
  513. package/src/lib/server-function.js +80 -0
  514. package/src/lib/server-function.js.map +1 -0
  515. package/src/lib/server-layer.d.ts +185 -0
  516. package/src/lib/server-layer.d.ts.map +1 -0
  517. package/src/lib/server-layer.js +121 -0
  518. package/src/lib/server-layer.js.map +1 -0
  519. package/src/lib/server.d.ts +83 -0
  520. package/src/lib/server.d.ts.map +1 -0
  521. package/src/lib/server.js +266 -0
  522. package/src/lib/server.js.map +1 -0
  523. package/src/lib/setup-craft-service-test.d.ts +90 -0
  524. package/src/lib/setup-craft-service-test.d.ts.map +1 -0
  525. package/src/lib/setup-craft-service-test.js +193 -0
  526. package/src/lib/setup-craft-service-test.js.map +1 -0
  527. package/src/lib/setup-craft-service-testing-by-register.d.ts +245 -0
  528. package/src/lib/setup-craft-service-testing-by-register.d.ts.map +1 -0
  529. package/src/lib/setup-craft-service-testing-by-register.js +316 -0
  530. package/src/lib/setup-craft-service-testing-by-register.js.map +1 -0
  531. package/src/lib/signal-proxy.d.ts +21 -0
  532. package/src/lib/signal-proxy.d.ts.map +1 -0
  533. package/src/lib/signal-proxy.js +79 -0
  534. package/src/lib/signal-proxy.js.map +1 -0
  535. package/src/lib/signal-source.d.ts +392 -0
  536. package/src/lib/signal-source.d.ts.map +1 -0
  537. package/src/lib/signal-source.js +433 -0
  538. package/src/lib/signal-source.js.map +1 -0
  539. package/src/lib/source$.d.ts +121 -0
  540. package/src/lib/source$.d.ts.map +1 -0
  541. package/src/lib/source$.js +171 -0
  542. package/src/lib/source$.js.map +1 -0
  543. package/src/lib/source-from-event.d.ts +350 -0
  544. package/src/lib/source-from-event.d.ts.map +1 -0
  545. package/src/lib/source-from-event.js +26 -0
  546. package/src/lib/source-from-event.js.map +1 -0
  547. package/src/lib/stacked-source.d.ts +6 -0
  548. package/src/lib/stacked-source.d.ts.map +1 -0
  549. package/src/lib/stacked-source.js +29 -0
  550. package/src/lib/stacked-source.js.map +1 -0
  551. package/src/lib/standard-schema.d.ts +43 -0
  552. package/src/lib/standard-schema.d.ts.map +1 -0
  553. package/src/lib/standard-schema.js +1 -0
  554. package/src/lib/standard-schema.js.map +1 -0
  555. package/src/lib/state-method-runtime-context.d.ts +13 -0
  556. package/src/lib/state-method-runtime-context.d.ts.map +1 -0
  557. package/src/lib/state-method-runtime-context.js +11 -0
  558. package/src/lib/state-method-runtime-context.js.map +1 -0
  559. package/src/lib/state.d.ts +158 -0
  560. package/src/lib/state.d.ts.map +1 -0
  561. package/src/lib/state.js +388 -0
  562. package/src/lib/state.js.map +1 -0
  563. package/src/lib/storage-persister.service.d.ts +25 -0
  564. package/src/lib/storage-persister.service.d.ts.map +1 -0
  565. package/src/lib/storage-persister.service.js +27 -0
  566. package/src/lib/storage-persister.service.js.map +1 -0
  567. package/src/lib/take-app-snapshot.d.ts +31 -0
  568. package/src/lib/take-app-snapshot.d.ts.map +1 -0
  569. package/src/lib/take-app-snapshot.js +93 -0
  570. package/src/lib/take-app-snapshot.js.map +1 -0
  571. package/src/lib/template-trace.d.ts +37 -0
  572. package/src/lib/template-trace.d.ts.map +1 -0
  573. package/src/lib/template-trace.js +37 -0
  574. package/src/lib/template-trace.js.map +1 -0
  575. package/src/lib/temporal-runtime.d.ts +146 -0
  576. package/src/lib/temporal-runtime.d.ts.map +1 -0
  577. package/src/lib/temporal-runtime.js +375 -0
  578. package/src/lib/temporal-runtime.js.map +1 -0
  579. package/src/lib/to-source.d.ts +335 -0
  580. package/src/lib/to-source.d.ts.map +1 -0
  581. package/src/lib/to-source.js +359 -0
  582. package/src/lib/to-source.js.map +1 -0
  583. package/src/lib/util/craft-resource-ref.d.ts +29 -0
  584. package/src/lib/util/craft-resource-ref.d.ts.map +1 -0
  585. package/src/lib/util/craft-resource-ref.js +1 -0
  586. package/src/lib/util/craft-resource-ref.js.map +1 -0
  587. package/src/lib/util/craft-resource-status.d.ts +17 -0
  588. package/src/lib/util/craft-resource-status.d.ts.map +1 -0
  589. package/src/lib/util/craft-resource-status.js +14 -0
  590. package/src/lib/util/craft-resource-status.js.map +1 -0
  591. package/src/lib/util/entities-util.d.ts +340 -0
  592. package/src/lib/util/entities-util.d.ts.map +1 -0
  593. package/src/lib/util/entities-util.js +136 -0
  594. package/src/lib/util/entities-util.js.map +1 -0
  595. package/src/lib/util/explicit-effect.d.ts +42 -0
  596. package/src/lib/util/explicit-effect.d.ts.map +1 -0
  597. package/src/lib/util/explicit-effect.js +37 -0
  598. package/src/lib/util/explicit-effect.js.map +1 -0
  599. package/src/lib/util/extract-signal-props-and-methods.d.ts +20 -0
  600. package/src/lib/util/extract-signal-props-and-methods.d.ts.map +1 -0
  601. package/src/lib/util/extract-signal-props-and-methods.js +1 -0
  602. package/src/lib/util/extract-signal-props-and-methods.js.map +1 -0
  603. package/src/lib/util/method-trigger-nonce.d.ts +45 -0
  604. package/src/lib/util/method-trigger-nonce.d.ts.map +1 -0
  605. package/src/lib/util/method-trigger-nonce.js +58 -0
  606. package/src/lib/util/method-trigger-nonce.js.map +1 -0
  607. package/src/lib/util/persister.type.d.ts +37 -0
  608. package/src/lib/util/persister.type.d.ts.map +1 -0
  609. package/src/lib/util/persister.type.js +1 -0
  610. package/src/lib/util/persister.type.js.map +1 -0
  611. package/src/lib/util/persister.util.d.ts +8 -0
  612. package/src/lib/util/persister.util.d.ts.map +1 -0
  613. package/src/lib/util/persister.util.js +71 -0
  614. package/src/lib/util/persister.util.js.map +1 -0
  615. package/src/lib/util/react-on-mutation-effect.d.ts +16 -0
  616. package/src/lib/util/react-on-mutation-effect.d.ts.map +1 -0
  617. package/src/lib/util/react-on-mutation-effect.js +148 -0
  618. package/src/lib/util/react-on-mutation-effect.js.map +1 -0
  619. package/src/lib/util/resource-by-id-changes-tracker.util.d.ts +27 -0
  620. package/src/lib/util/resource-by-id-changes-tracker.util.d.ts.map +1 -0
  621. package/src/lib/util/resource-by-id-changes-tracker.util.js +97 -0
  622. package/src/lib/util/resource-by-id-changes-tracker.util.js.map +1 -0
  623. package/src/lib/util/source.type.d.ts +6 -0
  624. package/src/lib/util/source.type.d.ts.map +1 -0
  625. package/src/lib/util/source.type.js +1 -0
  626. package/src/lib/util/source.type.js.map +1 -0
  627. package/src/lib/util/types/access-type-object-property-by-dotted-path.type.d.ts +4 -0
  628. package/src/lib/util/types/access-type-object-property-by-dotted-path.type.d.ts.map +1 -0
  629. package/src/lib/util/types/access-type-object-property-by-dotted-path.type.js +1 -0
  630. package/src/lib/util/types/access-type-object-property-by-dotted-path.type.js.map +1 -0
  631. package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.d.ts +27 -0
  632. package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.d.ts.map +1 -0
  633. package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.js +1 -0
  634. package/src/lib/util/types/boolean-or-mapper-fn-by-path-by-id.type.js.map +1 -0
  635. package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.d.ts +24 -0
  636. package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.d.ts.map +1 -0
  637. package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.js +1 -0
  638. package/src/lib/util/types/boolean-or-mapper-fn-by-path.type.js.map +1 -0
  639. package/src/lib/util/types/brand.d.ts +7 -0
  640. package/src/lib/util/types/brand.d.ts.map +1 -0
  641. package/src/lib/util/types/brand.js +9 -0
  642. package/src/lib/util/types/brand.js.map +1 -0
  643. package/src/lib/util/types/object-deep-path-mapper.type.d.ts +13 -0
  644. package/src/lib/util/types/object-deep-path-mapper.type.d.ts.map +1 -0
  645. package/src/lib/util/types/object-deep-path-mapper.type.js +1 -0
  646. package/src/lib/util/types/object-deep-path-mapper.type.js.map +1 -0
  647. package/src/lib/util/types/resource-by-id-config.type.d.ts +115 -0
  648. package/src/lib/util/types/resource-by-id-config.type.d.ts.map +1 -0
  649. package/src/lib/util/types/resource-by-id-config.type.js +1 -0
  650. package/src/lib/util/types/resource-by-id-config.type.js.map +1 -0
  651. package/src/lib/util/types/resource-with-params-or-params-fn.type.d.ts +52 -0
  652. package/src/lib/util/types/resource-with-params-or-params-fn.type.d.ts.map +1 -0
  653. package/src/lib/util/types/resource-with-params-or-params-fn.type.js +1 -0
  654. package/src/lib/util/types/resource-with-params-or-params-fn.type.js.map +1 -0
  655. package/src/lib/util/types/shared.type.d.ts +66 -0
  656. package/src/lib/util/types/shared.type.d.ts.map +1 -0
  657. package/src/lib/util/types/shared.type.js +1 -0
  658. package/src/lib/util/types/shared.type.js.map +1 -0
  659. package/src/lib/util/types/util.d.ts +16 -0
  660. package/src/lib/util/types/util.d.ts.map +1 -0
  661. package/src/lib/util/types/util.js +60 -0
  662. package/src/lib/util/types/util.js.map +1 -0
  663. package/src/lib/util/types/util.type.d.ts +67 -0
  664. package/src/lib/util/types/util.type.d.ts.map +1 -0
  665. package/src/lib/util/types/util.type.js +5 -0
  666. package/src/lib/util/types/util.type.js.map +1 -0
  667. package/src/lib/util/update-state.util.d.ts +10 -0
  668. package/src/lib/util/update-state.util.d.ts.map +1 -0
  669. package/src/lib/util/update-state.util.js +31 -0
  670. package/src/lib/util/update-state.util.js.map +1 -0
  671. package/src/lib/util/util.d.ts +19 -0
  672. package/src/lib/util/util.d.ts.map +1 -0
  673. package/src/lib/util/util.js +50 -0
  674. package/src/lib/util/util.js.map +1 -0
  675. package/src/lib/util/util.type.d.ts +107 -0
  676. package/src/lib/util/util.type.d.ts.map +1 -0
  677. package/src/lib/util/util.type.js +9 -0
  678. package/src/lib/util/util.type.js.map +1 -0
  679. package/src/lib/yieldable.d.ts +94 -0
  680. package/src/lib/yieldable.d.ts.map +1 -0
  681. package/src/lib/yieldable.js +109 -0
  682. package/src/lib/yieldable.js.map +1 -0
@@ -0,0 +1,174 @@
1
+ import { Signal } from '../host/craft-compat';
2
+ import { AnyCraftException, CraftExceptionResult, ExcludeByCode, ExtractCodeFromCraftResultUnion } from '../craft-exception';
3
+ import { type YieldableReactiveValue } from '../reactive-read';
4
+ import { MergeObjects } from '../util/util.type';
5
+ import { CraftValidator, CraftValidatorContext, FieldAttributeMeta } from './craft-field';
6
+ export declare const VALIDATOR_OUTPUT_SYMBOL: unique symbol;
7
+ export type ValidatorType = 'sync' | 'async';
8
+ export type ValidatorUtilBrand<Name, Type extends ValidatorType = ValidatorType, Meta extends object = {}> = {
9
+ __brand: Name;
10
+ type: Type;
11
+ } & Meta;
12
+ export type ValidatorSuccess<Name extends string, Type extends ValidatorType = 'sync', Meta extends object = {}> = {
13
+ valid: true;
14
+ } & ValidatorUtilBrand<Name, Type, Meta>;
15
+ export type ValidatorPending<Name extends string, Type extends ValidatorType = 'async', Meta extends object = {}> = {
16
+ valid: false;
17
+ } & ValidatorUtilBrand<Name, Type, Meta>;
18
+ type ValidatorRuntimeKind = 'signal';
19
+ type ValidatorRuntime<Name extends string = string, Type extends ValidatorType = ValidatorType, Kind extends ValidatorRuntimeKind = ValidatorRuntimeKind> = {
20
+ readonly name: Name;
21
+ readonly type: Type;
22
+ readonly kind: Kind;
23
+ };
24
+ type ValidatorRuntimeCarrier<Name extends string = string, Type extends ValidatorType = ValidatorType, Kind extends ValidatorRuntimeKind = ValidatorRuntimeKind> = {
25
+ readonly [VALIDATOR_OUTPUT_SYMBOL]: ValidatorRuntime<Name, Type, Kind>;
26
+ };
27
+ /**
28
+ * A Craft validator factory output.
29
+ *
30
+ * Calling the returned function from inside `CraftField.ɵregisterValidator` (which
31
+ * `insertFormAttributes` does internally) yields a `CraftValidatorResult` that the
32
+ * field aggregates into its `errors()` and native-constraint signals.
33
+ */
34
+ export type ValidatorOutput<TValue, Name extends string, Exceptions, Type extends ValidatorType = 'sync', Identifier = unknown, Meta extends object = {}> = CraftValidator<TValue> & ValidatorRuntimeCarrier<Name, Type, 'signal'> & {
35
+ /** @internal phantom marker for type extraction */
36
+ readonly __exceptions?: Exceptions;
37
+ /** @internal phantom marker for type extraction */
38
+ readonly __meta?: Meta;
39
+ /** @internal phantom marker for type extraction */
40
+ readonly __identifier?: Identifier;
41
+ };
42
+ type ValidatorOption<TValue> = TValue | (() => TValue);
43
+ type ValidatorConfig = {
44
+ when?: ValidatorOption<boolean>;
45
+ };
46
+ type ValueWithLengthOrSize = {
47
+ length: number;
48
+ } | {
49
+ size: number;
50
+ };
51
+ type ValidatorException<Code extends string, Payload = undefined> = CraftExceptionResult<{
52
+ _tag: Code;
53
+ }, Payload>;
54
+ export type CRequiredException = ValidatorException<'required'>;
55
+ export type CEmailException = ValidatorException<'email'>;
56
+ export type CMinException = ValidatorException<'min', number>;
57
+ export type CMaxException = ValidatorException<'max', number>;
58
+ export type CMinLengthException = ValidatorException<'minLength', number>;
59
+ export type CMaxLengthException = ValidatorException<'maxLength', number>;
60
+ type CPatternException = ValidatorException<'pattern', RegExp>;
61
+ type CRequiredConfig<TValue> = ValidatorConfig;
62
+ type CEmailConfig<TValue extends string | null | undefined> = ValidatorConfig;
63
+ type CMinConfig<TValue extends number | string | null | undefined> = ValidatorConfig & ({
64
+ min: ValidatorOption<number | undefined>;
65
+ minValue?: never;
66
+ } | {
67
+ min?: never;
68
+ minValue: ValidatorOption<number | undefined>;
69
+ });
70
+ type CMaxConfig<TValue extends number | string | null | undefined> = ValidatorConfig & ({
71
+ max: ValidatorOption<number | undefined>;
72
+ maxValue?: never;
73
+ } | {
74
+ max?: never;
75
+ maxValue: ValidatorOption<number | undefined>;
76
+ });
77
+ type CMinLengthConfig<TValue extends ValueWithLengthOrSize> = ValidatorConfig & {
78
+ minLength: ValidatorOption<number | undefined>;
79
+ };
80
+ type CMaxLengthConfig<TValue extends ValueWithLengthOrSize> = ValidatorConfig & {
81
+ maxLength: ValidatorOption<number | undefined>;
82
+ };
83
+ type CPatternConfig<TValue extends string | null | undefined> = ValidatorConfig & {
84
+ pattern: ValidatorOption<RegExp | undefined>;
85
+ };
86
+ type CValidateBaseConfig<Name extends string> = {
87
+ name: Name;
88
+ type?: 'sync';
89
+ };
90
+ type CValidateAdvancedSyncConfig<TValue, Name extends string, Exceptions, Identifier = unknown> = CValidateBaseConfig<Name> & {
91
+ validate: (context: CraftValidatorContext<TValue> & {
92
+ identifier: Identifier;
93
+ }) => Signal<Exceptions | undefined>;
94
+ };
95
+ type CValidateSimpleSyncConfig<TValue, Name extends string, Exceptions, Identifier = unknown> = CValidateBaseConfig<Name> & ValidatorConfig & {
96
+ validWhen: ValidatorOption<boolean>;
97
+ exception: ValidatorOption<Exceptions>;
98
+ };
99
+ type CValidateSyncConfig<TValue, Name extends string, Exceptions, Identifier = unknown> = CValidateAdvancedSyncConfig<TValue, Name, Exceptions, Identifier> | CValidateSimpleSyncConfig<TValue, Name, Exceptions, Identifier>;
100
+ type AsyncReactiveValue<T> = Signal<T> | YieldableReactiveValue<T>;
101
+ type AnyAsyncCraftResourceRef = {
102
+ kind: 'query' | 'mutation';
103
+ exceptions: AsyncReactiveValue<{
104
+ list: AnyCraftException[];
105
+ }>;
106
+ hasException: AsyncReactiveValue<boolean>;
107
+ resourceParamsSrc: AsyncReactiveValue<unknown>;
108
+ call?: (value: any) => unknown;
109
+ mutate?: (value: any) => unknown;
110
+ select?: (identifier: any) => unknown;
111
+ };
112
+ type AsyncValidatorResourceTarget<TResourceRef> = TResourceRef extends {
113
+ select: (...args: any[]) => infer SelectedResource;
114
+ } ? NonNullable<SelectedResource> : TResourceRef;
115
+ type AsyncValidatorResourceIdentifier<TResourceRef> = TResourceRef extends {
116
+ select: (identifier: infer Identifier) => unknown;
117
+ } ? Identifier : unknown;
118
+ type AsyncValidatorResourceExceptionUnion<TResource> = TResource extends {
119
+ exceptions: AsyncReactiveValue<{
120
+ list: (infer Exception)[];
121
+ }>;
122
+ } ? Exception : never;
123
+ type ExtractValidatorExceptionItems<T> = T extends readonly (infer Item)[] ? Item : T;
124
+ type AsyncValidatorContext<TValue, TResourceRef extends AnyAsyncCraftResourceRef, Identifier = unknown, TResource = AsyncValidatorResourceTarget<TResourceRef>, ResourceExceptions = AsyncValidatorResourceExceptionUnion<TResource>, ResourceExceptionCodes = ExtractCodeFromCraftResultUnion<ResourceExceptions>> = CraftValidatorContext<TValue> & {
125
+ identifier: Identifier;
126
+ validateAsyncCraftResource: TResource;
127
+ omitExceptions: <C extends ResourceExceptionCodes>(codes: readonly C[]) => ExcludeByCode<ResourceExceptions, C>[];
128
+ };
129
+ type IsValidAsyncExceptions<T> = [unknown] extends [T] ? true : NonNullable<T> extends AnyCraftException ? true : NonNullable<T> extends readonly (infer Item)[] ? Item extends AnyCraftException ? true : false : false;
130
+ type HasValidAsyncExceptionReturn<SuccessExceptions, ErrorExceptions, ExceptionExceptions> = IsValidAsyncExceptions<SuccessExceptions> extends true ? IsValidAsyncExceptions<ErrorExceptions> extends true ? IsValidAsyncExceptions<ExceptionExceptions> extends true ? true : {
131
+ success: true;
132
+ error: true;
133
+ exceptions: false;
134
+ } : {
135
+ success: true;
136
+ error: false;
137
+ exceptions: IsValidAsyncExceptions<ExceptionExceptions>;
138
+ } : {
139
+ success: false;
140
+ error: IsValidAsyncExceptions<ErrorExceptions>;
141
+ exceptions: IsValidAsyncExceptions<ExceptionExceptions>;
142
+ };
143
+ type ValidationDetails = {
144
+ success: boolean;
145
+ error: boolean;
146
+ exceptions: boolean;
147
+ };
148
+ type InvalidAsyncExceptionsMessage<T> = T extends true ? never : T extends ValidationDetails ? `Not valid ${(T['success'] extends false ? 'exceptionsOnSuccess callback' : never) | (T['error'] extends false ? 'error callback' : never) | (T['exceptions'] extends false ? 'onException callback' : never)}` : never;
149
+ type CAsyncValidateConfig<TValue, Name extends string, TResourceRef extends AnyAsyncCraftResourceRef, SuccessExceptions, ErrorExceptions, ExceptionExceptions, Identifier = unknown> = MergeObjects<[
150
+ ValidatorConfig & {
151
+ name: Name;
152
+ isValidSuccess?: (context: AsyncValidatorContext<TValue, TResourceRef, Identifier>) => boolean;
153
+ exceptionsOnSuccess?: (context: AsyncValidatorContext<TValue, TResourceRef, Identifier>) => SuccessExceptions;
154
+ exception?: (context: AsyncValidatorContext<TValue, TResourceRef, Identifier>) => ErrorExceptions;
155
+ onException?: (context: AsyncValidatorContext<TValue, TResourceRef, Identifier>) => ExceptionExceptions;
156
+ },
157
+ HasValidAsyncExceptionReturn<SuccessExceptions, ErrorExceptions, ExceptionExceptions> extends true ? {} : {
158
+ typingError: `cAsyncValidate callbacks must only return Craft exceptions, arrays of Craft exceptions, or undefined. ${InvalidAsyncExceptionsMessage<HasValidAsyncExceptionReturn<SuccessExceptions, ErrorExceptions, ExceptionExceptions>>}`;
159
+ }
160
+ ]>;
161
+ type ToAsyncValidatorExceptions<ResourceExceptions, SuccessExceptions, ErrorExceptions, ExceptionExceptions> = [unknown] extends [ExceptionExceptions] ? Exclude<ResourceExceptions | ExtractValidatorExceptionItems<SuccessExceptions> | ExtractValidatorExceptionItems<ErrorExceptions>, undefined> : Exclude<ExtractValidatorExceptionItems<SuccessExceptions> | ExtractValidatorExceptionItems<ErrorExceptions> | ExtractValidatorExceptionItems<ExceptionExceptions>, undefined>;
162
+ export declare function cRequired<TValue>(config?: CRequiredConfig<TValue>): ValidatorOutput<TValue, 'cRequired', CRequiredException>;
163
+ export declare function cEmail<TValue extends string | null | undefined>(config?: CEmailConfig<TValue>): ValidatorOutput<TValue, 'cEmail', CEmailException>;
164
+ export declare function cMin<TValue extends number | string | null | undefined>(config: CMinConfig<TValue>): ValidatorOutput<TValue, 'cMin', CMinException>;
165
+ export declare function cMax<TValue extends number | string | null | undefined>(config: CMaxConfig<TValue>): ValidatorOutput<TValue, 'cMax', CMaxException>;
166
+ export declare function cMinLength<TValue extends ValueWithLengthOrSize>(config: CMinLengthConfig<TValue>): ValidatorOutput<TValue, 'cMinLength', CMinLengthException>;
167
+ export declare function cMaxLength<TValue extends ValueWithLengthOrSize>(config: CMaxLengthConfig<TValue>): ValidatorOutput<TValue, 'cMaxLength', CMaxLengthException>;
168
+ export declare function cPattern<TValue extends string | null | undefined>(config: CPatternConfig<TValue>): ValidatorOutput<TValue, 'cPattern', CPatternException>;
169
+ export declare function cValidate<TValue, const Name extends string, Exceptions, Identifier = unknown>(config: CValidateSyncConfig<TValue, Name, Exceptions, Identifier>): ValidatorOutput<TValue, Name, Exceptions, 'sync', Identifier>;
170
+ export declare const cValidator: typeof cValidate;
171
+ export declare function cAsyncValidate<TValue, TResourceRef extends AnyAsyncCraftResourceRef, const Name extends string, SuccessExceptions = undefined, ErrorExceptions = undefined, ExceptionExceptions = unknown, Identifier = AsyncValidatorResourceIdentifier<TResourceRef>>(resourceRef: TResourceRef, config: CAsyncValidateConfig<TValue, Name, TResourceRef, SuccessExceptions, ErrorExceptions, ExceptionExceptions, Identifier>): ValidatorOutput<TValue, Name, ToAsyncValidatorExceptions<AsyncValidatorResourceExceptionUnion<AsyncValidatorResourceTarget<TResourceRef>>, SuccessExceptions, ErrorExceptions, ExceptionExceptions>, 'async', Identifier>;
172
+ export declare const cAsyncValidator: typeof cAsyncValidate;
173
+ export type { CraftValidator, CraftValidatorContext, FieldAttributeMeta };
174
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/form/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAqB,MAAM,sBAAsB,CAAC;AACnF,OAAO,EACL,iBAAiB,EAEjB,oBAAoB,EACpB,aAAa,EACb,+BAA+B,EAEhC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAGL,cAAc,EACd,qBAAqB,EAErB,kBAAkB,EACnB,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AAEzE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;AAE7C,MAAM,MAAM,kBAAkB,CAC5B,IAAI,EACJ,IAAI,SAAS,aAAa,GAAG,aAAa,EAC1C,IAAI,SAAS,MAAM,GAAG,EAAE,IACtB;IACF,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;CACZ,GAAG,IAAI,CAAC;AAET,MAAM,MAAM,gBAAgB,CAC1B,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,aAAa,GAAG,MAAM,EACnC,IAAI,SAAS,MAAM,GAAG,EAAE,IACtB;IACF,KAAK,EAAE,IAAI,CAAC;CACb,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEzC,MAAM,MAAM,gBAAgB,CAC1B,IAAI,SAAS,MAAM,EACnB,IAAI,SAAS,aAAa,GAAG,OAAO,EACpC,IAAI,SAAS,MAAM,GAAG,EAAE,IACtB;IACF,KAAK,EAAE,KAAK,CAAC;CACd,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEzC,KAAK,oBAAoB,GAAG,QAAQ,CAAC;AAErC,KAAK,gBAAgB,CACnB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,IAAI,SAAS,aAAa,GAAG,aAAa,EAC1C,IAAI,SAAS,oBAAoB,GAAG,oBAAoB,IACtD;IACF,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB,CAAC;AAEF,KAAK,uBAAuB,CAC1B,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,IAAI,SAAS,aAAa,GAAG,aAAa,EAC1C,IAAI,SAAS,oBAAoB,GAAG,oBAAoB,IACtD;IACF,QAAQ,CAAC,CAAC,uBAAuB,CAAC,EAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;CACxE,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,CACzB,MAAM,EACN,IAAI,SAAS,MAAM,EACnB,UAAU,EACV,IAAI,SAAS,aAAa,GAAG,MAAM,EACnC,UAAU,GAAG,OAAO,EACpB,IAAI,SAAS,MAAM,GAAG,EAAE,IACtB,cAAc,CAAC,MAAM,CAAC,GACxB,uBAAuB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG;IAC9C,mDAAmD;IACnD,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC;IACnC,mDAAmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC;CACpC,CAAC;AAEJ,KAAK,eAAe,CAAC,MAAM,IAAI,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;AAEvD,KAAK,eAAe,GAAG;IACrB,IAAI,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF,KAAK,qBAAqB,GACtB;IACE,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEN,KAAK,kBAAkB,CACrB,IAAI,SAAS,MAAM,EACnB,OAAO,GAAG,SAAS,IACjB,oBAAoB,CACtB;IACE,IAAI,EAAE,IAAI,CAAC;CACZ,EACD,OAAO,CACR,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;AAChE,MAAM,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9D,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC1E,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC1E,KAAK,iBAAiB,GAAG,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAE/D,KAAK,eAAe,CAAC,MAAM,IAAI,eAAe,CAAC;AAC/C,KAAK,YAAY,CAAC,MAAM,SAAS,MAAM,GAAG,IAAI,GAAG,SAAS,IAAI,eAAe,CAAC;AAC9E,KAAK,UAAU,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,IAC/D,eAAe,GACb,CACI;IACE,GAAG,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,GACD;IACE,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC/C,CACJ,CAAC;AACN,KAAK,UAAU,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,IAC/D,eAAe,GACb,CACI;IACE,GAAG,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,GACD;IACE,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC/C,CACJ,CAAC;AACN,KAAK,gBAAgB,CAAC,MAAM,SAAS,qBAAqB,IACxD,eAAe,GAAG;IAChB,SAAS,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChD,CAAC;AACJ,KAAK,gBAAgB,CAAC,MAAM,SAAS,qBAAqB,IACxD,eAAe,GAAG;IAChB,SAAS,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChD,CAAC;AACJ,KAAK,cAAc,CAAC,MAAM,SAAS,MAAM,GAAG,IAAI,GAAG,SAAS,IAC1D,eAAe,GAAG;IAChB,OAAO,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC9C,CAAC;AAEJ,KAAK,mBAAmB,CAAC,IAAI,SAAS,MAAM,IAAI;IAC9C,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,2BAA2B,CAC9B,MAAM,EACN,IAAI,SAAS,MAAM,EACnB,UAAU,EACV,UAAU,GAAG,OAAO,IAClB,mBAAmB,CAAC,IAAI,CAAC,GAAG;IAC9B,QAAQ,EAAE,CACR,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,GAAG;QAAE,UAAU,EAAE,UAAU,CAAA;KAAE,KAChE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;CACrC,CAAC;AAEF,KAAK,yBAAyB,CAC5B,MAAM,EACN,IAAI,SAAS,MAAM,EACnB,UAAU,EACV,UAAU,GAAG,OAAO,IAClB,mBAAmB,CAAC,IAAI,CAAC,GAC3B,eAAe,GAAG;IAChB,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACpC,SAAS,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;CACxC,CAAC;AAEJ,KAAK,mBAAmB,CACtB,MAAM,EACN,IAAI,SAAS,MAAM,EACnB,UAAU,EACV,UAAU,GAAG,OAAO,IAElB,2BAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,GACjE,yBAAyB,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAEpE,KAAK,kBAAkB,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;AAEnE,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IAC3B,UAAU,EAAE,kBAAkB,CAAC;QAAE,IAAI,EAAE,iBAAiB,EAAE,CAAA;KAAE,CAAC,CAAC;IAC9D,YAAY,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,iBAAiB,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;IAC/B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;IACjC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,OAAO,CAAC;CACvC,CAAC;AAaF,KAAK,4BAA4B,CAAC,YAAY,IAAI,YAAY,SAAS;IACrE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,gBAAgB,CAAC;CACpD,GACG,WAAW,CAAC,gBAAgB,CAAC,GAC7B,YAAY,CAAC;AAEjB,KAAK,gCAAgC,CAAC,YAAY,IAAI,YAAY,SAAS;IACzE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,UAAU,KAAK,OAAO,CAAC;CACnD,GACG,UAAU,GACV,OAAO,CAAC;AAEZ,KAAK,oCAAoC,CAAC,SAAS,IAAI,SAAS,SAAS;IACvE,UAAU,EAAE,kBAAkB,CAAC;QAAE,IAAI,EAAE,CAAC,MAAM,SAAS,CAAC,EAAE,CAAA;KAAE,CAAC,CAAC;CAC/D,GACG,SAAS,GACT,KAAK,CAAC;AAEV,KAAK,8BAA8B,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,GACtE,IAAI,GACJ,CAAC,CAAC;AAEN,KAAK,qBAAqB,CACxB,MAAM,EACN,YAAY,SAAS,wBAAwB,EAC7C,UAAU,GAAG,OAAO,EACpB,SAAS,GAAG,4BAA4B,CAAC,YAAY,CAAC,EACtD,kBAAkB,GAAG,oCAAoC,CAAC,SAAS,CAAC,EACpE,sBAAsB,GAAG,+BAA+B,CAAC,kBAAkB,CAAC,IAC1E,qBAAqB,CAAC,MAAM,CAAC,GAAG;IAClC,UAAU,EAAE,UAAU,CAAC;IACvB,0BAA0B,EAAE,SAAS,CAAC;IACtC,cAAc,EAAE,CAAC,CAAC,SAAS,sBAAsB,EAC/C,KAAK,EAAE,SAAS,CAAC,EAAE,KAChB,aAAa,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC;CAC7C,CAAC;AAEF,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAClD,IAAI,GACJ,WAAW,CAAC,CAAC,CAAC,SAAS,iBAAiB,GACtC,IAAI,GACJ,WAAW,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,GAC5C,IAAI,SAAS,iBAAiB,GAC5B,IAAI,GACJ,KAAK,GACP,KAAK,CAAC;AAEd,KAAK,4BAA4B,CAC/B,iBAAiB,EACjB,eAAe,EACf,mBAAmB,IAEnB,sBAAsB,CAAC,iBAAiB,CAAC,SAAS,IAAI,GAClD,sBAAsB,CAAC,eAAe,CAAC,SAAS,IAAI,GAClD,sBAAsB,CAAC,mBAAmB,CAAC,SAAS,IAAI,GACtD,IAAI,GACJ;IACE,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;IACZ,UAAU,EAAE,KAAK,CAAC;CACnB,GACH;IACE,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;CACzD,GACH;IACE,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,sBAAsB,CAAC,eAAe,CAAC,CAAC;IAC/C,UAAU,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;CACzD,CAAC;AAER,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,KAAK,6BAA6B,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,GAClD,KAAK,GACL,CAAC,SAAS,iBAAiB,GACzB,aACI,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,KAAK,GAAG,8BAA8B,GAAG,KAAK,CAAC,GACrE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,KAAK,GAAG,gBAAgB,GAAG,KAAK,CAAC,GACrD,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,KAAK,GAAG,sBAAsB,GAAG,KAAK,CAAC,EAAE,GACtE,KAAK,CAAC;AAEZ,KAAK,oBAAoB,CACvB,MAAM,EACN,IAAI,SAAS,MAAM,EACnB,YAAY,SAAS,wBAAwB,EAC7C,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,UAAU,GAAG,OAAO,IAClB,YAAY,CACd;IACE,eAAe,GAAG;QAChB,IAAI,EAAE,IAAI,CAAC;QACX,cAAc,CAAC,EAAE,CACf,OAAO,EAAE,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,KAC7D,OAAO,CAAC;QACb,mBAAmB,CAAC,EAAE,CACpB,OAAO,EAAE,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,KAC7D,iBAAiB,CAAC;QACvB,SAAS,CAAC,EAAE,CACV,OAAO,EAAE,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,KAC7D,eAAe,CAAC;QACrB,WAAW,CAAC,EAAE,CACZ,OAAO,EAAE,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,KAC7D,mBAAmB,CAAC;KAC1B;IACD,4BAA4B,CAC1B,iBAAiB,EACjB,eAAe,EACf,mBAAmB,CACpB,SAAS,IAAI,GACV,EAAE,GACF;QACE,WAAW,EAAE,yGAAyG,6BAA6B,CAAC,4BAA4B,CAAC,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC;KAC9O;CACN,CACF,CAAC;AAEF,KAAK,0BAA0B,CAC7B,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,IACjB,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC,GACvC,OAAO,CACH,kBAAkB,GAClB,8BAA8B,CAAC,iBAAiB,CAAC,GACjD,8BAA8B,CAAC,eAAe,CAAC,EACjD,SAAS,CACV,GACD,OAAO,CACH,8BAA8B,CAAC,iBAAiB,CAAC,GACjD,8BAA8B,CAAC,eAAe,CAAC,GAC/C,8BAA8B,CAAC,mBAAmB,CAAC,EACrD,SAAS,CACV,CAAC;AA2qBN,wBAAgB,SAAS,CAAC,MAAM,EAC9B,MAAM,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,GAC/B,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAE1D;AAED,wBAAgB,MAAM,CAAC,MAAM,SAAS,MAAM,GAAG,IAAI,GAAG,SAAS,EAC7D,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,GAC5B,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,CAEpD;AAED,wBAAgB,IAAI,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EACpE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GACzB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAShD;AAED,wBAAgB,IAAI,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EACpE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GACzB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAShD;AAED,wBAAgB,UAAU,CAAC,MAAM,SAAS,qBAAqB,EAC7D,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAC/B,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAE5D;AAED,wBAAgB,UAAU,CAAC,MAAM,SAAS,qBAAqB,EAC7D,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAC/B,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAE5D;AAED,wBAAgB,QAAQ,CAAC,MAAM,SAAS,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/D,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,GAC7B,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAExD;AAED,wBAAgB,SAAS,CACvB,MAAM,EACN,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,UAAU,EACV,UAAU,GAAG,OAAO,EAEpB,MAAM,EAAE,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,GAChE,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAE/D;AAED,eAAO,MAAM,UAAU,kBAAY,CAAC;AAEpC,wBAAgB,cAAc,CAC5B,MAAM,EACN,YAAY,SAAS,wBAAwB,EAC7C,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,iBAAiB,GAAG,SAAS,EAC7B,eAAe,GAAG,SAAS,EAC3B,mBAAmB,GAAG,OAAO,EAC7B,UAAU,GAAG,gCAAgC,CAAC,YAAY,CAAC,EAE3D,WAAW,EAAE,YAAY,EACzB,MAAM,EAAE,oBAAoB,CAC1B,MAAM,EACN,IAAI,EACJ,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,UAAU,CACX,GACA,eAAe,CAChB,MAAM,EACN,IAAI,EACJ,0BAA0B,CACxB,oCAAoC,CAClC,4BAA4B,CAAC,YAAY,CAAC,CAC3C,EACD,iBAAiB,EACjB,eAAe,EACf,mBAAmB,CACpB,EACD,OAAO,EACP,UAAU,CACX,CAEA;AAED,eAAO,MAAM,eAAe,uBAAiB,CAAC;AAG9C,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,465 @@
1
+ import { computed, effect, signal, untracked } from '../host/craft-compat';
2
+ import { CRAFT_EXCEPTION_SYMBOL, isCraftException, } from '../craft-exception';
3
+ import { isYieldableReactiveValue, rawReactiveFacade, rawReactiveValue, } from '../reactive-read';
4
+ export const VALIDATOR_OUTPUT_SYMBOL = Symbol('VALIDATOR_OUTPUT_SYMBOL');
5
+ const SYNC_VALIDATOR_TYPE = 'sync';
6
+ const ASYNC_VALIDATOR_TYPE = 'async';
7
+ function resolveValidatorOption(option) {
8
+ if (typeof option === 'function') {
9
+ return option();
10
+ }
11
+ return option;
12
+ }
13
+ function shouldValidate(when) {
14
+ return when === undefined ? true : resolveValidatorOption(when);
15
+ }
16
+ function brandException(name, type, _tag, payload) {
17
+ return {
18
+ _tag,
19
+ [CRAFT_EXCEPTION_SYMBOL]: true,
20
+ payload,
21
+ [_tag]: payload,
22
+ __brand: name,
23
+ type,
24
+ };
25
+ }
26
+ function brandRawException(name, type, exception) {
27
+ if (Array.isArray(exception)) {
28
+ return exception.map((e) => ({ ...e, __brand: name, type }));
29
+ }
30
+ return { ...exception, __brand: name, type };
31
+ }
32
+ function withRuntime(validator, runtime) {
33
+ return Object.assign(validator, {
34
+ [VALIDATOR_OUTPUT_SYMBOL]: runtime,
35
+ });
36
+ }
37
+ function isEmptyValue(value) {
38
+ if (value === null || value === undefined)
39
+ return true;
40
+ if (typeof value === 'string')
41
+ return value.length === 0;
42
+ if (Array.isArray(value))
43
+ return value.length === 0;
44
+ return false;
45
+ }
46
+ function asNumber(value) {
47
+ if (value === null || value === undefined || value === '')
48
+ return undefined;
49
+ const n = typeof value === 'number' ? value : Number(value);
50
+ return Number.isNaN(n) ? undefined : n;
51
+ }
52
+ function lengthOf(value) {
53
+ if (value === null || value === undefined)
54
+ return undefined;
55
+ if (typeof value === 'string')
56
+ return value.length;
57
+ if (Array.isArray(value))
58
+ return value.length;
59
+ if (typeof value === 'object' &&
60
+ 'length' in value &&
61
+ typeof value.length === 'number') {
62
+ return value.length;
63
+ }
64
+ if (typeof value === 'object' &&
65
+ 'size' in value &&
66
+ typeof value.size === 'number') {
67
+ return value.size;
68
+ }
69
+ return undefined;
70
+ }
71
+ function normalizeCraftExceptionOutput(value) {
72
+ if (value === undefined)
73
+ return undefined;
74
+ if (Array.isArray(value)) {
75
+ const list = value.filter(isCraftException);
76
+ return list.length === 0 ? undefined : { raw: list, list };
77
+ }
78
+ if (!isCraftException(value))
79
+ return undefined;
80
+ return { raw: value, list: [value] };
81
+ }
82
+ function getResourceExceptionList(value) {
83
+ if (typeof value !== 'object' ||
84
+ value === null ||
85
+ !('exceptions' in value) ||
86
+ typeof value.exceptions !== 'function') {
87
+ return [];
88
+ }
89
+ const exceptions = value.exceptions;
90
+ const list = readAsyncReactiveValue(exceptions)?.list;
91
+ return Array.isArray(list) ? list.filter(isCraftException) : [];
92
+ }
93
+ function hasResourceExceptions(value) {
94
+ if (typeof value === 'object' &&
95
+ value !== null &&
96
+ 'hasException' in value &&
97
+ typeof value.hasException === 'function') {
98
+ return !!readAsyncReactiveValue(value.hasException);
99
+ }
100
+ return getResourceExceptionList(value).length > 0;
101
+ }
102
+ function isResourceRefWithSelection(value) {
103
+ return 'select' in value && typeof value.select === 'function';
104
+ }
105
+ function readAsyncReactiveValue(value) {
106
+ return isYieldableReactiveValue(value) ? rawReactiveValue(value)() : value();
107
+ }
108
+ function resolveAsyncValidatorResourceTarget(resourceRef, identifier) {
109
+ if (!isResourceRefWithSelection(resourceRef)) {
110
+ return resourceRef;
111
+ }
112
+ if (identifier === undefined || identifier === null)
113
+ return undefined;
114
+ return resourceRef.select(identifier);
115
+ }
116
+ // =====================================================================
117
+ // Built-in validators
118
+ // =====================================================================
119
+ function createRequiredValidator({ when, }) {
120
+ const validator = ({ value }) => ({
121
+ result: computed(() => {
122
+ if (!shouldValidate(when))
123
+ return undefined;
124
+ return isEmptyValue(value())
125
+ ? brandException('cRequired', SYNC_VALIDATOR_TYPE, 'required', undefined)
126
+ : undefined;
127
+ }),
128
+ attribute: computed(() => {
129
+ if (!shouldValidate(when))
130
+ return undefined;
131
+ return { kind: 'native-constraint', target: 'required', value: true };
132
+ }),
133
+ });
134
+ return withRuntime(validator, {
135
+ name: 'cRequired',
136
+ type: SYNC_VALIDATOR_TYPE,
137
+ kind: 'signal',
138
+ });
139
+ }
140
+ const EMAIL_REGEX = /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/;
141
+ function createEmailValidator({ when, }) {
142
+ const validator = ({ value }) => ({
143
+ result: computed(() => {
144
+ if (!shouldValidate(when))
145
+ return undefined;
146
+ const v = value();
147
+ if (v === null || v === undefined || v === '')
148
+ return undefined;
149
+ if (typeof v !== 'string')
150
+ return undefined;
151
+ return EMAIL_REGEX.test(v)
152
+ ? undefined
153
+ : brandException('cEmail', SYNC_VALIDATOR_TYPE, 'email', undefined);
154
+ }),
155
+ });
156
+ return withRuntime(validator, {
157
+ name: 'cEmail',
158
+ type: SYNC_VALIDATOR_TYPE,
159
+ kind: 'signal',
160
+ });
161
+ }
162
+ function createMinValidator({ when, min: minValue, }) {
163
+ const validator = ({ value }) => ({
164
+ result: computed(() => {
165
+ if (!shouldValidate(when))
166
+ return undefined;
167
+ const m = resolveValidatorOption(minValue);
168
+ if (m === undefined)
169
+ return undefined;
170
+ const n = asNumber(value());
171
+ if (n === undefined)
172
+ return undefined;
173
+ return n < m
174
+ ? brandException('cMin', SYNC_VALIDATOR_TYPE, 'min', m)
175
+ : undefined;
176
+ }),
177
+ attribute: computed(() => {
178
+ const m = resolveValidatorOption(minValue);
179
+ return m !== undefined && shouldValidate(when)
180
+ ? { kind: 'native-constraint', target: 'min', value: m }
181
+ : undefined;
182
+ }),
183
+ });
184
+ return withRuntime(validator, {
185
+ name: 'cMin',
186
+ type: SYNC_VALIDATOR_TYPE,
187
+ kind: 'signal',
188
+ });
189
+ }
190
+ function createMaxValidator({ when, max: maxValue, }) {
191
+ const validator = ({ value }) => ({
192
+ result: computed(() => {
193
+ if (!shouldValidate(when))
194
+ return undefined;
195
+ const m = resolveValidatorOption(maxValue);
196
+ if (m === undefined)
197
+ return undefined;
198
+ const n = asNumber(value());
199
+ if (n === undefined)
200
+ return undefined;
201
+ return n > m
202
+ ? brandException('cMax', SYNC_VALIDATOR_TYPE, 'max', m)
203
+ : undefined;
204
+ }),
205
+ attribute: computed(() => {
206
+ const m = resolveValidatorOption(maxValue);
207
+ return m !== undefined && shouldValidate(when)
208
+ ? { kind: 'native-constraint', target: 'max', value: m }
209
+ : undefined;
210
+ }),
211
+ });
212
+ return withRuntime(validator, {
213
+ name: 'cMax',
214
+ type: SYNC_VALIDATOR_TYPE,
215
+ kind: 'signal',
216
+ });
217
+ }
218
+ function createMinLengthValidator({ when, minLength, }) {
219
+ const validator = ({ value }) => ({
220
+ result: computed(() => {
221
+ if (!shouldValidate(when))
222
+ return undefined;
223
+ const m = resolveValidatorOption(minLength);
224
+ if (m === undefined)
225
+ return undefined;
226
+ const len = lengthOf(value());
227
+ if (len === undefined)
228
+ return undefined;
229
+ return len < m
230
+ ? brandException('cMinLength', SYNC_VALIDATOR_TYPE, 'minLength', m)
231
+ : undefined;
232
+ }),
233
+ attribute: computed(() => {
234
+ const m = resolveValidatorOption(minLength);
235
+ return m !== undefined && shouldValidate(when)
236
+ ? { kind: 'native-constraint', target: 'minLength', value: m }
237
+ : undefined;
238
+ }),
239
+ });
240
+ return withRuntime(validator, {
241
+ name: 'cMinLength',
242
+ type: SYNC_VALIDATOR_TYPE,
243
+ kind: 'signal',
244
+ });
245
+ }
246
+ function createMaxLengthValidator({ when, maxLength, }) {
247
+ const validator = ({ value }) => ({
248
+ result: computed(() => {
249
+ if (!shouldValidate(when))
250
+ return undefined;
251
+ const m = resolveValidatorOption(maxLength);
252
+ if (m === undefined)
253
+ return undefined;
254
+ const len = lengthOf(value());
255
+ if (len === undefined)
256
+ return undefined;
257
+ return len > m
258
+ ? brandException('cMaxLength', SYNC_VALIDATOR_TYPE, 'maxLength', m)
259
+ : undefined;
260
+ }),
261
+ attribute: computed(() => {
262
+ const m = resolveValidatorOption(maxLength);
263
+ return m !== undefined && shouldValidate(when)
264
+ ? { kind: 'native-constraint', target: 'maxLength', value: m }
265
+ : undefined;
266
+ }),
267
+ });
268
+ return withRuntime(validator, {
269
+ name: 'cMaxLength',
270
+ type: SYNC_VALIDATOR_TYPE,
271
+ kind: 'signal',
272
+ });
273
+ }
274
+ function createPatternValidator({ when, pattern, }) {
275
+ const validator = ({ value }) => ({
276
+ result: computed(() => {
277
+ if (!shouldValidate(when))
278
+ return undefined;
279
+ const p = resolveValidatorOption(pattern);
280
+ if (p === undefined)
281
+ return undefined;
282
+ const v = value();
283
+ if (v === null || v === undefined || v === '')
284
+ return undefined;
285
+ if (typeof v !== 'string')
286
+ return undefined;
287
+ return p.test(v)
288
+ ? undefined
289
+ : brandException('cPattern', SYNC_VALIDATOR_TYPE, 'pattern', p);
290
+ }),
291
+ });
292
+ return withRuntime(validator, {
293
+ name: 'cPattern',
294
+ type: SYNC_VALIDATOR_TYPE,
295
+ kind: 'signal',
296
+ });
297
+ }
298
+ function createCustomSyncValidator(config) {
299
+ const { name } = config;
300
+ if ('validate' in config) {
301
+ const fn = config.validate;
302
+ const validator = (context) => {
303
+ const inner = fn({
304
+ ...context,
305
+ identifier: context.identifier,
306
+ });
307
+ return {
308
+ result: computed(() => {
309
+ const result = inner();
310
+ if (result === undefined)
311
+ return undefined;
312
+ const normalized = normalizeCraftExceptionOutput(result);
313
+ if (!normalized)
314
+ return undefined;
315
+ return brandRawException(name, SYNC_VALIDATOR_TYPE, normalized.raw);
316
+ }),
317
+ };
318
+ };
319
+ return withRuntime(validator, {
320
+ name,
321
+ type: SYNC_VALIDATOR_TYPE,
322
+ kind: 'signal',
323
+ });
324
+ }
325
+ const simpleConfig = config;
326
+ const validator = () => ({
327
+ result: computed(() => {
328
+ if (!shouldValidate(simpleConfig.when))
329
+ return undefined;
330
+ if (resolveValidatorOption(simpleConfig.validWhen))
331
+ return undefined;
332
+ const exception = resolveValidatorOption(simpleConfig.exception);
333
+ const normalized = normalizeCraftExceptionOutput(exception);
334
+ if (!normalized)
335
+ return undefined;
336
+ return brandRawException(name, SYNC_VALIDATOR_TYPE, normalized.raw);
337
+ }),
338
+ });
339
+ return withRuntime(validator, {
340
+ name,
341
+ type: SYNC_VALIDATOR_TYPE,
342
+ kind: 'signal',
343
+ });
344
+ }
345
+ function createCustomAsyncValidator(resourceRef, config) {
346
+ const { name } = config;
347
+ const cfg = config;
348
+ const validator = (context) => {
349
+ const identifier = context.identifier;
350
+ const resourceTarget = computed(() => resolveAsyncValidatorResourceTarget(resourceRef, identifier));
351
+ const lastTriggered = signal(undefined);
352
+ // Trigger the resource when the value changes.
353
+ effect(() => {
354
+ const v = context.value();
355
+ const target = rawReactiveFacade(untracked(() => resourceTarget()));
356
+ if (!target)
357
+ return;
358
+ if (!shouldValidate(cfg.when))
359
+ return;
360
+ lastTriggered.set(v);
361
+ if (typeof target.mutate === 'function') {
362
+ target.mutate(v);
363
+ }
364
+ else if (typeof target.call === 'function') {
365
+ target.call(v);
366
+ }
367
+ });
368
+ const buildContext = (currentResource) => {
369
+ const exceptions = getResourceExceptionList(currentResource);
370
+ return {
371
+ ...context,
372
+ identifier: identifier,
373
+ validateAsyncCraftResource: currentResource,
374
+ omitExceptions: ((codes) => exceptions.filter((e) => !codes.includes(e._tag))),
375
+ };
376
+ };
377
+ const result = computed(() => {
378
+ const currentResource = resourceTarget();
379
+ const r = rawReactiveFacade(currentResource);
380
+ if (!r)
381
+ return undefined;
382
+ if (lastTriggered() === undefined)
383
+ return undefined;
384
+ if (r.isLoading())
385
+ return { pending: true };
386
+ const status = r.status();
387
+ const asyncCtx = buildContext(currentResource);
388
+ if (hasResourceExceptions(r)) {
389
+ const overridden = normalizeCraftExceptionOutput(cfg.onException?.(asyncCtx));
390
+ const fallback = normalizeCraftExceptionOutput(getResourceExceptionList(r));
391
+ const final = overridden ?? fallback;
392
+ if (!final)
393
+ return undefined;
394
+ return brandRawException(name, ASYNC_VALIDATOR_TYPE, final.raw);
395
+ }
396
+ if (status === 'exception') {
397
+ const errorOutput = normalizeCraftExceptionOutput(cfg.exception?.(asyncCtx));
398
+ return errorOutput
399
+ ? brandRawException(name, ASYNC_VALIDATOR_TYPE, errorOutput.raw)
400
+ : undefined;
401
+ }
402
+ // Resolved
403
+ const isValid = cfg.isValidSuccess?.(asyncCtx) ?? true;
404
+ const onSuccess = normalizeCraftExceptionOutput(cfg.exceptionsOnSuccess?.(asyncCtx));
405
+ if (!isValid || onSuccess) {
406
+ if (onSuccess) {
407
+ return brandRawException(name, ASYNC_VALIDATOR_TYPE, onSuccess.raw);
408
+ }
409
+ return brandException(name, ASYNC_VALIDATOR_TYPE, 'invalid', undefined);
410
+ }
411
+ return undefined;
412
+ });
413
+ return { result };
414
+ };
415
+ return withRuntime(validator, {
416
+ name,
417
+ type: ASYNC_VALIDATOR_TYPE,
418
+ kind: 'signal',
419
+ });
420
+ }
421
+ // =====================================================================
422
+ // Public API
423
+ // =====================================================================
424
+ export function cRequired(config) {
425
+ return createRequiredValidator(config ?? {});
426
+ }
427
+ export function cEmail(config) {
428
+ return createEmailValidator(config ?? {});
429
+ }
430
+ export function cMin(config) {
431
+ return createMinValidator({
432
+ when: config.when,
433
+ min: 'min' in config && config.min !== undefined
434
+ ? config.min
435
+ : config
436
+ .minValue,
437
+ });
438
+ }
439
+ export function cMax(config) {
440
+ return createMaxValidator({
441
+ when: config.when,
442
+ max: 'max' in config && config.max !== undefined
443
+ ? config.max
444
+ : config
445
+ .maxValue,
446
+ });
447
+ }
448
+ export function cMinLength(config) {
449
+ return createMinLengthValidator(config);
450
+ }
451
+ export function cMaxLength(config) {
452
+ return createMaxLengthValidator(config);
453
+ }
454
+ export function cPattern(config) {
455
+ return createPatternValidator(config);
456
+ }
457
+ export function cValidate(config) {
458
+ return createCustomSyncValidator(config);
459
+ }
460
+ export const cValidator = cValidate;
461
+ export function cAsyncValidate(resourceRef, config) {
462
+ return createCustomAsyncValidator(resourceRef, config);
463
+ }
464
+ export const cAsyncValidator = cAsyncValidate;
465
+ //# sourceMappingURL=validator.js.map