@baseplate-dev/plugin-auth 1.0.7 → 1.0.8

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 (834) hide show
  1. package/CHANGELOG.md +258 -8
  2. package/dist/auth/core/common.js +2 -3
  3. package/dist/auth/core/components/auth-definition-editor.js +9 -2
  4. package/dist/auth/core/components/role-editor-form/role-editor-form.js +2 -0
  5. package/dist/auth/core/node.js +1 -0
  6. package/dist/auth/core/schema/migrations.d.ts +3 -0
  7. package/dist/auth/core/schema/migrations.js +54 -0
  8. package/dist/auth/core/schema/plugin-definition.d.ts +5 -0
  9. package/dist/auth/core/schema/plugin-definition.js +4 -0
  10. package/dist/auth/core/schema/roles/constants.js +9 -0
  11. package/dist/auth/core/schema/roles/schema.d.ts +8 -0
  12. package/dist/auth/core/schema/roles/schema.js +1 -0
  13. package/dist/auth/core/web.js +31 -2
  14. package/dist/better-auth/admin/common.d.ts +5 -0
  15. package/dist/better-auth/admin/common.js +29 -0
  16. package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/admin-crud-manage-roles-action.generator.d.ts +510 -0
  17. package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/admin-crud-manage-roles-action.generator.js +123 -0
  18. package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/index.d.ts +510 -0
  19. package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/index.js +9 -0
  20. package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/template-paths.d.ts +12 -0
  21. package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/template-paths.js +24 -0
  22. package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/template-renderers.d.ts +260 -0
  23. package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/template-renderers.js +41 -0
  24. package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/typed-templates.d.ts +249 -0
  25. package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/generated/typed-templates.js +20 -0
  26. package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/index.d.ts +2 -0
  27. package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/index.js +2 -0
  28. package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.d.ts +22 -0
  29. package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.js +78 -0
  30. package/dist/better-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.tsx +162 -0
  31. package/dist/better-auth/admin/generators/admin-crud-reset-password-action/admin-crud-reset-password-action.generator.d.ts +509 -0
  32. package/dist/better-auth/admin/generators/admin-crud-reset-password-action/admin-crud-reset-password-action.generator.js +114 -0
  33. package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/index.d.ts +510 -0
  34. package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/index.js +9 -0
  35. package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/template-paths.d.ts +12 -0
  36. package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/template-paths.js +24 -0
  37. package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/template-renderers.d.ts +260 -0
  38. package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/template-renderers.js +41 -0
  39. package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/typed-templates.d.ts +495 -0
  40. package/dist/better-auth/admin/generators/admin-crud-reset-password-action/generated/typed-templates.js +22 -0
  41. package/dist/better-auth/admin/generators/admin-crud-reset-password-action/index.d.ts +2 -0
  42. package/dist/better-auth/admin/generators/admin-crud-reset-password-action/index.js +2 -0
  43. package/dist/better-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.d.ts +22 -0
  44. package/dist/better-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.js +89 -0
  45. package/dist/better-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.tsx +171 -0
  46. package/dist/better-auth/admin/generators/admin-crud-roles-column/admin-crud-roles-column.generator.d.ts +244 -0
  47. package/dist/better-auth/admin/generators/admin-crud-roles-column/admin-crud-roles-column.generator.js +54 -0
  48. package/dist/better-auth/admin/generators/admin-crud-roles-column/index.d.ts +2 -0
  49. package/dist/better-auth/admin/generators/admin-crud-roles-column/index.js +2 -0
  50. package/dist/better-auth/admin/node.d.ts +5 -0
  51. package/dist/better-auth/admin/node.js +57 -0
  52. package/dist/better-auth/admin/schema/manage-role-action.d.ts +12 -0
  53. package/dist/better-auth/admin/schema/manage-role-action.js +6 -0
  54. package/dist/better-auth/admin/schema/reset-password-action.d.ts +12 -0
  55. package/dist/better-auth/admin/schema/reset-password-action.js +6 -0
  56. package/dist/better-auth/admin/schema/roles-column.d.ts +9 -0
  57. package/dist/better-auth/admin/schema/roles-column.js +6 -0
  58. package/dist/better-auth/admin/web.d.ts +5 -0
  59. package/dist/better-auth/admin/web.js +39 -0
  60. package/dist/better-auth/constants/packages.d.ts +1 -1
  61. package/dist/better-auth/constants/packages.js +1 -1
  62. package/dist/better-auth/core/common.js +5 -2
  63. package/dist/better-auth/core/components/better-auth-definition-editor.js +17 -5
  64. package/dist/better-auth/core/node.js +21 -4
  65. package/dist/better-auth/core/schema/models.d.ts +1 -1
  66. package/dist/better-auth/core/schema/models.js +25 -10
  67. package/dist/better-auth/core/schema/plugin-definition.d.ts +4 -1
  68. package/dist/better-auth/core/schema/plugin-definition.js +7 -2
  69. package/dist/better-auth/core/schema/schema-issue-checker.d.ts +3 -0
  70. package/dist/better-auth/core/schema/schema-issue-checker.js +21 -0
  71. package/dist/better-auth/core/web.js +15 -2
  72. package/dist/better-auth/generators/fastify/better-auth-admin-module/better-auth-admin-module.generator.d.ts +73 -0
  73. package/dist/better-auth/generators/fastify/better-auth-admin-module/better-auth-admin-module.generator.js +56 -0
  74. package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/index.d.ts +111 -0
  75. package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/index.js +11 -0
  76. package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/template-paths.d.ts +13 -0
  77. package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/template-paths.js +25 -0
  78. package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/template-renderers.d.ts +56 -0
  79. package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/template-renderers.js +57 -0
  80. package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/ts-import-providers.d.ts +21 -0
  81. package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/ts-import-providers.js +30 -0
  82. package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/typed-templates.d.ts +47 -0
  83. package/dist/better-auth/generators/fastify/better-auth-admin-module/generated/typed-templates.js +33 -0
  84. package/dist/better-auth/generators/fastify/better-auth-admin-module/index.d.ts +4 -0
  85. package/dist/better-auth/generators/fastify/better-auth-admin-module/index.js +3 -0
  86. package/dist/better-auth/generators/fastify/better-auth-admin-module/templates/module/schema/admin-auth.mutations.ts +48 -0
  87. package/dist/better-auth/generators/fastify/better-auth-admin-module/templates/module/services/admin-auth.service.ts +106 -0
  88. package/dist/better-auth/generators/fastify/better-auth-email-templates/better-auth-email-templates.generator.d.ts +44 -0
  89. package/dist/better-auth/generators/fastify/better-auth-email-templates/better-auth-email-templates.generator.js +48 -0
  90. package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/index.d.ts +100 -0
  91. package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/index.js +9 -0
  92. package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/template-paths.d.ts +14 -0
  93. package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/template-paths.js +26 -0
  94. package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/template-renderers.d.ts +42 -0
  95. package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/template-renderers.js +59 -0
  96. package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/typed-templates.d.ts +63 -0
  97. package/dist/better-auth/generators/fastify/better-auth-email-templates/generated/typed-templates.js +42 -0
  98. package/dist/better-auth/generators/fastify/better-auth-email-templates/index.d.ts +2 -0
  99. package/dist/better-auth/generators/fastify/better-auth-email-templates/index.js +2 -0
  100. package/dist/better-auth/generators/fastify/better-auth-email-templates/templates/src/emails/auth/account-verification.email.tsx +55 -0
  101. package/dist/better-auth/generators/fastify/better-auth-email-templates/templates/src/emails/auth/password-changed.email.tsx +44 -0
  102. package/dist/better-auth/generators/fastify/better-auth-email-templates/templates/src/emails/auth/password-reset.email.tsx +55 -0
  103. package/dist/better-auth/generators/fastify/better-auth-module/better-auth-module.generator.d.ts +75 -9
  104. package/dist/better-auth/generators/fastify/better-auth-module/better-auth-module.generator.js +38 -4
  105. package/dist/better-auth/generators/fastify/better-auth-module/generated/index.d.ts +100 -8
  106. package/dist/better-auth/generators/fastify/better-auth-module/generated/template-renderers.d.ts +44 -1
  107. package/dist/better-auth/generators/fastify/better-auth-module/generated/template-renderers.js +9 -2
  108. package/dist/better-auth/generators/fastify/better-auth-module/generated/ts-import-providers.d.ts +24 -6
  109. package/dist/better-auth/generators/fastify/better-auth-module/generated/ts-import-providers.js +8 -5
  110. package/dist/better-auth/generators/fastify/better-auth-module/generated/typed-templates.d.ts +48 -3
  111. package/dist/better-auth/generators/fastify/better-auth-module/generated/typed-templates.js +17 -6
  112. package/dist/better-auth/generators/fastify/better-auth-module/templates/module/plugins/better-auth.plugin.ts +7 -4
  113. package/dist/better-auth/generators/fastify/better-auth-module/templates/module/services/auth.ts +86 -41
  114. package/dist/better-auth/generators/fastify/better-auth-module/templates/module/services/user-session.service.ts +58 -46
  115. package/dist/better-auth/generators/fastify/index.d.ts +3 -0
  116. package/dist/better-auth/generators/fastify/index.js +3 -0
  117. package/dist/better-auth/generators/fastify/seed-initial-user/generated/index.d.ts +66 -0
  118. package/dist/better-auth/generators/fastify/seed-initial-user/generated/index.js +9 -0
  119. package/dist/better-auth/generators/fastify/seed-initial-user/generated/template-paths.d.ts +12 -0
  120. package/dist/better-auth/generators/fastify/seed-initial-user/generated/template-paths.js +24 -0
  121. package/dist/better-auth/generators/fastify/seed-initial-user/generated/template-renderers.d.ts +38 -0
  122. package/dist/better-auth/generators/fastify/seed-initial-user/generated/template-renderers.js +43 -0
  123. package/dist/better-auth/generators/fastify/seed-initial-user/generated/typed-templates.d.ts +27 -0
  124. package/dist/better-auth/generators/fastify/seed-initial-user/generated/typed-templates.js +18 -0
  125. package/dist/better-auth/generators/fastify/seed-initial-user/index.d.ts +2 -0
  126. package/dist/better-auth/generators/fastify/seed-initial-user/index.js +2 -0
  127. package/dist/better-auth/generators/fastify/seed-initial-user/seed-initial-user.generator.d.ts +49 -0
  128. package/dist/better-auth/generators/fastify/seed-initial-user/seed-initial-user.generator.js +64 -0
  129. package/dist/better-auth/generators/fastify/seed-initial-user/templates/src/prisma/seed-initial-user.ts +64 -0
  130. package/dist/better-auth/generators/react/better-auth-pages/better-auth-pages.generator.d.ts +26 -15
  131. package/dist/better-auth/generators/react/better-auth-pages/generated/index.d.ts +812 -44
  132. package/dist/better-auth/generators/react/better-auth-pages/generated/template-paths.d.ts +3 -0
  133. package/dist/better-auth/generators/react/better-auth-pages/generated/template-paths.js +3 -0
  134. package/dist/better-auth/generators/react/better-auth-pages/generated/template-renderers.d.ts +26 -15
  135. package/dist/better-auth/generators/react/better-auth-pages/generated/typed-templates.d.ts +1600 -86
  136. package/dist/better-auth/generators/react/better-auth-pages/generated/typed-templates.js +49 -1
  137. package/dist/better-auth/generators/react/better-auth-pages/templates/routes/forgot-password.tsx +133 -0
  138. package/dist/better-auth/generators/react/better-auth-pages/templates/routes/login.tsx +9 -1
  139. package/dist/better-auth/generators/react/better-auth-pages/templates/routes/register.tsx +5 -1
  140. package/dist/better-auth/generators/react/better-auth-pages/templates/routes/reset-password.tsx +177 -0
  141. package/dist/better-auth/generators/react/better-auth-pages/templates/routes/verify-email.tsx +109 -0
  142. package/dist/better-auth/generators/react/react-better-auth/generated/index.d.ts +52 -30
  143. package/dist/better-auth/generators/react/react-better-auth/generated/template-renderers.d.ts +26 -15
  144. package/dist/better-auth/generators/react/react-better-auth/generated/typed-templates.d.ts +26 -15
  145. package/dist/better-auth/generators/react/react-better-auth/react-better-auth.generator.d.ts +26 -15
  146. package/dist/better-auth/plugin.json +1 -1
  147. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/admin-crud-manage-roles-action.generator.d.ts +52 -30
  148. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/index.d.ts +52 -30
  149. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/template-renderers.d.ts +26 -15
  150. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/typed-templates.d.ts +26 -15
  151. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.js +1 -1
  152. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.tsx +1 -3
  153. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/admin-crud-reset-password-action.generator.d.ts +52 -30
  154. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/index.d.ts +52 -30
  155. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/template-renderers.d.ts +26 -15
  156. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/typed-templates.d.ts +52 -30
  157. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.js +1 -1
  158. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.tsx +1 -1
  159. package/dist/local-auth/admin/generators/admin-crud-roles-column/admin-crud-roles-column.generator.d.ts +26 -15
  160. package/dist/local-auth/admin/node.js +1 -1
  161. package/dist/local-auth/core/common.js +5 -2
  162. package/dist/local-auth/core/components/local-auth-definition-editor.js +9 -5
  163. package/dist/local-auth/core/generators/auth-apollo/auth-apollo.generator.d.ts +0 -1
  164. package/dist/local-auth/core/generators/auth-email-password/auth-email-password.generator.d.ts +10 -24
  165. package/dist/local-auth/core/generators/auth-email-password/auth-email-password.generator.js +7 -1
  166. package/dist/local-auth/core/generators/auth-email-password/generated/index.d.ts +38 -70
  167. package/dist/local-auth/core/generators/auth-email-password/generated/template-renderers.d.ts +9 -24
  168. package/dist/local-auth/core/generators/auth-email-password/generated/template-renderers.js +2 -8
  169. package/dist/local-auth/core/generators/auth-email-password/generated/typed-templates.d.ts +49 -71
  170. package/dist/local-auth/core/generators/auth-email-password/generated/typed-templates.js +6 -7
  171. package/dist/local-auth/core/generators/auth-email-password/templates/module/schema/password-reset.mutations.js +2 -1
  172. package/dist/local-auth/core/generators/auth-email-password/templates/module/schema/password-reset.mutations.ts +2 -1
  173. package/dist/local-auth/core/generators/auth-email-password/templates/module/schema/user-password.mutations.js +5 -1
  174. package/dist/local-auth/core/generators/auth-email-password/templates/module/schema/user-password.mutations.ts +5 -1
  175. package/dist/local-auth/core/generators/auth-email-password/templates/module/services/email-verification.service.d.ts +2 -2
  176. package/dist/local-auth/core/generators/auth-email-password/templates/module/services/email-verification.service.js +4 -4
  177. package/dist/local-auth/core/generators/auth-email-password/templates/module/services/email-verification.service.ts +10 -6
  178. package/dist/local-auth/core/generators/auth-email-password/templates/module/services/password-reset.service.d.ts +4 -3
  179. package/dist/local-auth/core/generators/auth-email-password/templates/module/services/password-reset.service.js +10 -6
  180. package/dist/local-auth/core/generators/auth-email-password/templates/module/services/password-reset.service.ts +16 -7
  181. package/dist/local-auth/core/generators/auth-email-password/templates/module/services/user-password.service.d.ts +11 -0
  182. package/dist/local-auth/core/generators/auth-email-password/templates/module/services/user-password.service.js +33 -14
  183. package/dist/local-auth/core/generators/auth-email-password/templates/module/services/user-password.service.ts +49 -21
  184. package/dist/local-auth/core/generators/auth-email-templates/auth-email-templates.generator.d.ts +1 -0
  185. package/dist/local-auth/core/generators/auth-email-templates/generated/index.d.ts +4 -0
  186. package/dist/local-auth/core/generators/auth-email-templates/generated/template-renderers.d.ts +1 -0
  187. package/dist/local-auth/core/generators/auth-email-templates/generated/typed-templates.d.ts +3 -0
  188. package/dist/local-auth/core/generators/auth-module/auth-module.generator.d.ts +71 -9
  189. package/dist/local-auth/core/generators/auth-module/auth-module.generator.js +23 -11
  190. package/dist/local-auth/core/generators/auth-module/generated/index.d.ts +190 -13
  191. package/dist/local-auth/core/generators/auth-module/generated/template-paths.d.ts +1 -0
  192. package/dist/local-auth/core/generators/auth-module/generated/template-paths.js +1 -0
  193. package/dist/local-auth/core/generators/auth-module/generated/template-renderers.d.ts +61 -3
  194. package/dist/local-auth/core/generators/auth-module/generated/template-renderers.js +15 -4
  195. package/dist/local-auth/core/generators/auth-module/generated/ts-import-providers.d.ts +9 -3
  196. package/dist/local-auth/core/generators/auth-module/generated/ts-import-providers.js +6 -3
  197. package/dist/local-auth/core/generators/auth-module/generated/typed-templates.d.ts +144 -11
  198. package/dist/local-auth/core/generators/auth-module/generated/typed-templates.js +20 -5
  199. package/dist/local-auth/core/generators/auth-module/templates/module/queues/cleanup-auth-verification.queue.d.ts +0 -4
  200. package/dist/local-auth/core/generators/auth-module/templates/module/queues/cleanup-auth-verification.queue.js +2 -15
  201. package/dist/local-auth/core/generators/auth-module/templates/module/queues/cleanup-auth-verification.queue.ts +2 -16
  202. package/dist/local-auth/core/generators/auth-module/templates/module/queues/cleanup-auth-verification.worker.d.ts +6 -0
  203. package/dist/local-auth/core/generators/auth-module/templates/module/queues/cleanup-auth-verification.worker.js +18 -0
  204. package/dist/local-auth/core/generators/auth-module/templates/module/queues/cleanup-auth-verification.worker.ts +22 -0
  205. package/dist/local-auth/core/generators/auth-module/templates/module/schema/user-session.mutations.js +1 -2
  206. package/dist/local-auth/core/generators/auth-module/templates/module/schema/user-session.mutations.ts +4 -2
  207. package/dist/local-auth/core/generators/auth-module/templates/module/services/user-roles.service.js +8 -3
  208. package/dist/local-auth/core/generators/auth-module/templates/module/services/user-roles.service.ts +11 -4
  209. package/dist/local-auth/core/generators/auth-module/templates/module/services/user-session.service.d.ts +0 -1
  210. package/dist/local-auth/core/generators/auth-module/templates/module/services/user-session.service.js +18 -17
  211. package/dist/local-auth/core/generators/auth-module/templates/module/services/user-session.service.ts +18 -18
  212. package/dist/local-auth/core/generators/auth-module/templates/module/utils/session-cookie.js +6 -6
  213. package/dist/local-auth/core/generators/auth-module/templates/module/utils/session-cookie.ts +6 -6
  214. package/dist/local-auth/core/generators/auth-routes/auth-routes.generator.d.ts +32 -16
  215. package/dist/local-auth/core/generators/auth-routes/auth-routes.generator.js +37 -4
  216. package/dist/local-auth/core/generators/auth-routes/generated/index.d.ts +172 -94
  217. package/dist/local-auth/core/generators/auth-routes/generated/template-renderers.d.ts +28 -15
  218. package/dist/local-auth/core/generators/auth-routes/generated/typed-templates.d.ts +260 -143
  219. package/dist/local-auth/core/generators/auth-routes/generated/typed-templates.js +5 -2
  220. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/forgot-password.js +1 -1
  221. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/forgot-password.tsx +1 -1
  222. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/login.js +19 -4
  223. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/login.tsx +23 -4
  224. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/register.js +4 -11
  225. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/register.tsx +7 -11
  226. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/reset-password.js +7 -4
  227. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/reset-password.tsx +13 -4
  228. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/verify-email.js +1 -1
  229. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/verify-email.tsx +1 -1
  230. package/dist/local-auth/core/generators/react-session/generated/index.d.ts +52 -30
  231. package/dist/local-auth/core/generators/react-session/generated/template-renderers.d.ts +26 -15
  232. package/dist/local-auth/core/generators/react-session/generated/typed-templates.d.ts +52 -30
  233. package/dist/local-auth/core/generators/react-session/react-session.generator.d.ts +26 -15
  234. package/dist/local-auth/core/generators/seed-initial-user/generated/index.d.ts +0 -9
  235. package/dist/local-auth/core/generators/seed-initial-user/generated/index.js +0 -2
  236. package/dist/local-auth/core/generators/seed-initial-user/generated/typed-templates.js +0 -1
  237. package/dist/local-auth/core/generators/seed-initial-user/index.d.ts +0 -2
  238. package/dist/local-auth/core/generators/seed-initial-user/index.js +0 -1
  239. package/dist/local-auth/core/generators/seed-initial-user/seed-initial-user.generator.js +4 -0
  240. package/dist/local-auth/core/generators/seed-initial-user/templates/src/prisma/seed-initial-user.js +2 -1
  241. package/dist/local-auth/core/generators/seed-initial-user/templates/src/prisma/seed-initial-user.ts +3 -1
  242. package/dist/local-auth/core/node.js +12 -5
  243. package/dist/local-auth/core/schema/models.d.ts +1 -1
  244. package/dist/local-auth/core/schema/models.js +25 -10
  245. package/dist/local-auth/core/schema/plugin-definition.d.ts +2 -2
  246. package/dist/local-auth/core/schema/plugin-definition.js +2 -5
  247. package/dist/local-auth/core/schema/schema-issue-checker.d.ts +3 -0
  248. package/dist/local-auth/core/schema/schema-issue-checker.js +21 -0
  249. package/dist/local-auth/core/web.js +15 -2
  250. package/dist/local-auth/plugin.json +6 -1
  251. package/dist/placeholder-auth/core/generators/placeholder-auth-module/generated/index.d.ts +2 -2
  252. package/dist/placeholder-auth/core/generators/placeholder-auth-module/generated/ts-import-providers.d.ts +10 -2
  253. package/dist/placeholder-auth/core/generators/placeholder-auth-module/generated/ts-import-providers.js +8 -5
  254. package/dist/placeholder-auth/core/generators/placeholder-auth-module/generated/typed-templates.js +1 -1
  255. package/dist/placeholder-auth/core/generators/placeholder-auth-module/index.d.ts +3 -1
  256. package/dist/placeholder-auth/core/generators/placeholder-auth-module/index.js +2 -1
  257. package/dist/placeholder-auth/core/generators/placeholder-auth-module/{auth-module.generator.d.ts → placeholder-auth-module.generator.d.ts} +20 -3
  258. package/dist/placeholder-auth/core/generators/placeholder-auth-module/{auth-module.generator.js → placeholder-auth-module.generator.js} +18 -1
  259. package/dist/placeholder-auth/core/generators/placeholder-auth-module/templates/module/services/user-session.service.d.ts +5 -21
  260. package/dist/placeholder-auth/core/generators/placeholder-auth-module/templates/module/services/user-session.service.js +17 -26
  261. package/dist/placeholder-auth/core/generators/placeholder-auth-module/templates/module/services/user-session.service.ts +21 -31
  262. package/dist/placeholder-auth/core/schema/models.js +17 -2
  263. package/dist/placeholder-auth/core/web.js +13 -2
  264. package/dist/web/assets/_virtual_mf-localSharedImportMap___mfe_internal__plugin_mf_2_auth-DdyPR8Y-.js +242 -0
  265. package/dist/web/assets/_virtual_mf___mfe_internal__plugin_mf_2_auth__loadShare___mf_0_baseplate_mf_2_dev_mf_1_project_mf_2_builder_mf_2_lib__loadShare__.js-BfSk5vRC.js +384 -0
  266. package/dist/web/assets/_virtual_mf___mfe_internal__plugin_mf_2_auth__loadShare___mf_0_baseplate_mf_2_dev_mf_1_project_mf_2_builder_mf_2_lib_mf_1_web__loadShare__.js-DZIcwf2B.js +125 -0
  267. package/dist/web/assets/_virtual_mf___mfe_internal__plugin_mf_2_auth__loadShare___mf_0_baseplate_mf_2_dev_mf_1_ui_mf_2_components__loadShare__.js-CXGct_48.js +80678 -0
  268. package/dist/web/assets/_virtual_mf___mfe_internal__plugin_mf_2_auth__loadShare___mf_0_tanstack_mf_1_react_mf_2_router__loadShare__.js-Ci5_qYaj.js +7380 -0
  269. package/dist/web/assets/_virtual_mf___mfe_internal__plugin_mf_2_auth__loadShare__zod__loadShare__.js-Do-7VDVw.js +13567 -0
  270. package/dist/web/assets/arduino-BP2nYunF.js +21 -0
  271. package/dist/web/assets/auth-8qJtXAgU.js +1 -0
  272. package/dist/web/assets/bash-Zh_IyzBN.js +192 -0
  273. package/dist/web/assets/basic-3mvohyEL.js +28 -0
  274. package/dist/web/assets/c-C7Ey31hW.js +74 -0
  275. package/dist/web/assets/clike-D9YNFwtw.js +41 -0
  276. package/dist/web/assets/common-23-wvKrM.js +39 -0
  277. package/dist/web/assets/common-B-NI9TR-.js +37 -0
  278. package/dist/web/assets/common-BBriDRRy.js +63 -0
  279. package/dist/web/assets/common-BvU-7KsV.js +39 -0
  280. package/dist/web/assets/common-DBBUvtGu.js +37 -0
  281. package/dist/web/assets/common-eFh2vwGb.js +18 -0
  282. package/dist/web/assets/cpp-_RjA_yNA.js +82 -0
  283. package/dist/web/assets/csharp-0LZzOc6Q.js +301 -0
  284. package/dist/web/assets/css-D7TbgetL.js +70 -0
  285. package/dist/web/assets/diff-CtSa_15w.js +54 -0
  286. package/dist/web/assets/dist-BjxypexQ.js +18953 -0
  287. package/dist/web/assets/dist-SBfmsOB2.js +3576 -0
  288. package/dist/web/assets/get-auth-plugin-definition-x8oAsN1R.js +14 -0
  289. package/dist/web/assets/go-CzER04EZ.js +36 -0
  290. package/dist/web/assets/hostInit-oh7k6PLP.js +99 -0
  291. package/dist/web/assets/index-D-gGyBWJ.js +2 -0
  292. package/dist/web/assets/ini-CU-wHLTy.js +51 -0
  293. package/dist/web/assets/java-HAvRESj1.js +116 -0
  294. package/dist/web/assets/javascript-BVAr0eZH.js +124 -0
  295. package/dist/web/assets/json-DN8T4yFI.js +38 -0
  296. package/dist/web/assets/kotlin-DkCMjTKK.js +83 -0
  297. package/dist/web/assets/less-ZXX1tgaG.js +42 -0
  298. package/dist/web/assets/lua-D9bD4wrb.js +28 -0
  299. package/dist/web/assets/makefile-CKoRpler.js +40 -0
  300. package/dist/web/assets/markdown-_2_uVr2L.js +278 -0
  301. package/dist/web/assets/markup-BVZ8HhdW.js +176 -0
  302. package/dist/web/assets/markup-templating-BDIRuVJH.js +94 -0
  303. package/dist/web/assets/mf-entry-bootstrap-0-f953ebce.js +35 -0
  304. package/dist/web/assets/model-names-BluImOzu.js +27 -0
  305. package/dist/web/assets/model-names-CUS5rSei.js +12 -0
  306. package/dist/web/assets/model-utils-dNFTOjqi.js +1599 -0
  307. package/dist/web/assets/models-BpslIbU7.js +304 -0
  308. package/dist/web/assets/models-CKab4MTC.js +285 -0
  309. package/dist/web/assets/objectivec-DPgB68It.js +25 -0
  310. package/dist/web/assets/perl-Cul_ma_h.js +92 -0
  311. package/dist/web/assets/php-JTON0zp9.js +298 -0
  312. package/dist/web/assets/plugin-definition-8Exesd6T.js +78 -0
  313. package/dist/web/assets/plugin-definition-ChBrbazJ.js +11 -0
  314. package/dist/web/assets/python-CURlmZ7M.js +73 -0
  315. package/dist/web/assets/r-8lr7pbGm.js +30 -0
  316. package/dist/web/assets/regex-CxQ7DXCx.js +96 -0
  317. package/dist/web/assets/rolldown-runtime-FZ4Itg2g.js +42 -0
  318. package/dist/web/assets/ruby-BoFHz67P.js +175 -0
  319. package/dist/web/assets/rust-CpZXpaj0.js +107 -0
  320. package/dist/web/assets/sass-DG0YAnL7.js +65 -0
  321. package/dist/web/assets/scss-BDRIqhak.js +70 -0
  322. package/dist/web/assets/sql-C-bL8_gT.js +40 -0
  323. package/dist/web/assets/{style-DiK_rD1L.css → styles-Cc26Bbxc.css} +1 -1
  324. package/dist/web/assets/styles-Cuq4wgvD.js +176 -0
  325. package/dist/web/assets/swift-rQ52kfab.js +107 -0
  326. package/dist/web/assets/typescript-CDkIWcT8.js +57 -0
  327. package/dist/web/assets/vbnet-_PL7-T9d.js +32 -0
  328. package/dist/web/assets/virtualExposes-BwIds34r.js +2 -0
  329. package/dist/web/assets/virtual_mf-REMOTE_ENTRY_ID___mfe_internal__plugin-auth__remoteEntry_js-RJNeuwba.js +259 -0
  330. package/dist/web/assets/virtual_mf-exposes-ssr___mfe_internal__plugin-auth__remoteEntry_js-RzPgl37a.js +129 -0
  331. package/dist/web/assets/virtual_mf-exposes___mfe_internal__plugin-auth__remoteEntry_js-DM6Ir1_S.js +203 -0
  332. package/dist/web/assets/vite-preload-helper-iIio8xkS.js +67 -0
  333. package/dist/web/assets/web-BZd3bM0n.js +410 -0
  334. package/dist/web/assets/web-BgWG7dYl.js +123 -0
  335. package/dist/web/assets/web-CXHw8SK7.js +118 -0
  336. package/dist/web/assets/web-CnB-sqCR.js +357 -0
  337. package/dist/web/assets/web-DHv2aVpi.js +106 -0
  338. package/dist/web/assets/web-DNrWXjpS.js +46 -0
  339. package/dist/web/assets/web-D_H-MoGI.js +46 -0
  340. package/dist/web/assets/workerBundle-GFUata9j.js +10 -0
  341. package/dist/web/assets/yaml-C9m3vuV5.js +90 -0
  342. package/dist/web/index.html +2 -2
  343. package/dist/web/remoteEntry.js +2 -0
  344. package/dist/web/remoteEntry.ssr.js +43 -0
  345. package/package.json +42 -42
  346. package/dist/auth/core/common.d.ts.map +0 -1
  347. package/dist/auth/core/common.js.map +0 -1
  348. package/dist/auth/core/components/auth-definition-editor.d.ts.map +0 -1
  349. package/dist/auth/core/components/auth-definition-editor.js.map +0 -1
  350. package/dist/auth/core/components/role-editor-form/role-dialog.d.ts.map +0 -1
  351. package/dist/auth/core/components/role-editor-form/role-dialog.js.map +0 -1
  352. package/dist/auth/core/components/role-editor-form/role-editor-form.d.ts.map +0 -1
  353. package/dist/auth/core/components/role-editor-form/role-editor-form.js.map +0 -1
  354. package/dist/auth/core/node.d.ts.map +0 -1
  355. package/dist/auth/core/node.js.map +0 -1
  356. package/dist/auth/core/schema/plugin-definition.d.ts.map +0 -1
  357. package/dist/auth/core/schema/plugin-definition.js.map +0 -1
  358. package/dist/auth/core/schema/roles/constants.d.ts.map +0 -1
  359. package/dist/auth/core/schema/roles/constants.js.map +0 -1
  360. package/dist/auth/core/schema/roles/index.d.ts.map +0 -1
  361. package/dist/auth/core/schema/roles/index.js.map +0 -1
  362. package/dist/auth/core/schema/roles/schema.d.ts.map +0 -1
  363. package/dist/auth/core/schema/roles/schema.js.map +0 -1
  364. package/dist/auth/core/web.d.ts.map +0 -1
  365. package/dist/auth/core/web.js.map +0 -1
  366. package/dist/auth/index.d.ts.map +0 -1
  367. package/dist/auth/index.js.map +0 -1
  368. package/dist/auth/utils/get-auth-plugin-definition.d.ts.map +0 -1
  369. package/dist/auth/utils/get-auth-plugin-definition.js.map +0 -1
  370. package/dist/auth/utils/index.d.ts.map +0 -1
  371. package/dist/auth/utils/index.js.map +0 -1
  372. package/dist/better-auth/constants/model-names.d.ts.map +0 -1
  373. package/dist/better-auth/constants/model-names.js.map +0 -1
  374. package/dist/better-auth/constants/packages.d.ts.map +0 -1
  375. package/dist/better-auth/constants/packages.js.map +0 -1
  376. package/dist/better-auth/core/common.d.ts.map +0 -1
  377. package/dist/better-auth/core/common.js.map +0 -1
  378. package/dist/better-auth/core/components/better-auth-definition-editor.d.ts.map +0 -1
  379. package/dist/better-auth/core/components/better-auth-definition-editor.js.map +0 -1
  380. package/dist/better-auth/core/index.d.ts.map +0 -1
  381. package/dist/better-auth/core/index.js.map +0 -1
  382. package/dist/better-auth/core/node.d.ts.map +0 -1
  383. package/dist/better-auth/core/node.js.map +0 -1
  384. package/dist/better-auth/core/schema/models.d.ts.map +0 -1
  385. package/dist/better-auth/core/schema/models.js.map +0 -1
  386. package/dist/better-auth/core/schema/plugin-definition.d.ts.map +0 -1
  387. package/dist/better-auth/core/schema/plugin-definition.js.map +0 -1
  388. package/dist/better-auth/core/web.d.ts.map +0 -1
  389. package/dist/better-auth/core/web.js.map +0 -1
  390. package/dist/better-auth/generators/fastify/better-auth-module/better-auth-module.generator.d.ts.map +0 -1
  391. package/dist/better-auth/generators/fastify/better-auth-module/better-auth-module.generator.js.map +0 -1
  392. package/dist/better-auth/generators/fastify/better-auth-module/generated/index.d.ts.map +0 -1
  393. package/dist/better-auth/generators/fastify/better-auth-module/generated/index.js.map +0 -1
  394. package/dist/better-auth/generators/fastify/better-auth-module/generated/template-paths.d.ts.map +0 -1
  395. package/dist/better-auth/generators/fastify/better-auth-module/generated/template-paths.js.map +0 -1
  396. package/dist/better-auth/generators/fastify/better-auth-module/generated/template-renderers.d.ts.map +0 -1
  397. package/dist/better-auth/generators/fastify/better-auth-module/generated/template-renderers.js.map +0 -1
  398. package/dist/better-auth/generators/fastify/better-auth-module/generated/ts-import-providers.d.ts.map +0 -1
  399. package/dist/better-auth/generators/fastify/better-auth-module/generated/ts-import-providers.js.map +0 -1
  400. package/dist/better-auth/generators/fastify/better-auth-module/generated/typed-templates.d.ts.map +0 -1
  401. package/dist/better-auth/generators/fastify/better-auth-module/generated/typed-templates.js.map +0 -1
  402. package/dist/better-auth/generators/fastify/better-auth-module/index.d.ts.map +0 -1
  403. package/dist/better-auth/generators/fastify/better-auth-module/index.js.map +0 -1
  404. package/dist/better-auth/generators/fastify/index.d.ts.map +0 -1
  405. package/dist/better-auth/generators/fastify/index.js.map +0 -1
  406. package/dist/better-auth/generators/index.d.ts.map +0 -1
  407. package/dist/better-auth/generators/index.js.map +0 -1
  408. package/dist/better-auth/generators/react/better-auth-hooks/better-auth-hooks.generator.d.ts.map +0 -1
  409. package/dist/better-auth/generators/react/better-auth-hooks/better-auth-hooks.generator.js.map +0 -1
  410. package/dist/better-auth/generators/react/better-auth-hooks/generated/index.d.ts.map +0 -1
  411. package/dist/better-auth/generators/react/better-auth-hooks/generated/index.js.map +0 -1
  412. package/dist/better-auth/generators/react/better-auth-hooks/generated/template-paths.d.ts.map +0 -1
  413. package/dist/better-auth/generators/react/better-auth-hooks/generated/template-paths.js.map +0 -1
  414. package/dist/better-auth/generators/react/better-auth-hooks/generated/template-renderers.d.ts.map +0 -1
  415. package/dist/better-auth/generators/react/better-auth-hooks/generated/template-renderers.js.map +0 -1
  416. package/dist/better-auth/generators/react/better-auth-hooks/generated/ts-import-providers.d.ts.map +0 -1
  417. package/dist/better-auth/generators/react/better-auth-hooks/generated/ts-import-providers.js.map +0 -1
  418. package/dist/better-auth/generators/react/better-auth-hooks/generated/typed-templates.d.ts.map +0 -1
  419. package/dist/better-auth/generators/react/better-auth-hooks/generated/typed-templates.js.map +0 -1
  420. package/dist/better-auth/generators/react/better-auth-hooks/index.d.ts.map +0 -1
  421. package/dist/better-auth/generators/react/better-auth-hooks/index.js.map +0 -1
  422. package/dist/better-auth/generators/react/better-auth-pages/better-auth-pages.generator.d.ts.map +0 -1
  423. package/dist/better-auth/generators/react/better-auth-pages/better-auth-pages.generator.js.map +0 -1
  424. package/dist/better-auth/generators/react/better-auth-pages/generated/index.d.ts.map +0 -1
  425. package/dist/better-auth/generators/react/better-auth-pages/generated/index.js.map +0 -1
  426. package/dist/better-auth/generators/react/better-auth-pages/generated/template-paths.d.ts.map +0 -1
  427. package/dist/better-auth/generators/react/better-auth-pages/generated/template-paths.js.map +0 -1
  428. package/dist/better-auth/generators/react/better-auth-pages/generated/template-renderers.d.ts.map +0 -1
  429. package/dist/better-auth/generators/react/better-auth-pages/generated/template-renderers.js.map +0 -1
  430. package/dist/better-auth/generators/react/better-auth-pages/generated/typed-templates.d.ts.map +0 -1
  431. package/dist/better-auth/generators/react/better-auth-pages/generated/typed-templates.js.map +0 -1
  432. package/dist/better-auth/generators/react/better-auth-pages/index.d.ts.map +0 -1
  433. package/dist/better-auth/generators/react/better-auth-pages/index.js.map +0 -1
  434. package/dist/better-auth/generators/react/index.d.ts.map +0 -1
  435. package/dist/better-auth/generators/react/index.js.map +0 -1
  436. package/dist/better-auth/generators/react/react-better-auth/generated/index.d.ts.map +0 -1
  437. package/dist/better-auth/generators/react/react-better-auth/generated/index.js.map +0 -1
  438. package/dist/better-auth/generators/react/react-better-auth/generated/template-paths.d.ts.map +0 -1
  439. package/dist/better-auth/generators/react/react-better-auth/generated/template-paths.js.map +0 -1
  440. package/dist/better-auth/generators/react/react-better-auth/generated/template-renderers.d.ts.map +0 -1
  441. package/dist/better-auth/generators/react/react-better-auth/generated/template-renderers.js.map +0 -1
  442. package/dist/better-auth/generators/react/react-better-auth/generated/ts-import-providers.d.ts.map +0 -1
  443. package/dist/better-auth/generators/react/react-better-auth/generated/ts-import-providers.js.map +0 -1
  444. package/dist/better-auth/generators/react/react-better-auth/generated/typed-templates.d.ts.map +0 -1
  445. package/dist/better-auth/generators/react/react-better-auth/generated/typed-templates.js.map +0 -1
  446. package/dist/better-auth/generators/react/react-better-auth/index.d.ts.map +0 -1
  447. package/dist/better-auth/generators/react/react-better-auth/index.js.map +0 -1
  448. package/dist/better-auth/generators/react/react-better-auth/react-better-auth.generator.d.ts.map +0 -1
  449. package/dist/better-auth/generators/react/react-better-auth/react-better-auth.generator.js.map +0 -1
  450. package/dist/better-auth/index.d.ts.map +0 -1
  451. package/dist/better-auth/index.js.map +0 -1
  452. package/dist/common/components/auth-config-tabs.d.ts.map +0 -1
  453. package/dist/common/components/auth-config-tabs.js.map +0 -1
  454. package/dist/local-auth/admin/common.d.ts.map +0 -1
  455. package/dist/local-auth/admin/common.js.map +0 -1
  456. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/admin-crud-manage-roles-action.generator.d.ts.map +0 -1
  457. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/admin-crud-manage-roles-action.generator.js.map +0 -1
  458. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/index.d.ts.map +0 -1
  459. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/index.js.map +0 -1
  460. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/template-paths.d.ts.map +0 -1
  461. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/template-paths.js.map +0 -1
  462. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/template-renderers.d.ts.map +0 -1
  463. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/template-renderers.js.map +0 -1
  464. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/typed-templates.d.ts.map +0 -1
  465. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/generated/typed-templates.js.map +0 -1
  466. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/index.d.ts.map +0 -1
  467. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/index.js.map +0 -1
  468. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.d.ts.map +0 -1
  469. package/dist/local-auth/admin/generators/admin-crud-manage-roles-action/templates/routes/-components/role-manager-dialog.js.map +0 -1
  470. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/admin-crud-reset-password-action.generator.d.ts.map +0 -1
  471. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/admin-crud-reset-password-action.generator.js.map +0 -1
  472. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/index.d.ts.map +0 -1
  473. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/index.js.map +0 -1
  474. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/template-paths.d.ts.map +0 -1
  475. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/template-paths.js.map +0 -1
  476. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/template-renderers.d.ts.map +0 -1
  477. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/template-renderers.js.map +0 -1
  478. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/typed-templates.d.ts.map +0 -1
  479. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/generated/typed-templates.js.map +0 -1
  480. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/index.d.ts.map +0 -1
  481. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/index.js.map +0 -1
  482. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.d.ts.map +0 -1
  483. package/dist/local-auth/admin/generators/admin-crud-reset-password-action/templates/routes/-components/password-reset-dialog.js.map +0 -1
  484. package/dist/local-auth/admin/generators/admin-crud-roles-column/admin-crud-roles-column.generator.d.ts.map +0 -1
  485. package/dist/local-auth/admin/generators/admin-crud-roles-column/admin-crud-roles-column.generator.js.map +0 -1
  486. package/dist/local-auth/admin/generators/admin-crud-roles-column/index.d.ts.map +0 -1
  487. package/dist/local-auth/admin/generators/admin-crud-roles-column/index.js.map +0 -1
  488. package/dist/local-auth/admin/node.d.ts.map +0 -1
  489. package/dist/local-auth/admin/node.js.map +0 -1
  490. package/dist/local-auth/admin/schema/manage-role-action.d.ts.map +0 -1
  491. package/dist/local-auth/admin/schema/manage-role-action.js.map +0 -1
  492. package/dist/local-auth/admin/schema/reset-password-action.d.ts.map +0 -1
  493. package/dist/local-auth/admin/schema/reset-password-action.js.map +0 -1
  494. package/dist/local-auth/admin/schema/roles-column.d.ts.map +0 -1
  495. package/dist/local-auth/admin/schema/roles-column.js.map +0 -1
  496. package/dist/local-auth/admin/web.d.ts.map +0 -1
  497. package/dist/local-auth/admin/web.js.map +0 -1
  498. package/dist/local-auth/constants/model-names.d.ts.map +0 -1
  499. package/dist/local-auth/constants/model-names.js.map +0 -1
  500. package/dist/local-auth/core/common.d.ts.map +0 -1
  501. package/dist/local-auth/core/common.js.map +0 -1
  502. package/dist/local-auth/core/components/local-auth-definition-editor.d.ts.map +0 -1
  503. package/dist/local-auth/core/components/local-auth-definition-editor.js.map +0 -1
  504. package/dist/local-auth/core/generators/auth-apollo/auth-apollo.generator.d.ts.map +0 -1
  505. package/dist/local-auth/core/generators/auth-apollo/auth-apollo.generator.js.map +0 -1
  506. package/dist/local-auth/core/generators/auth-apollo/index.d.ts.map +0 -1
  507. package/dist/local-auth/core/generators/auth-apollo/index.js.map +0 -1
  508. package/dist/local-auth/core/generators/auth-apollo/templates/session-error-link.d.ts.map +0 -1
  509. package/dist/local-auth/core/generators/auth-apollo/templates/session-error-link.js.map +0 -1
  510. package/dist/local-auth/core/generators/auth-email-password/auth-email-password.generator.d.ts.map +0 -1
  511. package/dist/local-auth/core/generators/auth-email-password/auth-email-password.generator.js.map +0 -1
  512. package/dist/local-auth/core/generators/auth-email-password/generated/index.d.ts.map +0 -1
  513. package/dist/local-auth/core/generators/auth-email-password/generated/index.js.map +0 -1
  514. package/dist/local-auth/core/generators/auth-email-password/generated/template-paths.d.ts.map +0 -1
  515. package/dist/local-auth/core/generators/auth-email-password/generated/template-paths.js.map +0 -1
  516. package/dist/local-auth/core/generators/auth-email-password/generated/template-renderers.d.ts.map +0 -1
  517. package/dist/local-auth/core/generators/auth-email-password/generated/template-renderers.js.map +0 -1
  518. package/dist/local-auth/core/generators/auth-email-password/generated/ts-import-providers.d.ts.map +0 -1
  519. package/dist/local-auth/core/generators/auth-email-password/generated/ts-import-providers.js.map +0 -1
  520. package/dist/local-auth/core/generators/auth-email-password/generated/typed-templates.d.ts.map +0 -1
  521. package/dist/local-auth/core/generators/auth-email-password/generated/typed-templates.js.map +0 -1
  522. package/dist/local-auth/core/generators/auth-email-password/index.d.ts.map +0 -1
  523. package/dist/local-auth/core/generators/auth-email-password/index.js.map +0 -1
  524. package/dist/local-auth/core/generators/auth-email-password/templates/module/constants/password.constants.d.ts.map +0 -1
  525. package/dist/local-auth/core/generators/auth-email-password/templates/module/constants/password.constants.js.map +0 -1
  526. package/dist/local-auth/core/generators/auth-email-password/templates/module/schema/email-verification.mutations.d.ts.map +0 -1
  527. package/dist/local-auth/core/generators/auth-email-password/templates/module/schema/email-verification.mutations.js.map +0 -1
  528. package/dist/local-auth/core/generators/auth-email-password/templates/module/schema/password-reset.mutations.d.ts.map +0 -1
  529. package/dist/local-auth/core/generators/auth-email-password/templates/module/schema/password-reset.mutations.js.map +0 -1
  530. package/dist/local-auth/core/generators/auth-email-password/templates/module/schema/user-password.mutations.d.ts.map +0 -1
  531. package/dist/local-auth/core/generators/auth-email-password/templates/module/schema/user-password.mutations.js.map +0 -1
  532. package/dist/local-auth/core/generators/auth-email-password/templates/module/services/email-verification.service.d.ts.map +0 -1
  533. package/dist/local-auth/core/generators/auth-email-password/templates/module/services/email-verification.service.js.map +0 -1
  534. package/dist/local-auth/core/generators/auth-email-password/templates/module/services/password-reset.service.d.ts.map +0 -1
  535. package/dist/local-auth/core/generators/auth-email-password/templates/module/services/password-reset.service.js.map +0 -1
  536. package/dist/local-auth/core/generators/auth-email-password/templates/module/services/user-password.service.d.ts.map +0 -1
  537. package/dist/local-auth/core/generators/auth-email-password/templates/module/services/user-password.service.js.map +0 -1
  538. package/dist/local-auth/core/generators/auth-email-templates/auth-email-templates.generator.d.ts.map +0 -1
  539. package/dist/local-auth/core/generators/auth-email-templates/auth-email-templates.generator.js.map +0 -1
  540. package/dist/local-auth/core/generators/auth-email-templates/generated/index.d.ts.map +0 -1
  541. package/dist/local-auth/core/generators/auth-email-templates/generated/index.js.map +0 -1
  542. package/dist/local-auth/core/generators/auth-email-templates/generated/template-paths.d.ts.map +0 -1
  543. package/dist/local-auth/core/generators/auth-email-templates/generated/template-paths.js.map +0 -1
  544. package/dist/local-auth/core/generators/auth-email-templates/generated/template-renderers.d.ts.map +0 -1
  545. package/dist/local-auth/core/generators/auth-email-templates/generated/template-renderers.js.map +0 -1
  546. package/dist/local-auth/core/generators/auth-email-templates/generated/typed-templates.d.ts.map +0 -1
  547. package/dist/local-auth/core/generators/auth-email-templates/generated/typed-templates.js.map +0 -1
  548. package/dist/local-auth/core/generators/auth-email-templates/index.d.ts.map +0 -1
  549. package/dist/local-auth/core/generators/auth-email-templates/index.js.map +0 -1
  550. package/dist/local-auth/core/generators/auth-email-templates/templates/src/emails/auth/account-verification.email.d.ts.map +0 -1
  551. package/dist/local-auth/core/generators/auth-email-templates/templates/src/emails/auth/account-verification.email.js.map +0 -1
  552. package/dist/local-auth/core/generators/auth-email-templates/templates/src/emails/auth/password-changed.email.d.ts.map +0 -1
  553. package/dist/local-auth/core/generators/auth-email-templates/templates/src/emails/auth/password-changed.email.js.map +0 -1
  554. package/dist/local-auth/core/generators/auth-email-templates/templates/src/emails/auth/password-reset.email.d.ts.map +0 -1
  555. package/dist/local-auth/core/generators/auth-email-templates/templates/src/emails/auth/password-reset.email.js.map +0 -1
  556. package/dist/local-auth/core/generators/auth-hooks/auth-hooks.generator.d.ts.map +0 -1
  557. package/dist/local-auth/core/generators/auth-hooks/auth-hooks.generator.js.map +0 -1
  558. package/dist/local-auth/core/generators/auth-hooks/generated/index.d.ts.map +0 -1
  559. package/dist/local-auth/core/generators/auth-hooks/generated/index.js.map +0 -1
  560. package/dist/local-auth/core/generators/auth-hooks/generated/template-paths.d.ts.map +0 -1
  561. package/dist/local-auth/core/generators/auth-hooks/generated/template-paths.js.map +0 -1
  562. package/dist/local-auth/core/generators/auth-hooks/generated/template-renderers.d.ts.map +0 -1
  563. package/dist/local-auth/core/generators/auth-hooks/generated/template-renderers.js.map +0 -1
  564. package/dist/local-auth/core/generators/auth-hooks/generated/ts-import-providers.d.ts.map +0 -1
  565. package/dist/local-auth/core/generators/auth-hooks/generated/ts-import-providers.js.map +0 -1
  566. package/dist/local-auth/core/generators/auth-hooks/generated/typed-templates.d.ts.map +0 -1
  567. package/dist/local-auth/core/generators/auth-hooks/generated/typed-templates.js.map +0 -1
  568. package/dist/local-auth/core/generators/auth-hooks/index.d.ts.map +0 -1
  569. package/dist/local-auth/core/generators/auth-hooks/index.js.map +0 -1
  570. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-log-out.d.ts.map +0 -1
  571. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-log-out.js.map +0 -1
  572. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-session.d.ts.map +0 -1
  573. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-session.js.map +0 -1
  574. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-user-id-or-throw.d.ts.map +0 -1
  575. package/dist/local-auth/core/generators/auth-hooks/templates/src/hooks/use-user-id-or-throw.js.map +0 -1
  576. package/dist/local-auth/core/generators/auth-module/auth-module.generator.d.ts.map +0 -1
  577. package/dist/local-auth/core/generators/auth-module/auth-module.generator.js.map +0 -1
  578. package/dist/local-auth/core/generators/auth-module/generated/index.d.ts.map +0 -1
  579. package/dist/local-auth/core/generators/auth-module/generated/index.js.map +0 -1
  580. package/dist/local-auth/core/generators/auth-module/generated/template-paths.d.ts.map +0 -1
  581. package/dist/local-auth/core/generators/auth-module/generated/template-paths.js.map +0 -1
  582. package/dist/local-auth/core/generators/auth-module/generated/template-renderers.d.ts.map +0 -1
  583. package/dist/local-auth/core/generators/auth-module/generated/template-renderers.js.map +0 -1
  584. package/dist/local-auth/core/generators/auth-module/generated/ts-import-providers.d.ts.map +0 -1
  585. package/dist/local-auth/core/generators/auth-module/generated/ts-import-providers.js.map +0 -1
  586. package/dist/local-auth/core/generators/auth-module/generated/typed-templates.d.ts.map +0 -1
  587. package/dist/local-auth/core/generators/auth-module/generated/typed-templates.js.map +0 -1
  588. package/dist/local-auth/core/generators/auth-module/index.d.ts.map +0 -1
  589. package/dist/local-auth/core/generators/auth-module/index.js.map +0 -1
  590. package/dist/local-auth/core/generators/auth-module/templates/module/constants/user-session.constants.d.ts.map +0 -1
  591. package/dist/local-auth/core/generators/auth-module/templates/module/constants/user-session.constants.js.map +0 -1
  592. package/dist/local-auth/core/generators/auth-module/templates/module/queues/cleanup-auth-verification.queue.d.ts.map +0 -1
  593. package/dist/local-auth/core/generators/auth-module/templates/module/queues/cleanup-auth-verification.queue.js.map +0 -1
  594. package/dist/local-auth/core/generators/auth-module/templates/module/schema/auth-role.enum.d.ts.map +0 -1
  595. package/dist/local-auth/core/generators/auth-module/templates/module/schema/auth-role.enum.js.map +0 -1
  596. package/dist/local-auth/core/generators/auth-module/templates/module/schema/user-roles.mutations.d.ts.map +0 -1
  597. package/dist/local-auth/core/generators/auth-module/templates/module/schema/user-roles.mutations.js.map +0 -1
  598. package/dist/local-auth/core/generators/auth-module/templates/module/schema/user-session-payload.object-type.d.ts.map +0 -1
  599. package/dist/local-auth/core/generators/auth-module/templates/module/schema/user-session-payload.object-type.js.map +0 -1
  600. package/dist/local-auth/core/generators/auth-module/templates/module/schema/user-session.mutations.d.ts.map +0 -1
  601. package/dist/local-auth/core/generators/auth-module/templates/module/schema/user-session.mutations.js.map +0 -1
  602. package/dist/local-auth/core/generators/auth-module/templates/module/schema/user-session.queries.d.ts.map +0 -1
  603. package/dist/local-auth/core/generators/auth-module/templates/module/schema/user-session.queries.js.map +0 -1
  604. package/dist/local-auth/core/generators/auth-module/templates/module/services/auth-verification.service.d.ts.map +0 -1
  605. package/dist/local-auth/core/generators/auth-module/templates/module/services/auth-verification.service.js.map +0 -1
  606. package/dist/local-auth/core/generators/auth-module/templates/module/services/user-roles.service.d.ts.map +0 -1
  607. package/dist/local-auth/core/generators/auth-module/templates/module/services/user-roles.service.js.map +0 -1
  608. package/dist/local-auth/core/generators/auth-module/templates/module/services/user-session.service.d.ts.map +0 -1
  609. package/dist/local-auth/core/generators/auth-module/templates/module/services/user-session.service.js.map +0 -1
  610. package/dist/local-auth/core/generators/auth-module/templates/module/utils/cookie-signer.d.ts.map +0 -1
  611. package/dist/local-auth/core/generators/auth-module/templates/module/utils/cookie-signer.js.map +0 -1
  612. package/dist/local-auth/core/generators/auth-module/templates/module/utils/session-cookie.d.ts.map +0 -1
  613. package/dist/local-auth/core/generators/auth-module/templates/module/utils/session-cookie.js.map +0 -1
  614. package/dist/local-auth/core/generators/auth-module/templates/module/utils/verify-request-origin.d.ts.map +0 -1
  615. package/dist/local-auth/core/generators/auth-module/templates/module/utils/verify-request-origin.js.map +0 -1
  616. package/dist/local-auth/core/generators/auth-routes/auth-routes.generator.d.ts.map +0 -1
  617. package/dist/local-auth/core/generators/auth-routes/auth-routes.generator.js.map +0 -1
  618. package/dist/local-auth/core/generators/auth-routes/generated/index.d.ts.map +0 -1
  619. package/dist/local-auth/core/generators/auth-routes/generated/index.js.map +0 -1
  620. package/dist/local-auth/core/generators/auth-routes/generated/template-paths.d.ts.map +0 -1
  621. package/dist/local-auth/core/generators/auth-routes/generated/template-paths.js.map +0 -1
  622. package/dist/local-auth/core/generators/auth-routes/generated/template-renderers.d.ts.map +0 -1
  623. package/dist/local-auth/core/generators/auth-routes/generated/template-renderers.js.map +0 -1
  624. package/dist/local-auth/core/generators/auth-routes/generated/ts-import-providers.d.ts.map +0 -1
  625. package/dist/local-auth/core/generators/auth-routes/generated/ts-import-providers.js.map +0 -1
  626. package/dist/local-auth/core/generators/auth-routes/generated/typed-templates.d.ts.map +0 -1
  627. package/dist/local-auth/core/generators/auth-routes/generated/typed-templates.js.map +0 -1
  628. package/dist/local-auth/core/generators/auth-routes/index.d.ts.map +0 -1
  629. package/dist/local-auth/core/generators/auth-routes/index.js.map +0 -1
  630. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/-constants.d.ts.map +0 -1
  631. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/-constants.js.map +0 -1
  632. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/forgot-password.d.ts.map +0 -1
  633. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/forgot-password.js.map +0 -1
  634. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/login.d.ts.map +0 -1
  635. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/login.js.map +0 -1
  636. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/register.d.ts.map +0 -1
  637. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/register.js.map +0 -1
  638. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/reset-password.d.ts.map +0 -1
  639. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/reset-password.js.map +0 -1
  640. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/route.d.ts.map +0 -1
  641. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/route.js.map +0 -1
  642. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/verify-email.d.ts.map +0 -1
  643. package/dist/local-auth/core/generators/auth-routes/templates/routes/auth_/verify-email.js.map +0 -1
  644. package/dist/local-auth/core/generators/index.d.ts.map +0 -1
  645. package/dist/local-auth/core/generators/index.js.map +0 -1
  646. package/dist/local-auth/core/generators/react-auth/index.d.ts.map +0 -1
  647. package/dist/local-auth/core/generators/react-auth/index.js.map +0 -1
  648. package/dist/local-auth/core/generators/react-auth/react-auth.generator.d.ts.map +0 -1
  649. package/dist/local-auth/core/generators/react-auth/react-auth.generator.js.map +0 -1
  650. package/dist/local-auth/core/generators/react-session/generated/index.d.ts.map +0 -1
  651. package/dist/local-auth/core/generators/react-session/generated/index.js.map +0 -1
  652. package/dist/local-auth/core/generators/react-session/generated/template-paths.d.ts.map +0 -1
  653. package/dist/local-auth/core/generators/react-session/generated/template-paths.js.map +0 -1
  654. package/dist/local-auth/core/generators/react-session/generated/template-renderers.d.ts.map +0 -1
  655. package/dist/local-auth/core/generators/react-session/generated/template-renderers.js.map +0 -1
  656. package/dist/local-auth/core/generators/react-session/generated/ts-import-providers.d.ts.map +0 -1
  657. package/dist/local-auth/core/generators/react-session/generated/ts-import-providers.js.map +0 -1
  658. package/dist/local-auth/core/generators/react-session/generated/typed-templates.d.ts.map +0 -1
  659. package/dist/local-auth/core/generators/react-session/generated/typed-templates.js.map +0 -1
  660. package/dist/local-auth/core/generators/react-session/index.d.ts.map +0 -1
  661. package/dist/local-auth/core/generators/react-session/index.js.map +0 -1
  662. package/dist/local-auth/core/generators/react-session/react-session.generator.d.ts.map +0 -1
  663. package/dist/local-auth/core/generators/react-session/react-session.generator.js.map +0 -1
  664. package/dist/local-auth/core/generators/react-session/templates/src/app/user-session-provider.d.ts.map +0 -1
  665. package/dist/local-auth/core/generators/react-session/templates/src/app/user-session-provider.js.map +0 -1
  666. package/dist/local-auth/core/generators/react-session/templates/src/services/user-session-client.d.ts.map +0 -1
  667. package/dist/local-auth/core/generators/react-session/templates/src/services/user-session-client.js.map +0 -1
  668. package/dist/local-auth/core/generators/seed-initial-user/generated/index.d.ts.map +0 -1
  669. package/dist/local-auth/core/generators/seed-initial-user/generated/index.js.map +0 -1
  670. package/dist/local-auth/core/generators/seed-initial-user/generated/template-paths.d.ts.map +0 -1
  671. package/dist/local-auth/core/generators/seed-initial-user/generated/template-paths.js.map +0 -1
  672. package/dist/local-auth/core/generators/seed-initial-user/generated/template-renderers.d.ts.map +0 -1
  673. package/dist/local-auth/core/generators/seed-initial-user/generated/template-renderers.js.map +0 -1
  674. package/dist/local-auth/core/generators/seed-initial-user/generated/ts-import-providers.d.ts +0 -18
  675. package/dist/local-auth/core/generators/seed-initial-user/generated/ts-import-providers.d.ts.map +0 -1
  676. package/dist/local-auth/core/generators/seed-initial-user/generated/ts-import-providers.js +0 -26
  677. package/dist/local-auth/core/generators/seed-initial-user/generated/ts-import-providers.js.map +0 -1
  678. package/dist/local-auth/core/generators/seed-initial-user/generated/typed-templates.d.ts.map +0 -1
  679. package/dist/local-auth/core/generators/seed-initial-user/generated/typed-templates.js.map +0 -1
  680. package/dist/local-auth/core/generators/seed-initial-user/index.d.ts.map +0 -1
  681. package/dist/local-auth/core/generators/seed-initial-user/index.js.map +0 -1
  682. package/dist/local-auth/core/generators/seed-initial-user/seed-initial-user.generator.d.ts.map +0 -1
  683. package/dist/local-auth/core/generators/seed-initial-user/seed-initial-user.generator.js.map +0 -1
  684. package/dist/local-auth/core/generators/seed-initial-user/templates/src/prisma/seed-initial-user.d.ts.map +0 -1
  685. package/dist/local-auth/core/generators/seed-initial-user/templates/src/prisma/seed-initial-user.js.map +0 -1
  686. package/dist/local-auth/core/index.d.ts.map +0 -1
  687. package/dist/local-auth/core/index.js.map +0 -1
  688. package/dist/local-auth/core/node.d.ts.map +0 -1
  689. package/dist/local-auth/core/node.js.map +0 -1
  690. package/dist/local-auth/core/schema/models.d.ts.map +0 -1
  691. package/dist/local-auth/core/schema/models.js.map +0 -1
  692. package/dist/local-auth/core/schema/plugin-definition.d.ts.map +0 -1
  693. package/dist/local-auth/core/schema/plugin-definition.js.map +0 -1
  694. package/dist/local-auth/core/web.d.ts.map +0 -1
  695. package/dist/local-auth/core/web.js.map +0 -1
  696. package/dist/local-auth/index.d.ts.map +0 -1
  697. package/dist/local-auth/index.js.map +0 -1
  698. package/dist/placeholder-auth/constants/model-names.d.ts.map +0 -1
  699. package/dist/placeholder-auth/constants/model-names.js.map +0 -1
  700. package/dist/placeholder-auth/core/common.d.ts.map +0 -1
  701. package/dist/placeholder-auth/core/common.js.map +0 -1
  702. package/dist/placeholder-auth/core/components/placeholder-auth-definition-editor.d.ts.map +0 -1
  703. package/dist/placeholder-auth/core/components/placeholder-auth-definition-editor.js.map +0 -1
  704. package/dist/placeholder-auth/core/generators/index.d.ts.map +0 -1
  705. package/dist/placeholder-auth/core/generators/index.js.map +0 -1
  706. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/index.d.ts.map +0 -1
  707. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/index.js.map +0 -1
  708. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/template-paths.d.ts.map +0 -1
  709. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/template-paths.js.map +0 -1
  710. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/template-renderers.d.ts.map +0 -1
  711. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/template-renderers.js.map +0 -1
  712. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/ts-import-providers.d.ts.map +0 -1
  713. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/ts-import-providers.js.map +0 -1
  714. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/typed-templates.d.ts.map +0 -1
  715. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/generated/typed-templates.js.map +0 -1
  716. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/index.d.ts.map +0 -1
  717. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/index.js.map +0 -1
  718. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/placeholder-auth-hooks.generator.d.ts.map +0 -1
  719. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/placeholder-auth-hooks.generator.js.map +0 -1
  720. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/templates/src/hooks/use-log-out.d.ts.map +0 -1
  721. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/templates/src/hooks/use-log-out.js.map +0 -1
  722. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/templates/src/hooks/use-session.d.ts.map +0 -1
  723. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/templates/src/hooks/use-session.js.map +0 -1
  724. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/templates/src/hooks/use-user-id-or-throw.d.ts.map +0 -1
  725. package/dist/placeholder-auth/core/generators/placeholder-auth-hooks/templates/src/hooks/use-user-id-or-throw.js.map +0 -1
  726. package/dist/placeholder-auth/core/generators/placeholder-auth-module/auth-module.generator.d.ts.map +0 -1
  727. package/dist/placeholder-auth/core/generators/placeholder-auth-module/auth-module.generator.js.map +0 -1
  728. package/dist/placeholder-auth/core/generators/placeholder-auth-module/generated/index.d.ts.map +0 -1
  729. package/dist/placeholder-auth/core/generators/placeholder-auth-module/generated/index.js.map +0 -1
  730. package/dist/placeholder-auth/core/generators/placeholder-auth-module/generated/template-paths.d.ts.map +0 -1
  731. package/dist/placeholder-auth/core/generators/placeholder-auth-module/generated/template-paths.js.map +0 -1
  732. package/dist/placeholder-auth/core/generators/placeholder-auth-module/generated/template-renderers.d.ts.map +0 -1
  733. package/dist/placeholder-auth/core/generators/placeholder-auth-module/generated/template-renderers.js.map +0 -1
  734. package/dist/placeholder-auth/core/generators/placeholder-auth-module/generated/ts-import-providers.d.ts.map +0 -1
  735. package/dist/placeholder-auth/core/generators/placeholder-auth-module/generated/ts-import-providers.js.map +0 -1
  736. package/dist/placeholder-auth/core/generators/placeholder-auth-module/generated/typed-templates.d.ts.map +0 -1
  737. package/dist/placeholder-auth/core/generators/placeholder-auth-module/generated/typed-templates.js.map +0 -1
  738. package/dist/placeholder-auth/core/generators/placeholder-auth-module/index.d.ts.map +0 -1
  739. package/dist/placeholder-auth/core/generators/placeholder-auth-module/index.js.map +0 -1
  740. package/dist/placeholder-auth/core/generators/placeholder-auth-module/templates/module/services/user-session.service.d.ts.map +0 -1
  741. package/dist/placeholder-auth/core/generators/placeholder-auth-module/templates/module/services/user-session.service.js.map +0 -1
  742. package/dist/placeholder-auth/core/generators/placeholder-react-auth/index.d.ts.map +0 -1
  743. package/dist/placeholder-auth/core/generators/placeholder-react-auth/index.js.map +0 -1
  744. package/dist/placeholder-auth/core/generators/placeholder-react-auth/react-auth.generator.d.ts.map +0 -1
  745. package/dist/placeholder-auth/core/generators/placeholder-react-auth/react-auth.generator.js.map +0 -1
  746. package/dist/placeholder-auth/core/index.d.ts.map +0 -1
  747. package/dist/placeholder-auth/core/index.js.map +0 -1
  748. package/dist/placeholder-auth/core/node.d.ts.map +0 -1
  749. package/dist/placeholder-auth/core/node.js.map +0 -1
  750. package/dist/placeholder-auth/core/schema/models.d.ts.map +0 -1
  751. package/dist/placeholder-auth/core/schema/models.js.map +0 -1
  752. package/dist/placeholder-auth/core/schema/plugin-definition.d.ts.map +0 -1
  753. package/dist/placeholder-auth/core/schema/plugin-definition.js.map +0 -1
  754. package/dist/placeholder-auth/core/web.d.ts.map +0 -1
  755. package/dist/placeholder-auth/core/web.js.map +0 -1
  756. package/dist/placeholder-auth/index.d.ts.map +0 -1
  757. package/dist/placeholder-auth/index.js.map +0 -1
  758. package/dist/web/assets/__federation_expose_authCoreCommon-CnNoa4tF.js +0 -30
  759. package/dist/web/assets/__federation_expose_authCoreCommon-CnNoa4tF.js.map +0 -1
  760. package/dist/web/assets/__federation_expose_authCoreWeb-BL_U7yuj.js +0 -433
  761. package/dist/web/assets/__federation_expose_authCoreWeb-BL_U7yuj.js.map +0 -1
  762. package/dist/web/assets/__federation_expose_better-authCoreCommon-D-mTcxYO.js +0 -20
  763. package/dist/web/assets/__federation_expose_better-authCoreCommon-D-mTcxYO.js.map +0 -1
  764. package/dist/web/assets/__federation_expose_better-authCoreWeb-CXHL-Ghf.js +0 -402
  765. package/dist/web/assets/__federation_expose_better-authCoreWeb-CXHL-Ghf.js.map +0 -1
  766. package/dist/web/assets/__federation_expose_local-authAdminCommon-LIsARRNU.js +0 -63
  767. package/dist/web/assets/__federation_expose_local-authAdminCommon-LIsARRNU.js.map +0 -1
  768. package/dist/web/assets/__federation_expose_local-authAdminWeb-DyYUDLm9.js +0 -41
  769. package/dist/web/assets/__federation_expose_local-authAdminWeb-DyYUDLm9.js.map +0 -1
  770. package/dist/web/assets/__federation_expose_local-authCoreCommon-p_UbExc7.js +0 -21
  771. package/dist/web/assets/__federation_expose_local-authCoreCommon-p_UbExc7.js.map +0 -1
  772. package/dist/web/assets/__federation_expose_local-authCoreWeb-8TcUJFT6.js +0 -432
  773. package/dist/web/assets/__federation_expose_local-authCoreWeb-8TcUJFT6.js.map +0 -1
  774. package/dist/web/assets/__federation_expose_placeholder-authCoreCommon-CtZXaDUc.js +0 -23
  775. package/dist/web/assets/__federation_expose_placeholder-authCoreCommon-CtZXaDUc.js.map +0 -1
  776. package/dist/web/assets/__federation_expose_placeholder-authCoreWeb-CZAKokTb.js +0 -162
  777. package/dist/web/assets/__federation_expose_placeholder-authCoreWeb-CZAKokTb.js.map +0 -1
  778. package/dist/web/assets/__federation_fn_import-3DENgil8.js +0 -421
  779. package/dist/web/assets/__federation_fn_import-3DENgil8.js.map +0 -1
  780. package/dist/web/assets/__federation_shared_@baseplate-dev/project-builder-lib/web-B5bdbzFj.js +0 -357
  781. package/dist/web/assets/__federation_shared_@baseplate-dev/project-builder-lib/web-B5bdbzFj.js.map +0 -1
  782. package/dist/web/assets/__federation_shared_@baseplate-dev/project-builder-lib-DCA3vO4J.js +0 -21478
  783. package/dist/web/assets/__federation_shared_@baseplate-dev/project-builder-lib-DCA3vO4J.js.map +0 -1
  784. package/dist/web/assets/__federation_shared_@baseplate-dev/ui-components-BvL7RO9S.js +0 -73599
  785. package/dist/web/assets/__federation_shared_@baseplate-dev/ui-components-BvL7RO9S.js.map +0 -1
  786. package/dist/web/assets/__federation_shared_@baseplate-dev/utils-0-N5BG4T.js +0 -1822
  787. package/dist/web/assets/__federation_shared_@baseplate-dev/utils-0-N5BG4T.js.map +0 -1
  788. package/dist/web/assets/__federation_shared_@tanstack/react-router-DSniiJ6U.js +0 -6565
  789. package/dist/web/assets/__federation_shared_@tanstack/react-router-DSniiJ6U.js.map +0 -1
  790. package/dist/web/assets/__federation_shared_react-CJ2OfFKA.js +0 -8
  791. package/dist/web/assets/__federation_shared_react-CJ2OfFKA.js.map +0 -1
  792. package/dist/web/assets/__federation_shared_react-dom-B4vgf5Ln.js +0 -251
  793. package/dist/web/assets/__federation_shared_react-dom-B4vgf5Ln.js.map +0 -1
  794. package/dist/web/assets/__federation_shared_zod-Do7Aa1b5.js +0 -13250
  795. package/dist/web/assets/__federation_shared_zod-Do7Aa1b5.js.map +0 -1
  796. package/dist/web/assets/_commonjsHelpers-B85MJLTf.js +0 -6
  797. package/dist/web/assets/_commonjsHelpers-B85MJLTf.js.map +0 -1
  798. package/dist/web/assets/get-auth-plugin-definition-DHcbFujw.js +0 -13
  799. package/dist/web/assets/get-auth-plugin-definition-DHcbFujw.js.map +0 -1
  800. package/dist/web/assets/index-DQKNnI1w.js +0 -103
  801. package/dist/web/assets/index-DQKNnI1w.js.map +0 -1
  802. package/dist/web/assets/index-DUwCgkeV.js +0 -570
  803. package/dist/web/assets/index-DUwCgkeV.js.map +0 -1
  804. package/dist/web/assets/index-l0sNRNKZ.js.map +0 -1
  805. package/dist/web/assets/index.esm-Dpqxgpya.js +0 -2676
  806. package/dist/web/assets/index.esm-Dpqxgpya.js.map +0 -1
  807. package/dist/web/assets/isEqual-tnzoadW8.js +0 -242
  808. package/dist/web/assets/isEqual-tnzoadW8.js.map +0 -1
  809. package/dist/web/assets/jsx-runtime-XI9uIe3W.js +0 -60
  810. package/dist/web/assets/jsx-runtime-XI9uIe3W.js.map +0 -1
  811. package/dist/web/assets/mergeWith-VagwCqUi.js +0 -76
  812. package/dist/web/assets/mergeWith-VagwCqUi.js.map +0 -1
  813. package/dist/web/assets/model-names-DrcaRxt1.js +0 -25
  814. package/dist/web/assets/model-names-DrcaRxt1.js.map +0 -1
  815. package/dist/web/assets/model-utils-BFX3c3dn.js +0 -694
  816. package/dist/web/assets/model-utils-BFX3c3dn.js.map +0 -1
  817. package/dist/web/assets/plugin-definition-B86WQ7Ni.js +0 -79
  818. package/dist/web/assets/plugin-definition-B86WQ7Ni.js.map +0 -1
  819. package/dist/web/assets/plugin-definition-CEQb6mWV.js +0 -20
  820. package/dist/web/assets/plugin-definition-CEQb6mWV.js.map +0 -1
  821. package/dist/web/assets/plugin-definition-DrsKbcJc.js +0 -31
  822. package/dist/web/assets/plugin-definition-DrsKbcJc.js.map +0 -1
  823. package/dist/web/assets/plugin-definition-KEpaSB6p.js +0 -16
  824. package/dist/web/assets/plugin-definition-KEpaSB6p.js.map +0 -1
  825. package/dist/web/assets/react-hu8Hx0R4.js +0 -47
  826. package/dist/web/assets/react-hu8Hx0R4.js.map +0 -1
  827. package/dist/web/assets/registries-Tz_dluz3.js +0 -1119
  828. package/dist/web/assets/registries-Tz_dluz3.js.map +0 -1
  829. package/dist/web/assets/remoteEntry.js +0 -78
  830. package/dist/web/assets/remoteEntry.js.map +0 -1
  831. package/dist/web/assets/styles-CpKtlIgU.js +0 -69
  832. package/dist/web/assets/styles-CpKtlIgU.js.map +0 -1
  833. package/dist/web/assets/with-selector-DTXBONcE.js +0 -201
  834. package/dist/web/assets/with-selector-DTXBONcE.js.map +0 -1
