payload-auth 1.0.2 → 1.1.0

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 (423) hide show
  1. package/dist/better-auth/adapter/index.d.ts +2 -2
  2. package/dist/better-auth/adapter/index.d.ts.map +1 -1
  3. package/dist/better-auth/adapter/index.js +115 -69
  4. package/dist/better-auth/adapter/transform/index.d.ts +22 -10
  5. package/dist/better-auth/adapter/transform/index.d.ts.map +1 -1
  6. package/dist/better-auth/adapter/transform/index.js +387 -96
  7. package/dist/better-auth/adapter/types.d.ts +2 -1
  8. package/dist/better-auth/adapter/types.d.ts.map +1 -1
  9. package/dist/better-auth/adapter/types.js +1 -1
  10. package/dist/better-auth/plugin/helpers/check-passkey-plugin.d.ts +3 -0
  11. package/dist/better-auth/plugin/helpers/check-passkey-plugin.d.ts.map +1 -0
  12. package/dist/better-auth/plugin/helpers/check-passkey-plugin.js +5 -0
  13. package/dist/better-auth/plugin/helpers/check-username-plugin.d.ts +3 -0
  14. package/dist/better-auth/plugin/helpers/check-username-plugin.d.ts.map +1 -0
  15. package/dist/better-auth/plugin/helpers/check-username-plugin.js +5 -0
  16. package/dist/better-auth/plugin/helpers/generate-verify-email-url.d.ts.map +1 -1
  17. package/dist/better-auth/plugin/helpers/generate-verify-email-url.js +8 -8
  18. package/dist/better-auth/plugin/helpers/get-admin-access.d.ts +8 -0
  19. package/dist/better-auth/plugin/helpers/get-admin-access.d.ts.map +1 -0
  20. package/dist/better-auth/plugin/helpers/get-admin-access.js +22 -0
  21. package/dist/better-auth/plugin/helpers/get-admin-routes.d.ts +14 -0
  22. package/dist/better-auth/plugin/helpers/get-admin-routes.d.ts.map +1 -0
  23. package/dist/better-auth/plugin/helpers/get-admin-routes.js +6 -0
  24. package/dist/better-auth/plugin/helpers/get-all-roles.d.ts +6 -0
  25. package/dist/better-auth/plugin/helpers/get-all-roles.d.ts.map +1 -0
  26. package/dist/better-auth/plugin/helpers/get-all-roles.js +20 -0
  27. package/dist/better-auth/plugin/helpers/get-ip.d.ts +1 -1
  28. package/dist/better-auth/plugin/helpers/get-ip.d.ts.map +1 -1
  29. package/dist/better-auth/plugin/helpers/get-ip.js +14 -14
  30. package/dist/better-auth/plugin/helpers/get-requst-collection.d.ts +3 -0
  31. package/dist/better-auth/plugin/helpers/get-requst-collection.d.ts.map +1 -0
  32. package/dist/better-auth/plugin/helpers/get-requst-collection.js +14 -0
  33. package/dist/better-auth/plugin/helpers/index.d.ts +1 -1
  34. package/dist/better-auth/plugin/helpers/index.js +2 -2
  35. package/dist/better-auth/plugin/{lib → helpers}/prepare-session-data.d.ts +3 -3
  36. package/dist/better-auth/plugin/helpers/prepare-session-data.d.ts.map +1 -0
  37. package/dist/better-auth/plugin/helpers/prepare-session-data.js +42 -0
  38. package/dist/better-auth/plugin/helpers/serialize-cookie.d.ts +4 -4
  39. package/dist/better-auth/plugin/helpers/serialize-cookie.d.ts.map +1 -1
  40. package/dist/better-auth/plugin/helpers/serialize-cookie.js +34 -34
  41. package/dist/better-auth/plugin/index.d.ts +7 -7
  42. package/dist/better-auth/plugin/index.d.ts.map +1 -1
  43. package/dist/better-auth/plugin/index.js +145 -37
  44. package/dist/better-auth/plugin/{collections → lib/build-collections}/accounts/hooks/sync-password-to-user.d.ts +1 -1
  45. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts.map +1 -0
  46. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.js +47 -0
  47. package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts +7 -0
  48. package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts.map +1 -0
  49. package/dist/better-auth/plugin/lib/build-collections/accounts/index.js +159 -0
  50. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.d.ts +6 -0
  51. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.d.ts.map +1 -0
  52. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.js +11 -0
  53. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.d.ts +3 -0
  54. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.d.ts.map +1 -0
  55. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.js +8 -0
  56. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts +7 -0
  57. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts.map +1 -0
  58. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.js +107 -0
  59. package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts +6 -0
  60. package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts.map +1 -0
  61. package/dist/better-auth/plugin/lib/build-collections/api-keys.js +196 -0
  62. package/dist/better-auth/plugin/lib/build-collections/index.d.ts +12 -0
  63. package/dist/better-auth/plugin/lib/build-collections/index.d.ts.map +1 -0
  64. package/dist/better-auth/plugin/lib/build-collections/index.js +96 -0
  65. package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts +6 -0
  66. package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts.map +1 -0
  67. package/dist/better-auth/plugin/lib/build-collections/invitations.js +91 -0
  68. package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts +6 -0
  69. package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts.map +1 -0
  70. package/dist/better-auth/plugin/lib/build-collections/jwks.js +43 -0
  71. package/dist/better-auth/plugin/lib/build-collections/members.d.ts +6 -0
  72. package/dist/better-auth/plugin/lib/build-collections/members.d.ts.map +1 -0
  73. package/dist/better-auth/plugin/lib/build-collections/members.js +71 -0
  74. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts +6 -0
  75. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts.map +1 -0
  76. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.js +98 -0
  77. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts +6 -0
  78. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts.map +1 -0
  79. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.js +113 -0
  80. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts +6 -0
  81. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts.map +1 -0
  82. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.js +67 -0
  83. package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts +6 -0
  84. package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts.map +1 -0
  85. package/dist/better-auth/plugin/lib/build-collections/organizations.js +59 -0
  86. package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts +6 -0
  87. package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts.map +1 -0
  88. package/dist/better-auth/plugin/lib/build-collections/passkeys.js +108 -0
  89. package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts +8 -0
  90. package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts.map +1 -0
  91. package/dist/better-auth/plugin/lib/build-collections/sessions.js +123 -0
  92. package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts +6 -0
  93. package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts.map +1 -0
  94. package/dist/better-auth/plugin/lib/build-collections/sso-providers.js +83 -0
  95. package/dist/better-auth/plugin/lib/build-collections/teams.d.ts +6 -0
  96. package/dist/better-auth/plugin/lib/build-collections/teams.d.ts.map +1 -0
  97. package/dist/better-auth/plugin/lib/build-collections/teams.js +45 -0
  98. package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts +6 -0
  99. package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts.map +1 -0
  100. package/dist/better-auth/plugin/lib/build-collections/two-factors.js +56 -0
  101. package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.d.ts +8 -0
  102. package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.d.ts.map +1 -0
  103. package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.js +52 -0
  104. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/forgot-password.d.ts +3 -0
  105. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/forgot-password.d.ts.map +1 -0
  106. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/forgot-password.js +96 -0
  107. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.d.ts +13 -0
  108. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.d.ts.map +1 -0
  109. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.js +67 -0
  110. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/login.d.ts +4 -0
  111. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/login.d.ts.map +1 -0
  112. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/login.js +115 -0
  113. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.d.ts +3 -0
  114. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.d.ts.map +1 -0
  115. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.js +110 -0
  116. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/reset-password.d.ts +3 -0
  117. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/reset-password.d.ts.map +1 -0
  118. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/reset-password.js +62 -0
  119. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.d.ts +3 -0
  120. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.d.ts.map +1 -0
  121. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.js +42 -0
  122. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.d.ts +4 -0
  123. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.d.ts.map +1 -0
  124. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.js +79 -0
  125. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.d.ts +4 -0
  126. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.d.ts.map +1 -0
  127. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.js +153 -0
  128. package/dist/better-auth/plugin/{collections → lib/build-collections}/users/hooks/after-login.d.ts +1 -1
  129. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts.map +1 -0
  130. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.js +75 -0
  131. package/dist/better-auth/plugin/{collections → lib/build-collections}/users/hooks/after-logout.d.ts +1 -1
  132. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.d.ts.map +1 -0
  133. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.js +74 -0
  134. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts +7 -0
  135. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts.map +1 -0
  136. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.js +45 -0
  137. package/dist/better-auth/plugin/{collections → lib/build-collections}/users/hooks/before-login.d.ts +1 -1
  138. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.d.ts.map +1 -0
  139. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.js +18 -0
  140. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts +3 -0
  141. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts.map +1 -0
  142. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.js +14 -0
  143. package/dist/better-auth/plugin/{collections → lib/build-collections}/users/hooks/sync-account.d.ts +1 -1
  144. package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.d.ts.map +1 -0
  145. package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.js +82 -0
  146. package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts +8 -0
  147. package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts.map +1 -0
  148. package/dist/better-auth/plugin/lib/build-collections/users/index.js +345 -0
  149. package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts +8 -0
  150. package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts.map +1 -0
  151. package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.js +31 -0
  152. package/dist/better-auth/plugin/lib/{payload-access.d.ts → build-collections/utils/payload-access.d.ts} +1 -1
  153. package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.d.ts.map +1 -0
  154. package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.js +64 -0
  155. package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts +7 -0
  156. package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts.map +1 -0
  157. package/dist/better-auth/plugin/lib/build-collections/verifications.js +63 -0
  158. package/dist/better-auth/plugin/lib/{config.d.ts → constants.d.ts} +13 -1
  159. package/dist/better-auth/plugin/lib/constants.d.ts.map +1 -0
  160. package/dist/better-auth/plugin/lib/constants.js +56 -0
  161. package/dist/better-auth/plugin/lib/get-payload-auth.d.ts +2 -2
  162. package/dist/better-auth/plugin/lib/get-payload-auth.d.ts.map +1 -1
  163. package/dist/better-auth/plugin/lib/get-payload-auth.js +2 -2
  164. package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts +4 -4
  165. package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts.map +1 -1
  166. package/dist/better-auth/plugin/lib/get-required-collection-slugs.js +26 -43
  167. package/dist/better-auth/plugin/lib/init-better-auth.d.ts +4 -3
  168. package/dist/better-auth/plugin/lib/init-better-auth.d.ts.map +1 -1
  169. package/dist/better-auth/plugin/lib/init-better-auth.js +7 -7
  170. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.d.ts +3 -0
  171. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.d.ts.map +1 -0
  172. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.js +8 -0
  173. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts +2 -0
  174. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts.map +1 -0
  175. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.js +17 -0
  176. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts +10 -0
  177. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts.map +1 -0
  178. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.js +118 -0
  179. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts +2 -0
  180. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts.map +1 -0
  181. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.js +58 -0
  182. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts +2 -0
  183. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts.map +1 -0
  184. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.js +86 -0
  185. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts +2 -0
  186. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts.map +1 -0
  187. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.js +17 -0
  188. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts +2 -0
  189. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts.map +1 -0
  190. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.js +17 -0
  191. package/dist/better-auth/plugin/lib/{ensure-password-set-before-create.d.ts → sanitize-better-auth-options/utils/ensure-password-set-before-create.d.ts} +1 -1
  192. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.d.ts.map +1 -0
  193. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.js +23 -0
  194. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.d.ts.map +1 -0
  195. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.js +62 -0
  196. package/dist/better-auth/plugin/lib/{respect-save-to-jwt-fields-middleware.d.ts → sanitize-better-auth-options/utils/save-to-jwt-middleware.d.ts} +6 -6
  197. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.d.ts.map +1 -0
  198. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.js +30 -0
  199. package/dist/better-auth/plugin/payload/components/admin-buttons/index.d.ts +8 -0
  200. package/dist/better-auth/plugin/payload/components/admin-buttons/index.d.ts.map +1 -0
  201. package/dist/better-auth/plugin/payload/components/admin-buttons/index.js +115 -0
  202. package/dist/better-auth/plugin/payload/components/admin-buttons/index.scss +31 -0
  203. package/dist/better-auth/plugin/payload/components/admin-invite-button/index.d.ts +11 -0
  204. package/dist/better-auth/plugin/payload/components/admin-invite-button/index.d.ts.map +1 -0
  205. package/dist/better-auth/plugin/payload/components/admin-invite-button/index.js +196 -0
  206. package/dist/better-auth/plugin/payload/components/admin-invite-button/index.scss +131 -0
  207. package/dist/better-auth/plugin/payload/components/admin-social-provider-buttons/index.d.ts +14 -0
  208. package/dist/better-auth/plugin/payload/components/admin-social-provider-buttons/index.d.ts.map +1 -0
  209. package/dist/better-auth/plugin/payload/components/admin-social-provider-buttons/index.js +111 -0
  210. package/dist/better-auth/plugin/payload/components/admin-social-provider-buttons/index.scss +51 -0
  211. package/dist/better-auth/plugin/payload/components/form-header/index.d.ts +9 -0
  212. package/dist/better-auth/plugin/payload/components/form-header/index.d.ts.map +1 -0
  213. package/dist/better-auth/plugin/payload/components/form-header/index.js +23 -0
  214. package/dist/better-auth/plugin/payload/components/form-header/index.scss +8 -0
  215. package/dist/better-auth/plugin/payload/components/icons.d.ts +9 -0
  216. package/dist/better-auth/plugin/payload/components/icons.d.ts.map +1 -0
  217. package/dist/better-auth/plugin/payload/components/icons.js +437 -0
  218. package/dist/better-auth/plugin/payload/components/logo.d.ts +3 -2
  219. package/dist/better-auth/plugin/payload/components/logo.d.ts.map +1 -1
  220. package/dist/better-auth/plugin/payload/components/logo.js +22 -34
  221. package/dist/better-auth/plugin/payload/components/logout-button.d.ts +6 -0
  222. package/dist/better-auth/plugin/payload/components/logout-button.d.ts.map +1 -0
  223. package/dist/better-auth/plugin/payload/components/logout-button.js +27 -0
  224. package/dist/better-auth/plugin/payload/components/rsc-redirect.d.ts +7 -0
  225. package/dist/better-auth/plugin/payload/components/rsc-redirect.d.ts.map +1 -0
  226. package/dist/better-auth/plugin/payload/components/rsc-redirect.js +8 -0
  227. package/dist/better-auth/plugin/payload/components/styles.css +2 -2
  228. package/dist/better-auth/plugin/payload/components/token-field.d.ts +5 -0
  229. package/dist/better-auth/plugin/payload/components/token-field.d.ts.map +1 -0
  230. package/dist/better-auth/plugin/payload/components/token-field.js +30 -0
  231. package/dist/better-auth/plugin/payload/exports/client.d.ts +6 -3
  232. package/dist/better-auth/plugin/payload/exports/client.d.ts.map +1 -1
  233. package/dist/better-auth/plugin/payload/exports/client.js +7 -4
  234. package/dist/better-auth/plugin/payload/exports/rsc.d.ts +9 -5
  235. package/dist/better-auth/plugin/payload/exports/rsc.d.ts.map +1 -1
  236. package/dist/better-auth/plugin/payload/exports/rsc.js +10 -6
  237. package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.d.ts +3 -0
  238. package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.d.ts.map +1 -0
  239. package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.js +8 -0
  240. package/dist/better-auth/plugin/payload/utils/generate-metadata.d.ts +15 -0
  241. package/dist/better-auth/plugin/payload/utils/generate-metadata.d.ts.map +1 -0
  242. package/dist/better-auth/plugin/payload/utils/generate-metadata.js +74 -0
  243. package/dist/better-auth/plugin/payload/utils/get-safe-redirect.d.ts +2 -0
  244. package/dist/better-auth/plugin/payload/utils/get-safe-redirect.d.ts.map +1 -0
  245. package/dist/better-auth/plugin/payload/utils/get-safe-redirect.js +23 -0
  246. package/dist/better-auth/plugin/payload/views/admin-invite/client.d.ts +12 -0
  247. package/dist/better-auth/plugin/payload/views/admin-invite/client.d.ts.map +1 -0
  248. package/dist/better-auth/plugin/payload/views/admin-invite/client.js +92 -0
  249. package/dist/better-auth/plugin/payload/views/admin-invite/index.d.ts +11 -0
  250. package/dist/better-auth/plugin/payload/views/admin-invite/index.d.ts.map +1 -0
  251. package/dist/better-auth/plugin/payload/views/admin-invite/index.js +84 -0
  252. package/dist/better-auth/plugin/payload/views/admin-invite/index.scss +25 -0
  253. package/dist/better-auth/plugin/payload/views/create-first-admin/client.d.ts +14 -0
  254. package/dist/better-auth/plugin/payload/views/create-first-admin/client.d.ts.map +1 -0
  255. package/dist/better-auth/plugin/payload/views/create-first-admin/client.js +95 -0
  256. package/dist/better-auth/plugin/payload/views/create-first-admin/index.d.ts +10 -4
  257. package/dist/better-auth/plugin/payload/views/create-first-admin/index.d.ts.map +1 -1
  258. package/dist/better-auth/plugin/payload/views/create-first-admin/index.js +124 -92
  259. package/dist/better-auth/plugin/payload/views/create-first-admin/index.scss +29 -0
  260. package/dist/better-auth/plugin/payload/views/forgot-password/client.d.ts +8 -0
  261. package/dist/better-auth/plugin/payload/views/forgot-password/client.d.ts.map +1 -0
  262. package/dist/better-auth/plugin/payload/views/forgot-password/client.js +119 -0
  263. package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts +9 -0
  264. package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts.map +1 -0
  265. package/dist/better-auth/plugin/payload/views/forgot-password/index.js +69 -0
  266. package/dist/better-auth/plugin/payload/views/forgot-password/index.scss +0 -0
  267. package/dist/better-auth/plugin/payload/views/inactivity/index.d.ts +5 -0
  268. package/dist/better-auth/plugin/payload/views/inactivity/index.d.ts.map +1 -0
  269. package/dist/better-auth/plugin/payload/views/inactivity/index.js +12 -0
  270. package/dist/better-auth/plugin/payload/views/login/form/fields/login-field.d.ts +9 -0
  271. package/dist/better-auth/plugin/payload/views/login/form/fields/login-field.d.ts.map +1 -0
  272. package/dist/better-auth/plugin/payload/views/login/form/fields/login-field.js +54 -0
  273. package/dist/better-auth/plugin/payload/views/login/form/fields/password/index.d.ts +1 -0
  274. package/dist/better-auth/plugin/payload/views/login/form/fields/password/index.d.ts.map +1 -0
  275. package/dist/better-auth/plugin/payload/views/login/form/fields/password/index.js +121 -0
  276. package/dist/better-auth/plugin/payload/views/login/form/fields/password/index.scss +31 -0
  277. package/dist/better-auth/plugin/payload/views/login/form/fields/password/types.d.ts +56 -0
  278. package/dist/better-auth/plugin/payload/views/login/form/fields/password/types.d.ts.map +1 -0
  279. package/dist/better-auth/plugin/payload/views/login/form/fields/password/types.js +3 -0
  280. package/dist/better-auth/plugin/payload/views/login/form/index.d.ts +17 -0
  281. package/dist/better-auth/plugin/payload/views/login/form/index.d.ts.map +1 -0
  282. package/dist/better-auth/plugin/payload/views/login/form/index.js +137 -0
  283. package/dist/better-auth/plugin/payload/views/login/form/index.scss +23 -0
  284. package/dist/better-auth/plugin/payload/views/login/index.d.ts +10 -5
  285. package/dist/better-auth/plugin/payload/views/login/index.d.ts.map +1 -1
  286. package/dist/better-auth/plugin/payload/views/login/index.js +81 -61
  287. package/dist/better-auth/plugin/payload/views/login/index.scss +10 -0
  288. package/dist/better-auth/plugin/payload/views/logout/client.d.ts +8 -0
  289. package/dist/better-auth/plugin/payload/views/logout/client.d.ts.map +1 -0
  290. package/dist/better-auth/plugin/payload/views/logout/client.js +76 -0
  291. package/dist/better-auth/plugin/payload/views/logout/index.d.ts +8 -0
  292. package/dist/better-auth/plugin/payload/views/logout/index.d.ts.map +1 -0
  293. package/dist/better-auth/plugin/payload/views/logout/index.js +14 -0
  294. package/dist/better-auth/plugin/payload/views/logout/index.scss +0 -0
  295. package/dist/better-auth/plugin/payload/views/reset-password/client.d.ts +7 -0
  296. package/dist/better-auth/plugin/payload/views/reset-password/client.d.ts.map +1 -0
  297. package/dist/better-auth/plugin/payload/views/reset-password/client.js +72 -0
  298. package/dist/better-auth/plugin/payload/views/reset-password/index.d.ts +5 -0
  299. package/dist/better-auth/plugin/payload/views/reset-password/index.d.ts.map +1 -0
  300. package/dist/better-auth/plugin/payload/views/reset-password/index.js +81 -0
  301. package/dist/better-auth/plugin/payload/views/reset-password/index.scss +9 -0
  302. package/dist/better-auth/plugin/payload/views/reset-password/metadata.d.ts +3 -0
  303. package/dist/better-auth/plugin/payload/views/reset-password/metadata.d.ts.map +1 -0
  304. package/dist/better-auth/plugin/payload/views/reset-password/metadata.js +11 -0
  305. package/dist/better-auth/plugin/types.d.ts +170 -33
  306. package/dist/better-auth/plugin/types.d.ts.map +1 -1
  307. package/dist/better-auth/plugin/types.js +1 -1
  308. package/dist/clerk/plugin/components/sync-clerk-users-button.d.ts +1 -1
  309. package/dist/clerk/plugin/components/sync-clerk-users-button.d.ts.map +1 -1
  310. package/dist/clerk/utils/clerk-user.d.ts +0 -3
  311. package/dist/clerk/utils/clerk-user.d.ts.map +1 -1
  312. package/dist/clerk/utils/clerk-user.js +1 -3
  313. package/dist/clerk/utils/load-clerk-instance.d.ts +1 -1
  314. package/dist/clerk/utils/load-clerk-instance.d.ts.map +1 -1
  315. package/package.json +13 -13
  316. package/LICENSE.md +0 -17
  317. package/dist/better-auth/adapter/dev/bin/run.d.ts +0 -2
  318. package/dist/better-auth/adapter/dev/bin/run.d.ts.map +0 -1
  319. package/dist/better-auth/adapter/dev/bin/run.js +0 -64
  320. package/dist/better-auth/adapter/dev/bin/schema.d.ts +0 -23
  321. package/dist/better-auth/adapter/dev/bin/schema.d.ts.map +0 -1
  322. package/dist/better-auth/adapter/dev/bin/schema.js +0 -160
  323. package/dist/better-auth/adapter/dev/collections.d.ts +0 -4
  324. package/dist/better-auth/adapter/dev/collections.d.ts.map +0 -1
  325. package/dist/better-auth/adapter/dev/collections.js +0 -212
  326. package/dist/better-auth/adapter/dev/index.d.ts +0 -4
  327. package/dist/better-auth/adapter/dev/index.d.ts.map +0 -1
  328. package/dist/better-auth/adapter/dev/index.js +0 -168
  329. package/dist/better-auth/adapter/test/adapter.test.d.ts +0 -2
  330. package/dist/better-auth/adapter/test/adapter.test.d.ts.map +0 -1
  331. package/dist/better-auth/adapter/test/adapter.test.js +0 -181
  332. package/dist/better-auth/adapter/test/better-auth-adapter-test.d.ts +0 -8
  333. package/dist/better-auth/adapter/test/better-auth-adapter-test.d.ts.map +0 -1
  334. package/dist/better-auth/adapter/test/better-auth-adapter-test.js +0 -425
  335. package/dist/better-auth/adapter/test/schema.test.d.ts +0 -2
  336. package/dist/better-auth/adapter/test/schema.test.d.ts.map +0 -1
  337. package/dist/better-auth/adapter/test/schema.test.js +0 -796
  338. package/dist/better-auth/adapter/test/test_payload1/schema.d.ts +0 -24
  339. package/dist/better-auth/adapter/test/test_payload1/schema.d.ts.map +0 -1
  340. package/dist/better-auth/adapter/test/test_payload1/schema.js +0 -177
  341. package/dist/better-auth/adapter/test/test_payload2/schema.d.ts +0 -24
  342. package/dist/better-auth/adapter/test/test_payload2/schema.d.ts.map +0 -1
  343. package/dist/better-auth/adapter/test/test_payload2/schema.js +0 -167
  344. package/dist/better-auth/adapter/test/test_payload3/schema.d.ts +0 -24
  345. package/dist/better-auth/adapter/test/test_payload3/schema.d.ts.map +0 -1
  346. package/dist/better-auth/adapter/test/test_payload3/schema.js +0 -198
  347. package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.d.ts.map +0 -1
  348. package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.js +0 -47
  349. package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.d.ts +0 -7
  350. package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.d.ts.map +0 -1
  351. package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.js +0 -106
  352. package/dist/better-auth/plugin/collections/users/hooks/after-login.d.ts.map +0 -1
  353. package/dist/better-auth/plugin/collections/users/hooks/after-login.js +0 -71
  354. package/dist/better-auth/plugin/collections/users/hooks/after-logout.d.ts.map +0 -1
  355. package/dist/better-auth/plugin/collections/users/hooks/after-logout.js +0 -49
  356. package/dist/better-auth/plugin/collections/users/hooks/before-login.d.ts.map +0 -1
  357. package/dist/better-auth/plugin/collections/users/hooks/before-login.js +0 -18
  358. package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.d.ts +0 -6
  359. package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.d.ts.map +0 -1
  360. package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.js +0 -33
  361. package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.d.ts +0 -3
  362. package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.d.ts.map +0 -1
  363. package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.js +0 -14
  364. package/dist/better-auth/plugin/collections/users/hooks/sync-account.d.ts.map +0 -1
  365. package/dist/better-auth/plugin/collections/users/hooks/sync-account.js +0 -82
  366. package/dist/better-auth/plugin/lib/auth-strategy.d.ts +0 -9
  367. package/dist/better-auth/plugin/lib/auth-strategy.d.ts.map +0 -1
  368. package/dist/better-auth/plugin/lib/auth-strategy.js +0 -48
  369. package/dist/better-auth/plugin/lib/build-collection-configs.d.ts +0 -12
  370. package/dist/better-auth/plugin/lib/build-collection-configs.d.ts.map +0 -1
  371. package/dist/better-auth/plugin/lib/build-collection-configs.js +0 -1558
  372. package/dist/better-auth/plugin/lib/config.d.ts.map +0 -1
  373. package/dist/better-auth/plugin/lib/config.js +0 -44
  374. package/dist/better-auth/plugin/lib/ensure-password-set-before-create.d.ts.map +0 -1
  375. package/dist/better-auth/plugin/lib/ensure-password-set-before-create.js +0 -24
  376. package/dist/better-auth/plugin/lib/password.d.ts.map +0 -1
  377. package/dist/better-auth/plugin/lib/password.js +0 -63
  378. package/dist/better-auth/plugin/lib/payload-access.d.ts.map +0 -1
  379. package/dist/better-auth/plugin/lib/payload-access.js +0 -64
  380. package/dist/better-auth/plugin/lib/prepare-session-data.d.ts.map +0 -1
  381. package/dist/better-auth/plugin/lib/prepare-session-data.js +0 -42
  382. package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.d.ts.map +0 -1
  383. package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.js +0 -30
  384. package/dist/better-auth/plugin/lib/sanitize-auth-options.d.ts +0 -6
  385. package/dist/better-auth/plugin/lib/sanitize-auth-options.d.ts.map +0 -1
  386. package/dist/better-auth/plugin/lib/sanitize-auth-options.js +0 -298
  387. package/dist/better-auth/plugin/payload/components/admin-buttons.d.ts +0 -7
  388. package/dist/better-auth/plugin/payload/components/admin-buttons.d.ts.map +0 -1
  389. package/dist/better-auth/plugin/payload/components/admin-buttons.js +0 -219
  390. package/dist/better-auth/plugin/payload/components/login-redirect.d.ts +0 -2
  391. package/dist/better-auth/plugin/payload/components/login-redirect.d.ts.map +0 -1
  392. package/dist/better-auth/plugin/payload/components/login-redirect.js +0 -6
  393. package/dist/better-auth/plugin/payload/components/logout.d.ts +0 -3
  394. package/dist/better-auth/plugin/payload/components/logout.d.ts.map +0 -1
  395. package/dist/better-auth/plugin/payload/components/logout.js +0 -61
  396. package/dist/better-auth/plugin/payload/components/sign-in.d.ts +0 -4
  397. package/dist/better-auth/plugin/payload/components/sign-in.d.ts.map +0 -1
  398. package/dist/better-auth/plugin/payload/components/sign-in.js +0 -384
  399. package/dist/better-auth/plugin/payload/components/sign-up.d.ts +0 -7
  400. package/dist/better-auth/plugin/payload/components/sign-up.d.ts.map +0 -1
  401. package/dist/better-auth/plugin/payload/components/sign-up.js +0 -503
  402. package/dist/better-auth/plugin/payload/components/ui/button.d.ts +0 -11
  403. package/dist/better-auth/plugin/payload/components/ui/button.d.ts.map +0 -1
  404. package/dist/better-auth/plugin/payload/components/ui/button.js +0 -42
  405. package/dist/better-auth/plugin/payload/components/ui/card.d.ts +0 -10
  406. package/dist/better-auth/plugin/payload/components/ui/card.d.ts.map +0 -1
  407. package/dist/better-auth/plugin/payload/components/ui/card.js +0 -55
  408. package/dist/better-auth/plugin/payload/components/ui/checkbox.d.ts +0 -5
  409. package/dist/better-auth/plugin/payload/components/ui/checkbox.d.ts.map +0 -1
  410. package/dist/better-auth/plugin/payload/components/ui/checkbox.js +0 -23
  411. package/dist/better-auth/plugin/payload/components/ui/cn.d.ts +0 -3
  412. package/dist/better-auth/plugin/payload/components/ui/cn.d.ts.map +0 -1
  413. package/dist/better-auth/plugin/payload/components/ui/cn.js +0 -7
  414. package/dist/better-auth/plugin/payload/components/ui/input.d.ts +0 -4
  415. package/dist/better-auth/plugin/payload/components/ui/input.d.ts.map +0 -1
  416. package/dist/better-auth/plugin/payload/components/ui/input.js +0 -14
  417. package/dist/better-auth/plugin/payload/components/ui/label.d.ts +0 -5
  418. package/dist/better-auth/plugin/payload/components/ui/label.d.ts.map +0 -1
  419. package/dist/better-auth/plugin/payload/components/ui/label.js +0 -15
  420. package/dist/better-auth/plugin/payload/components/ui/password-input.d.ts +0 -3
  421. package/dist/better-auth/plugin/payload/components/ui/password-input.d.ts.map +0 -1
  422. package/dist/better-auth/plugin/payload/components/ui/password-input.js +0 -55
  423. /package/dist/better-auth/plugin/lib/{password.d.ts → sanitize-better-auth-options/utils/password.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import { subtle } from 'uncrypto';
1
+ import { subtle } from "uncrypto";
2
2
  export const verifySignature = async (base64Signature, value, secret)=>{
3
3
  try {
4
4
  const signatureBinStr = atob(base64Signature);
@@ -13,34 +13,34 @@ export const verifySignature = async (base64Signature, value, secret)=>{
13
13
  };
14
14
  const _serialize = (key, value, opt = {})=>{
15
15
  let cookie;
16
- if (opt?.prefix === 'secure') {
16
+ if (opt?.prefix === "secure") {
17
17
  cookie = `${`__Secure-${key}`}=${value}`;
18
- } else if (opt?.prefix === 'host') {
18
+ } else if (opt?.prefix === "host") {
19
19
  cookie = `${`__Host-${key}`}=${value}`;
20
20
  } else {
21
21
  cookie = `${key}=${value}`;
22
22
  }
23
- if (key.startsWith('__Secure-') && !opt.secure) {
23
+ if (key.startsWith("__Secure-") && !opt.secure) {
24
24
  opt.secure = true;
25
25
  }
26
- if (key.startsWith('__Host-')) {
26
+ if (key.startsWith("__Host-")) {
27
27
  if (!opt.secure) {
28
28
  opt.secure = true;
29
29
  }
30
- if (opt.path !== '/') {
31
- opt.path = '/';
30
+ if (opt.path !== "/") {
31
+ opt.path = "/";
32
32
  }
33
33
  if (opt.domain) {
34
34
  opt.domain = undefined;
35
35
  }
36
36
  }
37
- if (opt && typeof opt.maxAge === 'number' && opt.maxAge >= 0) {
37
+ if (opt && typeof opt.maxAge === "number" && opt.maxAge >= 0) {
38
38
  if (opt.maxAge > 34560000) {
39
- throw new Error('Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.');
39
+ throw new Error("Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.");
40
40
  }
41
41
  cookie += `; Max-Age=${Math.floor(opt.maxAge)}`;
42
42
  }
43
- if (opt.domain && opt.prefix !== 'host') {
43
+ if (opt.domain && opt.prefix !== "host") {
44
44
  cookie += `; Domain=${opt.domain}`;
45
45
  }
46
46
  if (opt.path) {
@@ -48,15 +48,15 @@ const _serialize = (key, value, opt = {})=>{
48
48
  }
49
49
  if (opt.expires) {
50
50
  if (opt.expires.getTime() - Date.now() > 34560000_000) {
51
- throw new Error('Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.');
51
+ throw new Error("Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.");
52
52
  }
53
53
  cookie += `; Expires=${opt.expires.toUTCString()}`;
54
54
  }
55
55
  if (opt.httpOnly) {
56
- cookie += '; HttpOnly';
56
+ cookie += "; HttpOnly";
57
57
  }
58
58
  if (opt.secure) {
59
- cookie += '; Secure';
59
+ cookie += "; Secure";
60
60
  }
61
61
  if (opt.sameSite) {
62
62
  cookie += `; SameSite=${opt.sameSite.charAt(0).toUpperCase() + opt.sameSite.slice(1)}`;
@@ -65,19 +65,19 @@ const _serialize = (key, value, opt = {})=>{
65
65
  if (!opt.secure) {
66
66
  opt.secure = true;
67
67
  }
68
- cookie += '; Partitioned';
68
+ cookie += "; Partitioned";
69
69
  }
70
70
  return cookie;
71
71
  };
72
72
  const algorithm = {
73
- name: 'HMAC',
74
- hash: 'SHA-256'
73
+ name: "HMAC",
74
+ hash: "SHA-256"
75
75
  };
76
76
  const getCryptoKey = async (secret)=>{
77
- const secretBuf = typeof secret === 'string' ? new TextEncoder().encode(secret) : secret;
78
- return await subtle.importKey('raw', secretBuf, algorithm, false, [
79
- 'sign',
80
- 'verify'
77
+ const secretBuf = typeof secret === "string" ? new TextEncoder().encode(secret) : secret;
78
+ return await subtle.importKey("raw", secretBuf, algorithm, false, [
79
+ "sign",
80
+ "verify"
81
81
  ]);
82
82
  };
83
83
  const makeSignature = async (value, secret)=>{
@@ -104,10 +104,10 @@ export const serializeSignedCookie = async (key, value, secret, opt)=>{
104
104
  export const getCookieKey = (key, prefix)=>{
105
105
  let finalKey = key;
106
106
  if (prefix) {
107
- if (prefix === 'secure') {
108
- finalKey = '__Secure-' + key;
109
- } else if (prefix === 'host') {
110
- finalKey = '__Host-' + key;
107
+ if (prefix === "secure") {
108
+ finalKey = "__Secure-" + key;
109
+ } else if (prefix === "host") {
110
+ finalKey = "__Host-" + key;
111
111
  } else {
112
112
  return undefined;
113
113
  }
@@ -116,7 +116,7 @@ export const getCookieKey = (key, prefix)=>{
116
116
  };
117
117
  export function tryDecode(str) {
118
118
  try {
119
- return str.includes('%') ? decodeURIComponent(str) : str;
119
+ return str.includes("%") ? decodeURIComponent(str) : str;
120
120
  } catch {
121
121
  return str;
122
122
  }
@@ -129,21 +129,21 @@ export function tryDecode(str) {
129
129
  *
130
130
  * @param str the string representing a `Cookie` header value
131
131
  */ export function parseCookies(str) {
132
- if (typeof str !== 'string') {
133
- throw new TypeError('argument str must be a string');
132
+ if (typeof str !== "string") {
133
+ throw new TypeError("argument str must be a string");
134
134
  }
135
135
  const cookies = new Map();
136
136
  let index = 0;
137
137
  while(index < str.length){
138
- const eqIdx = str.indexOf('=', index);
138
+ const eqIdx = str.indexOf("=", index);
139
139
  if (eqIdx === -1) {
140
140
  break;
141
141
  }
142
- let endIdx = str.indexOf(';', index);
142
+ let endIdx = str.indexOf(";", index);
143
143
  if (endIdx === -1) {
144
144
  endIdx = str.length;
145
145
  } else if (endIdx < eqIdx) {
146
- index = str.lastIndexOf(';', eqIdx - 1) + 1;
146
+ index = str.lastIndexOf(";", eqIdx - 1) + 1;
147
147
  continue;
148
148
  }
149
149
  const key = str.slice(index, eqIdx).trim();
@@ -163,19 +163,19 @@ export const getSignedCookie = async (key, secret, headers, prefix)=>{
163
163
  if (!finalKey) {
164
164
  return null;
165
165
  }
166
- const cookieHeader = headers.get('cookie');
166
+ const cookieHeader = headers.get("cookie");
167
167
  const parsedCookies = cookieHeader ? parseCookies(cookieHeader) : undefined;
168
168
  const value = parsedCookies?.get(finalKey);
169
169
  if (!value) {
170
170
  return null;
171
171
  }
172
- const signatureStartPos = value.lastIndexOf('.');
172
+ const signatureStartPos = value.lastIndexOf(".");
173
173
  if (signatureStartPos < 1) {
174
174
  return null;
175
175
  }
176
176
  const signedValue = value.substring(0, signatureStartPos);
177
177
  const signature = value.substring(signatureStartPos + 1);
178
- if (signature.length !== 44 || !signature.endsWith('=')) {
178
+ if (signature.length !== 44 || !signature.endsWith("=")) {
179
179
  return null;
180
180
  }
181
181
  const secretKey = await getCryptoKey(secret);
@@ -183,4 +183,4 @@ export const getSignedCookie = async (key, secret, headers, prefix)=>{
183
183
  return isVerified ? signedValue : false;
184
184
  };
185
185
 
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9zZXJpYWxpemUtY29va2llLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN1YnRsZSB9IGZyb20gJ3VuY3J5cHRvJ1xuXG50eXBlIENvb2tpZVByZWZpeE9wdGlvbnMgPSAnaG9zdCcgfCAnc2VjdXJlJ1xuXG50eXBlIENvb2tpZU9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBEb21haW4gb2YgdGhlIGNvb2tpZVxuICAgKlxuICAgKiBUaGUgRG9tYWluIGF0dHJpYnV0ZSBzcGVjaWZpZXMgd2hpY2ggc2VydmVyIGNhbiByZWNlaXZlIGEgY29va2llLiBJZiBzcGVjaWZpZWQsIGNvb2tpZXMgYXJlXG4gICAqIGF2YWlsYWJsZSBvbiB0aGUgc3BlY2lmaWVkIHNlcnZlciBhbmQgaXRzIHN1YmRvbWFpbnMuIElmIHRoZSBpdCBpcyBub3RcbiAgICogc3BlY2lmaWVkLCB0aGUgY29va2llcyBhcmUgYXZhaWxhYmxlIG9uIHRoZSBzZXJ2ZXIgdGhhdCBzZXRzIGl0IGJ1dCBub3Qgb25cbiAgICogaXRzIHN1YmRvbWFpbnMuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBkb21haW46IFwiZXhhbXBsZS5jb21cImBcbiAgICovXG4gIGRvbWFpbj86IHN0cmluZ1xuICAvKipcbiAgICogQSBsaWZldGltZSBvZiBhIGNvb2tpZS4gUGVybWFuZW50IGNvb2tpZXMgYXJlIGRlbGV0ZWQgYWZ0ZXIgdGhlIGRhdGUgc3BlY2lmaWVkIGluIHRoZVxuICAgKiBFeHBpcmVzIGF0dHJpYnV0ZTpcbiAgICpcbiAgICogRXhwaXJlcyBoYXMgYmVlbiBhdmFpbGFibGUgZm9yIGxvbmdlciB0aGFuIE1heC1BZ2UsIGhvd2V2ZXIgTWF4LUFnZSBpcyBsZXNzIGVycm9yLXByb25lLCBhbmRcbiAgICogdGFrZXMgcHJlY2VkZW5jZSB3aGVuIGJvdGggYXJlIHNldC4gVGhlIHJhdGlvbmFsZSBiZWhpbmQgdGhpcyBpcyB0aGF0IHdoZW4geW91IHNldCBhblxuICAgKiBFeHBpcmVzIGRhdGUgYW5kIHRpbWUsIHRoZXkncmUgcmVsYXRpdmUgdG8gdGhlIGNsaWVudCB0aGUgY29va2llIGlzIGJlaW5nIHNldCBvbi4gSWYgdGhlXG4gICAqIHNlcnZlciBpcyBzZXQgdG8gYSBkaWZmZXJlbnQgdGltZSwgdGhpcyBjb3VsZCBjYXVzZSBlcnJvcnNcbiAgICovXG4gIGV4cGlyZXM/OiBEYXRlXG4gIC8qKlxuICAgKiBGb3JiaWRzIEphdmFTY3JpcHQgZnJvbSBhY2Nlc3NpbmcgdGhlIGNvb2tpZSwgZm9yIGV4YW1wbGUsIHRocm91Z2ggdGhlIERvY3VtZW50LmNvb2tpZVxuICAgKiBwcm9wZXJ0eS4gTm90ZSB0aGF0IGEgY29va2llIHRoYXQgaGFzIGJlZW4gY3JlYXRlZCB3aXRoIEh0dHBPbmx5IHdpbGwgc3RpbGwgYmUgc2VudCB3aXRoXG4gICAqIEphdmFTY3JpcHQtaW5pdGlhdGVkIHJlcXVlc3RzLCBmb3IgZXhhbXBsZSwgd2hlbiBjYWxsaW5nIFhNTEh0dHBSZXF1ZXN0LnNlbmQoKSBvciBmZXRjaCgpLlxuICAgKiBUaGlzIG1pdGlnYXRlcyBhdHRhY2tzIGFnYWluc3QgY3Jvc3Mtc2l0ZSBzY3JpcHRpbmdcbiAgICovXG4gIGh0dHBPbmx5PzogYm9vbGVhblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyB1bnRpbCB0aGUgY29va2llIGV4cGlyZXMuIEEgemVybyBvciBuZWdhdGl2ZSBudW1iZXIgd2lsbFxuICAgKiBleHBpcmUgdGhlIGNvb2tpZSBpbW1lZGlhdGVseS4gSWYgYm90aCBFeHBpcmVzIGFuZCBNYXgtQWdlIGFyZSBzZXQsIE1heC1BZ2UgaGFzIHByZWNlZGVuY2UuXG4gICAqXG4gICAqIEBleGFtcGxlIDYwNDgwMCAtIDcgZGF5c1xuICAgKi9cbiAgbWF4QWdlPzogbnVtYmVyXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHBhdGggdGhhdCBtdXN0IGV4aXN0IGluIHRoZSByZXF1ZXN0ZWQgVVJMIGZvciB0aGUgYnJvd3NlciB0byBzZW5kIHRoZSBDb29raWVcbiAgICogaGVhZGVyLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBcIi9kb2NzXCJcbiAgICogLy8gLT4gdGhlIHJlcXVlc3QgcGF0aHMgL2RvY3MsIC9kb2NzLywgL2RvY3MvV2ViLywgYW5kIC9kb2NzL1dlYi9IVFRQIHdpbGwgYWxsIG1hdGNoLiB0aGUgcmVxdWVzdCBwYXRocyAvLCAvZnIvZG9jcyB3aWxsIG5vdCBtYXRjaC5cbiAgICovXG4gIHBhdGg/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSBjb29raWUgaXMgc2VudCB0byB0aGUgc2VydmVyIG9ubHkgd2hlbiBhIHJlcXVlc3QgaXMgbWFkZSB3aXRoIHRoZSBodHRwczpcbiAgICogc2NoZW1lIChleGNlcHQgb24gbG9jYWxob3N0KSwgYW5kIHRoZXJlZm9yZSwgaXMgbW9yZSByZXNpc3RhbnQgdG8gbWFuLWluLXRoZS1taWRkbGUgYXR0YWNrcy5cbiAgICovXG4gIHNlY3VyZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgb3Igbm90IGEgY29va2llIGlzIHNlbnQgd2l0aCBjcm9zcy1zaXRlIHJlcXVlc3RzLCBwcm92aWRpbmcgc29tZSBwcm90ZWN0aW9uXG4gICAqIGFnYWluc3QgY3Jvc3Mtc2l0ZSByZXF1ZXN0IGZvcmdlcnkgYXR0YWNrcyAoQ1NSRikuXG4gICAqXG4gICAqIFN0cmljdCAtICBNZWFucyB0aGF0IHRoZSBicm93c2VyIHNlbmRzIHRoZSBjb29raWUgb25seSBmb3Igc2FtZS1zaXRlIHJlcXVlc3RzLCB0aGF0IGlzLFxuICAgKiByZXF1ZXN0cyBvcmlnaW5hdGluZyBmcm9tIHRoZSBzYW1lIHNpdGUgdGhhdCBzZXQgdGhlIGNvb2tpZS4gSWYgYSByZXF1ZXN0IG9yaWdpbmF0ZXMgZnJvbSBhXG4gICAqIGRpZmZlcmVudCBkb21haW4gb3Igc2NoZW1lIChldmVuIHdpdGggdGhlIHNhbWUgZG9tYWluKSwgbm8gY29va2llcyB3aXRoIHRoZSBTYW1lU2l0ZT1TdHJpY3RcbiAgICogYXR0cmlidXRlIGFyZSBzZW50LlxuICAgKlxuICAgKiBMYXggLSBNZWFucyB0aGF0IHRoZSBjb29raWUgaXMgbm90IHNlbnQgb24gY3Jvc3Mtc2l0ZSByZXF1ZXN0cywgc3VjaCBhcyBvbiByZXF1ZXN0cyB0byBsb2FkXG4gICAqIGltYWdlcyBvciBmcmFtZXMsIGJ1dCBpcyBzZW50IHdoZW4gYSB1c2VyIGlzIG5hdmlnYXRpbmcgdG8gdGhlIG9yaWdpbiBzaXRlIGZyb20gYW4gZXh0ZXJuYWxcbiAgICogc2l0ZSAoZm9yIGV4YW1wbGUsIHdoZW4gZm9sbG93aW5nIGEgbGluaykuIFRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaWYgdGhlIFNhbWVTaXRlXG4gICAqIGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLlxuICAgKlxuICAgKiBOb25lIC0gTWVhbnMgdGhhdCB0aGUgYnJvd3NlciBzZW5kcyB0aGUgY29va2llIHdpdGggYm90aCBjcm9zcy1zaXRlIGFuZCBzYW1lLXNpdGUgcmVxdWVzdHMuXG4gICAqIFRoZSBTZWN1cmUgYXR0cmlidXRlIG11c3QgYWxzbyBiZSBzZXQgd2hlbiBzZXR0aW5nIHRoaXMgdmFsdWUuXG4gICAqL1xuICBzYW1lU2l0ZT86ICdTdHJpY3QnIHwgJ0xheCcgfCAnTm9uZScgfCAnc3RyaWN0JyB8ICdsYXgnIHwgJ25vbmUnXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgY29va2llIHNob3VsZCBiZSBzdG9yZWQgdXNpbmcgcGFydGl0aW9uZWQgc3RvcmFnZS4gTm90ZSB0aGF0IGlmIHRoaXMgaXNcbiAgICogc2V0LCB0aGUgU2VjdXJlIGRpcmVjdGl2ZSBtdXN0IGFsc28gYmUgc2V0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL1ByaXZhY3kvUHJpdmFjeV9zYW5kYm94L1BhcnRpdGlvbmVkX2Nvb2tpZXNcbiAgICovXG4gIHBhcnRpdGlvbmVkPzogYm9vbGVhblxuICAvKipcbiAgICogQ29va2UgUHJlZml4XG4gICAqXG4gICAqIC0gc2VjdXJlOiBgX19TZWN1cmUtYCAtPiBgX19TZWN1cmUtY29va2llLW5hbWVgXG4gICAqIC0gaG9zdDogYF9fSG9zdC1gIC0+IGBfX0hvc3QtY29va2llLW5hbWVgXG4gICAqXG4gICAqIGBzZWN1cmVgIG11c3QgYmUgc2V0IHRvIHRydWUgdG8gdXNlIHByZWZpeGVzXG4gICAqL1xuICBwcmVmaXg/OiBDb29raWVQcmVmaXhPcHRpb25zXG59XG5cbmV4cG9ydCBjb25zdCB2ZXJpZnlTaWduYXR1cmUgPSBhc3luYyAoXG4gIGJhc2U2NFNpZ25hdHVyZTogc3RyaW5nLFxuICB2YWx1ZTogc3RyaW5nLFxuICBzZWNyZXQ6IENyeXB0b0tleSxcbik6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHNpZ25hdHVyZUJpblN0ciA9IGF0b2IoYmFzZTY0U2lnbmF0dXJlKVxuICAgIGNvbnN0IHNpZ25hdHVyZSA9IG5ldyBVaW50OEFycmF5KHNpZ25hdHVyZUJpblN0ci5sZW5ndGgpXG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHNpZ25hdHVyZUJpblN0ci5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgc2lnbmF0dXJlW2ldID0gc2lnbmF0dXJlQmluU3RyLmNoYXJDb2RlQXQoaSlcbiAgICB9XG4gICAgcmV0dXJuIGF3YWl0IHN1YnRsZS52ZXJpZnkoYWxnb3JpdGhtLCBzZWNyZXQsIHNpZ25hdHVyZSwgbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHZhbHVlKSlcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmNvbnN0IF9zZXJpYWxpemUgPSAoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIG9wdDogQ29va2llT3B0aW9ucyA9IHt9KSA9PiB7XG4gIGxldCBjb29raWU6IHN0cmluZ1xuXG4gIGlmIChvcHQ/LnByZWZpeCA9PT0gJ3NlY3VyZScpIHtcbiAgICBjb29raWUgPSBgJHtgX19TZWN1cmUtJHtrZXl9YH09JHt2YWx1ZX1gXG4gIH0gZWxzZSBpZiAob3B0Py5wcmVmaXggPT09ICdob3N0Jykge1xuICAgIGNvb2tpZSA9IGAke2BfX0hvc3QtJHtrZXl9YH09JHt2YWx1ZX1gXG4gIH0gZWxzZSB7XG4gICAgY29va2llID0gYCR7a2V5fT0ke3ZhbHVlfWBcbiAgfVxuXG4gIGlmIChrZXkuc3RhcnRzV2l0aCgnX19TZWN1cmUtJykgJiYgIW9wdC5zZWN1cmUpIHtcbiAgICBvcHQuc2VjdXJlID0gdHJ1ZVxuICB9XG5cbiAgaWYgKGtleS5zdGFydHNXaXRoKCdfX0hvc3QtJykpIHtcbiAgICBpZiAoIW9wdC5zZWN1cmUpIHtcbiAgICAgIG9wdC5zZWN1cmUgPSB0cnVlXG4gICAgfVxuXG4gICAgaWYgKG9wdC5wYXRoICE9PSAnLycpIHtcbiAgICAgIG9wdC5wYXRoID0gJy8nXG4gICAgfVxuXG4gICAgaWYgKG9wdC5kb21haW4pIHtcbiAgICAgIG9wdC5kb21haW4gPSB1bmRlZmluZWRcbiAgICB9XG4gIH1cblxuICBpZiAob3B0ICYmIHR5cGVvZiBvcHQubWF4QWdlID09PSAnbnVtYmVyJyAmJiBvcHQubWF4QWdlID49IDApIHtcbiAgICBpZiAob3B0Lm1heEFnZSA+IDM0NTYwMDAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdDb29raWVzIE1heC1BZ2UgU0hPVUxEIE5PVCBiZSBncmVhdGVyIHRoYW4gNDAwIGRheXMgKDM0NTYwMDAwIHNlY29uZHMpIGluIGR1cmF0aW9uLicsXG4gICAgICApXG4gICAgfVxuICAgIGNvb2tpZSArPSBgOyBNYXgtQWdlPSR7TWF0aC5mbG9vcihvcHQubWF4QWdlKX1gXG4gIH1cblxuICBpZiAob3B0LmRvbWFpbiAmJiBvcHQucHJlZml4ICE9PSAnaG9zdCcpIHtcbiAgICBjb29raWUgKz0gYDsgRG9tYWluPSR7b3B0LmRvbWFpbn1gXG4gIH1cblxuICBpZiAob3B0LnBhdGgpIHtcbiAgICBjb29raWUgKz0gYDsgUGF0aD0ke29wdC5wYXRofWBcbiAgfVxuXG4gIGlmIChvcHQuZXhwaXJlcykge1xuICAgIGlmIChvcHQuZXhwaXJlcy5nZXRUaW1lKCkgLSBEYXRlLm5vdygpID4gMzQ1NjAwMDBfMDAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdDb29raWVzIEV4cGlyZXMgU0hPVUxEIE5PVCBiZSBncmVhdGVyIHRoYW4gNDAwIGRheXMgKDM0NTYwMDAwIHNlY29uZHMpIGluIHRoZSBmdXR1cmUuJyxcbiAgICAgIClcbiAgICB9XG4gICAgY29va2llICs9IGA7IEV4cGlyZXM9JHtvcHQuZXhwaXJlcy50b1VUQ1N0cmluZygpfWBcbiAgfVxuXG4gIGlmIChvcHQuaHR0cE9ubHkpIHtcbiAgICBjb29raWUgKz0gJzsgSHR0cE9ubHknXG4gIH1cblxuICBpZiAob3B0LnNlY3VyZSkge1xuICAgIGNvb2tpZSArPSAnOyBTZWN1cmUnXG4gIH1cblxuICBpZiAob3B0LnNhbWVTaXRlKSB7XG4gICAgY29va2llICs9IGA7IFNhbWVTaXRlPSR7b3B0LnNhbWVTaXRlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgb3B0LnNhbWVTaXRlLnNsaWNlKDEpfWBcbiAgfVxuXG4gIGlmIChvcHQucGFydGl0aW9uZWQpIHtcbiAgICBpZiAoIW9wdC5zZWN1cmUpIHtcbiAgICAgIG9wdC5zZWN1cmUgPSB0cnVlXG4gICAgfVxuICAgIGNvb2tpZSArPSAnOyBQYXJ0aXRpb25lZCdcbiAgfVxuXG4gIHJldHVybiBjb29raWVcbn1cblxuY29uc3QgYWxnb3JpdGhtID0geyBuYW1lOiAnSE1BQycsIGhhc2g6ICdTSEEtMjU2JyB9XG5cbmNvbnN0IGdldENyeXB0b0tleSA9IGFzeW5jIChzZWNyZXQ6IHN0cmluZyB8IEJ1ZmZlclNvdXJjZSkgPT4ge1xuICBjb25zdCBzZWNyZXRCdWYgPSB0eXBlb2Ygc2VjcmV0ID09PSAnc3RyaW5nJyA/IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShzZWNyZXQpIDogc2VjcmV0XG4gIHJldHVybiBhd2FpdCBzdWJ0bGUuaW1wb3J0S2V5KCdyYXcnLCBzZWNyZXRCdWYsIGFsZ29yaXRobSwgZmFsc2UsIFsnc2lnbicsICd2ZXJpZnknXSlcbn1cblxuY29uc3QgbWFrZVNpZ25hdHVyZSA9IGFzeW5jICh2YWx1ZTogc3RyaW5nLCBzZWNyZXQ6IHN0cmluZyB8IEJ1ZmZlclNvdXJjZSk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IGtleSA9IGF3YWl0IGdldENyeXB0b0tleShzZWNyZXQpXG4gIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHN1YnRsZS5zaWduKGFsZ29yaXRobS5uYW1lLCBrZXksIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh2YWx1ZSkpXG4gIC8vIHRoZSByZXR1cm5lZCBiYXNlNjQgZW5jb2RlZCBzaWduYXR1cmUgd2lsbCBhbHdheXMgYmUgNDQgY2hhcmFjdGVycyBsb25nIGFuZCBlbmQgd2l0aCBvbmUgb3IgdHdvIGVxdWFsIHNpZ25zXG4gIHJldHVybiBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4ubmV3IFVpbnQ4QXJyYXkoc2lnbmF0dXJlKSkpXG59XG5cbmV4cG9ydCBjb25zdCBzaWduQ29va2llVmFsdWUgPSBhc3luYyAodmFsdWU6IHN0cmluZywgc2VjcmV0OiBzdHJpbmcgfCBCdWZmZXJTb3VyY2UpID0+IHtcbiAgY29uc3Qgc2lnbmF0dXJlID0gYXdhaXQgbWFrZVNpZ25hdHVyZSh2YWx1ZSwgc2VjcmV0KVxuICB2YWx1ZSA9IGAke3ZhbHVlfS4ke3NpZ25hdHVyZX1gXG4gIHZhbHVlID0gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKVxuICB2YWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSlcbiAgcmV0dXJuIHZhbHVlXG59XG5cbmV4cG9ydCBjb25zdCBzZXJpYWxpemVDb29raWUgPSAoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIG9wdD86IENvb2tpZU9wdGlvbnMpID0+IHtcbiAgdmFsdWUgPSBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpXG4gIHJldHVybiBfc2VyaWFsaXplKGtleSwgdmFsdWUsIG9wdClcbn1cblxuZXhwb3J0IGNvbnN0IHNlcmlhbGl6ZVNpZ25lZENvb2tpZSA9IGFzeW5jIChcbiAga2V5OiBzdHJpbmcsXG4gIHZhbHVlOiBzdHJpbmcsXG4gIHNlY3JldDogc3RyaW5nLFxuICBvcHQ/OiBDb29raWVPcHRpb25zLFxuKSA9PiB7XG4gIHZhbHVlID0gYXdhaXQgc2lnbkNvb2tpZVZhbHVlKHZhbHVlLCBzZWNyZXQpXG4gIHJldHVybiBfc2VyaWFsaXplKGtleSwgdmFsdWUsIG9wdClcbn1cblxuZXhwb3J0IGNvbnN0IGdldENvb2tpZUtleSA9IChrZXk6IHN0cmluZywgcHJlZml4PzogQ29va2llUHJlZml4T3B0aW9ucykgPT4ge1xuICBsZXQgZmluYWxLZXkgPSBrZXlcbiAgaWYgKHByZWZpeCkge1xuICAgIGlmIChwcmVmaXggPT09ICdzZWN1cmUnKSB7XG4gICAgICBmaW5hbEtleSA9ICdfX1NlY3VyZS0nICsga2V5XG4gICAgfSBlbHNlIGlmIChwcmVmaXggPT09ICdob3N0Jykge1xuICAgICAgZmluYWxLZXkgPSAnX19Ib3N0LScgKyBrZXlcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbiAgfVxuICByZXR1cm4gZmluYWxLZXlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyeURlY29kZShzdHI6IHN0cmluZykge1xuICB0cnkge1xuICAgIHJldHVybiBzdHIuaW5jbHVkZXMoJyUnKSA/IGRlY29kZVVSSUNvbXBvbmVudChzdHIpIDogc3RyXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBzdHJcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlIGFuIEhUVFAgQ29va2llIGhlYWRlciBzdHJpbmcgYW5kIHJldHVybmluZyBhbiBvYmplY3Qgb2YgYWxsIGNvb2tpZVxuICogbmFtZS12YWx1ZSBwYWlycy5cbiAqXG4gKiBJbnNwaXJlZCBieSBodHRwczovL2dpdGh1Yi5jb20vdW5qcy9jb29raWUtZXMvYmxvYi9tYWluL3NyYy9jb29raWUvcGFyc2UudHNcbiAqXG4gKiBAcGFyYW0gc3RyIHRoZSBzdHJpbmcgcmVwcmVzZW50aW5nIGEgYENvb2tpZWAgaGVhZGVyIHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNvb2tpZXMoc3RyOiBzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignYXJndW1lbnQgc3RyIG11c3QgYmUgYSBzdHJpbmcnKVxuICB9XG5cbiAgY29uc3QgY29va2llczogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXAoKVxuXG4gIGxldCBpbmRleCA9IDBcbiAgd2hpbGUgKGluZGV4IDwgc3RyLmxlbmd0aCkge1xuICAgIGNvbnN0IGVxSWR4ID0gc3RyLmluZGV4T2YoJz0nLCBpbmRleClcblxuICAgIGlmIChlcUlkeCA9PT0gLTEpIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgbGV0IGVuZElkeCA9IHN0ci5pbmRleE9mKCc7JywgaW5kZXgpXG5cbiAgICBpZiAoZW5kSWR4ID09PSAtMSkge1xuICAgICAgZW5kSWR4ID0gc3RyLmxlbmd0aFxuICAgIH0gZWxzZSBpZiAoZW5kSWR4IDwgZXFJZHgpIHtcbiAgICAgIGluZGV4ID0gc3RyLmxhc3RJbmRleE9mKCc7JywgZXFJZHggLSAxKSArIDFcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgY29uc3Qga2V5ID0gc3RyLnNsaWNlKGluZGV4LCBlcUlkeCkudHJpbSgpXG4gICAgaWYgKCFjb29raWVzLmhhcyhrZXkpKSB7XG4gICAgICBsZXQgdmFsID0gc3RyLnNsaWNlKGVxSWR4ICsgMSwgZW5kSWR4KS50cmltKClcbiAgICAgIGlmICh2YWwuY29kZVBvaW50QXQoMCkgPT09IDB4MjIpIHtcbiAgICAgICAgdmFsID0gdmFsLnNsaWNlKDEsIC0xKVxuICAgICAgfVxuICAgICAgY29va2llcy5zZXQoa2V5LCB0cnlEZWNvZGUodmFsKSlcbiAgICB9XG5cbiAgICBpbmRleCA9IGVuZElkeCArIDFcbiAgfVxuXG4gIHJldHVybiBjb29raWVzXG59XG5cbmV4cG9ydCBjb25zdCBnZXRTaWduZWRDb29raWUgPSBhc3luYyAoXG4gIGtleTogc3RyaW5nLFxuICBzZWNyZXQ6IHN0cmluZyxcbiAgaGVhZGVyczogSGVhZGVycyxcbiAgcHJlZml4PzogQ29va2llUHJlZml4T3B0aW9ucyxcbikgPT4ge1xuICBjb25zdCBmaW5hbEtleSA9IGdldENvb2tpZUtleShrZXksIHByZWZpeClcbiAgaWYgKCFmaW5hbEtleSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgY29va2llSGVhZGVyID0gaGVhZGVycy5nZXQoJ2Nvb2tpZScpXG4gIGNvbnN0IHBhcnNlZENvb2tpZXMgPSBjb29raWVIZWFkZXIgPyBwYXJzZUNvb2tpZXMoY29va2llSGVhZGVyKSA6IHVuZGVmaW5lZFxuICBjb25zdCB2YWx1ZSA9IHBhcnNlZENvb2tpZXM/LmdldChmaW5hbEtleSlcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3Qgc2lnbmF0dXJlU3RhcnRQb3MgPSB2YWx1ZS5sYXN0SW5kZXhPZignLicpXG4gIGlmIChzaWduYXR1cmVTdGFydFBvcyA8IDEpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IHNpZ25lZFZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIHNpZ25hdHVyZVN0YXJ0UG9zKVxuICBjb25zdCBzaWduYXR1cmUgPSB2YWx1ZS5zdWJzdHJpbmcoc2lnbmF0dXJlU3RhcnRQb3MgKyAxKVxuICBpZiAoc2lnbmF0dXJlLmxlbmd0aCAhPT0gNDQgfHwgIXNpZ25hdHVyZS5lbmRzV2l0aCgnPScpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBzZWNyZXRLZXkgPSBhd2FpdCBnZXRDcnlwdG9LZXkoc2VjcmV0KVxuICBjb25zdCBpc1ZlcmlmaWVkID0gYXdhaXQgdmVyaWZ5U2lnbmF0dXJlKHNpZ25hdHVyZSwgc2lnbmVkVmFsdWUsIHNlY3JldEtleSlcbiAgcmV0dXJuIGlzVmVyaWZpZWQgPyBzaWduZWRWYWx1ZSA6IGZhbHNlXG59XG4iXSwibmFtZXMiOlsic3VidGxlIiwidmVyaWZ5U2lnbmF0dXJlIiwiYmFzZTY0U2lnbmF0dXJlIiwidmFsdWUiLCJzZWNyZXQiLCJzaWduYXR1cmVCaW5TdHIiLCJhdG9iIiwic2lnbmF0dXJlIiwiVWludDhBcnJheSIsImxlbmd0aCIsImkiLCJsZW4iLCJjaGFyQ29kZUF0IiwidmVyaWZ5IiwiYWxnb3JpdGhtIiwiVGV4dEVuY29kZXIiLCJlbmNvZGUiLCJlIiwiX3NlcmlhbGl6ZSIsImtleSIsIm9wdCIsImNvb2tpZSIsInByZWZpeCIsInN0YXJ0c1dpdGgiLCJzZWN1cmUiLCJwYXRoIiwiZG9tYWluIiwidW5kZWZpbmVkIiwibWF4QWdlIiwiRXJyb3IiLCJNYXRoIiwiZmxvb3IiLCJleHBpcmVzIiwiZ2V0VGltZSIsIkRhdGUiLCJub3ciLCJ0b1VUQ1N0cmluZyIsImh0dHBPbmx5Iiwic2FtZVNpdGUiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNsaWNlIiwicGFydGl0aW9uZWQiLCJuYW1lIiwiaGFzaCIsImdldENyeXB0b0tleSIsInNlY3JldEJ1ZiIsImltcG9ydEtleSIsIm1ha2VTaWduYXR1cmUiLCJzaWduIiwiYnRvYSIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsInNpZ25Db29raWVWYWx1ZSIsImVuY29kZVVSSUNvbXBvbmVudCIsImRlY29kZVVSSUNvbXBvbmVudCIsInNlcmlhbGl6ZUNvb2tpZSIsInNlcmlhbGl6ZVNpZ25lZENvb2tpZSIsImdldENvb2tpZUtleSIsImZpbmFsS2V5IiwidHJ5RGVjb2RlIiwic3RyIiwiaW5jbHVkZXMiLCJwYXJzZUNvb2tpZXMiLCJUeXBlRXJyb3IiLCJjb29raWVzIiwiTWFwIiwiaW5kZXgiLCJlcUlkeCIsImluZGV4T2YiLCJlbmRJZHgiLCJsYXN0SW5kZXhPZiIsInRyaW0iLCJoYXMiLCJ2YWwiLCJjb2RlUG9pbnRBdCIsInNldCIsImdldFNpZ25lZENvb2tpZSIsImhlYWRlcnMiLCJjb29raWVIZWFkZXIiLCJnZXQiLCJwYXJzZWRDb29raWVzIiwic2lnbmF0dXJlU3RhcnRQb3MiLCJzaWduZWRWYWx1ZSIsInN1YnN0cmluZyIsImVuZHNXaXRoIiwic2VjcmV0S2V5IiwiaXNWZXJpZmllZCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsTUFBTSxRQUFRLFdBQVU7QUEyRmpDLE9BQU8sTUFBTUMsa0JBQWtCLE9BQzdCQyxpQkFDQUMsT0FDQUM7SUFFQSxJQUFJO1FBQ0YsTUFBTUMsa0JBQWtCQyxLQUFLSjtRQUM3QixNQUFNSyxZQUFZLElBQUlDLFdBQVdILGdCQUFnQkksTUFBTTtRQUN2RCxJQUFLLElBQUlDLElBQUksR0FBR0MsTUFBTU4sZ0JBQWdCSSxNQUFNLEVBQUVDLElBQUlDLEtBQUtELElBQUs7WUFDMURILFNBQVMsQ0FBQ0csRUFBRSxHQUFHTCxnQkFBZ0JPLFVBQVUsQ0FBQ0Y7UUFDNUM7UUFDQSxPQUFPLE1BQU1WLE9BQU9hLE1BQU0sQ0FBQ0MsV0FBV1YsUUFBUUcsV0FBVyxJQUFJUSxjQUFjQyxNQUFNLENBQUNiO0lBQ3BGLEVBQUUsT0FBT2MsR0FBRztRQUNWLE9BQU87SUFDVDtBQUNGLEVBQUM7QUFFRCxNQUFNQyxhQUFhLENBQUNDLEtBQWFoQixPQUFlaUIsTUFBcUIsQ0FBQyxDQUFDO0lBQ3JFLElBQUlDO0lBRUosSUFBSUQsS0FBS0UsV0FBVyxVQUFVO1FBQzVCRCxTQUFTLEdBQUcsQ0FBQyxTQUFTLEVBQUVGLEtBQUssQ0FBQyxDQUFDLEVBQUVoQixPQUFPO0lBQzFDLE9BQU8sSUFBSWlCLEtBQUtFLFdBQVcsUUFBUTtRQUNqQ0QsU0FBUyxHQUFHLENBQUMsT0FBTyxFQUFFRixLQUFLLENBQUMsQ0FBQyxFQUFFaEIs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
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9zZXJpYWxpemUtY29va2llLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN1YnRsZSB9IGZyb20gXCJ1bmNyeXB0b1wiO1xuXG50eXBlIENvb2tpZVByZWZpeE9wdGlvbnMgPSBcImhvc3RcIiB8IFwic2VjdXJlXCI7XG5cbnR5cGUgQ29va2llT3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIERvbWFpbiBvZiB0aGUgY29va2llXG4gICAqXG4gICAqIFRoZSBEb21haW4gYXR0cmlidXRlIHNwZWNpZmllcyB3aGljaCBzZXJ2ZXIgY2FuIHJlY2VpdmUgYSBjb29raWUuIElmIHNwZWNpZmllZCwgY29va2llcyBhcmVcbiAgICogYXZhaWxhYmxlIG9uIHRoZSBzcGVjaWZpZWQgc2VydmVyIGFuZCBpdHMgc3ViZG9tYWlucy4gSWYgdGhlIGl0IGlzIG5vdFxuICAgKiBzcGVjaWZpZWQsIHRoZSBjb29raWVzIGFyZSBhdmFpbGFibGUgb24gdGhlIHNlcnZlciB0aGF0IHNldHMgaXQgYnV0IG5vdCBvblxuICAgKiBpdHMgc3ViZG9tYWlucy5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGRvbWFpbjogXCJleGFtcGxlLmNvbVwiYFxuICAgKi9cbiAgZG9tYWluPzogc3RyaW5nO1xuICAvKipcbiAgICogQSBsaWZldGltZSBvZiBhIGNvb2tpZS4gUGVybWFuZW50IGNvb2tpZXMgYXJlIGRlbGV0ZWQgYWZ0ZXIgdGhlIGRhdGUgc3BlY2lmaWVkIGluIHRoZVxuICAgKiBFeHBpcmVzIGF0dHJpYnV0ZTpcbiAgICpcbiAgICogRXhwaXJlcyBoYXMgYmVlbiBhdmFpbGFibGUgZm9yIGxvbmdlciB0aGFuIE1heC1BZ2UsIGhvd2V2ZXIgTWF4LUFnZSBpcyBsZXNzIGVycm9yLXByb25lLCBhbmRcbiAgICogdGFrZXMgcHJlY2VkZW5jZSB3aGVuIGJvdGggYXJlIHNldC4gVGhlIHJhdGlvbmFsZSBiZWhpbmQgdGhpcyBpcyB0aGF0IHdoZW4geW91IHNldCBhblxuICAgKiBFeHBpcmVzIGRhdGUgYW5kIHRpbWUsIHRoZXkncmUgcmVsYXRpdmUgdG8gdGhlIGNsaWVudCB0aGUgY29va2llIGlzIGJlaW5nIHNldCBvbi4gSWYgdGhlXG4gICAqIHNlcnZlciBpcyBzZXQgdG8gYSBkaWZmZXJlbnQgdGltZSwgdGhpcyBjb3VsZCBjYXVzZSBlcnJvcnNcbiAgICovXG4gIGV4cGlyZXM/OiBEYXRlO1xuICAvKipcbiAgICogRm9yYmlkcyBKYXZhU2NyaXB0IGZyb20gYWNjZXNzaW5nIHRoZSBjb29raWUsIGZvciBleGFtcGxlLCB0aHJvdWdoIHRoZSBEb2N1bWVudC5jb29raWVcbiAgICogcHJvcGVydHkuIE5vdGUgdGhhdCBhIGNvb2tpZSB0aGF0IGhhcyBiZWVuIGNyZWF0ZWQgd2l0aCBIdHRwT25seSB3aWxsIHN0aWxsIGJlIHNlbnQgd2l0aFxuICAgKiBKYXZhU2NyaXB0LWluaXRpYXRlZCByZXF1ZXN0cywgZm9yIGV4YW1wbGUsIHdoZW4gY2FsbGluZyBYTUxIdHRwUmVxdWVzdC5zZW5kKCkgb3IgZmV0Y2goKS5cbiAgICogVGhpcyBtaXRpZ2F0ZXMgYXR0YWNrcyBhZ2FpbnN0IGNyb3NzLXNpdGUgc2NyaXB0aW5nXG4gICAqL1xuICBodHRwT25seT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIG51bWJlciBvZiBzZWNvbmRzIHVudGlsIHRoZSBjb29raWUgZXhwaXJlcy4gQSB6ZXJvIG9yIG5lZ2F0aXZlIG51bWJlciB3aWxsXG4gICAqIGV4cGlyZSB0aGUgY29va2llIGltbWVkaWF0ZWx5LiBJZiBib3RoIEV4cGlyZXMgYW5kIE1heC1BZ2UgYXJlIHNldCwgTWF4LUFnZSBoYXMgcHJlY2VkZW5jZS5cbiAgICpcbiAgICogQGV4YW1wbGUgNjA0ODAwIC0gNyBkYXlzXG4gICAqL1xuICBtYXhBZ2U/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHBhdGggdGhhdCBtdXN0IGV4aXN0IGluIHRoZSByZXF1ZXN0ZWQgVVJMIGZvciB0aGUgYnJvd3NlciB0byBzZW5kIHRoZSBDb29raWVcbiAgICogaGVhZGVyLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBcIi9kb2NzXCJcbiAgICogLy8gLT4gdGhlIHJlcXVlc3QgcGF0aHMgL2RvY3MsIC9kb2NzLywgL2RvY3MvV2ViLywgYW5kIC9kb2NzL1dlYi9IVFRQIHdpbGwgYWxsIG1hdGNoLiB0aGUgcmVxdWVzdCBwYXRocyAvLCAvZnIvZG9jcyB3aWxsIG5vdCBtYXRjaC5cbiAgICovXG4gIHBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgY29va2llIGlzIHNlbnQgdG8gdGhlIHNlcnZlciBvbmx5IHdoZW4gYSByZXF1ZXN0IGlzIG1hZGUgd2l0aCB0aGUgaHR0cHM6XG4gICAqIHNjaGVtZSAoZXhjZXB0IG9uIGxvY2FsaG9zdCksIGFuZCB0aGVyZWZvcmUsIGlzIG1vcmUgcmVzaXN0YW50IHRvIG1hbi1pbi10aGUtbWlkZGxlIGF0dGFja3MuXG4gICAqL1xuICBzZWN1cmU/OiBib29sZWFuO1xuICAvKipcbiAgICogQ29udHJvbHMgd2hldGhlciBvciBub3QgYSBjb29raWUgaXMgc2VudCB3aXRoIGNyb3NzLXNpdGUgcmVxdWVzdHMsIHByb3ZpZGluZyBzb21lIHByb3RlY3Rpb25cbiAgICogYWdhaW5zdCBjcm9zcy1zaXRlIHJlcXVlc3QgZm9yZ2VyeSBhdHRhY2tzIChDU1JGKS5cbiAgICpcbiAgICogU3RyaWN0IC0gIE1lYW5zIHRoYXQgdGhlIGJyb3dzZXIgc2VuZHMgdGhlIGNvb2tpZSBvbmx5IGZvciBzYW1lLXNpdGUgcmVxdWVzdHMsIHRoYXQgaXMsXG4gICAqIHJlcXVlc3RzIG9yaWdpbmF0aW5nIGZyb20gdGhlIHNhbWUgc2l0ZSB0aGF0IHNldCB0aGUgY29va2llLiBJZiBhIHJlcXVlc3Qgb3JpZ2luYXRlcyBmcm9tIGFcbiAgICogZGlmZmVyZW50IGRvbWFpbiBvciBzY2hlbWUgKGV2ZW4gd2l0aCB0aGUgc2FtZSBkb21haW4pLCBubyBjb29raWVzIHdpdGggdGhlIFNhbWVTaXRlPVN0cmljdFxuICAgKiBhdHRyaWJ1dGUgYXJlIHNlbnQuXG4gICAqXG4gICAqIExheCAtIE1lYW5zIHRoYXQgdGhlIGNvb2tpZSBpcyBub3Qgc2VudCBvbiBjcm9zcy1zaXRlIHJlcXVlc3RzLCBzdWNoIGFzIG9uIHJlcXVlc3RzIHRvIGxvYWRcbiAgICogaW1hZ2VzIG9yIGZyYW1lcywgYnV0IGlzIHNlbnQgd2hlbiBhIHVzZXIgaXMgbmF2aWdhdGluZyB0byB0aGUgb3JpZ2luIHNpdGUgZnJvbSBhbiBleHRlcm5hbFxuICAgKiBzaXRlIChmb3IgZXhhbXBsZSwgd2hlbiBmb2xsb3dpbmcgYSBsaW5rKS4gVGhpcyBpcyB0aGUgZGVmYXVsdCBiZWhhdmlvciBpZiB0aGUgU2FtZVNpdGVcbiAgICogYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQuXG4gICAqXG4gICAqIE5vbmUgLSBNZWFucyB0aGF0IHRoZSBicm93c2VyIHNlbmRzIHRoZSBjb29raWUgd2l0aCBib3RoIGNyb3NzLXNpdGUgYW5kIHNhbWUtc2l0ZSByZXF1ZXN0cy5cbiAgICogVGhlIFNlY3VyZSBhdHRyaWJ1dGUgbXVzdCBhbHNvIGJlIHNldCB3aGVuIHNldHRpbmcgdGhpcyB2YWx1ZS5cbiAgICovXG4gIHNhbWVTaXRlPzogXCJTdHJpY3RcIiB8IFwiTGF4XCIgfCBcIk5vbmVcIiB8IFwic3RyaWN0XCIgfCBcImxheFwiIHwgXCJub25lXCI7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgY29va2llIHNob3VsZCBiZSBzdG9yZWQgdXNpbmcgcGFydGl0aW9uZWQgc3RvcmFnZS4gTm90ZSB0aGF0IGlmIHRoaXMgaXNcbiAgICogc2V0LCB0aGUgU2VjdXJlIGRpcmVjdGl2ZSBtdXN0IGFsc28gYmUgc2V0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL1ByaXZhY3kvUHJpdmFjeV9zYW5kYm94L1BhcnRpdGlvbmVkX2Nvb2tpZXNcbiAgICovXG4gIHBhcnRpdGlvbmVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENvb2tlIFByZWZpeFxuICAgKlxuICAgKiAtIHNlY3VyZTogYF9fU2VjdXJlLWAgLT4gYF9fU2VjdXJlLWNvb2tpZS1uYW1lYFxuICAgKiAtIGhvc3Q6IGBfX0hvc3QtYCAtPiBgX19Ib3N0LWNvb2tpZS1uYW1lYFxuICAgKlxuICAgKiBgc2VjdXJlYCBtdXN0IGJlIHNldCB0byB0cnVlIHRvIHVzZSBwcmVmaXhlc1xuICAgKi9cbiAgcHJlZml4PzogQ29va2llUHJlZml4T3B0aW9ucztcbn07XG5cbmV4cG9ydCBjb25zdCB2ZXJpZnlTaWduYXR1cmUgPSBhc3luYyAoXG4gIGJhc2U2NFNpZ25hdHVyZTogc3RyaW5nLFxuICB2YWx1ZTogc3RyaW5nLFxuICBzZWNyZXQ6IENyeXB0b0tleVxuKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3Qgc2lnbmF0dXJlQmluU3RyID0gYXRvYihiYXNlNjRTaWduYXR1cmUpO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IG5ldyBVaW50OEFycmF5KHNpZ25hdHVyZUJpblN0ci5sZW5ndGgpO1xuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBzaWduYXR1cmVCaW5TdHIubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIHNpZ25hdHVyZVtpXSA9IHNpZ25hdHVyZUJpblN0ci5jaGFyQ29kZUF0KGkpO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgc3VidGxlLnZlcmlmeShcbiAgICAgIGFsZ29yaXRobSxcbiAgICAgIHNlY3JldCxcbiAgICAgIHNpZ25hdHVyZSxcbiAgICAgIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh2YWx1ZSlcbiAgICApO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59O1xuXG5jb25zdCBfc2VyaWFsaXplID0gKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBvcHQ6IENvb2tpZU9wdGlvbnMgPSB7fSkgPT4ge1xuICBsZXQgY29va2llOiBzdHJpbmc7XG5cbiAgaWYgKG9wdD8ucHJlZml4ID09PSBcInNlY3VyZVwiKSB7XG4gICAgY29va2llID0gYCR7YF9fU2VjdXJlLSR7a2V5fWB9PSR7dmFsdWV9YDtcbiAgfSBlbHNlIGlmIChvcHQ/LnByZWZpeCA9PT0gXCJob3N0XCIpIHtcbiAgICBjb29raWUgPSBgJHtgX19Ib3N0LSR7a2V5fWB9PSR7dmFsdWV9YDtcbiAgfSBlbHNlIHtcbiAgICBjb29raWUgPSBgJHtrZXl9PSR7dmFsdWV9YDtcbiAgfVxuXG4gIGlmIChrZXkuc3RhcnRzV2l0aChcIl9fU2VjdXJlLVwiKSAmJiAhb3B0LnNlY3VyZSkge1xuICAgIG9wdC5zZWN1cmUgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGtleS5zdGFydHNXaXRoKFwiX19Ib3N0LVwiKSkge1xuICAgIGlmICghb3B0LnNlY3VyZSkge1xuICAgICAgb3B0LnNlY3VyZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG9wdC5wYXRoICE9PSBcIi9cIikge1xuICAgICAgb3B0LnBhdGggPSBcIi9cIjtcbiAgICB9XG5cbiAgICBpZiAob3B0LmRvbWFpbikge1xuICAgICAgb3B0LmRvbWFpbiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBpZiAob3B0ICYmIHR5cGVvZiBvcHQubWF4QWdlID09PSBcIm51bWJlclwiICYmIG9wdC5tYXhBZ2UgPj0gMCkge1xuICAgIGlmIChvcHQubWF4QWdlID4gMzQ1NjAwMDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJDb29raWVzIE1heC1BZ2UgU0hPVUxEIE5PVCBiZSBncmVhdGVyIHRoYW4gNDAwIGRheXMgKDM0NTYwMDAwIHNlY29uZHMpIGluIGR1cmF0aW9uLlwiXG4gICAgICApO1xuICAgIH1cbiAgICBjb29raWUgKz0gYDsgTWF4LUFnZT0ke01hdGguZmxvb3Iob3B0Lm1heEFnZSl9YDtcbiAgfVxuXG4gIGlmIChvcHQuZG9tYWluICYmIG9wdC5wcmVmaXggIT09IFwiaG9zdFwiKSB7XG4gICAgY29va2llICs9IGA7IERvbWFpbj0ke29wdC5kb21haW59YDtcbiAgfVxuXG4gIGlmIChvcHQucGF0aCkge1xuICAgIGNvb2tpZSArPSBgOyBQYXRoPSR7b3B0LnBhdGh9YDtcbiAgfVxuXG4gIGlmIChvcHQuZXhwaXJlcykge1xuICAgIGlmIChvcHQuZXhwaXJlcy5nZXRUaW1lKCkgLSBEYXRlLm5vdygpID4gMzQ1NjAwMDBfMDAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQ29va2llcyBFeHBpcmVzIFNIT1VMRCBOT1QgYmUgZ3JlYXRlciB0aGFuIDQwMCBkYXlzICgzNDU2MDAwMCBzZWNvbmRzKSBpbiB0aGUgZnV0dXJlLlwiXG4gICAgICApO1xuICAgIH1cbiAgICBjb29raWUgKz0gYDsgRXhwaXJlcz0ke29wdC5leHBpcmVzLnRvVVRDU3RyaW5nKCl9YDtcbiAgfVxuXG4gIGlmIChvcHQuaHR0cE9ubHkpIHtcbiAgICBjb29raWUgKz0gXCI7IEh0dHBPbmx5XCI7XG4gIH1cblxuICBpZiAob3B0LnNlY3VyZSkge1xuICAgIGNvb2tpZSArPSBcIjsgU2VjdXJlXCI7XG4gIH1cblxuICBpZiAob3B0LnNhbWVTaXRlKSB7XG4gICAgY29va2llICs9IGA7IFNhbWVTaXRlPSR7b3B0LnNhbWVTaXRlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgb3B0LnNhbWVTaXRlLnNsaWNlKDEpfWA7XG4gIH1cblxuICBpZiAob3B0LnBhcnRpdGlvbmVkKSB7XG4gICAgaWYgKCFvcHQuc2VjdXJlKSB7XG4gICAgICBvcHQuc2VjdXJlID0gdHJ1ZTtcbiAgICB9XG4gICAgY29va2llICs9IFwiOyBQYXJ0aXRpb25lZFwiO1xuICB9XG5cbiAgcmV0dXJuIGNvb2tpZTtcbn07XG5cbmNvbnN0IGFsZ29yaXRobSA9IHsgbmFtZTogXCJITUFDXCIsIGhhc2g6IFwiU0hBLTI1NlwiIH07XG5cbmNvbnN0IGdldENyeXB0b0tleSA9IGFzeW5jIChzZWNyZXQ6IHN0cmluZyB8IEJ1ZmZlclNvdXJjZSkgPT4ge1xuICBjb25zdCBzZWNyZXRCdWYgPVxuICAgIHR5cGVvZiBzZWNyZXQgPT09IFwic3RyaW5nXCIgPyBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoc2VjcmV0KSA6IHNlY3JldDtcbiAgcmV0dXJuIGF3YWl0IHN1YnRsZS5pbXBvcnRLZXkoXCJyYXdcIiwgc2VjcmV0QnVmLCBhbGdvcml0aG0sIGZhbHNlLCBbXG4gICAgXCJzaWduXCIsXG4gICAgXCJ2ZXJpZnlcIixcbiAgXSk7XG59O1xuXG5jb25zdCBtYWtlU2lnbmF0dXJlID0gYXN5bmMgKFxuICB2YWx1ZTogc3RyaW5nLFxuICBzZWNyZXQ6IHN0cmluZyB8IEJ1ZmZlclNvdXJjZVxuKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgY29uc3Qga2V5ID0gYXdhaXQgZ2V0Q3J5cHRvS2V5KHNlY3JldCk7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHN1YnRsZS5zaWduKFxuICAgIGFsZ29yaXRobS5uYW1lLFxuICAgIGtleSxcbiAgICBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodmFsdWUpXG4gICk7XG4gIC8vIHRoZSByZXR1cm5lZCBiYXNlNjQgZW5jb2RlZCBzaWduYXR1cmUgd2lsbCBhbHdheXMgYmUgNDQgY2hhcmFjdGVycyBsb25nIGFuZCBlbmQgd2l0aCBvbmUgb3IgdHdvIGVxdWFsIHNpZ25zXG4gIHJldHVybiBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4ubmV3IFVpbnQ4QXJyYXkoc2lnbmF0dXJlKSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNpZ25Db29raWVWYWx1ZSA9IGFzeW5jIChcbiAgdmFsdWU6IHN0cmluZyxcbiAgc2VjcmV0OiBzdHJpbmcgfCBCdWZmZXJTb3VyY2VcbikgPT4ge1xuICBjb25zdCBzaWduYXR1cmUgPSBhd2FpdCBtYWtlU2lnbmF0dXJlKHZhbHVlLCBzZWNyZXQpO1xuICB2YWx1ZSA9IGAke3ZhbHVlfS4ke3NpZ25hdHVyZX1gO1xuICB2YWx1ZSA9IGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gIHZhbHVlID0gZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgcmV0dXJuIHZhbHVlO1xufTtcblxuZXhwb3J0IGNvbnN0IHNlcmlhbGl6ZUNvb2tpZSA9IChcbiAga2V5OiBzdHJpbmcsXG4gIHZhbHVlOiBzdHJpbmcsXG4gIG9wdD86IENvb2tpZU9wdGlvbnNcbikgPT4ge1xuICB2YWx1ZSA9IGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gIHJldHVybiBfc2VyaWFsaXplKGtleSwgdmFsdWUsIG9wdCk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2VyaWFsaXplU2lnbmVkQ29va2llID0gYXN5bmMgKFxuICBrZXk6IHN0cmluZyxcbiAgdmFsdWU6IHN0cmluZyxcbiAgc2VjcmV0OiBzdHJpbmcsXG4gIG9wdD86IENvb2tpZU9wdGlvbnNcbikgPT4ge1xuICB2YWx1ZSA9IGF3YWl0IHNpZ25Db29raWVWYWx1ZSh2YWx1ZSwgc2VjcmV0KTtcbiAgcmV0dXJuIF9zZXJpYWxpemUoa2V5LCB2YWx1ZSwgb3B0KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDb29raWVLZXkgPSAoa2V5OiBzdHJpbmcsIHByZWZpeD86IENvb2tpZVByZWZpeE9wdGlvbnMpID0+IHtcbiAgbGV0IGZpbmFsS2V5ID0ga2V5O1xuICBpZiAocHJlZml4KSB7XG4gICAgaWYgKHByZWZpeCA9PT0gXCJzZWN1cmVcIikge1xuICAgICAgZmluYWxLZXkgPSBcIl9fU2VjdXJlLVwiICsga2V5O1xuICAgIH0gZWxzZSBpZiAocHJlZml4ID09PSBcImhvc3RcIikge1xuICAgICAgZmluYWxLZXkgPSBcIl9fSG9zdC1cIiArIGtleTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZpbmFsS2V5O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRyeURlY29kZShzdHI6IHN0cmluZykge1xuICB0cnkge1xuICAgIHJldHVybiBzdHIuaW5jbHVkZXMoXCIlXCIpID8gZGVjb2RlVVJJQ29tcG9uZW50KHN0cikgOiBzdHI7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBzdHI7XG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSBhbiBIVFRQIENvb2tpZSBoZWFkZXIgc3RyaW5nIGFuZCByZXR1cm5pbmcgYW4gb2JqZWN0IG9mIGFsbCBjb29raWVcbiAqIG5hbWUtdmFsdWUgcGFpcnMuXG4gKlxuICogSW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL3VuanMvY29va2llLWVzL2Jsb2IvbWFpbi9zcmMvY29va2llL3BhcnNlLnRzXG4gKlxuICogQHBhcmFtIHN0ciB0aGUgc3RyaW5nIHJlcHJlc2VudGluZyBhIGBDb29raWVgIGhlYWRlciB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDb29raWVzKHN0cjogc3RyaW5nKSB7XG4gIGlmICh0eXBlb2Ygc3RyICE9PSBcInN0cmluZ1wiKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IHN0ciBtdXN0IGJlIGEgc3RyaW5nXCIpO1xuICB9XG5cbiAgY29uc3QgY29va2llczogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXAoKTtcblxuICBsZXQgaW5kZXggPSAwO1xuICB3aGlsZSAoaW5kZXggPCBzdHIubGVuZ3RoKSB7XG4gICAgY29uc3QgZXFJZHggPSBzdHIuaW5kZXhPZihcIj1cIiwgaW5kZXgpO1xuXG4gICAgaWYgKGVxSWR4ID09PSAtMSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgbGV0IGVuZElkeCA9IHN0ci5pbmRleE9mKFwiO1wiLCBpbmRleCk7XG5cbiAgICBpZiAoZW5kSWR4ID09PSAtMSkge1xuICAgICAgZW5kSWR4ID0gc3RyLmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKGVuZElkeCA8IGVxSWR4KSB7XG4gICAgICBpbmRleCA9IHN0ci5sYXN0SW5kZXhPZihcIjtcIiwgZXFJZHggLSAxKSArIDE7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBrZXkgPSBzdHIuc2xpY2UoaW5kZXgsIGVxSWR4KS50cmltKCk7XG4gICAgaWYgKCFjb29raWVzLmhhcyhrZXkpKSB7XG4gICAgICBsZXQgdmFsID0gc3RyLnNsaWNlKGVxSWR4ICsgMSwgZW5kSWR4KS50cmltKCk7XG4gICAgICBpZiAodmFsLmNvZGVQb2ludEF0KDApID09PSAweDIyKSB7XG4gICAgICAgIHZhbCA9IHZhbC5zbGljZSgxLCAtMSk7XG4gICAgICB9XG4gICAgICBjb29raWVzLnNldChrZXksIHRyeURlY29kZSh2YWwpKTtcbiAgICB9XG5cbiAgICBpbmRleCA9IGVuZElkeCArIDE7XG4gIH1cblxuICByZXR1cm4gY29va2llcztcbn1cblxuZXhwb3J0IGNvbnN0IGdldFNpZ25lZENvb2tpZSA9IGFzeW5jIChcbiAga2V5OiBzdHJpbmcsXG4gIHNlY3JldDogc3RyaW5nLFxuICBoZWFkZXJzOiBIZWFkZXJzLFxuICBwcmVmaXg/OiBDb29raWVQcmVmaXhPcHRpb25zXG4pID0+IHtcbiAgY29uc3QgZmluYWxLZXkgPSBnZXRDb29raWVLZXkoa2V5LCBwcmVmaXgpO1xuICBpZiAoIWZpbmFsS2V5KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgY29va2llSGVhZGVyID0gaGVhZGVycy5nZXQoXCJjb29raWVcIik7XG4gIGNvbnN0IHBhcnNlZENvb2tpZXMgPSBjb29raWVIZWFkZXIgPyBwYXJzZUNvb2tpZXMoY29va2llSGVhZGVyKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgdmFsdWUgPSBwYXJzZWRDb29raWVzPy5nZXQoZmluYWxLZXkpO1xuICBpZiAoIXZhbHVlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3Qgc2lnbmF0dXJlU3RhcnRQb3MgPSB2YWx1ZS5sYXN0SW5kZXhPZihcIi5cIik7XG4gIGlmIChzaWduYXR1cmVTdGFydFBvcyA8IDEpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBzaWduZWRWYWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBzaWduYXR1cmVTdGFydFBvcyk7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IHZhbHVlLnN1YnN0cmluZyhzaWduYXR1cmVTdGFydFBvcyArIDEpO1xuICBpZiAoc2lnbmF0dXJlLmxlbmd0aCAhPT0gNDQgfHwgIXNpZ25hdHVyZS5lbmRzV2l0aChcIj1cIikpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBzZWNyZXRLZXkgPSBhd2FpdCBnZXRDcnlwdG9LZXkoc2VjcmV0KTtcbiAgY29uc3QgaXNWZXJpZmllZCA9IGF3YWl0IHZlcmlmeVNpZ25hdHVyZShzaWduYXR1cmUsIHNpZ25lZFZhbHVlLCBzZWNyZXRLZXkpO1xuICByZXR1cm4gaXNWZXJpZmllZCA/IHNpZ25lZFZhbHVlIDogZmFsc2U7XG59O1xuIl0sIm5hbWVzIjpbInN1YnRsZSIsInZlcmlmeVNpZ25hdHVyZSIsImJhc2U2NFNpZ25hdHVyZSIsInZhbHVlIiwic2VjcmV0Iiwic2lnbmF0dXJlQmluU3RyIiwiYXRvYiIsInNpZ25hdHVyZSIsIlVpbnQ4QXJyYXkiLCJsZW5ndGgiLCJpIiwibGVuIiwiY2hhckNvZGVBdCIsInZlcmlmeSIsImFsZ29yaXRobSIsIlRleHRFbmNvZGVyIiwiZW5jb2RlIiwiZSIsIl9zZXJpYWxpemUiLCJrZXkiLCJvcHQiLCJjb29raWUiLCJwcmVmaXgiLCJzdGFydHNXaXRoIiwic2VjdXJlIiwicGF0aCIsImRvbWFpbiIsInVuZGVmaW5lZCIsIm1heEFnZSIsIkVycm9yIiwiTWF0aCIsImZsb29yIiwiZXhwaXJlcyIsImdldFRpbWUiLCJEYXRlIiwibm93IiwidG9VVENTdHJpbmciLCJodHRwT25seSIsInNhbWVTaXRlIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsInBhcnRpdGlvbmVkIiwibmFtZSIsImhhc2giLCJnZXRDcnlwdG9LZXkiLCJzZWNyZXRCdWYiLCJpbXBvcnRLZXkiLCJtYWtlU2lnbmF0dXJlIiwic2lnbiIsImJ0b2EiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJzaWduQ29va2llVmFsdWUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJzZXJpYWxpemVDb29raWUiLCJzZXJpYWxpemVTaWduZWRDb29raWUiLCJnZXRDb29raWVLZXkiLCJmaW5hbEtleSIsInRyeURlY29kZSIsInN0ciIsImluY2x1ZGVzIiwicGFyc2VDb29raWVzIiwiVHlwZUVycm9yIiwiY29va2llcyIsIk1hcCIsImluZGV4IiwiZXFJZHgiLCJpbmRleE9mIiwiZW5kSWR4IiwibGFzdEluZGV4T2YiLCJ0cmltIiwiaGFzIiwidmFsIiwiY29kZVBvaW50QXQiLCJzZXQiLCJnZXRTaWduZWRDb29raWUiLCJoZWFkZXJzIiwiY29va2llSGVhZGVyIiwiZ2V0IiwicGFyc2VkQ29va2llcyIsInNpZ25hdHVyZVN0YXJ0UG9zIiwic2lnbmVkVmFsdWUiLCJzdWJzdHJpbmciLCJlbmRzV2l0aCIsInNlY3JldEtleSIsImlzVmVyaWZpZWQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE1BQU0sUUFBUSxXQUFXO0FBMkZsQyxPQUFPLE1BQU1DLGtCQUFrQixPQUM3QkMsaUJBQ0FDLE9BQ0FDO0lBRUEsSUFBSTtRQUNGLE1BQU1DLGtCQUFrQkMsS0FBS0o7UUFDN0IsTUFBTUssWUFBWSxJQUFJQyxXQUFXSCxnQkFBZ0JJLE1BQU07UUFDdkQsSUFBSyxJQUFJQyxJQUFJLEdBQUdDLE1BQU1OLGdCQUFnQkksTUFBTSxFQUFFQyxJQUFJQyxLQUFLRCxJQUFLO1lBQzFESCxTQUFTLENBQUNHLEVBQUUsR0FBR0wsZ0JBQWdCTyxVQUFVLENBQUNGO1FBQzVDO1FBQ0EsT0FBTyxNQUFNVixPQUFPYSxNQUFNLENBQ3hCQyxXQUNBVixRQUNBRyxXQUNBLElBQUlRLGNBQWNDLE1BQU0sQ0FBQ2I7SUFFN0Is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
@@ -1,8 +1,8 @@
1
- import type { Config } from 'payload';
2
- import type { PayloadBetterAuthPluginOptions } from './types';
3
- export * from './types';
4
- export * from './helpers';
5
- export { sanitizeBetterAuthOptions } from './lib/sanitize-auth-options';
6
- export { getPayloadAuth } from './lib/get-payload-auth';
7
- export declare function betterAuthPlugin(pluginOptions: PayloadBetterAuthPluginOptions): (config: Config) => Config;
1
+ import type { Config } from "payload";
2
+ import type { BetterAuthPluginOptions } from "./types.js";
3
+ export * from "./types.js";
4
+ export * from "./helpers/index.js";
5
+ export { sanitizeBetterAuthOptions } from "./lib/sanitize-better-auth-options/index.js";
6
+ export { getPayloadAuth } from "./lib/get-payload-auth.js";
7
+ export declare function betterAuthPlugin(pluginOptions: BetterAuthPluginOptions): (config: Config) => Config;
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/better-auth/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,MAAM,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAA;AAO7D,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,8BAA8B,IACpE,QAAQ,MAAM,KAAG,MAAM,CAyDhC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/better-auth/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAM1D,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,uBAAuB,IAC7D,QAAQ,MAAM,KAAG,MAAM,CAyKhC"}
@@ -1,64 +1,172 @@
1
- import { sanitizeBetterAuthOptions } from './lib/sanitize-auth-options';
2
- import { getRequiredCollectionSlugs } from './lib/get-required-collection-slugs';
3
- import { buildCollectionConfigs } from './lib/build-collection-configs';
4
- import { respectSaveToJwtFieldsMiddleware } from './lib/respect-save-to-jwt-fields-middleware';
5
- import { initBetterAuth } from './lib/init-better-auth';
6
- export * from './types';
7
- export * from './helpers';
8
- export { sanitizeBetterAuthOptions } from './lib/sanitize-auth-options';
9
- export { getPayloadAuth } from './lib/get-payload-auth';
1
+ import { sanitizeBetterAuthOptions } from "./lib/sanitize-better-auth-options/index.js";
2
+ import { getRequiredCollectionSlugs } from "./lib/get-required-collection-slugs.js";
3
+ import { buildCollections } from "./lib/build-collections/index.js";
4
+ import { initBetterAuth } from "./lib/init-better-auth.js";
5
+ import { adminRoutes } from "./lib/constants.js";
6
+ export * from "./types.js";
7
+ export * from "./helpers/index.js";
8
+ export { sanitizeBetterAuthOptions } from "./lib/sanitize-better-auth-options/index.js";
9
+ export { getPayloadAuth } from "./lib/get-payload-auth.js";
10
10
  export function betterAuthPlugin(pluginOptions) {
11
11
  return (config)=>{
12
12
  if (pluginOptions.disabled) {
13
13
  return config;
14
14
  }
15
+ const betterAuthOptions = sanitizeBetterAuthOptions({
16
+ config,
17
+ options: pluginOptions
18
+ });
15
19
  config.custom = {
16
20
  ...config.custom,
17
21
  hasBetterAuthPlugin: true
18
22
  };
19
- if (!config.collections) {
20
- config.collections = [];
23
+ // Set custom admin components if disableDefaultPayloadAuth is true
24
+ if (pluginOptions.disableDefaultPayloadAuth) {
25
+ config.admin = {
26
+ ...config.admin,
27
+ components: {
28
+ ...config.admin?.components,
29
+ afterLogin: [
30
+ {
31
+ path: "payload-auth/better-auth/plugin/rsc#RSCRedirect",
32
+ serverProps: {
33
+ redirectTo: `${config.routes?.admin || "/admin"}${adminRoutes.login}`
34
+ }
35
+ },
36
+ ...config.admin?.components?.afterLogin || []
37
+ ],
38
+ logout: {
39
+ Button: {
40
+ path: "payload-auth/better-auth/plugin/client#LogoutButton"
41
+ }
42
+ },
43
+ views: {
44
+ ...config.admin?.components?.views,
45
+ login: {
46
+ path: adminRoutes.login,
47
+ Component: {
48
+ path: "payload-auth/better-auth/plugin/rsc#Login",
49
+ serverProps: {
50
+ pluginOptions: pluginOptions,
51
+ betterAuthOptions: betterAuthOptions
52
+ }
53
+ }
54
+ },
55
+ // logout: {
56
+ // path: adminRoutes.logout,
57
+ // Component: {
58
+ // path: "payload-auth/better-auth/plugin/rsc#Logout",
59
+ // },
60
+ // },
61
+ createFirstAdmin: {
62
+ path: adminRoutes.createFirstAdmin,
63
+ Component: {
64
+ path: "payload-auth/better-auth/plugin/rsc#CreateFirstAdmin",
65
+ serverProps: {
66
+ pluginOptions: pluginOptions,
67
+ betterAuthOptions: betterAuthOptions
68
+ }
69
+ }
70
+ },
71
+ forgotPassword: {
72
+ path: adminRoutes.forgotPassword,
73
+ Component: {
74
+ path: "payload-auth/better-auth/plugin/rsc#Forgot",
75
+ serverProps: {
76
+ betterAuthOptions: betterAuthOptions
77
+ }
78
+ }
79
+ },
80
+ resetPassword: {
81
+ path: adminRoutes.resetPassword,
82
+ Component: {
83
+ path: "payload-auth/better-auth/plugin/rsc#ResetPassword"
84
+ }
85
+ },
86
+ adminInvite: {
87
+ path: adminRoutes.adminInvite,
88
+ Component: {
89
+ path: "payload-auth/better-auth/plugin/rsc#AdminInvite",
90
+ serverProps: {
91
+ pluginOptions: pluginOptions,
92
+ betterAuthOptions: betterAuthOptions
93
+ }
94
+ }
95
+ },
96
+ inactivity: {
97
+ path: adminRoutes.inactivity,
98
+ Component: {
99
+ path: "payload-auth/better-auth/plugin/rsc#Inactivity"
100
+ }
101
+ }
102
+ }
103
+ },
104
+ routes: {
105
+ ...config.admin?.routes,
106
+ login: adminRoutes.loginRedirect
107
+ },
108
+ // Add admin routes to the custom object
109
+ // We need this to create links in the admin views.
110
+ custom: {
111
+ ...config.admin?.custom,
112
+ betterAuth: {
113
+ ...config.admin?.custom?.betterAuth,
114
+ adminRoutes: {
115
+ ...adminRoutes,
116
+ ...config.admin?.custom?.betterAuth?.adminRoutes || {}
117
+ }
118
+ }
119
+ }
120
+ };
21
121
  }
22
- let sanitzedBetterAuthOptions = sanitizeBetterAuthOptions(pluginOptions);
23
122
  // Determine which collections to add based on the options and plugins
24
123
  const requiredCollectionSlugs = getRequiredCollectionSlugs({
25
- logTables: pluginOptions.logTables ?? false,
124
+ logTables: pluginOptions.debug?.logTables ?? false,
26
125
  pluginOptions,
27
- sanitizedBAOptions: sanitzedBetterAuthOptions
126
+ betterAuthOptions
28
127
  });
128
+ if (!config.collections) {
129
+ config.collections = [];
130
+ }
29
131
  // Update with the required collections + existing collections
30
- config.collections = buildCollectionConfigs({
132
+ config.collections = buildCollections({
31
133
  incomingCollections: config.collections ?? [],
32
134
  requiredCollectionSlugs,
33
135
  pluginOptions,
34
- sanitizedBAOptions: sanitzedBetterAuthOptions
35
- });
36
- respectSaveToJwtFieldsMiddleware({
37
- sanitizedOptions: sanitzedBetterAuthOptions,
38
- payloadConfig: config,
39
- pluginOptions
136
+ betterAuthOptions
40
137
  });
41
138
  const incomingOnInit = config.onInit;
42
139
  config.onInit = async (payload)=>{
43
- // Ensure we are executing any existing onInit functions before running our own.
44
- if (incomingOnInit) {
45
- await incomingOnInit(payload);
46
- }
47
- // Initialize and set the betterAuth instance
48
- const auth = initBetterAuth({
49
- payload,
50
- options: {
51
- ...sanitzedBetterAuthOptions,
52
- enableDebugLogs: pluginOptions.enableDebugLogs,
53
- plugins: [
54
- ...sanitzedBetterAuthOptions.plugins ?? []
55
- ]
140
+ try {
141
+ // Execute any existing onInit functions first
142
+ if (incomingOnInit) {
143
+ await incomingOnInit(payload);
56
144
  }
57
- });
58
- payload.betterAuth = auth;
145
+ // Initialize and set the betterAuth instance
146
+ const auth = initBetterAuth({
147
+ payload,
148
+ idType: payload.db.defaultIDType,
149
+ options: {
150
+ ...betterAuthOptions,
151
+ enableDebugLogs: pluginOptions.debug?.enableDebugLogs ?? false,
152
+ plugins: [
153
+ ...betterAuthOptions.plugins ?? []
154
+ ]
155
+ }
156
+ });
157
+ // Type-safe extension of payload with betterAuth
158
+ Object.defineProperty(payload, "betterAuth", {
159
+ value: auth,
160
+ writable: false,
161
+ configurable: false
162
+ });
163
+ } catch (error) {
164
+ console.error("Failed to initialize BetterAuth:", error);
165
+ throw error;
166
+ }
59
167
  };
60
168
  return config;
61
169
  };
62
170
  }
63
171
 
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCYXNlUGF5bG9hZCwgQ29uZmlnIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgUGF5bG9hZEJldHRlckF1dGhQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IHNhbml0aXplQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tICcuL2xpYi9zYW5pdGl6ZS1hdXRoLW9wdGlvbnMnXG5pbXBvcnQgeyBnZXRSZXF1aXJlZENvbGxlY3Rpb25TbHVncyB9IGZyb20gJy4vbGliL2dldC1yZXF1aXJlZC1jb2xsZWN0aW9uLXNsdWdzJ1xuaW1wb3J0IHsgYnVpbGRDb2xsZWN0aW9uQ29uZmlncyB9IGZyb20gJy4vbGliL2J1aWxkLWNvbGxlY3Rpb24tY29uZmlncydcbmltcG9ydCB7IHJlc3BlY3RTYXZlVG9Kd3RGaWVsZHNNaWRkbGV3YXJlIH0gZnJvbSAnLi9saWIvcmVzcGVjdC1zYXZlLXRvLWp3dC1maWVsZHMtbWlkZGxld2FyZSdcbmltcG9ydCB7IGluaXRCZXR0ZXJBdXRoIH0gZnJvbSAnLi9saWIvaW5pdC1iZXR0ZXItYXV0aCdcblxuZXhwb3J0ICogZnJvbSAnLi90eXBlcydcbmV4cG9ydCAqIGZyb20gJy4vaGVscGVycydcbmV4cG9ydCB7IHNhbml0aXplQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tICcuL2xpYi9zYW5pdGl6ZS1hdXRoLW9wdGlvbnMnXG5leHBvcnQgeyBnZXRQYXlsb2FkQXV0aCB9IGZyb20gJy4vbGliL2dldC1wYXlsb2FkLWF1dGgnXG5cbmV4cG9ydCBmdW5jdGlvbiBiZXR0ZXJBdXRoUGx1Z2luKHBsdWdpbk9wdGlvbnM6IFBheWxvYWRCZXR0ZXJBdXRoUGx1Z2luT3B0aW9ucykge1xuICByZXR1cm4gKGNvbmZpZzogQ29uZmlnKTogQ29uZmlnID0+IHtcbiAgICBpZiAocGx1Z2luT3B0aW9ucy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGNvbmZpZ1xuICAgIH1cbiAgICBjb25maWcuY3VzdG9tID0ge1xuICAgICAgLi4uY29uZmlnLmN1c3RvbSxcbiAgICAgIGhhc0JldHRlckF1dGhQbHVnaW46IHRydWUsXG4gICAgfVxuXG4gICAgaWYgKCFjb25maWcuY29sbGVjdGlvbnMpIHtcbiAgICAgIGNvbmZpZy5jb2xsZWN0aW9ucyA9IFtdXG4gICAgfVxuXG4gICAgbGV0IHNhbml0emVkQmV0dGVyQXV0aE9wdGlvbnMgPSBzYW5pdGl6ZUJldHRlckF1dGhPcHRpb25zKHBsdWdpbk9wdGlvbnMpXG5cbiAgICAvLyBEZXRlcm1pbmUgd2hpY2ggY29sbGVjdGlvbnMgdG8gYWRkIGJhc2VkIG9uIHRoZSBvcHRpb25zIGFuZCBwbHVnaW5zXG4gICAgY29uc3QgcmVxdWlyZWRDb2xsZWN0aW9uU2x1Z3MgPSBnZXRSZXF1aXJlZENvbGxlY3Rpb25TbHVncyh7XG4gICAgICBsb2dUYWJsZXM6IHBsdWdpbk9wdGlvbnMubG9nVGFibGVzID8/IGZhbHNlLFxuICAgICAgcGx1Z2luT3B0aW9ucyxcbiAgICAgIHNhbml0aXplZEJBT3B0aW9uczogc2FuaXR6ZWRCZXR0ZXJBdXRoT3B0aW9ucyxcbiAgICB9KVxuXG4gICAgLy8gVXBkYXRlIHdpdGggdGhlIHJlcXVpcmVkIGNvbGxlY3Rpb25zICsgZXhpc3RpbmcgY29sbGVjdGlvbnNcbiAgICBjb25maWcuY29sbGVjdGlvbnMgPSBidWlsZENvbGxlY3Rpb25Db25maWdzKHtcbiAgICAgIGluY29taW5nQ29sbGVjdGlvbnM6IGNvbmZpZy5jb2xsZWN0aW9ucyA/PyBbXSxcbiAgICAgIHJlcXVpcmVkQ29sbGVjdGlvblNsdWdzLFxuICAgICAgcGx1Z2luT3B0aW9ucyxcbiAgICAgIHNhbml0aXplZEJBT3B0aW9uczogc2FuaXR6ZWRCZXR0ZXJBdXRoT3B0aW9ucyxcbiAgICB9KVxuXG4gICAgcmVzcGVjdFNhdmVUb0p3dEZpZWxkc01pZGRsZXdhcmUoe1xuICAgICAgc2FuaXRpemVkT3B0aW9uczogc2FuaXR6ZWRCZXR0ZXJBdXRoT3B0aW9ucyxcbiAgICAgIHBheWxvYWRDb25maWc6IGNvbmZpZyxcbiAgICAgIHBsdWdpbk9wdGlvbnMsXG4gICAgfSlcblxuICAgIGNvbnN0IGluY29taW5nT25Jbml0ID0gY29uZmlnLm9uSW5pdFxuXG4gICAgY29uZmlnLm9uSW5pdCA9IGFzeW5jIChwYXlsb2FkKSA9PiB7XG4gICAgICAvLyBFbnN1cmUgd2UgYXJlIGV4ZWN1dGluZyBhbnkgZXhpc3Rpbmcgb25Jbml0IGZ1bmN0aW9ucyBiZWZvcmUgcnVubmluZyBvdXIgb3duLlxuICAgICAgaWYgKGluY29taW5nT25Jbml0KSB7XG4gICAgICAgIGF3YWl0IGluY29taW5nT25Jbml0KHBheWxvYWQpXG4gICAgICB9XG5cbiAgICAgIC8vIEluaXRpYWxpemUgYW5kIHNldCB0aGUgYmV0dGVyQXV0aCBpbnN0YW5jZVxuICAgICAgY29uc3QgYXV0aCA9IGluaXRCZXR0ZXJBdXRoPE5vbk51bGxhYmxlPHR5cGVvZiBzYW5pdHplZEJldHRlckF1dGhPcHRpb25zLnBsdWdpbnM+Pih7XG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAuLi5zYW5pdHplZEJldHRlckF1dGhPcHRpb25zLFxuICAgICAgICAgIGVuYWJsZURlYnVnTG9nczogcGx1Z2luT3B0aW9ucy5lbmFibGVEZWJ1Z0xvZ3MsXG4gICAgICAgICAgcGx1Z2luczogWy4uLihzYW5pdHplZEJldHRlckF1dGhPcHRpb25zLnBsdWdpbnMgPz8gW10pXSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICA7KHBheWxvYWQgYXMgQmFzZVBheWxvYWQgJiB7IGJldHRlckF1dGg6IHR5cGVvZiBhdXRoIH0pLmJldHRlckF1dGggPSBhdXRoXG4gICAgfVxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuIl0sIm5hbWVzIjpbInNhbml0aXplQmV0dGVyQXV0aE9wdGlvbnMiLCJnZXRSZXF1aXJlZENvbGxlY3Rpb25TbHVncyIsImJ1aWxkQ29sbGVjdGlvbkNvbmZpZ3MiLCJyZXNwZWN0U2F2ZVRvSnd0RmllbGRzTWlkZGxld2FyZSIsImluaXRCZXR0ZXJBdXRoIiwiZ2V0UGF5bG9hZEF1dGgiLCJiZXR0ZXJBdXRoUGx1Z2luIiwicGx1Z2luT3B0aW9ucyIsImNvbmZpZyIsImRpc2FibGVkIiwiY3VzdG9tIiwiaGFzQmV0dGVyQXV0aFBsdWdpbiIsImNvbGxlY3Rpb25zIiwic2FuaXR6ZWRCZXR0ZXJBdXRoT3B0aW9ucyIsInJlcXVpcmVkQ29sbGVjdGlvblNsdWdzIiwibG9nVGFibGVzIiwic2FuaXRpemVkQkFPcHRpb25zIiwiaW5jb21pbmdDb2xsZWN0aW9ucyIsInNhbml0aXplZE9wdGlvbnMiLCJwYXlsb2FkQ29uZmlnIiwiaW5jb21pbmdPbkluaXQiLCJvbkluaXQiLCJwYXlsb2FkIiwiYXV0aCIsIm9wdGlvbnMiLCJlbmFibGVEZWJ1Z0xvZ3MiLCJwbHVnaW5zIiwiYmV0dGVyQXV0aCJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0EseUJBQXlCLFFBQVEsOEJBQTZCO0FBQ3ZFLFNBQVNDLDBCQUEwQixRQUFRLHNDQUFxQztBQUNoRixTQUFTQyxzQkFBc0IsUUFBUSxpQ0FBZ0M7QUFDdkUsU0FBU0MsZ0NBQWdDLFFBQVEsOENBQTZDO0FBQzlGLFNBQVNDLGNBQWMsUUFBUSx5QkFBd0I7QUFFdkQsY0FBYyxVQUFTO0FBQ3ZCLGNBQWMsWUFBVztBQUN6QixTQUFTSix5QkFBeUIsUUFBUSw4QkFBNkI7QUFDdkUsU0FBU0ssY0FBYyxRQUFRLHlCQUF3QjtBQUV2RCxPQUFPLFNBQVNDLGlCQUFpQkMsYUFBNkM7SUFDNUUsT0FBTyxDQUFDQztRQUNOLElBQUlELGNBQWNFLFFBQVEsRUFBRTtZQUMxQixPQUFPRDtRQUNUO1FBQ0FBLE9BQU9FLE1BQU0sR0FBRztZQUNkLEdBQUdGLE9BQU9FLE1BQU07WUFDaEJDLHFCQUFxQjtRQUN2QjtRQUVBLElBQUksQ0FBQ0gsT0FBT0ksV0FBVyxFQUFFO1lBQ3ZCSixPQUFPSSxXQUFXLEdBQUcsRUFBRTtRQUN6QjtRQUVBLElBQUlDLDRCQUE0QmIsMEJBQTBCTztRQUUxRCxzRUFBc0U7UUFDdEUsTUFBTU8sMEJBQTBCYiwyQkFBMkI7WUFDekRjLFdBQVdSLGNBQWNRLFNBQVMsSUFBSTtZQUN0Q1I7WUFDQVMsb0JBQW9CSDtRQUN0QjtRQUVBLDhEQUE4RDtRQUM5REwsT0FBT0ksV0FBVyxHQUFHVix1QkFBdUI7WUFDMUNlLHFCQUFxQlQsT0FBT0ksV0FBVyxJQUFJLEVBQUU7WUFDN0NFO1lBQ0FQO1lBQ0FTLG9CQUFvQkg7UUFDdEI7UUFFQVYsaUNBQWlDO1lBQy9CZSxrQkFBa0JMO1lBQ2xCTSxlQUFlWDtZQUNmRDtRQUNGO1FBRUEsTUFBTWEsaUJBQWlCWixPQUFPYSxNQUFNO1FBRXBDYixPQUFPYSxNQUFNLEdBQUcsT0FBT0M7WUFDckIsZ0ZBQWdGO1lBQ2hGLElBQUlGLGdCQUFnQjtnQkFDbEIsTUFBTUEsZUFBZUU7WUFDdkI7WUFFQSw2Q0FBNkM7WUFDN0MsTUFBTUMsT0FBT25CLGVBQXNFO2dCQUNqRmtCO2dCQUNBRSxTQUFTO29CQUNQLEdBQUdYLHlCQUF5QjtvQkFDNUJZLGlCQUFpQmxCLGNBQWNrQixlQUFlO29CQUM5Q0MsU0FBUzsyQkFBS2IsMEJBQTBCYSxPQUFPLElBQUksRUFBRTtxQkFBRTtnQkFDekQ7WUFDRjtZQUNFSixRQUFzREssVUFBVSxHQUFHSjtRQUN2RTtRQUNBLE9BQU9mO0lBQ1Q7QUFDRiJ9
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb25maWcgfSBmcm9tIFwicGF5bG9hZFwiO1xuaW1wb3J0IHR5cGUgeyBCZXR0ZXJBdXRoUGx1Z2luT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBzYW5pdGl6ZUJldHRlckF1dGhPcHRpb25zIH0gZnJvbSBcIi4vbGliL3Nhbml0aXplLWJldHRlci1hdXRoLW9wdGlvbnMvaW5kZXguanNcIjtcbmltcG9ydCB7IGdldFJlcXVpcmVkQ29sbGVjdGlvblNsdWdzIH0gZnJvbSBcIi4vbGliL2dldC1yZXF1aXJlZC1jb2xsZWN0aW9uLXNsdWdzLmpzXCI7XG5pbXBvcnQgeyBidWlsZENvbGxlY3Rpb25zIH0gZnJvbSBcIi4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBpbml0QmV0dGVyQXV0aCB9IGZyb20gXCIuL2xpYi9pbml0LWJldHRlci1hdXRoLmpzXCI7XG5pbXBvcnQgeyBhZG1pblJvdXRlcyB9IGZyb20gXCIuL2xpYi9jb25zdGFudHMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9oZWxwZXJzL2luZGV4LmpzXCI7XG5leHBvcnQgeyBzYW5pdGl6ZUJldHRlckF1dGhPcHRpb25zIH0gZnJvbSBcIi4vbGliL3Nhbml0aXplLWJldHRlci1hdXRoLW9wdGlvbnMvaW5kZXguanNcIjtcbmV4cG9ydCB7IGdldFBheWxvYWRBdXRoIH0gZnJvbSBcIi4vbGliL2dldC1wYXlsb2FkLWF1dGguanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGJldHRlckF1dGhQbHVnaW4ocGx1Z2luT3B0aW9uczogQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnMpIHtcbiAgcmV0dXJuIChjb25maWc6IENvbmZpZyk6IENvbmZpZyA9PiB7XG4gICAgaWYgKHBsdWdpbk9wdGlvbnMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuXG4gICAgY29uc3QgYmV0dGVyQXV0aE9wdGlvbnMgPSBzYW5pdGl6ZUJldHRlckF1dGhPcHRpb25zKHtcbiAgICAgIGNvbmZpZyxcbiAgICAgIG9wdGlvbnM6IHBsdWdpbk9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICBjb25maWcuY3VzdG9tID0ge1xuICAgICAgLi4uY29uZmlnLmN1c3RvbSxcbiAgICAgIGhhc0JldHRlckF1dGhQbHVnaW46IHRydWUsXG4gICAgfTtcblxuICAgIC8vIFNldCBjdXN0b20gYWRtaW4gY29tcG9uZW50cyBpZiBkaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoIGlzIHRydWVcbiAgICBpZiAocGx1Z2luT3B0aW9ucy5kaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoKSB7XG4gICAgICBjb25maWcuYWRtaW4gPSB7XG4gICAgICAgIC4uLmNvbmZpZy5hZG1pbixcbiAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgIC4uLmNvbmZpZy5hZG1pbj8uY29tcG9uZW50cyxcbiAgICAgICAgICBhZnRlckxvZ2luOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBhdGg6IFwicGF5bG9hZC1hdXRoL2JldHRlci1hdXRoL3BsdWdpbi9yc2MjUlNDUmVkaXJlY3RcIixcbiAgICAgICAgICAgICAgc2VydmVyUHJvcHM6IHtcbiAgICAgICAgICAgICAgICByZWRpcmVjdFRvOiBgJHtjb25maWcucm91dGVzPy5hZG1pbiB8fCBcIi9hZG1pblwifSR7YWRtaW5Sb3V0ZXMubG9naW59YCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAuLi4oY29uZmlnLmFkbWluPy5jb21wb25lbnRzPy5hZnRlckxvZ2luIHx8IFtdKSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGxvZ291dDoge1xuICAgICAgICAgICAgQnV0dG9uOiB7XG4gICAgICAgICAgICAgIHBhdGg6IFwicGF5bG9hZC1hdXRoL2JldHRlci1hdXRoL3BsdWdpbi9jbGllbnQjTG9nb3V0QnV0dG9uXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdmlld3M6IHtcbiAgICAgICAgICAgIC4uLmNvbmZpZy5hZG1pbj8uY29tcG9uZW50cz8udmlld3MsXG4gICAgICAgICAgICBsb2dpbjoge1xuICAgICAgICAgICAgICBwYXRoOiBhZG1pblJvdXRlcy5sb2dpbixcbiAgICAgICAgICAgICAgQ29tcG9uZW50OiB7XG4gICAgICAgICAgICAgICAgcGF0aDogXCJwYXlsb2FkLWF1dGgvYmV0dGVyLWF1dGgvcGx1Z2luL3JzYyNMb2dpblwiLFxuICAgICAgICAgICAgICAgIHNlcnZlclByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBwbHVnaW5PcHRpb25zOiBwbHVnaW5PcHRpb25zLFxuICAgICAgICAgICAgICAgICAgYmV0dGVyQXV0aE9wdGlvbnM6IGJldHRlckF1dGhPcHRpb25zLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8gbG9nb3V0OiB7XG4gICAgICAgICAgICAvLyAgIHBhdGg6IGFkbWluUm91dGVzLmxvZ291dCxcbiAgICAgICAgICAgIC8vICAgQ29tcG9uZW50OiB7XG4gICAgICAgICAgICAvLyAgICAgcGF0aDogXCJwYXlsb2FkLWF1dGgvYmV0dGVyLWF1dGgvcGx1Z2luL3JzYyNMb2dvdXRcIixcbiAgICAgICAgICAgIC8vICAgfSxcbiAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICBjcmVhdGVGaXJzdEFkbWluOiB7XG4gICAgICAgICAgICAgIHBhdGg6IGFkbWluUm91dGVzLmNyZWF0ZUZpcnN0QWRtaW4sXG4gICAgICAgICAgICAgIENvbXBvbmVudDoge1xuICAgICAgICAgICAgICAgIHBhdGg6IFwicGF5bG9hZC1hdXRoL2JldHRlci1hdXRoL3BsdWdpbi9yc2MjQ3JlYXRlRmlyc3RBZG1pblwiLFxuICAgICAgICAgICAgICAgIHNlcnZlclByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBwbHVnaW5PcHRpb25zOiBwbHVnaW5PcHRpb25zLFxuICAgICAgICAgICAgICAgICAgYmV0dGVyQXV0aE9wdGlvbnM6IGJldHRlckF1dGhPcHRpb25zLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZm9yZ290UGFzc3dvcmQ6IHtcbiAgICAgICAgICAgICAgcGF0aDogYWRtaW5Sb3V0ZXMuZm9yZ290UGFzc3dvcmQsXG4gICAgICAgICAgICAgIENvbXBvbmVudDoge1xuICAgICAgICAgICAgICAgIHBhdGg6IFwicGF5bG9hZC1hdXRoL2JldHRlci1hdXRoL3BsdWdpbi9yc2MjRm9yZ290XCIsXG4gICAgICAgICAgICAgICAgc2VydmVyUHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIGJldHRlckF1dGhPcHRpb25zOiBiZXR0ZXJBdXRoT3B0aW9ucyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0UGFzc3dvcmQ6IHtcbiAgICAgICAgICAgICAgcGF0aDogYWRtaW5Sb3V0ZXMucmVzZXRQYXNzd29yZCxcbiAgICAgICAgICAgICAgQ29tcG9uZW50OiB7XG4gICAgICAgICAgICAgICAgcGF0aDogXCJwYXlsb2FkLWF1dGgvYmV0dGVyLWF1dGgvcGx1Z2luL3JzYyNSZXNldFBhc3N3b3JkXCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWRtaW5JbnZpdGU6IHtcbiAgICAgICAgICAgICAgcGF0aDogYWRtaW5Sb3V0ZXMuYWRtaW5JbnZpdGUsXG4gICAgICAgICAgICAgIENvbXBvbmVudDoge1xuICAgICAgICAgICAgICAgIHBhdGg6IFwicGF5bG9hZC1hdXRoL2JldHRlci1hdXRoL3BsdWdpbi9yc2MjQWRtaW5JbnZpdGVcIixcbiAgICAgICAgICAgICAgICBzZXJ2ZXJQcm9wczoge1xuICAgICAgICAgICAgICAgICAgcGx1Z2luT3B0aW9uczogcGx1Z2luT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgIGJldHRlckF1dGhPcHRpb25zOiBiZXR0ZXJBdXRoT3B0aW9ucyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGluYWN0aXZpdHk6IHtcbiAgICAgICAgICAgICAgcGF0aDogYWRtaW5Sb3V0ZXMuaW5hY3Rpdml0eSxcbiAgICAgICAgICAgICAgQ29tcG9uZW50OiB7XG4gICAgICAgICAgICAgICAgcGF0aDogXCJwYXlsb2FkLWF1dGgvYmV0dGVyLWF1dGgvcGx1Z2luL3JzYyNJbmFjdGl2aXR5XCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJvdXRlczoge1xuICAgICAgICAgIC4uLmNvbmZpZy5hZG1pbj8ucm91dGVzLFxuICAgICAgICAgIGxvZ2luOiBhZG1pblJvdXRlcy5sb2dpblJlZGlyZWN0LFxuICAgICAgICB9LFxuICAgICAgICAvLyBBZGQgYWRtaW4gcm91dGVzIHRvIHRoZSBjdXN0b20gb2JqZWN0XG4gICAgICAgIC8vIFdlIG5lZWQgdGhpcyB0byBjcmVhdGUgbGlua3MgaW4gdGhlIGFkbWluIHZpZXdzLlxuICAgICAgICBjdXN0b206IHtcbiAgICAgICAgICAuLi5jb25maWcuYWRtaW4/LmN1c3RvbSxcbiAgICAgICAgICBiZXR0ZXJBdXRoOiB7XG4gICAgICAgICAgICAuLi5jb25maWcuYWRtaW4/LmN1c3RvbT8uYmV0dGVyQXV0aCxcbiAgICAgICAgICAgIGFkbWluUm91dGVzOiB7XG4gICAgICAgICAgICAgIC4uLmFkbWluUm91dGVzLFxuICAgICAgICAgICAgICAuLi4oY29uZmlnLmFkbWluPy5jdXN0b20/LmJldHRlckF1dGg/LmFkbWluUm91dGVzIHx8IHt9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gRGV0ZXJtaW5lIHdoaWNoIGNvbGxlY3Rpb25zIHRvIGFkZCBiYXNlZCBvbiB0aGUgb3B0aW9ucyBhbmQgcGx1Z2luc1xuICAgIGNvbnN0IHJlcXVpcmVkQ29sbGVjdGlvblNsdWdzID0gZ2V0UmVxdWlyZWRDb2xsZWN0aW9uU2x1Z3Moe1xuICAgICAgbG9nVGFibGVzOiBwbHVnaW5PcHRpb25zLmRlYnVnPy5sb2dUYWJsZXMgPz8gZmFsc2UsXG4gICAgICBwbHVnaW5PcHRpb25zLFxuICAgICAgYmV0dGVyQXV0aE9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICBpZiAoIWNvbmZpZy5jb2xsZWN0aW9ucykge1xuICAgICAgY29uZmlnLmNvbGxlY3Rpb25zID0gW107XG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIHdpdGggdGhlIHJlcXVpcmVkIGNvbGxlY3Rpb25zICsgZXhpc3RpbmcgY29sbGVjdGlvbnNcbiAgICBjb25maWcuY29sbGVjdGlvbnMgPSBidWlsZENvbGxlY3Rpb25zKHtcbiAgICAgIGluY29taW5nQ29sbGVjdGlvbnM6IGNvbmZpZy5jb2xsZWN0aW9ucyA/PyBbXSxcbiAgICAgIHJlcXVpcmVkQ29sbGVjdGlvblNsdWdzLFxuICAgICAgcGx1Z2luT3B0aW9ucyxcbiAgICAgIGJldHRlckF1dGhPcHRpb25zLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaW5jb21pbmdPbkluaXQgPSBjb25maWcub25Jbml0O1xuXG4gICAgY29uZmlnLm9uSW5pdCA9IGFzeW5jIChwYXlsb2FkKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBFeGVjdXRlIGFueSBleGlzdGluZyBvbkluaXQgZnVuY3Rpb25zIGZpcnN0XG4gICAgICAgIGlmIChpbmNvbWluZ09uSW5pdCkge1xuICAgICAgICAgIGF3YWl0IGluY29taW5nT25Jbml0KHBheWxvYWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBhbmQgc2V0IHRoZSBiZXR0ZXJBdXRoIGluc3RhbmNlXG4gICAgICAgIGNvbnN0IGF1dGggPSBpbml0QmV0dGVyQXV0aDxcbiAgICAgICAgICBOb25OdWxsYWJsZTx0eXBlb2YgYmV0dGVyQXV0aE9wdGlvbnMucGx1Z2lucz5cbiAgICAgICAgPih7XG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICBpZFR5cGU6IHBheWxvYWQuZGIuZGVmYXVsdElEVHlwZSxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAuLi5iZXR0ZXJBdXRoT3B0aW9ucyxcbiAgICAgICAgICAgIGVuYWJsZURlYnVnTG9nczogcGx1Z2luT3B0aW9ucy5kZWJ1Zz8uZW5hYmxlRGVidWdMb2dzID8/IGZhbHNlLFxuICAgICAgICAgICAgcGx1Z2luczogWy4uLihiZXR0ZXJBdXRoT3B0aW9ucy5wbHVnaW5zID8/IFtdKV0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gVHlwZS1zYWZlIGV4dGVuc2lvbiBvZiBwYXlsb2FkIHdpdGggYmV0dGVyQXV0aFxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocGF5bG9hZCwgXCJiZXR0ZXJBdXRoXCIsIHtcbiAgICAgICAgICB2YWx1ZTogYXV0aCxcbiAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIGluaXRpYWxpemUgQmV0dGVyQXV0aDpcIiwgZXJyb3IpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBjb25maWc7XG4gIH07XG59XG4iXSwibmFtZXMiOlsic2FuaXRpemVCZXR0ZXJBdXRoT3B0aW9ucyIsImdldFJlcXVpcmVkQ29sbGVjdGlvblNsdWdzIiwiYnVpbGRDb2xsZWN0aW9ucyIsImluaXRCZXR0ZXJBdXRoIiwiYWRtaW5Sb3V0ZXMiLCJnZXRQYXlsb2FkQXV0aCIsImJldHRlckF1dGhQbHVnaW4iLCJwbHVnaW5PcHRpb25zIiwiY29uZmlnIiwiZGlzYWJsZWQiLCJiZXR0ZXJBdXRoT3B0aW9ucyIsIm9wdGlvbnMiLCJjdXN0b20iLCJoYXNCZXR0ZXJBdXRoUGx1Z2luIiwiZGlzYWJsZURlZmF1bHRQYXlsb2FkQXV0aCIsImFkbWluIiwiY29tcG9uZW50cyIsImFmdGVyTG9naW4iLCJwYXRoIiwic2VydmVyUHJvcHMiLCJyZWRpcmVjdFRvIiwicm91dGVzIiwibG9naW4iLCJsb2dvdXQiLCJCdXR0b24iLCJ2aWV3cyIsIkNvbXBvbmVudCIsImNyZWF0ZUZpcnN0QWRtaW4iLCJmb3Jnb3RQYXNzd29yZCIsInJlc2V0UGFzc3dvcmQiLCJhZG1pbkludml0ZSIsImluYWN0aXZpdHkiLCJsb2dpblJlZGlyZWN0IiwiYmV0dGVyQXV0aCIsInJlcXVpcmVkQ29sbGVjdGlvblNsdWdzIiwibG9nVGFibGVzIiwiZGVidWciLCJjb2xsZWN0aW9ucyIsImluY29taW5nQ29sbGVjdGlvbnMiLCJpbmNvbWluZ09uSW5pdCIsIm9uSW5pdCIsInBheWxvYWQiLCJhdXRoIiwiaWRUeXBlIiwiZGIiLCJkZWZhdWx0SURUeXBlIiwiZW5hYmxlRGVidWdMb2dzIiwicGx1Z2lucyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJ3cml0YWJsZSIsImNvbmZpZ3VyYWJsZSIsImVycm9yIiwiY29uc29sZSJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0EseUJBQXlCLFFBQVEsOENBQThDO0FBQ3hGLFNBQVNDLDBCQUEwQixRQUFRLHlDQUF5QztBQUNwRixTQUFTQyxnQkFBZ0IsUUFBUSxtQ0FBbUM7QUFDcEUsU0FBU0MsY0FBYyxRQUFRLDRCQUE0QjtBQUMzRCxTQUFT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
@@ -1,4 +1,4 @@
1
- import type { CollectionAfterChangeHook } from 'payload';
1
+ import type { CollectionAfterChangeHook } from "payload";
2
2
  type SyncPasswordToUserOptions = {
3
3
  userSlug: string;
4
4
  accountSlug: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-password-to-user.d.ts","sourceRoot":"","sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAMzD,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,SAAS,yBAAyB,KACjC,yBA4DF,CAAC"}
@@ -0,0 +1,47 @@
1
+ export const getSyncPasswordToUserHook = (options)=>{
2
+ const hook = async ({ doc, req, operation, context })=>{
3
+ if (context?.syncAccountHook) return doc;
4
+ if (operation !== "create" && operation !== "update") {
5
+ return doc;
6
+ }
7
+ const userField = req.payload.betterAuth.options.account?.fields?.userId || "userId";
8
+ if (!doc[userField]) {
9
+ return doc;
10
+ }
11
+ const account = await req.payload.findByID({
12
+ collection: options.accountSlug,
13
+ id: doc.id,
14
+ depth: 0,
15
+ req,
16
+ showHiddenFields: true
17
+ });
18
+ if (!account || !account.password) {
19
+ return doc;
20
+ }
21
+ const [salt, hash] = account.password.split(":");
22
+ if (!salt || !hash) {
23
+ return doc;
24
+ }
25
+ const userId = typeof doc[userField] === "string" ? doc[userField] : doc[userField]?.id;
26
+ try {
27
+ await req.payload.update({
28
+ collection: options.userSlug,
29
+ id: userId,
30
+ data: {
31
+ salt,
32
+ hash
33
+ },
34
+ req,
35
+ context: {
36
+ syncPasswordToUser: true
37
+ }
38
+ });
39
+ } catch (error) {
40
+ console.error("Failed to sync password to user:", error);
41
+ }
42
+ return doc;
43
+ };
44
+ return hook;
45
+ };
46
+
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL2FjY291bnRzL2hvb2tzL3N5bmMtcGFzc3dvcmQtdG8tdXNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbGxlY3Rpb25BZnRlckNoYW5nZUhvb2sgfSBmcm9tIFwicGF5bG9hZFwiO1xuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uSG9va1dpdGhCZXR0ZXJBdXRoIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgQ29sbGVjdGlvbkFmdGVyQ2hhbmdlSG9va1dpdGhCZXR0ZXJBdXRoID1cbiAgQ29sbGVjdGlvbkhvb2tXaXRoQmV0dGVyQXV0aDxDb2xsZWN0aW9uQWZ0ZXJDaGFuZ2VIb29rPjtcblxudHlwZSBTeW5jUGFzc3dvcmRUb1VzZXJPcHRpb25zID0ge1xuICB1c2VyU2x1Zzogc3RyaW5nO1xuICBhY2NvdW50U2x1Zzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFN5bmNQYXNzd29yZFRvVXNlckhvb2sgPSAoXG4gIG9wdGlvbnM6IFN5bmNQYXNzd29yZFRvVXNlck9wdGlvbnNcbik6IENvbGxlY3Rpb25BZnRlckNoYW5nZUhvb2sgPT4ge1xuICBjb25zdCBob29rOiBDb2xsZWN0aW9uQWZ0ZXJDaGFuZ2VIb29rV2l0aEJldHRlckF1dGggPSBhc3luYyAoe1xuICAgIGRvYyxcbiAgICByZXEsXG4gICAgb3BlcmF0aW9uLFxuICAgIGNvbnRleHQsXG4gIH0pID0+IHtcbiAgICBpZiAoY29udGV4dD8uc3luY0FjY291bnRIb29rKSByZXR1cm4gZG9jO1xuXG4gICAgaWYgKG9wZXJhdGlvbiAhPT0gXCJjcmVhdGVcIiAmJiBvcGVyYXRpb24gIT09IFwidXBkYXRlXCIpIHtcbiAgICAgIHJldHVybiBkb2M7XG4gICAgfVxuXG4gICAgY29uc3QgdXNlckZpZWxkID1cbiAgICAgIHJlcS5wYXlsb2FkLmJldHRlckF1dGgub3B0aW9ucy5hY2NvdW50Py5maWVsZHM/LnVzZXJJZCB8fCBcInVzZXJJZFwiO1xuXG4gICAgaWYgKCFkb2NbdXNlckZpZWxkXSkge1xuICAgICAgcmV0dXJuIGRvYztcbiAgICB9XG5cbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgcmVxLnBheWxvYWQuZmluZEJ5SUQoe1xuICAgICAgY29sbGVjdGlvbjogb3B0aW9ucy5hY2NvdW50U2x1ZyxcbiAgICAgIGlkOiBkb2MuaWQsXG4gICAgICBkZXB0aDogMCxcbiAgICAgIHJlcSxcbiAgICAgIHNob3dIaWRkZW5GaWVsZHM6IHRydWUsXG4gICAgfSk7XG5cbiAgICBpZiAoIWFjY291bnQgfHwgIWFjY291bnQucGFzc3dvcmQpIHtcbiAgICAgIHJldHVybiBkb2M7XG4gICAgfVxuXG4gICAgY29uc3QgW3NhbHQsIGhhc2hdID0gYWNjb3VudC5wYXNzd29yZC5zcGxpdChcIjpcIik7XG5cbiAgICBpZiAoIXNhbHQgfHwgIWhhc2gpIHtcbiAgICAgIHJldHVybiBkb2M7XG4gICAgfVxuXG4gICAgY29uc3QgdXNlcklkID1cbiAgICAgIHR5cGVvZiBkb2NbdXNlckZpZWxkXSA9PT0gXCJzdHJpbmdcIiA/IGRvY1t1c2VyRmllbGRdIDogZG9jW3VzZXJGaWVsZF0/LmlkO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHJlcS5wYXlsb2FkLnVwZGF0ZSh7XG4gICAgICAgIGNvbGxlY3Rpb246IG9wdGlvbnMudXNlclNsdWcsXG4gICAgICAgIGlkOiB1c2VySWQsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBzYWx0LFxuICAgICAgICAgIGhhc2gsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcSxcbiAgICAgICAgY29udGV4dDogeyBzeW5jUGFzc3dvcmRUb1VzZXI6IHRydWUgfSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIHN5bmMgcGFzc3dvcmQgdG8gdXNlcjpcIiwgZXJyb3IpO1xuICAgIH1cblxuICAgIHJldHVybiBkb2M7XG4gIH07XG5cbiAgcmV0dXJuIGhvb2sgYXMgQ29sbGVjdGlvbkFmdGVyQ2hhbmdlSG9vaztcbn07XG4iXSwibmFtZXMiOlsiZ2V0U3luY1Bhc3N3b3JkVG9Vc2VySG9vayIsIm9wdGlvbnMiLCJob29rIiwiZG9jIiwicmVxIiwib3BlcmF0aW9uIiwiY29udGV4dCIsInN5bmNBY2NvdW50SG9vayIsInVzZXJGaWVsZCIsInBheWxvYWQiLCJiZXR0ZXJBdXRoIiwiYWNjb3VudCIsImZpZWxkcyIsInVzZXJJZCIsImZpbmRCeUlEIiwiY29sbGVjdGlvbiIsImFjY291bnRTbHVnIiwiaWQiLCJkZXB0aCIsInNob3dIaWRkZW5GaWVsZHMiLCJwYXNzd29yZCIsInNhbHQiLCJoYXNoIiwic3BsaXQiLCJ1cGRhdGUiLCJ1c2VyU2x1ZyIsImRhdGEiLCJzeW5jUGFzc3dvcmRUb1VzZXIiLCJlcnJvciIsImNvbnNvbGUiXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sTUFBTUEsNEJBQTRCLENBQ3ZDQztJQUVBLE1BQU1DLE9BQWdELE9BQU8sRUFDM0RDLEdBQUcsRUFDSEMsR0FBRyxFQUNIQyxTQUFTLEVBQ1RDLE9BQU8sRUFDUjtRQUNDLElBQUlBLFNBQVNDLGlCQUFpQixPQUFPSjtRQUVyQyxJQUFJRSxjQUFjLFlBQVlBLGNBQWMsVUFBVTtZQUNwRCxPQUFPRjtRQUNUO1FBRUEsTUFBTUssWUFDSkosSUFBSUssT0FBTyxDQUFDQyxVQUFVLENBQUNULE9BQU8sQ0FBQ1UsT0FBTyxFQUFFQyxRQUFRQyxVQUFVO1FBRTVELElBQUksQ0FBQ1YsR0FBRyxDQUFDSyxVQUFVLEVBQUU7WUFDbkIsT0FBT0w7UUFDVDtRQUVBLE1BQU1RLFVBQVUsTUFBTVAsSUFBSUssT0FBTyxDQUFDSyxRQUFRLENBQUM7WUFDekNDLFlBQVlkLFFBQVFlLFdBQVc7WUFDL0JDLElBQUlkLElBQUljLEVBQUU7WUFDVkMsT0FBTztZQUNQZDtZQUNBZSxrQkFBa0I7UUFDcEI7UUFFQSxJQUFJLENBQUNSLFdBQVcsQ0FBQ0EsUUFBUVMsUUFBUSxFQUFFO1lBQ2pDLE9BQU9qQjtRQUNUO1FBRUEsTUFBTSxDQUFDa0IsTUFBTUMsS0FBSyxHQUFHWCxRQUFRUyxRQUFRLENBQUNHLEtBQUssQ0FBQztRQUU1QyxJQUFJLENBQUNGLFFBQVEsQ0FBQ0MsTUFBTTtZQUNsQixPQUFPbkI7UUFDVDtRQUVBLE1BQU1VLFNBQ0osT0FBT1YsR0FBRyxDQUFDSyxVQUFVLEtBQUssV0FBV0wsR0FBRyxDQUFDSyxVQUFVLEdBQUdMLEdBQUcsQ0FBQ0ssVUFBVSxFQUFFUztRQUV4RSxJQUFJO1lBQ0YsTUFBTWIsSUFBSUssT0FBTyxDQUFDZSxNQUFNLENBQUM7Z0JBQ3ZCVCxZQUFZZCxRQUFRd0IsUUFBUTtnQkFDNUJSLElBQUlKO2dCQUNKYSxNQUFNO29CQUNKTDtvQkFDQUM7Z0JBQ0Y7Z0JBQ0FsQjtnQkFDQUUsU0FBUztvQkFBRXFCLG9CQUFvQjtnQkFBSztZQUN0QztRQUNGLEVBQUUsT0FBT0MsT0FBTztZQUNkQyxRQUFRRCxLQUFLLENBQUMsb0NBQW9DQTtRQUNwRDtRQUVBLE9BQU96QjtJQUNUO0lBRUEsT0FBT0Q7QUFDVCxFQUFFIn0=
@@ -0,0 +1,7 @@
1
+ import { CollectionConfig } from "payload";
2
+ import { BetterAuthPluginOptions } from "../../../types";
3
+ export declare function buildAccountsCollection({ incomingCollections, pluginOptions, }: {
4
+ incomingCollections: CollectionConfig[];
5
+ pluginOptions: BetterAuthPluginOptions;
6
+ }): CollectionConfig;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/lib/build-collections/accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AASzD,wBAAgB,uBAAuB,CAAC,EACtC,mBAAmB,EACnB,aAAa,GACd,EAAE;IACD,mBAAmB,EAAE,gBAAgB,EAAE,CAAC;IACxC,aAAa,EAAE,uBAAuB,CAAC;CACxC,GAAG,gBAAgB,CAyJnB"}