@@ -1,2676 +0,0 @@
1
- import { importShared } from './__federation_fn_import-3DENgil8.js';
2
-
3
- const React = await importShared('react');
4
-
5
-
6
- var isCheckBoxInput = (element) => element.type === 'checkbox';
7
-
8
- var isDateObject = (value) => value instanceof Date;
9
-
10
- var isNullOrUndefined = (value) => value == null;
11
-
12
- const isObjectType = (value) => typeof value === 'object';
13
- var isObject = (value) => !isNullOrUndefined(value) &&
14
- !Array.isArray(value) &&
15
- isObjectType(value) &&
16
- !isDateObject(value);
17
-
18
- var getEventValue = (event) => isObject(event) && event.target
19
- ? isCheckBoxInput(event.target)
20
- ? event.target.checked
21
- : event.target.value
22
- : event;
23
-
24
- var getNodeParentName = (name) => name.substring(0, name.search(/\.\d+(\.|$)/)) || name;
25
-
26
- var isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));
27
-
28
- var isPlainObject = (tempObject) => {
29
- const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;
30
- return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));
31
- };
32
-
33
- var isWeb = typeof window !== 'undefined' &&
34
- typeof window.HTMLElement !== 'undefined' &&
35
- typeof document !== 'undefined';
36
-
37
- function cloneObject(data) {
38
- if (data instanceof Date) {
39
- return new Date(data);
40
- }
41
- const isFileListInstance = typeof FileList !== 'undefined' && data instanceof FileList;
42
- if (isWeb && (data instanceof Blob || isFileListInstance)) {
43
- return data;
44
- }
45
- const isArray = Array.isArray(data);
46
- if (!isArray && !(isObject(data) && isPlainObject(data))) {
47
- return data;
48
- }
49
- const copy = isArray ? [] : Object.create(Object.getPrototypeOf(data));
50
- for (const key in data) {
51
- if (Object.prototype.hasOwnProperty.call(data, key)) {
52
- copy[key] = cloneObject(data[key]);
53
- }
54
- }
55
- return copy;
56
- }
57
-
58
- var isKey = (value) => /^\w*$/.test(value);
59
-
60
- var isUndefined = (val) => val === undefined;
61
-
62
- var compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];
63
-
64
- var stringToPath = (input) => compact(input.replace(/["|']|\]/g, '').split(/\.|\[/));
65
-
66
- var get = (object, path, defaultValue) => {
67
- if (!path || !isObject(object)) {
68
- return defaultValue;
69
- }
70
- const result = (isKey(path) ? [path] : stringToPath(path)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);
71
- return isUndefined(result) || result === object
72
- ? isUndefined(object[path])
73
- ? defaultValue
74
- : object[path]
75
- : result;
76
- };
77
-
78
- var isBoolean = (value) => typeof value === 'boolean';
79
-
80
- var isFunction = (value) => typeof value === 'function';
81
-
82
- var set = (object, path, value) => {
83
- let index = -1;
84
- const tempPath = isKey(path) ? [path] : stringToPath(path);
85
- const length = tempPath.length;
86
- const lastIndex = length - 1;
87
- while (++index < length) {
88
- const key = tempPath[index];
89
- let newValue = value;
90
- if (index !== lastIndex) {
91
- const objValue = object[key];
92
- newValue =
93
- isObject(objValue) || Array.isArray(objValue)
94
- ? objValue
95
- : !isNaN(+tempPath[index + 1])
96
- ? []
97
- : {};
98
- }
99
- if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
100
- return;
101
- }
102
- object[key] = newValue;
103
- object = object[key];
104
- }
105
- };
106
-
107
- const EVENTS = {
108
- BLUR: 'blur',
109
- FOCUS_OUT: 'focusout',
110
- CHANGE: 'change',
111
- };
112
- const VALIDATION_MODE = {
113
- onBlur: 'onBlur',
114
- onChange: 'onChange',
115
- onSubmit: 'onSubmit',
116
- onTouched: 'onTouched',
117
- all: 'all',
118
- };
119
- const INPUT_VALIDATION_RULES = {
120
- max: 'max',
121
- min: 'min',
122
- maxLength: 'maxLength',
123
- minLength: 'minLength',
124
- pattern: 'pattern',
125
- required: 'required',
126
- validate: 'validate',
127
- };
128
-
129
- /**
130
- * Separate context for `control` to prevent unnecessary rerenders.
131
- * Internal hooks that only need control use this instead of full form context.
132
- */
133
- const HookFormControlContext = React.createContext(null);
134
- HookFormControlContext.displayName = 'HookFormControlContext';
135
- /**
136
- * @internal Internal hook to access only control from context.
137
- */
138
- const useFormControlContext = () => React.useContext(HookFormControlContext);
139
-
140
- var getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {
141
- const result = {
142
- defaultValues: control._defaultValues,
143
- };
144
- for (const key in formState) {
145
- Object.defineProperty(result, key, {
146
- get: () => {
147
- const _key = key;
148
- if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {
149
- control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;
150
- }
151
- localProxyFormState && (localProxyFormState[_key] = true);
152
- return formState[_key];
153
- },
154
- });
155
- }
156
- return result;
157
- };
158
-
159
- const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
160
-
161
- /**
162
- * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.
163
- *
164
- * @remarks
165
- * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)
166
- *
167
- * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}
168
- *
169
- * @example
170
- * ```tsx
171
- * function App() {
172
- * const { register, handleSubmit, control } = useForm({
173
- * defaultValues: {
174
- * firstName: "firstName"
175
- * }});
176
- * const { dirtyFields } = useFormState({
177
- * control
178
- * });
179
- * const onSubmit = (data) => console.log(data);
180
- *
181
- * return (
182
- * <form onSubmit={handleSubmit(onSubmit)}>
183
- * <input {...register("firstName")} placeholder="First Name" />
184
- * {dirtyFields.firstName && <p>Field is dirty.</p>}
185
- * <input type="submit" />
186
- * </form>
187
- * );
188
- * }
189
- * ```
190
- */
191
- function useFormState(props) {
192
- const formControl = useFormControlContext();
193
- const { control = formControl, disabled, name, exact } = props || {};
194
- const [formState, updateFormState] = React.useState(control._formState);
195
- const _localProxyFormState = React.useRef({
196
- isDirty: false,
197
- isLoading: false,
198
- dirtyFields: false,
199
- touchedFields: false,
200
- validatingFields: false,
201
- isValidating: false,
202
- isValid: false,
203
- errors: false,
204
- });
205
- useIsomorphicLayoutEffect(() => control._subscribe({
206
- name,
207
- formState: _localProxyFormState.current,
208
- exact,
209
- callback: (formState) => {
210
- !disabled &&
211
- updateFormState({
212
- ...control._formState,
213
- ...formState,
214
- });
215
- },
216
- }), [name, disabled, exact]);
217
- React.useEffect(() => {
218
- _localProxyFormState.current.isValid && control._setValid(true);
219
- }, [control]);
220
- return React.useMemo(() => getProxyFormState(formState, control, _localProxyFormState.current, false), [formState, control]);
221
- }
222
-
223
- var isString = (value) => typeof value === 'string';
224
-
225
- var generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {
226
- if (isString(names)) {
227
- isGlobal && _names.watch.add(names);
228
- return get(formValues, names, defaultValue);
229
- }
230
- if (Array.isArray(names)) {
231
- return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName),
232
- get(formValues, fieldName)));
233
- }
234
- isGlobal && (_names.watchAll = true);
235
- return formValues;
236
- };
237
-
238
- var isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);
239
-
240
- function deepEqual(object1, object2, _internal_visited = new WeakSet()) {
241
- if (isPrimitive(object1) || isPrimitive(object2)) {
242
- return Object.is(object1, object2);
243
- }
244
- if (isDateObject(object1) && isDateObject(object2)) {
245
- return Object.is(object1.getTime(), object2.getTime());
246
- }
247
- const keys1 = Object.keys(object1);
248
- const keys2 = Object.keys(object2);
249
- if (keys1.length !== keys2.length) {
250
- return false;
251
- }
252
- if (_internal_visited.has(object1) || _internal_visited.has(object2)) {
253
- return true;
254
- }
255
- _internal_visited.add(object1);
256
- _internal_visited.add(object2);
257
- for (const key of keys1) {
258
- const val1 = object1[key];
259
- if (!keys2.includes(key)) {
260
- return false;
261
- }
262
- if (key !== 'ref') {
263
- const val2 = object2[key];
264
- if ((isDateObject(val1) && isDateObject(val2)) ||
265
- (isObject(val1) && isObject(val2)) ||
266
- (Array.isArray(val1) && Array.isArray(val2))
267
- ? !deepEqual(val1, val2, _internal_visited)
268
- : !Object.is(val1, val2)) {
269
- return false;
270
- }
271
- }
272
- }
273
- return true;
274
- }
275
-
276
- /**
277
- * Custom hook to subscribe to field change and isolate re-rendering at the component level.
278
- *
279
- * @remarks
280
- *
281
- * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)
282
- *
283
- * @example
284
- * ```tsx
285
- * const { control } = useForm();
286
- * const values = useWatch({
287
- * name: "fieldName"
288
- * control,
289
- * })
290
- * ```
291
- */
292
- function useWatch(props) {
293
- const formControl = useFormControlContext();
294
- const { control = formControl, name, defaultValue, disabled, exact, compute, } = props || {};
295
- const _defaultValue = React.useRef(defaultValue);
296
- const _compute = React.useRef(compute);
297
- const _computeFormValues = React.useRef(undefined);
298
- const _prevControl = React.useRef(control);
299
- const _prevName = React.useRef(name);
300
- _compute.current = compute;
301
- const [value, updateValue] = React.useState(() => {
302
- const defaultValue = control._getWatch(name, _defaultValue.current);
303
- return _compute.current ? _compute.current(defaultValue) : defaultValue;
304
- });
305
- const getCurrentOutput = React.useCallback((values) => {
306
- const formValues = generateWatchOutput(name, control._names, values || control._formValues, false, _defaultValue.current);
307
- return _compute.current ? _compute.current(formValues) : formValues;
308
- }, [control._formValues, control._names, name]);
309
- const refreshValue = React.useCallback((values) => {
310
- if (!disabled) {
311
- const formValues = generateWatchOutput(name, control._names, values || control._formValues, false, _defaultValue.current);
312
- if (_compute.current) {
313
- const computedFormValues = _compute.current(formValues);
314
- if (!deepEqual(computedFormValues, _computeFormValues.current)) {
315
- updateValue(computedFormValues);
316
- _computeFormValues.current = computedFormValues;
317
- }
318
- }
319
- else {
320
- updateValue(formValues);
321
- }
322
- }
323
- }, [control._formValues, control._names, disabled, name]);
324
- useIsomorphicLayoutEffect(() => {
325
- if (_prevControl.current !== control ||
326
- !deepEqual(_prevName.current, name)) {
327
- _prevControl.current = control;
328
- _prevName.current = name;
329
- refreshValue();
330
- }
331
- return control._subscribe({
332
- name,
333
- formState: {
334
- values: true,
335
- },
336
- exact,
337
- callback: (formState) => {
338
- refreshValue(formState.values);
339
- },
340
- });
341
- }, [control, exact, name, refreshValue]);
342
- React.useEffect(() => control._removeUnmounted());
343
- // If name or control changed for this render, synchronously reflect the
344
- // latest value so callers (like useController) see the correct value
345
- // immediately on the same render.
346
- // Optimize: Check control reference first before expensive deepEqual
347
- const controlChanged = _prevControl.current !== control;
348
- const prevName = _prevName.current;
349
- // Cache the computed output to avoid duplicate calls within the same render
350
- // We include shouldReturnImmediate in deps to ensure proper recomputation
351
- const computedOutput = React.useMemo(() => {
352
- if (disabled) {
353
- return null;
354
- }
355
- const nameChanged = !controlChanged && !deepEqual(prevName, name);
356
- const shouldReturnImmediate = controlChanged || nameChanged;
357
- return shouldReturnImmediate ? getCurrentOutput() : null;
358
- }, [disabled, controlChanged, name, prevName, getCurrentOutput]);
359
- return computedOutput !== null ? computedOutput : value;
360
- }
361
-
362
- /**
363
- * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.
364
- *
365
- * @remarks
366
- * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)
367
- *
368
- * @param props - the path name to the form field value, and validation rules.
369
- *
370
- * @returns field properties, field and form state. {@link UseControllerReturn}
371
- *
372
- * @example
373
- * ```tsx
374
- * function Input(props) {
375
- * const { field, fieldState, formState } = useController(props);
376
- * return (
377
- * <div>
378
- * <input {...field} placeholder={props.name} />
379
- * <p>{fieldState.isTouched && "Touched"}</p>
380
- * <p>{formState.isSubmitted ? "submitted" : ""}</p>
381
- * </div>
382
- * );
383
- * }
384
- * ```
385
- */
386
- function useController(props) {
387
- const formControl = useFormControlContext();
388
- const { name, disabled, control = formControl, shouldUnregister, defaultValue, exact = true, } = props;
389
- const isArrayField = isNameInFieldArray(control._names.array, name);
390
- const defaultValueMemo = React.useMemo(() => get(control._formValues, name, get(control._defaultValues, name, defaultValue)), [control, name, defaultValue]);
391
- const value = useWatch({
392
- control,
393
- name,
394
- defaultValue: defaultValueMemo,
395
- exact,
396
- });
397
- const formState = useFormState({
398
- control,
399
- name,
400
- exact,
401
- });
402
- const _props = React.useRef(props);
403
- const _previousNameRef = React.useRef(undefined);
404
- const _registerProps = React.useRef(control.register(name, {
405
- ...props.rules,
406
- value,
407
- ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),
408
- }));
409
- _props.current = props;
410
- const fieldState = React.useMemo(() => Object.defineProperties({}, {
411
- invalid: {
412
- enumerable: true,
413
- get: () => !!get(formState.errors, name),
414
- },
415
- isDirty: {
416
- enumerable: true,
417
- get: () => !!get(formState.dirtyFields, name),
418
- },
419
- isTouched: {
420
- enumerable: true,
421
- get: () => !!get(formState.touchedFields, name),
422
- },
423
- isValidating: {
424
- enumerable: true,
425
- get: () => !!get(formState.validatingFields, name),
426
- },
427
- error: {
428
- enumerable: true,
429
- get: () => get(formState.errors, name),
430
- },
431
- }), [formState, name]);
432
- const onChange = React.useCallback((event) => _registerProps.current.onChange({
433
- target: {
434
- value: getEventValue(event),
435
- name: name,
436
- },
437
- type: EVENTS.CHANGE,
438
- }), [name]);
439
- const onBlur = React.useCallback(() => _registerProps.current.onBlur({
440
- target: {
441
- value: get(control._formValues, name),
442
- name: name,
443
- },
444
- type: EVENTS.BLUR,
445
- }), [name, control._formValues]);
446
- const ref = React.useCallback((elm) => {
447
- const field = get(control._fields, name);
448
- if (field && field._f && elm) {
449
- field._f.ref = {
450
- focus: () => isFunction(elm.focus) && elm.focus(),
451
- select: () => isFunction(elm.select) && elm.select(),
452
- setCustomValidity: (message) => isFunction(elm.setCustomValidity) && elm.setCustomValidity(message),
453
- reportValidity: () => isFunction(elm.reportValidity) && elm.reportValidity(),
454
- };
455
- }
456
- }, [control._fields, name]);
457
- const field = React.useMemo(() => ({
458
- name,
459
- value,
460
- ...(isBoolean(disabled) || formState.disabled
461
- ? { disabled: formState.disabled || disabled }
462
- : {}),
463
- onChange,
464
- onBlur,
465
- ref,
466
- }), [name, disabled, formState.disabled, onChange, onBlur, ref, value]);
467
- React.useEffect(() => {
468
- const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;
469
- const previousName = _previousNameRef.current;
470
- if (previousName && previousName !== name && !isArrayField) {
471
- control.unregister(previousName);
472
- }
473
- control.register(name, {
474
- ..._props.current.rules,
475
- ...(isBoolean(_props.current.disabled)
476
- ? { disabled: _props.current.disabled }
477
- : {}),
478
- });
479
- const updateMounted = (name, value) => {
480
- const field = get(control._fields, name);
481
- if (field && field._f) {
482
- field._f.mount = value;
483
- }
484
- };
485
- updateMounted(name, true);
486
- if (_shouldUnregisterField) {
487
- const value = cloneObject(get(control._options.defaultValues, name, _props.current.defaultValue));
488
- set(control._defaultValues, name, value);
489
- if (isUndefined(get(control._formValues, name))) {
490
- set(control._formValues, name, value);
491
- }
492
- }
493
- !isArrayField && control.register(name);
494
- _previousNameRef.current = name;
495
- return () => {
496
- (isArrayField
497
- ? _shouldUnregisterField && !control._state.action
498
- : _shouldUnregisterField)
499
- ? control.unregister(name)
500
- : updateMounted(name, false);
501
- };
502
- }, [name, control, isArrayField, shouldUnregister]);
503
- React.useEffect(() => {
504
- control._setDisabledField({
505
- disabled,
506
- name,
507
- });
508
- }, [disabled, name, control]);
509
- return React.useMemo(() => ({
510
- field,
511
- formState,
512
- fieldState,
513
- }), [field, formState, fieldState]);
514
- }
515
-
516
- const HookFormContext = React.createContext(null);
517
- HookFormContext.displayName = 'HookFormContext';
518
-
519
- var appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria
520
- ? {
521
- ...errors[name],
522
- types: {
523
- ...(errors[name] && errors[name].types ? errors[name].types : {}),
524
- [type]: message || true,
525
- },
526
- }
527
- : {};
528
-
529
- var convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);
530
-
531
- var createSubject = () => {
532
- let _observers = [];
533
- const next = (value) => {
534
- for (const observer of _observers) {
535
- observer.next && observer.next(value);
536
- }
537
- };
538
- const subscribe = (observer) => {
539
- _observers.push(observer);
540
- return {
541
- unsubscribe: () => {
542
- _observers = _observers.filter((o) => o !== observer);
543
- },
544
- };
545
- };
546
- const unsubscribe = () => {
547
- _observers = [];
548
- };
549
- return {
550
- get observers() {
551
- return _observers;
552
- },
553
- next,
554
- subscribe,
555
- unsubscribe,
556
- };
557
- };
558
-
559
- function extractFormValues(fieldsState, formValues) {
560
- const values = {};
561
- for (const key in fieldsState) {
562
- if (fieldsState.hasOwnProperty(key)) {
563
- const fieldState = fieldsState[key];
564
- const fieldValue = formValues[key];
565
- if (fieldState && isObject(fieldState) && fieldValue) {
566
- const nestedFieldsState = extractFormValues(fieldState, fieldValue);
567
- if (isObject(nestedFieldsState)) {
568
- values[key] = nestedFieldsState;
569
- }
570
- }
571
- else if (fieldsState[key]) {
572
- values[key] = fieldValue;
573
- }
574
- }
575
- }
576
- return values;
577
- }
578
-
579
- var isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;
580
-
581
- var isFileInput = (element) => element.type === 'file';
582
-
583
- var isHTMLElement = (value) => {
584
- if (!isWeb) {
585
- return false;
586
- }
587
- const owner = value ? value.ownerDocument : 0;
588
- return (value instanceof
589
- (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));
590
- };
591
-
592
- var isMultipleSelect = (element) => element.type === `select-multiple`;
593
-
594
- var isRadioInput = (element) => element.type === 'radio';
595
-
596
- var isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);
597
-
598
- var live = (ref) => isHTMLElement(ref) && ref.isConnected;
599
-
600
- function baseGet(object, updatePath) {
601
- const length = updatePath.slice(0, -1).length;
602
- let index = 0;
603
- while (index < length) {
604
- object = isUndefined(object) ? index++ : object[updatePath[index++]];
605
- }
606
- return object;
607
- }
608
- function isEmptyArray(obj) {
609
- for (const key in obj) {
610
- if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {
611
- return false;
612
- }
613
- }
614
- return true;
615
- }
616
- function unset(object, path) {
617
- const paths = Array.isArray(path)
618
- ? path
619
- : isKey(path)
620
- ? [path]
621
- : stringToPath(path);
622
- const childObject = paths.length === 1 ? object : baseGet(object, paths);
623
- const index = paths.length - 1;
624
- const key = paths[index];
625
- if (childObject) {
626
- delete childObject[key];
627
- }
628
- if (index !== 0 &&
629
- ((isObject(childObject) && isEmptyObject(childObject)) ||
630
- (Array.isArray(childObject) && isEmptyArray(childObject)))) {
631
- unset(object, paths.slice(0, -1));
632
- }
633
- return object;
634
- }
635
-
636
- var objectHasFunction = (data) => {
637
- for (const key in data) {
638
- if (isFunction(data[key])) {
639
- return true;
640
- }
641
- }
642
- return false;
643
- };
644
-
645
- function isTraversable(value) {
646
- return Array.isArray(value) || (isObject(value) && !objectHasFunction(value));
647
- }
648
- function markFieldsDirty(data, fields = {}) {
649
- for (const key in data) {
650
- const value = data[key];
651
- if (isTraversable(value)) {
652
- fields[key] = Array.isArray(value) ? [] : {};
653
- markFieldsDirty(value, fields[key]);
654
- }
655
- else if (!isUndefined(value)) {
656
- fields[key] = true;
657
- }
658
- }
659
- return fields;
660
- }
661
- function getDirtyFields(data, formValues, dirtyFieldsFromValues) {
662
- if (!dirtyFieldsFromValues) {
663
- dirtyFieldsFromValues = markFieldsDirty(formValues);
664
- }
665
- for (const key in data) {
666
- const value = data[key];
667
- if (isTraversable(value)) {
668
- if (isUndefined(formValues) || isPrimitive(dirtyFieldsFromValues[key])) {
669
- dirtyFieldsFromValues[key] = markFieldsDirty(value, Array.isArray(value) ? [] : {});
670
- }
671
- else {
672
- getDirtyFields(value, isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);
673
- }
674
- }
675
- else {
676
- const formValue = formValues[key];
677
- dirtyFieldsFromValues[key] = !deepEqual(value, formValue);
678
- }
679
- }
680
- return dirtyFieldsFromValues;
681
- }
682
-
683
- const defaultResult = {
684
- value: false,
685
- isValid: false,
686
- };
687
- const validResult = { value: true, isValid: true };
688
- var getCheckboxValue = (options) => {
689
- if (Array.isArray(options)) {
690
- if (options.length > 1) {
691
- const values = options
692
- .filter((option) => option && option.checked && !option.disabled)
693
- .map((option) => option.value);
694
- return { value: values, isValid: !!values.length };
695
- }
696
- return options[0].checked && !options[0].disabled
697
- ? // @ts-expect-error expected to work in the browser
698
- options[0].attributes && !isUndefined(options[0].attributes.value)
699
- ? isUndefined(options[0].value) || options[0].value === ''
700
- ? validResult
701
- : { value: options[0].value, isValid: true }
702
- : validResult
703
- : defaultResult;
704
- }
705
- return defaultResult;
706
- };
707
-
708
- var getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)
709
- ? value
710
- : valueAsNumber
711
- ? value === ''
712
- ? NaN
713
- : value
714
- ? +value
715
- : value
716
- : valueAsDate && isString(value)
717
- ? new Date(value)
718
- : setValueAs
719
- ? setValueAs(value)
720
- : value;
721
-
722
- const defaultReturn = {
723
- isValid: false,
724
- value: null,
725
- };
726
- var getRadioValue = (options) => Array.isArray(options)
727
- ? options.reduce((previous, option) => option && option.checked && !option.disabled
728
- ? {
729
- isValid: true,
730
- value: option.value,
731
- }
732
- : previous, defaultReturn)
733
- : defaultReturn;
734
-
735
- function getFieldValue(_f) {
736
- const ref = _f.ref;
737
- if (isFileInput(ref)) {
738
- return ref.files;
739
- }
740
- if (isRadioInput(ref)) {
741
- return getRadioValue(_f.refs).value;
742
- }
743
- if (isMultipleSelect(ref)) {
744
- return [...ref.selectedOptions].map(({ value }) => value);
745
- }
746
- if (isCheckBoxInput(ref)) {
747
- return getCheckboxValue(_f.refs).value;
748
- }
749
- return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);
750
- }
751
-
752
- var getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {
753
- const fields = {};
754
- for (const name of fieldsNames) {
755
- const field = get(_fields, name);
756
- field && set(fields, name, field._f);
757
- }
758
- return {
759
- criteriaMode,
760
- names: [...fieldsNames],
761
- fields,
762
- shouldUseNativeValidation,
763
- };
764
- };
765
-
766
- var isRegex = (value) => value instanceof RegExp;
767
-
768
- var getRuleValue = (rule) => isUndefined(rule)
769
- ? rule
770
- : isRegex(rule)
771
- ? rule.source
772
- : isObject(rule)
773
- ? isRegex(rule.value)
774
- ? rule.value.source
775
- : rule.value
776
- : rule;
777
-
778
- var getValidationModes = (mode) => ({
779
- isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,
780
- isOnBlur: mode === VALIDATION_MODE.onBlur,
781
- isOnChange: mode === VALIDATION_MODE.onChange,
782
- isOnAll: mode === VALIDATION_MODE.all,
783
- isOnTouch: mode === VALIDATION_MODE.onTouched,
784
- });
785
-
786
- const ASYNC_FUNCTION = 'AsyncFunction';
787
- var hasPromiseValidation = (fieldReference) => !!fieldReference &&
788
- !!fieldReference.validate &&
789
- !!((isFunction(fieldReference.validate) &&
790
- fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||
791
- (isObject(fieldReference.validate) &&
792
- Object.values(fieldReference.validate).find((validateFunction) => validateFunction.constructor.name === ASYNC_FUNCTION)));
793
-
794
- var hasValidation = (options) => options.mount &&
795
- (options.required ||
796
- options.min ||
797
- options.max ||
798
- options.maxLength ||
799
- options.minLength ||
800
- options.pattern ||
801
- options.validate);
802
-
803
- var isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&
804
- (_names.watchAll ||
805
- _names.watch.has(name) ||
806
- [..._names.watch].some((watchName) => name.startsWith(watchName) &&
807
- /^\.\w+/.test(name.slice(watchName.length))));
808
-
809
- const iterateFieldsByAction = (fields, action, fieldsNames, abortEarly) => {
810
- for (const key of fieldsNames || Object.keys(fields)) {
811
- const field = get(fields, key);
812
- if (field) {
813
- const { _f, ...currentField } = field;
814
- if (_f) {
815
- if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {
816
- return true;
817
- }
818
- else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {
819
- return true;
820
- }
821
- else {
822
- if (iterateFieldsByAction(currentField, action)) {
823
- break;
824
- }
825
- }
826
- }
827
- else if (isObject(currentField)) {
828
- if (iterateFieldsByAction(currentField, action)) {
829
- break;
830
- }
831
- }
832
- }
833
- }
834
- return;
835
- };
836
-
837
- function schemaErrorLookup(errors, _fields, name) {
838
- const error = get(errors, name);
839
- if (error || isKey(name)) {
840
- return {
841
- error,
842
- name,
843
- };
844
- }
845
- const names = name.split('.');
846
- while (names.length) {
847
- const fieldName = names.join('.');
848
- const field = get(_fields, fieldName);
849
- const foundError = get(errors, fieldName);
850
- if (field && !Array.isArray(field) && name !== fieldName) {
851
- return { name };
852
- }
853
- if (foundError && foundError.type) {
854
- return {
855
- name: fieldName,
856
- error: foundError,
857
- };
858
- }
859
- if (foundError && foundError.root && foundError.root.type) {
860
- return {
861
- name: `${fieldName}.root`,
862
- error: foundError.root,
863
- };
864
- }
865
- names.pop();
866
- }
867
- return {
868
- name,
869
- };
870
- }
871
-
872
- var shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {
873
- updateFormState(formStateData);
874
- const { name, ...formState } = formStateData;
875
- return (isEmptyObject(formState) ||
876
- Object.keys(formState).length >= Object.keys(_proxyFormState).length ||
877
- Object.keys(formState).find((key) => _proxyFormState[key] ===
878
- (!isRoot || VALIDATION_MODE.all)));
879
- };
880
-
881
- var shouldSubscribeByName = (name, signalName, exact) => !name ||
882
- !signalName ||
883
- name === signalName ||
884
- convertToArrayPayload(name).some((currentName) => currentName &&
885
- (exact
886
- ? currentName === signalName
887
- : currentName.startsWith(signalName) ||
888
- signalName.startsWith(currentName)));
889
-
890
- var skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {
891
- if (mode.isOnAll) {
892
- return false;
893
- }
894
- else if (!isSubmitted && mode.isOnTouch) {
895
- return !(isTouched || isBlurEvent);
896
- }
897
- else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {
898
- return !isBlurEvent;
899
- }
900
- else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {
901
- return isBlurEvent;
902
- }
903
- return true;
904
- };
905
-
906
- var unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);
907
-
908
- var updateFieldArrayRootError = (errors, error, name) => {
909
- const fieldArrayErrors = convertToArrayPayload(get(errors, name));
910
- set(fieldArrayErrors, 'root', error[name]);
911
- set(errors, name, fieldArrayErrors);
912
- return errors;
913
- };
914
-
915
- function getValidateError(result, ref, type = 'validate') {
916
- if (isString(result) ||
917
- (Array.isArray(result) && result.every(isString)) ||
918
- (isBoolean(result) && !result)) {
919
- return {
920
- type,
921
- message: isString(result) ? result : '',
922
- ref,
923
- };
924
- }
925
- }
926
-
927
- var getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)
928
- ? validationData
929
- : {
930
- value: validationData,
931
- message: '',
932
- };
933
-
934
- var validateField = async (field, disabledFieldNames, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {
935
- const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, } = field._f;
936
- const inputValue = get(formValues, name);
937
- if (!mount || disabledFieldNames.has(name)) {
938
- return {};
939
- }
940
- const inputRef = refs ? refs[0] : ref;
941
- const setCustomValidity = (message) => {
942
- if (shouldUseNativeValidation && inputRef.reportValidity) {
943
- inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');
944
- inputRef.reportValidity();
945
- }
946
- };
947
- const error = {};
948
- const isRadio = isRadioInput(ref);
949
- const isCheckBox = isCheckBoxInput(ref);
950
- const isRadioOrCheckbox = isRadio || isCheckBox;
951
- const isEmpty = ((valueAsNumber || isFileInput(ref)) &&
952
- isUndefined(ref.value) &&
953
- isUndefined(inputValue)) ||
954
- (isHTMLElement(ref) && ref.value === '') ||
955
- inputValue === '' ||
956
- (Array.isArray(inputValue) && !inputValue.length);
957
- const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);
958
- const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {
959
- const message = exceedMax ? maxLengthMessage : minLengthMessage;
960
- error[name] = {
961
- type: exceedMax ? maxType : minType,
962
- message,
963
- ref,
964
- ...appendErrorsCurry(exceedMax ? maxType : minType, message),
965
- };
966
- };
967
- if (isFieldArray
968
- ? !Array.isArray(inputValue) || !inputValue.length
969
- : required &&
970
- ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||
971
- (isBoolean(inputValue) && !inputValue) ||
972
- (isCheckBox && !getCheckboxValue(refs).isValid) ||
973
- (isRadio && !getRadioValue(refs).isValid))) {
974
- const { value, message } = isString(required)
975
- ? { value: !!required, message: required }
976
- : getValueAndMessage(required);
977
- if (value) {
978
- error[name] = {
979
- type: INPUT_VALIDATION_RULES.required,
980
- message,
981
- ref: inputRef,
982
- ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),
983
- };
984
- if (!validateAllFieldCriteria) {
985
- setCustomValidity(message);
986
- return error;
987
- }
988
- }
989
- }
990
- if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {
991
- let exceedMax;
992
- let exceedMin;
993
- const maxOutput = getValueAndMessage(max);
994
- const minOutput = getValueAndMessage(min);
995
- if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {
996
- const valueNumber = ref.valueAsNumber ||
997
- (inputValue ? +inputValue : inputValue);
998
- if (!isNullOrUndefined(maxOutput.value)) {
999
- exceedMax = valueNumber > maxOutput.value;
1000
- }
1001
- if (!isNullOrUndefined(minOutput.value)) {
1002
- exceedMin = valueNumber < minOutput.value;
1003
- }
1004
- }
1005
- else {
1006
- const valueDate = ref.valueAsDate || new Date(inputValue);
1007
- const convertTimeToDate = (time) => new Date(new Date().toDateString() + ' ' + time);
1008
- const isTime = ref.type == 'time';
1009
- const isWeek = ref.type == 'week';
1010
- if (isString(maxOutput.value) && inputValue) {
1011
- exceedMax = isTime
1012
- ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)
1013
- : isWeek
1014
- ? inputValue > maxOutput.value
1015
- : valueDate > new Date(maxOutput.value);
1016
- }
1017
- if (isString(minOutput.value) && inputValue) {
1018
- exceedMin = isTime
1019
- ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)
1020
- : isWeek
1021
- ? inputValue < minOutput.value
1022
- : valueDate < new Date(minOutput.value);
1023
- }
1024
- }
1025
- if (exceedMax || exceedMin) {
1026
- getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);
1027
- if (!validateAllFieldCriteria) {
1028
- setCustomValidity(error[name].message);
1029
- return error;
1030
- }
1031
- }
1032
- }
1033
- if ((maxLength || minLength) &&
1034
- !isEmpty &&
1035
- (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {
1036
- const maxLengthOutput = getValueAndMessage(maxLength);
1037
- const minLengthOutput = getValueAndMessage(minLength);
1038
- const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&
1039
- inputValue.length > +maxLengthOutput.value;
1040
- const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&
1041
- inputValue.length < +minLengthOutput.value;
1042
- if (exceedMax || exceedMin) {
1043
- getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);
1044
- if (!validateAllFieldCriteria) {
1045
- setCustomValidity(error[name].message);
1046
- return error;
1047
- }
1048
- }
1049
- }
1050
- if (pattern && !isEmpty && isString(inputValue)) {
1051
- const { value: patternValue, message } = getValueAndMessage(pattern);
1052
- if (isRegex(patternValue) && !inputValue.match(patternValue)) {
1053
- error[name] = {
1054
- type: INPUT_VALIDATION_RULES.pattern,
1055
- message,
1056
- ref,
1057
- ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),
1058
- };
1059
- if (!validateAllFieldCriteria) {
1060
- setCustomValidity(message);
1061
- return error;
1062
- }
1063
- }
1064
- }
1065
- if (validate) {
1066
- if (isFunction(validate)) {
1067
- const result = await validate(inputValue, formValues);
1068
- const validateError = getValidateError(result, inputRef);
1069
- if (validateError) {
1070
- error[name] = {
1071
- ...validateError,
1072
- ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),
1073
- };
1074
- if (!validateAllFieldCriteria) {
1075
- setCustomValidity(validateError.message);
1076
- return error;
1077
- }
1078
- }
1079
- }
1080
- else if (isObject(validate)) {
1081
- let validationResult = {};
1082
- for (const key in validate) {
1083
- if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {
1084
- break;
1085
- }
1086
- const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);
1087
- if (validateError) {
1088
- validationResult = {
1089
- ...validateError,
1090
- ...appendErrorsCurry(key, validateError.message),
1091
- };
1092
- setCustomValidity(validateError.message);
1093
- if (validateAllFieldCriteria) {
1094
- error[name] = validationResult;
1095
- }
1096
- }
1097
- }
1098
- if (!isEmptyObject(validationResult)) {
1099
- error[name] = {
1100
- ref: inputRef,
1101
- ...validationResult,
1102
- };
1103
- if (!validateAllFieldCriteria) {
1104
- return error;
1105
- }
1106
- }
1107
- }
1108
- }
1109
- setCustomValidity(true);
1110
- return error;
1111
- };
1112
-
1113
- const defaultOptions = {
1114
- mode: VALIDATION_MODE.onSubmit,
1115
- reValidateMode: VALIDATION_MODE.onChange,
1116
- shouldFocusError: true,
1117
- };
1118
- function createFormControl(props = {}) {
1119
- let _options = {
1120
- ...defaultOptions,
1121
- ...props,
1122
- };
1123
- let _formState = {
1124
- submitCount: 0,
1125
- isDirty: false,
1126
- isReady: false,
1127
- isLoading: isFunction(_options.defaultValues),
1128
- isValidating: false,
1129
- isSubmitted: false,
1130
- isSubmitting: false,
1131
- isSubmitSuccessful: false,
1132
- isValid: false,
1133
- touchedFields: {},
1134
- dirtyFields: {},
1135
- validatingFields: {},
1136
- errors: _options.errors || {},
1137
- disabled: _options.disabled || false,
1138
- };
1139
- let _fields = {};
1140
- let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)
1141
- ? cloneObject(_options.defaultValues || _options.values) || {}
1142
- : {};
1143
- let _formValues = _options.shouldUnregister
1144
- ? {}
1145
- : cloneObject(_defaultValues);
1146
- let _state = {
1147
- action: false,
1148
- mount: false,
1149
- watch: false,
1150
- keepIsValid: false,
1151
- };
1152
- let _names = {
1153
- mount: new Set(),
1154
- disabled: new Set(),
1155
- unMount: new Set(),
1156
- array: new Set(),
1157
- watch: new Set(),
1158
- };
1159
- let delayErrorCallback;
1160
- let timer = 0;
1161
- const defaultProxyFormState = {
1162
- isDirty: false,
1163
- dirtyFields: false,
1164
- validatingFields: false,
1165
- touchedFields: false,
1166
- isValidating: false,
1167
- isValid: false,
1168
- errors: false,
1169
- };
1170
- const _proxyFormState = {
1171
- ...defaultProxyFormState,
1172
- };
1173
- let _proxySubscribeFormState = {
1174
- ..._proxyFormState,
1175
- };
1176
- const _subjects = {
1177
- array: createSubject(),
1178
- state: createSubject(),
1179
- };
1180
- const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;
1181
- const debounce = (callback) => (wait) => {
1182
- clearTimeout(timer);
1183
- timer = setTimeout(callback, wait);
1184
- };
1185
- const _setValid = async (shouldUpdateValid) => {
1186
- if (_state.keepIsValid) {
1187
- return;
1188
- }
1189
- if (!_options.disabled &&
1190
- (_proxyFormState.isValid ||
1191
- _proxySubscribeFormState.isValid ||
1192
- shouldUpdateValid)) {
1193
- let isValid;
1194
- if (_options.resolver) {
1195
- isValid = isEmptyObject((await _runSchema()).errors);
1196
- _updateIsValidating();
1197
- }
1198
- else {
1199
- isValid = await executeBuiltInValidation(_fields, true);
1200
- }
1201
- if (isValid !== _formState.isValid) {
1202
- _subjects.state.next({
1203
- isValid,
1204
- });
1205
- }
1206
- }
1207
- };
1208
- const _updateIsValidating = (names, isValidating) => {
1209
- if (!_options.disabled &&
1210
- (_proxyFormState.isValidating ||
1211
- _proxyFormState.validatingFields ||
1212
- _proxySubscribeFormState.isValidating ||
1213
- _proxySubscribeFormState.validatingFields)) {
1214
- (names || Array.from(_names.mount)).forEach((name) => {
1215
- if (name) {
1216
- isValidating
1217
- ? set(_formState.validatingFields, name, isValidating)
1218
- : unset(_formState.validatingFields, name);
1219
- }
1220
- });
1221
- _subjects.state.next({
1222
- validatingFields: _formState.validatingFields,
1223
- isValidating: !isEmptyObject(_formState.validatingFields),
1224
- });
1225
- }
1226
- };
1227
- const _setFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {
1228
- if (args && method && !_options.disabled) {
1229
- _state.action = true;
1230
- if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {
1231
- const fieldValues = method(get(_fields, name), args.argA, args.argB);
1232
- shouldSetValues && set(_fields, name, fieldValues);
1233
- }
1234
- if (shouldUpdateFieldsAndState &&
1235
- Array.isArray(get(_formState.errors, name))) {
1236
- const errors = method(get(_formState.errors, name), args.argA, args.argB);
1237
- shouldSetValues && set(_formState.errors, name, errors);
1238
- unsetEmptyArray(_formState.errors, name);
1239
- }
1240
- if ((_proxyFormState.touchedFields ||
1241
- _proxySubscribeFormState.touchedFields) &&
1242
- shouldUpdateFieldsAndState &&
1243
- Array.isArray(get(_formState.touchedFields, name))) {
1244
- const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);
1245
- shouldSetValues && set(_formState.touchedFields, name, touchedFields);
1246
- }
1247
- if (_proxyFormState.dirtyFields || _proxySubscribeFormState.dirtyFields) {
1248
- _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);
1249
- }
1250
- _subjects.state.next({
1251
- name,
1252
- isDirty: _getDirty(name, values),
1253
- dirtyFields: _formState.dirtyFields,
1254
- errors: _formState.errors,
1255
- isValid: _formState.isValid,
1256
- });
1257
- }
1258
- else {
1259
- set(_formValues, name, values);
1260
- }
1261
- };
1262
- const updateErrors = (name, error) => {
1263
- set(_formState.errors, name, error);
1264
- _subjects.state.next({
1265
- errors: _formState.errors,
1266
- });
1267
- };
1268
- const _setErrors = (errors) => {
1269
- _formState.errors = errors;
1270
- _subjects.state.next({
1271
- errors: _formState.errors,
1272
- isValid: false,
1273
- });
1274
- };
1275
- const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {
1276
- const field = get(_fields, name);
1277
- if (field) {
1278
- const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);
1279
- isUndefined(defaultValue) ||
1280
- (ref && ref.defaultChecked) ||
1281
- shouldSkipSetValueAs
1282
- ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))
1283
- : setFieldValue(name, defaultValue);
1284
- _state.mount && !_state.action && _setValid();
1285
- }
1286
- };
1287
- const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {
1288
- let shouldUpdateField = false;
1289
- let isPreviousDirty = false;
1290
- const output = {
1291
- name,
1292
- };
1293
- if (!_options.disabled) {
1294
- if (!isBlurEvent || shouldDirty) {
1295
- if (_proxyFormState.isDirty || _proxySubscribeFormState.isDirty) {
1296
- isPreviousDirty = _formState.isDirty;
1297
- _formState.isDirty = output.isDirty = _getDirty();
1298
- shouldUpdateField = isPreviousDirty !== output.isDirty;
1299
- }
1300
- const isCurrentFieldPristine = deepEqual(get(_defaultValues, name), fieldValue);
1301
- isPreviousDirty = !!get(_formState.dirtyFields, name);
1302
- isCurrentFieldPristine
1303
- ? unset(_formState.dirtyFields, name)
1304
- : set(_formState.dirtyFields, name, true);
1305
- output.dirtyFields = _formState.dirtyFields;
1306
- shouldUpdateField =
1307
- shouldUpdateField ||
1308
- ((_proxyFormState.dirtyFields ||
1309
- _proxySubscribeFormState.dirtyFields) &&
1310
- isPreviousDirty !== !isCurrentFieldPristine);
1311
- }
1312
- if (isBlurEvent) {
1313
- const isPreviousFieldTouched = get(_formState.touchedFields, name);
1314
- if (!isPreviousFieldTouched) {
1315
- set(_formState.touchedFields, name, isBlurEvent);
1316
- output.touchedFields = _formState.touchedFields;
1317
- shouldUpdateField =
1318
- shouldUpdateField ||
1319
- ((_proxyFormState.touchedFields ||
1320
- _proxySubscribeFormState.touchedFields) &&
1321
- isPreviousFieldTouched !== isBlurEvent);
1322
- }
1323
- }
1324
- shouldUpdateField && shouldRender && _subjects.state.next(output);
1325
- }
1326
- return shouldUpdateField ? output : {};
1327
- };
1328
- const shouldRenderByError = (name, isValid, error, fieldState) => {
1329
- const previousFieldError = get(_formState.errors, name);
1330
- const shouldUpdateValid = (_proxyFormState.isValid || _proxySubscribeFormState.isValid) &&
1331
- isBoolean(isValid) &&
1332
- _formState.isValid !== isValid;
1333
- if (_options.delayError && error) {
1334
- delayErrorCallback = debounce(() => updateErrors(name, error));
1335
- delayErrorCallback(_options.delayError);
1336
- }
1337
- else {
1338
- clearTimeout(timer);
1339
- delayErrorCallback = null;
1340
- error
1341
- ? set(_formState.errors, name, error)
1342
- : unset(_formState.errors, name);
1343
- }
1344
- if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||
1345
- !isEmptyObject(fieldState) ||
1346
- shouldUpdateValid) {
1347
- const updatedFormState = {
1348
- ...fieldState,
1349
- ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),
1350
- errors: _formState.errors,
1351
- name,
1352
- };
1353
- _formState = {
1354
- ..._formState,
1355
- ...updatedFormState,
1356
- };
1357
- _subjects.state.next(updatedFormState);
1358
- }
1359
- };
1360
- const _runSchema = async (name) => {
1361
- _updateIsValidating(name, true);
1362
- const result = await _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));
1363
- return result;
1364
- };
1365
- const executeSchemaAndUpdateState = async (names) => {
1366
- const { errors } = await _runSchema(names);
1367
- _updateIsValidating(names);
1368
- if (names) {
1369
- for (const name of names) {
1370
- const error = get(errors, name);
1371
- error
1372
- ? set(_formState.errors, name, error)
1373
- : unset(_formState.errors, name);
1374
- }
1375
- }
1376
- else {
1377
- _formState.errors = errors;
1378
- }
1379
- return errors;
1380
- };
1381
- const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {
1382
- valid: true,
1383
- }) => {
1384
- for (const name in fields) {
1385
- const field = fields[name];
1386
- if (field) {
1387
- const { _f, ...fieldValue } = field;
1388
- if (_f) {
1389
- const isFieldArrayRoot = _names.array.has(_f.name);
1390
- const isPromiseFunction = field._f && hasPromiseValidation(field._f);
1391
- if (isPromiseFunction && _proxyFormState.validatingFields) {
1392
- _updateIsValidating([_f.name], true);
1393
- }
1394
- const fieldError = await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);
1395
- if (isPromiseFunction && _proxyFormState.validatingFields) {
1396
- _updateIsValidating([_f.name]);
1397
- }
1398
- if (fieldError[_f.name]) {
1399
- context.valid = false;
1400
- if (shouldOnlyCheckValid || props.shouldUseNativeValidation) {
1401
- break;
1402
- }
1403
- }
1404
- !shouldOnlyCheckValid &&
1405
- (get(fieldError, _f.name)
1406
- ? isFieldArrayRoot
1407
- ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)
1408
- : set(_formState.errors, _f.name, fieldError[_f.name])
1409
- : unset(_formState.errors, _f.name));
1410
- }
1411
- !isEmptyObject(fieldValue) &&
1412
- (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));
1413
- }
1414
- }
1415
- return context.valid;
1416
- };
1417
- const _removeUnmounted = () => {
1418
- for (const name of _names.unMount) {
1419
- const field = get(_fields, name);
1420
- field &&
1421
- (field._f.refs
1422
- ? field._f.refs.every((ref) => !live(ref))
1423
- : !live(field._f.ref)) &&
1424
- unregister(name);
1425
- }
1426
- _names.unMount = new Set();
1427
- };
1428
- const _getDirty = (name, data) => !_options.disabled &&
1429
- (name && data && set(_formValues, name, data),
1430
- !deepEqual(getValues(), _defaultValues));
1431
- const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {
1432
- ...(_state.mount
1433
- ? _formValues
1434
- : isUndefined(defaultValue)
1435
- ? _defaultValues
1436
- : isString(names)
1437
- ? { [names]: defaultValue }
1438
- : defaultValue),
1439
- }, isGlobal, defaultValue);
1440
- const _getFieldArray = (name) => compact(get(_state.mount ? _formValues : _defaultValues, name, _options.shouldUnregister ? get(_defaultValues, name, []) : []));
1441
- const setFieldValue = (name, value, options = {}) => {
1442
- const field = get(_fields, name);
1443
- let fieldValue = value;
1444
- if (field) {
1445
- const fieldReference = field._f;
1446
- if (fieldReference) {
1447
- !fieldReference.disabled &&
1448
- set(_formValues, name, getFieldValueAs(value, fieldReference));
1449
- fieldValue =
1450
- isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)
1451
- ? ''
1452
- : value;
1453
- if (isMultipleSelect(fieldReference.ref)) {
1454
- [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));
1455
- }
1456
- else if (fieldReference.refs) {
1457
- if (isCheckBoxInput(fieldReference.ref)) {
1458
- fieldReference.refs.forEach((checkboxRef) => {
1459
- if (!checkboxRef.defaultChecked || !checkboxRef.disabled) {
1460
- if (Array.isArray(fieldValue)) {
1461
- checkboxRef.checked = !!fieldValue.find((data) => data === checkboxRef.value);
1462
- }
1463
- else {
1464
- checkboxRef.checked =
1465
- fieldValue === checkboxRef.value || !!fieldValue;
1466
- }
1467
- }
1468
- });
1469
- }
1470
- else {
1471
- fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));
1472
- }
1473
- }
1474
- else if (isFileInput(fieldReference.ref)) {
1475
- fieldReference.ref.value = '';
1476
- }
1477
- else {
1478
- fieldReference.ref.value = fieldValue;
1479
- if (!fieldReference.ref.type) {
1480
- _subjects.state.next({
1481
- name,
1482
- values: cloneObject(_formValues),
1483
- });
1484
- }
1485
- }
1486
- }
1487
- }
1488
- (options.shouldDirty || options.shouldTouch) &&
1489
- updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);
1490
- options.shouldValidate && trigger(name);
1491
- };
1492
- const setValues = (name, value, options) => {
1493
- for (const fieldKey in value) {
1494
- if (!value.hasOwnProperty(fieldKey)) {
1495
- return;
1496
- }
1497
- const fieldValue = value[fieldKey];
1498
- const fieldName = name + '.' + fieldKey;
1499
- const field = get(_fields, fieldName);
1500
- (_names.array.has(name) ||
1501
- isObject(fieldValue) ||
1502
- (field && !field._f)) &&
1503
- !isDateObject(fieldValue)
1504
- ? setValues(fieldName, fieldValue, options)
1505
- : setFieldValue(fieldName, fieldValue, options);
1506
- }
1507
- };
1508
- const setValue = (name, value, options = {}) => {
1509
- const field = get(_fields, name);
1510
- const isFieldArray = _names.array.has(name);
1511
- const cloneValue = cloneObject(value);
1512
- set(_formValues, name, cloneValue);
1513
- if (isFieldArray) {
1514
- _subjects.array.next({
1515
- name,
1516
- values: cloneObject(_formValues),
1517
- });
1518
- if ((_proxyFormState.isDirty ||
1519
- _proxyFormState.dirtyFields ||
1520
- _proxySubscribeFormState.isDirty ||
1521
- _proxySubscribeFormState.dirtyFields) &&
1522
- options.shouldDirty) {
1523
- _subjects.state.next({
1524
- name,
1525
- dirtyFields: getDirtyFields(_defaultValues, _formValues),
1526
- isDirty: _getDirty(name, cloneValue),
1527
- });
1528
- }
1529
- }
1530
- else {
1531
- field && !field._f && !isNullOrUndefined(cloneValue)
1532
- ? setValues(name, cloneValue, options)
1533
- : setFieldValue(name, cloneValue, options);
1534
- }
1535
- if (isWatched(name, _names)) {
1536
- _subjects.state.next({
1537
- ..._formState,
1538
- name,
1539
- values: cloneObject(_formValues),
1540
- });
1541
- }
1542
- else {
1543
- _subjects.state.next({
1544
- name: _state.mount ? name : undefined,
1545
- values: cloneObject(_formValues),
1546
- });
1547
- }
1548
- };
1549
- const onChange = async (event) => {
1550
- _state.mount = true;
1551
- const target = event.target;
1552
- let name = target.name;
1553
- let isFieldValueUpdated = true;
1554
- const field = get(_fields, name);
1555
- const _updateIsFieldValueUpdated = (fieldValue) => {
1556
- isFieldValueUpdated =
1557
- Number.isNaN(fieldValue) ||
1558
- (isDateObject(fieldValue) && isNaN(fieldValue.getTime())) ||
1559
- deepEqual(fieldValue, get(_formValues, name, fieldValue));
1560
- };
1561
- const validationModeBeforeSubmit = getValidationModes(_options.mode);
1562
- const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);
1563
- if (field) {
1564
- let error;
1565
- let isValid;
1566
- const fieldValue = target.type
1567
- ? getFieldValue(field._f)
1568
- : getEventValue(event);
1569
- const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;
1570
- const shouldSkipValidation = (!hasValidation(field._f) &&
1571
- !_options.resolver &&
1572
- !get(_formState.errors, name) &&
1573
- !field._f.deps) ||
1574
- skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);
1575
- const watched = isWatched(name, _names, isBlurEvent);
1576
- set(_formValues, name, fieldValue);
1577
- if (isBlurEvent) {
1578
- if (!target || !target.readOnly) {
1579
- field._f.onBlur && field._f.onBlur(event);
1580
- delayErrorCallback && delayErrorCallback(0);
1581
- }
1582
- }
1583
- else if (field._f.onChange) {
1584
- field._f.onChange(event);
1585
- }
1586
- const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent);
1587
- const shouldRender = !isEmptyObject(fieldState) || watched;
1588
- !isBlurEvent &&
1589
- _subjects.state.next({
1590
- name,
1591
- type: event.type,
1592
- values: cloneObject(_formValues),
1593
- });
1594
- if (shouldSkipValidation) {
1595
- if (_proxyFormState.isValid || _proxySubscribeFormState.isValid) {
1596
- if (_options.mode === 'onBlur') {
1597
- if (isBlurEvent) {
1598
- _setValid();
1599
- }
1600
- }
1601
- else if (!isBlurEvent) {
1602
- _setValid();
1603
- }
1604
- }
1605
- return (shouldRender &&
1606
- _subjects.state.next({ name, ...(watched ? {} : fieldState) }));
1607
- }
1608
- !isBlurEvent && watched && _subjects.state.next({ ..._formState });
1609
- if (_options.resolver) {
1610
- const { errors } = await _runSchema([name]);
1611
- _updateIsValidating([name]);
1612
- _updateIsFieldValueUpdated(fieldValue);
1613
- if (isFieldValueUpdated) {
1614
- const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);
1615
- const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);
1616
- error = errorLookupResult.error;
1617
- name = errorLookupResult.name;
1618
- isValid = isEmptyObject(errors);
1619
- }
1620
- }
1621
- else {
1622
- _updateIsValidating([name], true);
1623
- error = (await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];
1624
- _updateIsValidating([name]);
1625
- _updateIsFieldValueUpdated(fieldValue);
1626
- if (isFieldValueUpdated) {
1627
- if (error) {
1628
- isValid = false;
1629
- }
1630
- else if (_proxyFormState.isValid ||
1631
- _proxySubscribeFormState.isValid) {
1632
- isValid = await executeBuiltInValidation(_fields, true);
1633
- }
1634
- }
1635
- }
1636
- if (isFieldValueUpdated) {
1637
- field._f.deps &&
1638
- (!Array.isArray(field._f.deps) || field._f.deps.length > 0) &&
1639
- trigger(field._f.deps);
1640
- shouldRenderByError(name, isValid, error, fieldState);
1641
- }
1642
- }
1643
- };
1644
- const _focusInput = (ref, key) => {
1645
- if (get(_formState.errors, key) && ref.focus) {
1646
- ref.focus();
1647
- return 1;
1648
- }
1649
- return;
1650
- };
1651
- const trigger = async (name, options = {}) => {
1652
- let isValid;
1653
- let validationResult;
1654
- const fieldNames = convertToArrayPayload(name);
1655
- if (_options.resolver) {
1656
- const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);
1657
- isValid = isEmptyObject(errors);
1658
- validationResult = name
1659
- ? !fieldNames.some((name) => get(errors, name))
1660
- : isValid;
1661
- }
1662
- else if (name) {
1663
- validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {
1664
- const field = get(_fields, fieldName);
1665
- return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);
1666
- }))).every(Boolean);
1667
- !(!validationResult && !_formState.isValid) && _setValid();
1668
- }
1669
- else {
1670
- validationResult = isValid = await executeBuiltInValidation(_fields);
1671
- }
1672
- _subjects.state.next({
1673
- ...(!isString(name) ||
1674
- ((_proxyFormState.isValid || _proxySubscribeFormState.isValid) &&
1675
- isValid !== _formState.isValid)
1676
- ? {}
1677
- : { name }),
1678
- ...(_options.resolver || !name ? { isValid } : {}),
1679
- errors: _formState.errors,
1680
- });
1681
- options.shouldFocus &&
1682
- !validationResult &&
1683
- iterateFieldsByAction(_fields, _focusInput, name ? fieldNames : _names.mount);
1684
- return validationResult;
1685
- };
1686
- const getValues = (fieldNames, config) => {
1687
- let values = {
1688
- ...(_state.mount ? _formValues : _defaultValues),
1689
- };
1690
- if (config) {
1691
- values = extractFormValues(config.dirtyFields ? _formState.dirtyFields : _formState.touchedFields, values);
1692
- }
1693
- return isUndefined(fieldNames)
1694
- ? values
1695
- : isString(fieldNames)
1696
- ? get(values, fieldNames)
1697
- : fieldNames.map((name) => get(values, name));
1698
- };
1699
- const getFieldState = (name, formState) => ({
1700
- invalid: !!get((formState || _formState).errors, name),
1701
- isDirty: !!get((formState || _formState).dirtyFields, name),
1702
- error: get((formState || _formState).errors, name),
1703
- isValidating: !!get(_formState.validatingFields, name),
1704
- isTouched: !!get((formState || _formState).touchedFields, name),
1705
- });
1706
- const clearErrors = (name) => {
1707
- name &&
1708
- convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName));
1709
- _subjects.state.next({
1710
- errors: name ? _formState.errors : {},
1711
- });
1712
- };
1713
- const setError = (name, error, options) => {
1714
- const ref = (get(_fields, name, { _f: {} })._f || {}).ref;
1715
- const currentError = get(_formState.errors, name) || {};
1716
- // Don't override existing error messages elsewhere in the object tree.
1717
- const { ref: currentRef, message, type, ...restOfErrorTree } = currentError;
1718
- set(_formState.errors, name, {
1719
- ...restOfErrorTree,
1720
- ...error,
1721
- ref,
1722
- });
1723
- _subjects.state.next({
1724
- name,
1725
- errors: _formState.errors,
1726
- isValid: false,
1727
- });
1728
- options && options.shouldFocus && ref && ref.focus && ref.focus();
1729
- };
1730
- const watch = (name, defaultValue) => isFunction(name)
1731
- ? _subjects.state.subscribe({
1732
- next: (payload) => 'values' in payload &&
1733
- name(_getWatch(undefined, defaultValue), payload),
1734
- })
1735
- : _getWatch(name, defaultValue, true);
1736
- const _subscribe = (props) => _subjects.state.subscribe({
1737
- next: (formState) => {
1738
- if (shouldSubscribeByName(props.name, formState.name, props.exact) &&
1739
- shouldRenderFormState(formState, props.formState || _proxyFormState, _setFormState, props.reRenderRoot)) {
1740
- props.callback({
1741
- values: { ..._formValues },
1742
- ..._formState,
1743
- ...formState,
1744
- defaultValues: _defaultValues,
1745
- });
1746
- }
1747
- },
1748
- }).unsubscribe;
1749
- const subscribe = (props) => {
1750
- _state.mount = true;
1751
- _proxySubscribeFormState = {
1752
- ..._proxySubscribeFormState,
1753
- ...props.formState,
1754
- };
1755
- return _subscribe({
1756
- ...props,
1757
- formState: {
1758
- ...defaultProxyFormState,
1759
- ...props.formState,
1760
- },
1761
- });
1762
- };
1763
- const unregister = (name, options = {}) => {
1764
- for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {
1765
- _names.mount.delete(fieldName);
1766
- _names.array.delete(fieldName);
1767
- if (!options.keepValue) {
1768
- unset(_fields, fieldName);
1769
- unset(_formValues, fieldName);
1770
- }
1771
- !options.keepError && unset(_formState.errors, fieldName);
1772
- !options.keepDirty && unset(_formState.dirtyFields, fieldName);
1773
- !options.keepTouched && unset(_formState.touchedFields, fieldName);
1774
- !options.keepIsValidating &&
1775
- unset(_formState.validatingFields, fieldName);
1776
- !_options.shouldUnregister &&
1777
- !options.keepDefaultValue &&
1778
- unset(_defaultValues, fieldName);
1779
- }
1780
- _subjects.state.next({
1781
- values: cloneObject(_formValues),
1782
- });
1783
- _subjects.state.next({
1784
- ..._formState,
1785
- ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),
1786
- });
1787
- !options.keepIsValid && _setValid();
1788
- };
1789
- const _setDisabledField = ({ disabled, name, }) => {
1790
- if ((isBoolean(disabled) && _state.mount) ||
1791
- !!disabled ||
1792
- _names.disabled.has(name)) {
1793
- const wasDisabled = _names.disabled.has(name);
1794
- const isDisabled = !!disabled;
1795
- const disabledStateChanged = wasDisabled !== isDisabled;
1796
- disabled ? _names.disabled.add(name) : _names.disabled.delete(name);
1797
- disabledStateChanged && _state.mount && !_state.action && _setValid();
1798
- }
1799
- };
1800
- const register = (name, options = {}) => {
1801
- let field = get(_fields, name);
1802
- const disabledIsDefined = isBoolean(options.disabled) || isBoolean(_options.disabled);
1803
- set(_fields, name, {
1804
- ...(field || {}),
1805
- _f: {
1806
- ...(field && field._f ? field._f : { ref: { name } }),
1807
- name,
1808
- mount: true,
1809
- ...options,
1810
- },
1811
- });
1812
- _names.mount.add(name);
1813
- if (field) {
1814
- _setDisabledField({
1815
- disabled: isBoolean(options.disabled)
1816
- ? options.disabled
1817
- : _options.disabled,
1818
- name,
1819
- });
1820
- }
1821
- else {
1822
- updateValidAndValue(name, true, options.value);
1823
- }
1824
- return {
1825
- ...(disabledIsDefined
1826
- ? { disabled: options.disabled || _options.disabled }
1827
- : {}),
1828
- ...(_options.progressive
1829
- ? {
1830
- required: !!options.required,
1831
- min: getRuleValue(options.min),
1832
- max: getRuleValue(options.max),
1833
- minLength: getRuleValue(options.minLength),
1834
- maxLength: getRuleValue(options.maxLength),
1835
- pattern: getRuleValue(options.pattern),
1836
- }
1837
- : {}),
1838
- name,
1839
- onChange,
1840
- onBlur: onChange,
1841
- ref: (ref) => {
1842
- if (ref) {
1843
- register(name, options);
1844
- field = get(_fields, name);
1845
- const fieldRef = isUndefined(ref.value)
1846
- ? ref.querySelectorAll
1847
- ? ref.querySelectorAll('input,select,textarea')[0] || ref
1848
- : ref
1849
- : ref;
1850
- const radioOrCheckbox = isRadioOrCheckbox(fieldRef);
1851
- const refs = field._f.refs || [];
1852
- if (radioOrCheckbox
1853
- ? refs.find((option) => option === fieldRef)
1854
- : fieldRef === field._f.ref) {
1855
- return;
1856
- }
1857
- set(_fields, name, {
1858
- _f: {
1859
- ...field._f,
1860
- ...(radioOrCheckbox
1861
- ? {
1862
- refs: [
1863
- ...refs.filter(live),
1864
- fieldRef,
1865
- ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),
1866
- ],
1867
- ref: { type: fieldRef.type, name },
1868
- }
1869
- : { ref: fieldRef }),
1870
- },
1871
- });
1872
- updateValidAndValue(name, false, undefined, fieldRef);
1873
- }
1874
- else {
1875
- field = get(_fields, name, {});
1876
- if (field._f) {
1877
- field._f.mount = false;
1878
- }
1879
- (_options.shouldUnregister || options.shouldUnregister) &&
1880
- !(isNameInFieldArray(_names.array, name) && _state.action) &&
1881
- _names.unMount.add(name);
1882
- }
1883
- },
1884
- };
1885
- };
1886
- const _focusError = () => _options.shouldFocusError &&
1887
- iterateFieldsByAction(_fields, _focusInput, _names.mount);
1888
- const _disableForm = (disabled) => {
1889
- if (isBoolean(disabled)) {
1890
- _subjects.state.next({ disabled });
1891
- iterateFieldsByAction(_fields, (ref, name) => {
1892
- const currentField = get(_fields, name);
1893
- if (currentField) {
1894
- ref.disabled = currentField._f.disabled || disabled;
1895
- if (Array.isArray(currentField._f.refs)) {
1896
- currentField._f.refs.forEach((inputRef) => {
1897
- inputRef.disabled = currentField._f.disabled || disabled;
1898
- });
1899
- }
1900
- }
1901
- }, 0, false);
1902
- }
1903
- };
1904
- const handleSubmit = (onValid, onInvalid) => async (e) => {
1905
- let onValidError = undefined;
1906
- if (e) {
1907
- e.preventDefault && e.preventDefault();
1908
- e.persist &&
1909
- e.persist();
1910
- }
1911
- let fieldValues = cloneObject(_formValues);
1912
- _subjects.state.next({
1913
- isSubmitting: true,
1914
- });
1915
- if (_options.resolver) {
1916
- const { errors, values } = await _runSchema();
1917
- _updateIsValidating();
1918
- _formState.errors = errors;
1919
- fieldValues = cloneObject(values);
1920
- }
1921
- else {
1922
- await executeBuiltInValidation(_fields);
1923
- }
1924
- if (_names.disabled.size) {
1925
- for (const name of _names.disabled) {
1926
- unset(fieldValues, name);
1927
- }
1928
- }
1929
- unset(_formState.errors, 'root');
1930
- if (isEmptyObject(_formState.errors)) {
1931
- _subjects.state.next({
1932
- errors: {},
1933
- });
1934
- try {
1935
- await onValid(fieldValues, e);
1936
- }
1937
- catch (error) {
1938
- onValidError = error;
1939
- }
1940
- }
1941
- else {
1942
- if (onInvalid) {
1943
- await onInvalid({ ..._formState.errors }, e);
1944
- }
1945
- _focusError();
1946
- setTimeout(_focusError);
1947
- }
1948
- _subjects.state.next({
1949
- isSubmitted: true,
1950
- isSubmitting: false,
1951
- isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,
1952
- submitCount: _formState.submitCount + 1,
1953
- errors: _formState.errors,
1954
- });
1955
- if (onValidError) {
1956
- throw onValidError;
1957
- }
1958
- };
1959
- const resetField = (name, options = {}) => {
1960
- if (get(_fields, name)) {
1961
- if (isUndefined(options.defaultValue)) {
1962
- setValue(name, cloneObject(get(_defaultValues, name)));
1963
- }
1964
- else {
1965
- setValue(name, options.defaultValue);
1966
- set(_defaultValues, name, cloneObject(options.defaultValue));
1967
- }
1968
- if (!options.keepTouched) {
1969
- unset(_formState.touchedFields, name);
1970
- }
1971
- if (!options.keepDirty) {
1972
- unset(_formState.dirtyFields, name);
1973
- _formState.isDirty = options.defaultValue
1974
- ? _getDirty(name, cloneObject(get(_defaultValues, name)))
1975
- : _getDirty();
1976
- }
1977
- if (!options.keepError) {
1978
- unset(_formState.errors, name);
1979
- _proxyFormState.isValid && _setValid();
1980
- }
1981
- _subjects.state.next({ ..._formState });
1982
- }
1983
- };
1984
- const _reset = (formValues, keepStateOptions = {}) => {
1985
- const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;
1986
- const cloneUpdatedValues = cloneObject(updatedValues);
1987
- const isEmptyResetValues = isEmptyObject(formValues);
1988
- const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;
1989
- if (!keepStateOptions.keepDefaultValues) {
1990
- _defaultValues = updatedValues;
1991
- }
1992
- if (!keepStateOptions.keepValues) {
1993
- if (keepStateOptions.keepDirtyValues) {
1994
- const fieldsToCheck = new Set([
1995
- ..._names.mount,
1996
- ...Object.keys(getDirtyFields(_defaultValues, _formValues)),
1997
- ]);
1998
- for (const fieldName of Array.from(fieldsToCheck)) {
1999
- const isDirty = get(_formState.dirtyFields, fieldName);
2000
- const existingValue = get(_formValues, fieldName);
2001
- const newValue = get(values, fieldName);
2002
- if (isDirty && !isUndefined(existingValue)) {
2003
- set(values, fieldName, existingValue);
2004
- }
2005
- else if (!isDirty && !isUndefined(newValue)) {
2006
- setValue(fieldName, newValue);
2007
- }
2008
- }
2009
- }
2010
- else {
2011
- if (isWeb && isUndefined(formValues)) {
2012
- for (const name of _names.mount) {
2013
- const field = get(_fields, name);
2014
- if (field && field._f) {
2015
- const fieldReference = Array.isArray(field._f.refs)
2016
- ? field._f.refs[0]
2017
- : field._f.ref;
2018
- if (isHTMLElement(fieldReference)) {
2019
- const form = fieldReference.closest('form');
2020
- if (form) {
2021
- form.reset();
2022
- break;
2023
- }
2024
- }
2025
- }
2026
- }
2027
- }
2028
- if (keepStateOptions.keepFieldsRef) {
2029
- for (const fieldName of _names.mount) {
2030
- setValue(fieldName, get(values, fieldName));
2031
- }
2032
- }
2033
- else {
2034
- _fields = {};
2035
- }
2036
- }
2037
- _formValues = _options.shouldUnregister
2038
- ? keepStateOptions.keepDefaultValues
2039
- ? cloneObject(_defaultValues)
2040
- : {}
2041
- : cloneObject(values);
2042
- _subjects.array.next({
2043
- values: { ...values },
2044
- });
2045
- _subjects.state.next({
2046
- values: { ...values },
2047
- });
2048
- }
2049
- _names = {
2050
- mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),
2051
- unMount: new Set(),
2052
- array: new Set(),
2053
- disabled: new Set(),
2054
- watch: new Set(),
2055
- watchAll: false,
2056
- focus: '',
2057
- };
2058
- _state.mount =
2059
- !_proxyFormState.isValid ||
2060
- !!keepStateOptions.keepIsValid ||
2061
- !!keepStateOptions.keepDirtyValues ||
2062
- (!_options.shouldUnregister && !isEmptyObject(values));
2063
- _state.watch = !!_options.shouldUnregister;
2064
- _state.keepIsValid = !!keepStateOptions.keepIsValid;
2065
- _state.action = false;
2066
- // Clear errors synchronously to prevent validation errors on subsequent submissions
2067
- // This fixes the issue where form.reset() causes validation errors on subsequent
2068
- // submissions in Next.js 16 with Server Actions
2069
- if (!keepStateOptions.keepErrors) {
2070
- _formState.errors = {};
2071
- }
2072
- _subjects.state.next({
2073
- submitCount: keepStateOptions.keepSubmitCount
2074
- ? _formState.submitCount
2075
- : 0,
2076
- isDirty: isEmptyResetValues
2077
- ? false
2078
- : keepStateOptions.keepDirty
2079
- ? _formState.isDirty
2080
- : !!(keepStateOptions.keepDefaultValues &&
2081
- !deepEqual(formValues, _defaultValues)),
2082
- isSubmitted: keepStateOptions.keepIsSubmitted
2083
- ? _formState.isSubmitted
2084
- : false,
2085
- dirtyFields: isEmptyResetValues
2086
- ? {}
2087
- : keepStateOptions.keepDirtyValues
2088
- ? keepStateOptions.keepDefaultValues && _formValues
2089
- ? getDirtyFields(_defaultValues, _formValues)
2090
- : _formState.dirtyFields
2091
- : keepStateOptions.keepDefaultValues && formValues
2092
- ? getDirtyFields(_defaultValues, formValues)
2093
- : keepStateOptions.keepDirty
2094
- ? _formState.dirtyFields
2095
- : {},
2096
- touchedFields: keepStateOptions.keepTouched
2097
- ? _formState.touchedFields
2098
- : {},
2099
- errors: keepStateOptions.keepErrors ? _formState.errors : {},
2100
- isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful
2101
- ? _formState.isSubmitSuccessful
2102
- : false,
2103
- isSubmitting: false,
2104
- defaultValues: _defaultValues,
2105
- });
2106
- };
2107
- const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)
2108
- ? formValues(_formValues)
2109
- : formValues, { ..._options.resetOptions, ...keepStateOptions });
2110
- const setFocus = (name, options = {}) => {
2111
- const field = get(_fields, name);
2112
- const fieldReference = field && field._f;
2113
- if (fieldReference) {
2114
- const fieldRef = fieldReference.refs
2115
- ? fieldReference.refs[0]
2116
- : fieldReference.ref;
2117
- if (fieldRef.focus) {
2118
- // Use setTimeout to ensure focus happens after any pending state updates
2119
- // This fixes the issue where setFocus doesn't work immediately after setError
2120
- setTimeout(() => {
2121
- fieldRef.focus();
2122
- options.shouldSelect &&
2123
- isFunction(fieldRef.select) &&
2124
- fieldRef.select();
2125
- });
2126
- }
2127
- }
2128
- };
2129
- const _setFormState = (updatedFormState) => {
2130
- _formState = {
2131
- ..._formState,
2132
- ...updatedFormState,
2133
- };
2134
- };
2135
- const _resetDefaultValues = () => isFunction(_options.defaultValues) &&
2136
- _options.defaultValues().then((values) => {
2137
- reset(values, _options.resetOptions);
2138
- _subjects.state.next({
2139
- isLoading: false,
2140
- });
2141
- });
2142
- const methods = {
2143
- control: {
2144
- register,
2145
- unregister,
2146
- getFieldState,
2147
- handleSubmit,
2148
- setError,
2149
- _subscribe,
2150
- _runSchema,
2151
- _updateIsValidating,
2152
- _focusError,
2153
- _getWatch,
2154
- _getDirty,
2155
- _setValid,
2156
- _setFieldArray,
2157
- _setDisabledField,
2158
- _setErrors,
2159
- _getFieldArray,
2160
- _reset,
2161
- _resetDefaultValues,
2162
- _removeUnmounted,
2163
- _disableForm,
2164
- _subjects,
2165
- _proxyFormState,
2166
- get _fields() {
2167
- return _fields;
2168
- },
2169
- get _formValues() {
2170
- return _formValues;
2171
- },
2172
- get _state() {
2173
- return _state;
2174
- },
2175
- set _state(value) {
2176
- _state = value;
2177
- },
2178
- get _defaultValues() {
2179
- return _defaultValues;
2180
- },
2181
- get _names() {
2182
- return _names;
2183
- },
2184
- set _names(value) {
2185
- _names = value;
2186
- },
2187
- get _formState() {
2188
- return _formState;
2189
- },
2190
- get _options() {
2191
- return _options;
2192
- },
2193
- set _options(value) {
2194
- _options = {
2195
- ..._options,
2196
- ...value,
2197
- };
2198
- },
2199
- },
2200
- subscribe,
2201
- trigger,
2202
- register,
2203
- handleSubmit,
2204
- watch,
2205
- setValue,
2206
- getValues,
2207
- reset,
2208
- resetField,
2209
- clearErrors,
2210
- unregister,
2211
- setError,
2212
- setFocus,
2213
- getFieldState,
2214
- };
2215
- return {
2216
- ...methods,
2217
- formControl: methods,
2218
- };
2219
- }
2220
-
2221
- var generateId = () => {
2222
- if (typeof crypto !== 'undefined' && crypto.randomUUID) {
2223
- return crypto.randomUUID();
2224
- }
2225
- const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;
2226
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
2227
- const r = ((Math.random() * 16 + d) % 16) | 0;
2228
- return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);
2229
- });
2230
- };
2231
-
2232
- var getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)
2233
- ? options.focusName ||
2234
- `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`
2235
- : '';
2236
-
2237
- var appendAt = (data, value) => [
2238
- ...data,
2239
- ...convertToArrayPayload(value),
2240
- ];
2241
-
2242
- var fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;
2243
-
2244
- function insert(data, index, value) {
2245
- return [
2246
- ...data.slice(0, index),
2247
- ...convertToArrayPayload(value),
2248
- ...data.slice(index),
2249
- ];
2250
- }
2251
-
2252
- var moveArrayAt = (data, from, to) => {
2253
- if (!Array.isArray(data)) {
2254
- return [];
2255
- }
2256
- if (isUndefined(data[to])) {
2257
- data[to] = undefined;
2258
- }
2259
- data.splice(to, 0, data.splice(from, 1)[0]);
2260
- return data;
2261
- };
2262
-
2263
- var prependAt = (data, value) => [
2264
- ...convertToArrayPayload(value),
2265
- ...convertToArrayPayload(data),
2266
- ];
2267
-
2268
- function removeAtIndexes(data, indexes) {
2269
- let i = 0;
2270
- const temp = [...data];
2271
- for (const index of indexes) {
2272
- temp.splice(index - i, 1);
2273
- i++;
2274
- }
2275
- return compact(temp).length ? temp : [];
2276
- }
2277
- var removeArrayAt = (data, index) => isUndefined(index)
2278
- ? []
2279
- : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));
2280
-
2281
- var swapArrayAt = (data, indexA, indexB) => {
2282
- [data[indexA], data[indexB]] = [data[indexB], data[indexA]];
2283
- };
2284
-
2285
- var updateAt = (fieldValues, index, value) => {
2286
- fieldValues[index] = value;
2287
- return fieldValues;
2288
- };
2289
-
2290
- /**
2291
- * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)
2292
- *
2293
- * @remarks
2294
- * [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)
2295
- *
2296
- * @param props - useFieldArray props
2297
- *
2298
- * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}
2299
- *
2300
- * @example
2301
- * ```tsx
2302
- * function App() {
2303
- * const { register, control, handleSubmit, reset, trigger, setError } = useForm({
2304
- * defaultValues: {
2305
- * test: []
2306
- * }
2307
- * });
2308
- * const { fields, append } = useFieldArray({
2309
- * control,
2310
- * name: "test"
2311
- * });
2312
- *
2313
- * return (
2314
- * <form onSubmit={handleSubmit(data => console.log(data))}>
2315
- * {fields.map((item, index) => (
2316
- * <input key={item.id} {...register(`test.${index}.firstName`)} />
2317
- * ))}
2318
- * <button type="button" onClick={() => append({ firstName: "bill" })}>
2319
- * append
2320
- * </button>
2321
- * <input type="submit" />
2322
- * </form>
2323
- * );
2324
- * }
2325
- * ```
2326
- */
2327
- function useFieldArray(props) {
2328
- const formControl = useFormControlContext();
2329
- const { control = formControl, name, keyName = 'id', shouldUnregister, rules, } = props;
2330
- const [fields, setFields] = React.useState(control._getFieldArray(name));
2331
- const ids = React.useRef(control._getFieldArray(name).map(generateId));
2332
- const _actioned = React.useRef(false);
2333
- control._names.array.add(name);
2334
- React.useMemo(() => rules &&
2335
- fields.length >= 0 &&
2336
- control.register(name, rules), [control, name, fields.length, rules]);
2337
- useIsomorphicLayoutEffect(() => control._subjects.array.subscribe({
2338
- next: ({ values, name: fieldArrayName, }) => {
2339
- if (fieldArrayName === name || !fieldArrayName) {
2340
- const fieldValues = get(values, name);
2341
- if (Array.isArray(fieldValues)) {
2342
- setFields(fieldValues);
2343
- ids.current = fieldValues.map(generateId);
2344
- }
2345
- }
2346
- },
2347
- }).unsubscribe, [control, name]);
2348
- const updateValues = React.useCallback((updatedFieldArrayValues) => {
2349
- _actioned.current = true;
2350
- control._setFieldArray(name, updatedFieldArrayValues);
2351
- }, [control, name]);
2352
- const append = (value, options) => {
2353
- const appendValue = convertToArrayPayload(cloneObject(value));
2354
- const updatedFieldArrayValues = appendAt(control._getFieldArray(name), appendValue);
2355
- control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);
2356
- ids.current = appendAt(ids.current, appendValue.map(generateId));
2357
- updateValues(updatedFieldArrayValues);
2358
- setFields(updatedFieldArrayValues);
2359
- control._setFieldArray(name, updatedFieldArrayValues, appendAt, {
2360
- argA: fillEmptyArray(value),
2361
- });
2362
- };
2363
- const prepend = (value, options) => {
2364
- const prependValue = convertToArrayPayload(cloneObject(value));
2365
- const updatedFieldArrayValues = prependAt(control._getFieldArray(name), prependValue);
2366
- control._names.focus = getFocusFieldName(name, 0, options);
2367
- ids.current = prependAt(ids.current, prependValue.map(generateId));
2368
- updateValues(updatedFieldArrayValues);
2369
- setFields(updatedFieldArrayValues);
2370
- control._setFieldArray(name, updatedFieldArrayValues, prependAt, {
2371
- argA: fillEmptyArray(value),
2372
- });
2373
- };
2374
- const remove = (index) => {
2375
- const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);
2376
- ids.current = removeArrayAt(ids.current, index);
2377
- updateValues(updatedFieldArrayValues);
2378
- setFields(updatedFieldArrayValues);
2379
- !Array.isArray(get(control._fields, name)) &&
2380
- set(control._fields, name, undefined);
2381
- control._setFieldArray(name, updatedFieldArrayValues, removeArrayAt, {
2382
- argA: index,
2383
- });
2384
- };
2385
- const insert$1 = (index, value, options) => {
2386
- const insertValue = convertToArrayPayload(cloneObject(value));
2387
- const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);
2388
- control._names.focus = getFocusFieldName(name, index, options);
2389
- ids.current = insert(ids.current, index, insertValue.map(generateId));
2390
- updateValues(updatedFieldArrayValues);
2391
- setFields(updatedFieldArrayValues);
2392
- control._setFieldArray(name, updatedFieldArrayValues, insert, {
2393
- argA: index,
2394
- argB: fillEmptyArray(value),
2395
- });
2396
- };
2397
- const swap = (indexA, indexB) => {
2398
- const updatedFieldArrayValues = control._getFieldArray(name);
2399
- swapArrayAt(updatedFieldArrayValues, indexA, indexB);
2400
- swapArrayAt(ids.current, indexA, indexB);
2401
- updateValues(updatedFieldArrayValues);
2402
- setFields(updatedFieldArrayValues);
2403
- control._setFieldArray(name, updatedFieldArrayValues, swapArrayAt, {
2404
- argA: indexA,
2405
- argB: indexB,
2406
- }, false);
2407
- };
2408
- const move = (from, to) => {
2409
- const updatedFieldArrayValues = control._getFieldArray(name);
2410
- moveArrayAt(updatedFieldArrayValues, from, to);
2411
- moveArrayAt(ids.current, from, to);
2412
- updateValues(updatedFieldArrayValues);
2413
- setFields(updatedFieldArrayValues);
2414
- control._setFieldArray(name, updatedFieldArrayValues, moveArrayAt, {
2415
- argA: from,
2416
- argB: to,
2417
- }, false);
2418
- };
2419
- const update = (index, value) => {
2420
- const updateValue = cloneObject(value);
2421
- const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);
2422
- ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);
2423
- updateValues(updatedFieldArrayValues);
2424
- setFields([...updatedFieldArrayValues]);
2425
- control._setFieldArray(name, updatedFieldArrayValues, updateAt, {
2426
- argA: index,
2427
- argB: updateValue,
2428
- }, true, false);
2429
- };
2430
- const replace = (value) => {
2431
- const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));
2432
- ids.current = updatedFieldArrayValues.map(generateId);
2433
- updateValues([...updatedFieldArrayValues]);
2434
- setFields([...updatedFieldArrayValues]);
2435
- control._setFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);
2436
- };
2437
- React.useEffect(() => {
2438
- control._state.action = false;
2439
- isWatched(name, control._names) &&
2440
- control._subjects.state.next({
2441
- ...control._formState,
2442
- });
2443
- if (_actioned.current &&
2444
- (!getValidationModes(control._options.mode).isOnSubmit ||
2445
- control._formState.isSubmitted) &&
2446
- !getValidationModes(control._options.reValidateMode).isOnSubmit) {
2447
- if (control._options.resolver) {
2448
- control._runSchema([name]).then((result) => {
2449
- control._updateIsValidating([name]);
2450
- const error = get(result.errors, name);
2451
- const existingError = get(control._formState.errors, name);
2452
- if (existingError
2453
- ? (!error && existingError.type) ||
2454
- (error &&
2455
- (existingError.type !== error.type ||
2456
- existingError.message !== error.message))
2457
- : error && error.type) {
2458
- error
2459
- ? set(control._formState.errors, name, error)
2460
- : unset(control._formState.errors, name);
2461
- control._subjects.state.next({
2462
- errors: control._formState.errors,
2463
- });
2464
- }
2465
- });
2466
- }
2467
- else {
2468
- const field = get(control._fields, name);
2469
- if (field &&
2470
- field._f &&
2471
- !(getValidationModes(control._options.reValidateMode).isOnSubmit &&
2472
- getValidationModes(control._options.mode).isOnSubmit)) {
2473
- validateField(field, control._names.disabled, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&
2474
- control._subjects.state.next({
2475
- errors: updateFieldArrayRootError(control._formState.errors, error, name),
2476
- }));
2477
- }
2478
- }
2479
- }
2480
- control._subjects.state.next({
2481
- name,
2482
- values: cloneObject(control._formValues),
2483
- });
2484
- control._names.focus &&
2485
- iterateFieldsByAction(control._fields, (ref, key) => {
2486
- if (control._names.focus &&
2487
- key.startsWith(control._names.focus) &&
2488
- ref.focus) {
2489
- ref.focus();
2490
- return 1;
2491
- }
2492
- return;
2493
- });
2494
- control._names.focus = '';
2495
- control._setValid();
2496
- _actioned.current = false;
2497
- }, [fields, name, control]);
2498
- React.useEffect(() => {
2499
- !get(control._formValues, name) && control._setFieldArray(name);
2500
- return () => {
2501
- const updateMounted = (name, value) => {
2502
- const field = get(control._fields, name);
2503
- if (field && field._f) {
2504
- field._f.mount = value;
2505
- }
2506
- };
2507
- control._options.shouldUnregister || shouldUnregister
2508
- ? control.unregister(name)
2509
- : updateMounted(name, false);
2510
- };
2511
- }, [name, control, keyName, shouldUnregister]);
2512
- return {
2513
- swap: React.useCallback(swap, [updateValues, name, control]),
2514
- move: React.useCallback(move, [updateValues, name, control]),
2515
- prepend: React.useCallback(prepend, [updateValues, name, control]),
2516
- append: React.useCallback(append, [updateValues, name, control]),
2517
- remove: React.useCallback(remove, [updateValues, name, control]),
2518
- insert: React.useCallback(insert$1, [updateValues, name, control]),
2519
- update: React.useCallback(update, [updateValues, name, control]),
2520
- replace: React.useCallback(replace, [updateValues, name, control]),
2521
- fields: React.useMemo(() => fields.map((field, index) => ({
2522
- ...field,
2523
- [keyName]: ids.current[index] || generateId(),
2524
- })), [fields, keyName]),
2525
- };
2526
- }
2527
-
2528
- /**
2529
- * Custom hook to manage the entire form.
2530
- *
2531
- * @remarks
2532
- * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)
2533
- *
2534
- * @param props - form configuration and validation parameters.
2535
- *
2536
- * @returns methods - individual functions to manage the form state. {@link UseFormReturn}
2537
- *
2538
- * @example
2539
- * ```tsx
2540
- * function App() {
2541
- * const { register, handleSubmit, watch, formState: { errors } } = useForm();
2542
- * const onSubmit = data => console.log(data);
2543
- *
2544
- * console.log(watch("example"));
2545
- *
2546
- * return (
2547
- * <form onSubmit={handleSubmit(onSubmit)}>
2548
- * <input defaultValue="test" {...register("example")} />
2549
- * <input {...register("exampleRequired", { required: true })} />
2550
- * {errors.exampleRequired && <span>This field is required</span>}
2551
- * <button>Submit</button>
2552
- * </form>
2553
- * );
2554
- * }
2555
- * ```
2556
- */
2557
- function useForm(props = {}) {
2558
- const _formControl = React.useRef(undefined);
2559
- const _values = React.useRef(undefined);
2560
- const [formState, updateFormState] = React.useState({
2561
- isDirty: false,
2562
- isValidating: false,
2563
- isLoading: isFunction(props.defaultValues),
2564
- isSubmitted: false,
2565
- isSubmitting: false,
2566
- isSubmitSuccessful: false,
2567
- isValid: false,
2568
- submitCount: 0,
2569
- dirtyFields: {},
2570
- touchedFields: {},
2571
- validatingFields: {},
2572
- errors: props.errors || {},
2573
- disabled: props.disabled || false,
2574
- isReady: false,
2575
- defaultValues: isFunction(props.defaultValues)
2576
- ? undefined
2577
- : props.defaultValues,
2578
- });
2579
- if (!_formControl.current) {
2580
- if (props.formControl) {
2581
- _formControl.current = {
2582
- ...props.formControl,
2583
- formState,
2584
- };
2585
- if (props.defaultValues && !isFunction(props.defaultValues)) {
2586
- props.formControl.reset(props.defaultValues, props.resetOptions);
2587
- }
2588
- }
2589
- else {
2590
- const { formControl, ...rest } = createFormControl(props);
2591
- _formControl.current = {
2592
- ...rest,
2593
- formState,
2594
- };
2595
- }
2596
- }
2597
- const control = _formControl.current.control;
2598
- control._options = props;
2599
- useIsomorphicLayoutEffect(() => {
2600
- const sub = control._subscribe({
2601
- formState: control._proxyFormState,
2602
- callback: () => updateFormState({ ...control._formState }),
2603
- reRenderRoot: true,
2604
- });
2605
- updateFormState((data) => ({
2606
- ...data,
2607
- isReady: true,
2608
- }));
2609
- control._formState.isReady = true;
2610
- return sub;
2611
- }, [control]);
2612
- React.useEffect(() => control._disableForm(props.disabled), [control, props.disabled]);
2613
- React.useEffect(() => {
2614
- if (props.mode) {
2615
- control._options.mode = props.mode;
2616
- }
2617
- if (props.reValidateMode) {
2618
- control._options.reValidateMode = props.reValidateMode;
2619
- }
2620
- }, [control, props.mode, props.reValidateMode]);
2621
- React.useEffect(() => {
2622
- if (props.errors) {
2623
- control._setErrors(props.errors);
2624
- control._focusError();
2625
- }
2626
- }, [control, props.errors]);
2627
- React.useEffect(() => {
2628
- props.shouldUnregister &&
2629
- control._subjects.state.next({
2630
- values: control._getWatch(),
2631
- });
2632
- }, [control, props.shouldUnregister]);
2633
- React.useEffect(() => {
2634
- if (control._proxyFormState.isDirty) {
2635
- const isDirty = control._getDirty();
2636
- if (isDirty !== formState.isDirty) {
2637
- control._subjects.state.next({
2638
- isDirty,
2639
- });
2640
- }
2641
- }
2642
- }, [control, formState.isDirty]);
2643
- React.useEffect(() => {
2644
- var _a;
2645
- if (props.values && !deepEqual(props.values, _values.current)) {
2646
- control._reset(props.values, {
2647
- keepFieldsRef: true,
2648
- ...control._options.resetOptions,
2649
- });
2650
- if (!((_a = control._options.resetOptions) === null || _a === void 0 ? void 0 : _a.keepIsValid)) {
2651
- control._setValid();
2652
- }
2653
- _values.current = props.values;
2654
- updateFormState((state) => ({ ...state }));
2655
- }
2656
- else {
2657
- control._resetDefaultValues();
2658
- }
2659
- }, [control, props.values]);
2660
- React.useEffect(() => {
2661
- if (!control._state.mount) {
2662
- control._setValid();
2663
- control._state.mount = true;
2664
- }
2665
- if (control._state.watch) {
2666
- control._state.watch = false;
2667
- control._subjects.state.next({ ...control._formState });
2668
- }
2669
- control._removeUnmounted();
2670
- });
2671
- _formControl.current.formState = React.useMemo(() => getProxyFormState(formState, control), [control, formState]);
2672
- return _formControl.current;
2673
- }
2674
-
2675
- export { useForm as a, useController as b, useFieldArray as c, useWatch as d, appendErrors as e, get as g, set as s, useFormState as u };
2676
- //# sourceMappingURL=index.esm-Dpqxgpya.js.map