faire-auth 1.0.0 → 1.0.2

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 (200) hide show
  1. package/dist/{access-Crt-IJ2P.cjs → access-BZ7-AbTM.cjs} +1 -1
  2. package/dist/{adapter-factory-DT-_2aHJ.cjs → adapter-factory-D1I7joki.cjs} +2 -2
  3. package/dist/adapters/drizzle-adapter/index.cjs +5 -5
  4. package/dist/adapters/drizzle-adapter/index.d.cts +1 -1
  5. package/dist/adapters/drizzle-adapter/index.d.mts +2 -2
  6. package/dist/adapters/drizzle-adapter/index.mjs +3 -3
  7. package/dist/adapters/index.cjs +4 -4
  8. package/dist/adapters/index.d.cts +1 -1
  9. package/dist/adapters/index.d.mts +2 -2
  10. package/dist/adapters/index.mjs +3 -3
  11. package/dist/adapters/kysely-adapter/index.cjs +5 -5
  12. package/dist/adapters/kysely-adapter/index.d.cts +1 -1
  13. package/dist/adapters/kysely-adapter/index.d.mts +2 -2
  14. package/dist/adapters/kysely-adapter/index.mjs +4 -4
  15. package/dist/adapters/memory-adapter/index.cjs +5 -5
  16. package/dist/adapters/memory-adapter/index.d.cts +1 -1
  17. package/dist/adapters/memory-adapter/index.d.mts +2 -2
  18. package/dist/adapters/memory-adapter/index.mjs +4 -4
  19. package/dist/adapters/mongodb-adapter/index.cjs +294 -6
  20. package/dist/adapters/mongodb-adapter/index.d.cts +34 -2
  21. package/dist/adapters/mongodb-adapter/index.d.mts +35 -3
  22. package/dist/adapters/mongodb-adapter/index.mjs +291 -4
  23. package/dist/adapters/prisma-adapter/index.cjs +5 -5
  24. package/dist/adapters/prisma-adapter/index.d.cts +1 -1
  25. package/dist/adapters/prisma-adapter/index.d.mts +2 -2
  26. package/dist/adapters/prisma-adapter/index.mjs +3 -3
  27. package/dist/adapters/test.cjs +3 -3
  28. package/dist/adapters/test.d.cts +1 -1
  29. package/dist/adapters/test.d.mts +2 -2
  30. package/dist/adapters/test.mjs +2 -2
  31. package/dist/api/index.cjs +15 -15
  32. package/dist/api/index.d.cts +1 -1
  33. package/dist/api/index.d.mts +2 -2
  34. package/dist/api/index.mjs +8 -8
  35. package/dist/api/middleware/index.cjs +8 -8
  36. package/dist/api/middleware/index.d.cts +3 -3
  37. package/dist/api/middleware/index.d.mts +4 -4
  38. package/dist/api/middleware/index.mjs +3 -3
  39. package/dist/{api-_B7qO28y.mjs → api-B4RDwBty.mjs} +7 -7
  40. package/dist/{api-Bm89BLgN.cjs → api-CaRC1Gio.cjs} +12 -12
  41. package/dist/{bearer-CHeREcGT.cjs → bearer-DDzrp5M7.cjs} +2 -2
  42. package/dist/{bearer-0SeEmaS4.mjs → bearer-WZcs7gxL.mjs} +1 -1
  43. package/dist/{bun-sqlite-dialect-wuaC2-gh.cjs → bun-sqlite-dialect-DPgTzc0w.cjs} +1 -1
  44. package/dist/{chunk-Ceigfy4P.mjs → chunk-BFnQceUY.mjs} +1 -13
  45. package/dist/{chunk-oakRccI5.cjs → chunk-fPmz2rbM.cjs} +0 -9
  46. package/dist/client/index.cjs +26 -7
  47. package/dist/client/index.d.cts +27 -4
  48. package/dist/client/index.d.mts +28 -5
  49. package/dist/client/index.mjs +25 -6
  50. package/dist/client/lynx/index.cjs +5 -5
  51. package/dist/client/lynx/index.d.cts +15 -15
  52. package/dist/client/lynx/index.d.mts +27 -27
  53. package/dist/client/lynx/index.mjs +3 -3
  54. package/dist/client/plugins/index.d.cts +1 -1
  55. package/dist/client/plugins/index.d.mts +2 -2
  56. package/dist/client/react/index.cjs +5 -5
  57. package/dist/client/react/index.d.cts +26 -26
  58. package/dist/client/react/index.d.mts +16 -16
  59. package/dist/client/react/index.mjs +3 -3
  60. package/dist/client/solid/index.cjs +5 -5
  61. package/dist/client/solid/index.d.cts +16 -16
  62. package/dist/client/solid/index.d.mts +17 -17
  63. package/dist/client/solid/index.mjs +3 -3
  64. package/dist/client/svelte/index.cjs +4 -4
  65. package/dist/client/svelte/index.d.cts +11 -11
  66. package/dist/client/svelte/index.d.mts +16 -16
  67. package/dist/client/svelte/index.mjs +3 -3
  68. package/dist/client/vue/index.cjs +5 -5
  69. package/dist/client/vue/index.d.cts +27 -27
  70. package/dist/client/vue/index.d.mts +28 -28
  71. package/dist/client/vue/index.mjs +3 -3
  72. package/dist/{cookies-B5xeA6i8.cjs → cookies-BTl72THv.cjs} +3 -3
  73. package/dist/{cookies-Ch1JfQIz.mjs → cookies-BTs1o992.mjs} +2 -2
  74. package/dist/crypto/index.cjs +1 -1
  75. package/dist/crypto/index.d.cts +2 -2
  76. package/dist/crypto/index.d.mts +3 -3
  77. package/dist/crypto/index.mjs +1 -1
  78. package/dist/{crypto-CyQRFtkq.mjs → crypto-DH2Aa7jN.mjs} +1 -1
  79. package/dist/{crypto-CcTxYH82.cjs → crypto-DpSCnrTp.cjs} +1 -1
  80. package/dist/db/index.cjs +10 -10
  81. package/dist/db/index.d.cts +1 -1
  82. package/dist/db/index.d.mts +2 -2
  83. package/dist/db/index.mjs +6 -6
  84. package/dist/{db-xiJtoDgz.mjs → db-4tUsQJXd.mjs} +3 -3
  85. package/dist/{db-BTKyYu-_.cjs → db-ChMbb_U-.cjs} +8 -8
  86. package/dist/{email-verification-CWhj2qfb.mjs → email-verification-C_lBu_JY.mjs} +3 -3
  87. package/dist/{email-verification-C-AsfJsb.cjs → email-verification-DI_0H4JC.cjs} +5 -5
  88. package/dist/{hono-Cdukwu5K.cjs → hono-C14rpOEa.cjs} +1 -1
  89. package/dist/{hono-Covz10jU.mjs → hono-CO-zsqI-.mjs} +2 -2
  90. package/dist/{hono-BEq1NYVX.cjs → hono-DnW5crl1.cjs} +4 -4
  91. package/dist/{index-BVHscLQl.d.cts → index-4PEF72Mq.d.cts} +20 -20
  92. package/dist/{index-B-WeOMzg.d.cts → index-BCzB3uDD.d.cts} +833 -833
  93. package/dist/{index-B09P9p5_.d.cts → index-Bw8dyZTc.d.cts} +6 -6
  94. package/dist/{index-Qu-iJGNr.d.mts → index-C0b8eC8h.d.mts} +16 -16
  95. package/dist/{index-jlessPI0.d.mts → index-CrmLTEj8.d.mts} +382 -382
  96. package/dist/index-Dfgobqa-.d.mts +33 -0
  97. package/dist/index.cjs +721 -27
  98. package/dist/index.d.cts +1 -1
  99. package/dist/index.d.mts +2 -2
  100. package/dist/index.mjs +711 -16
  101. package/dist/integrations/next-js.cjs +3 -3
  102. package/dist/integrations/next-js.d.cts +5 -5
  103. package/dist/integrations/next-js.d.mts +6 -6
  104. package/dist/integrations/next-js.mjs +2 -2
  105. package/dist/integrations/node.d.cts +1 -1
  106. package/dist/integrations/node.d.mts +2 -2
  107. package/dist/integrations/react-start.cjs +3 -3
  108. package/dist/integrations/react-start.d.cts +5 -5
  109. package/dist/integrations/react-start.d.mts +5 -5
  110. package/dist/integrations/react-start.mjs +2 -2
  111. package/dist/integrations/svelte-kit.cjs +3 -3
  112. package/dist/integrations/svelte-kit.d.cts +5 -5
  113. package/dist/integrations/svelte-kit.d.mts +6 -6
  114. package/dist/integrations/svelte-kit.mjs +2 -2
  115. package/dist/{ip-B5SwXaMB.cjs → ip-C17Qdq-G.cjs} +2 -2
  116. package/dist/{json-CcJ2HjGo.cjs → json--tl7Grvs.cjs} +1 -1
  117. package/dist/{kysely-adapter-DRuoT_X8.mjs → kysely-adapter-CtIdoHa8.mjs} +3 -3
  118. package/dist/{kysely-adapter-Bxi7sPdG.cjs → kysely-adapter-QZTx077T.cjs} +4 -4
  119. package/dist/{logged-DQK3C64b.cjs → logged-Dv3st5qc.cjs} +1 -1
  120. package/dist/{memory-adapter-BlnDIAAX.cjs → memory-adapter-17RZd5df.cjs} +2 -2
  121. package/dist/{memory-adapter-Db3tsJTn.mjs → memory-adapter-Dp4XdCZK.mjs} +1 -1
  122. package/dist/{node-sqlite-dialect-mJWC8LWQ.cjs → node-sqlite-dialect-DP11CB0y.cjs} +1 -1
  123. package/dist/oauth2/index.cjs +11 -11
  124. package/dist/oauth2/index.d.cts +1 -1
  125. package/dist/oauth2/index.d.mts +2 -2
  126. package/dist/oauth2/index.mjs +6 -6
  127. package/dist/{oauth2-BLeOEi7Y.cjs → oauth2-5RL4cVNS.cjs} +3 -3
  128. package/dist/{oauth2-B8M0lW9l.mjs → oauth2-C56wz-n9.mjs} +2 -2
  129. package/dist/{origin-check-id9lTnqZ.cjs → origin-check-DjLTuZQ8.cjs} +2 -2
  130. package/dist/{passkey-B6N20LSS.cjs → passkey-BTT-v5c-.cjs} +4 -4
  131. package/dist/{passkey-DJsR_GX3.mjs → passkey-CzY_W2us.mjs} +2 -2
  132. package/dist/plugins/access/index.cjs +1 -1
  133. package/dist/plugins/access/index.d.cts +1 -1
  134. package/dist/plugins/access/index.d.mts +1 -1
  135. package/dist/plugins/access/index.mjs +1 -1
  136. package/dist/plugins/bearer/index.cjs +4 -4
  137. package/dist/plugins/bearer/index.d.cts +2 -2
  138. package/dist/plugins/bearer/index.d.mts +3 -3
  139. package/dist/plugins/bearer/index.mjs +3 -3
  140. package/dist/plugins/index.cjs +5215 -31
  141. package/dist/plugins/index.d.cts +351 -351
  142. package/dist/plugins/index.d.mts +268 -268
  143. package/dist/plugins/index.mjs +5202 -19
  144. package/dist/plugins/passkey/index.cjs +10 -10
  145. package/dist/plugins/passkey/index.d.cts +2 -2
  146. package/dist/plugins/passkey/index.d.mts +3 -3
  147. package/dist/plugins/passkey/index.mjs +5 -5
  148. package/dist/{schema-D-qjygfE.cjs → schema-CirKflVs.cjs} +2 -2
  149. package/dist/{session-rH8ougDl.mjs → session-CM3rmOYF.mjs} +1 -1
  150. package/dist/{session-De9POJTW.cjs → session-Cwrj4GfV.cjs} +5 -5
  151. package/dist/social-providers/index.cjs +1 -1
  152. package/dist/social-providers/index.d.cts +1 -1
  153. package/dist/social-providers/index.d.mts +1 -1
  154. package/dist/social-providers/index.mjs +1 -1
  155. package/dist/{social-providers-DoYJhBe3.mjs → social-providers-B8RK5yqI.mjs} +1 -1
  156. package/dist/{social-providers-DcFNUT0S.cjs → social-providers-BmFOIIPk.cjs} +1 -1
  157. package/dist/{state-CqJfCIl9.mjs → state-CQghgH9I.mjs} +1 -1
  158. package/dist/{state--f7fwIGh.cjs → state-CvSihlVT.cjs} +2 -2
  159. package/dist/test-utils/bun-sqlite-dialect-BSWhhKNs.mjs +155 -0
  160. package/dist/test-utils/bun-sqlite-dialect-BZBvHchL.cjs +156 -0
  161. package/dist/test-utils/index.cjs +8927 -482
  162. package/dist/test-utils/index.d.cts +8395 -337
  163. package/dist/test-utils/index.d.mts +8394 -334
  164. package/dist/test-utils/index.mjs +8712 -265
  165. package/dist/test-utils/node-sqlite-dialect-BgJqjBOu.cjs +156 -0
  166. package/dist/test-utils/node-sqlite-dialect-DAQXiobH.mjs +155 -0
  167. package/dist/types/index.d.cts +1 -1
  168. package/dist/types/index.d.mts +2 -2
  169. package/dist/{url-D2yvKaM7.cjs → url-Ce7CVaQD.cjs} +1 -1
  170. package/dist/utils/cookies.cjs +4 -4
  171. package/dist/utils/cookies.d.cts +1 -1
  172. package/dist/utils/cookies.d.mts +2 -2
  173. package/dist/utils/cookies.mjs +2 -2
  174. package/package.json +2 -2
  175. package/dist/auth-Bo9PDt5j.cjs +0 -739
  176. package/dist/auth-Ds4AG4h4.mjs +0 -709
  177. package/dist/index-C2-2QDyS.d.cts +0 -35
  178. package/dist/index-CWAqWfoZ.d.cts +0 -27
  179. package/dist/index-CYSShrFx.d.mts +0 -27
  180. package/dist/index-ppgcFe12.d.mts +0 -33
  181. package/dist/index-to0RO38U.d.mts +0 -35
  182. package/dist/mongodb-adapter-C_qGQED5.mjs +0 -291
  183. package/dist/mongodb-adapter-C_qfK87x.cjs +0 -297
  184. package/dist/plugins-C1lm2Wj3.cjs +0 -5254
  185. package/dist/plugins-Dai1QkRU.mjs +0 -5199
  186. package/dist/vanilla-Bu2PmFzE.cjs +0 -30
  187. package/dist/vanilla-TfHqeiC7.mjs +0 -25
  188. /package/dist/{access-B5bBI4uT.mjs → access-D0DRqUKC.mjs} +0 -0
  189. /package/dist/{adapter-factory-BXei1QRX.mjs → adapter-factory-lKIOf2OR.mjs} +0 -0
  190. /package/dist/{bun-sqlite-dialect-CfkBo2v5.mjs → bun-sqlite-dialect-6NqeV3px.mjs} +0 -0
  191. /package/dist/{defu-B0Svx_x4.cjs → defu-BmOYq4PU.cjs} +0 -0
  192. /package/dist/{defu-SZkpHhbR.mjs → defu-D9ZTXqlo.mjs} +0 -0
  193. /package/dist/{hono-DuE14mmj.d.mts → hono-D0VqxVy1.d.mts} +0 -0
  194. /package/dist/{index-B5_0QTLg.d.mts → index-BDhhaE6Y.d.cts} +0 -0
  195. /package/dist/{index-B7SKyR_a.d.cts → index-CF9iq55a.d.mts} +0 -0
  196. /package/dist/{index-CTwrVluH.d.mts → index-CRt_fppq.d.mts} +0 -0
  197. /package/dist/{index-cs4Sh0En.d.cts → index-CdLyn7qP.d.cts} +0 -0
  198. /package/dist/{node-sqlite-dialect-BfBzyOAg.mjs → node-sqlite-dialect-w4DAg0PH.mjs} +0 -0
  199. /package/dist/{parser-CeAer-RM.mjs → parser-B25ylT5u.mjs} +0 -0
  200. /package/dist/{parser-CdncAl9i.cjs → parser-B_wxvaAr.cjs} +0 -0
package/dist/index.cjs CHANGED
@@ -1,32 +1,726 @@
1
- const require_chunk = require('./chunk-oakRccI5.cjs');
2
- require('./hono-Cdukwu5K.cjs');
3
- const require_ip = require('./ip-B5SwXaMB.cjs');
4
- require('./crypto-CcTxYH82.cjs');
5
- require('./json-CcJ2HjGo.cjs');
6
- require('./cookies-B5xeA6i8.cjs');
7
- require('./logged-DQK3C64b.cjs');
8
- require('./url-D2yvKaM7.cjs');
1
+ const require_chunk = require('./chunk-fPmz2rbM.cjs');
2
+ require('./hono-C14rpOEa.cjs');
3
+ const require_ip = require('./ip-C17Qdq-G.cjs');
4
+ const require_crypto = require('./crypto-DpSCnrTp.cjs');
5
+ require('./json--tl7Grvs.cjs');
6
+ const require_cookies = require('./cookies-BTl72THv.cjs');
7
+ require('./logged-Dv3st5qc.cjs');
8
+ const require_url = require('./url-Ce7CVaQD.cjs');
9
9
  require('./middleware-CWvRH4EW.cjs');
10
- require('./session-De9POJTW.cjs');
11
- require('./origin-check-id9lTnqZ.cjs');
12
- require('./email-verification-C-AsfJsb.cjs');
13
- require('./oauth2-BLeOEi7Y.cjs');
14
- const require_state = require('./state--f7fwIGh.cjs');
15
- require('./social-providers-DcFNUT0S.cjs');
16
- require('./api-Bm89BLgN.cjs');
10
+ require('./session-Cwrj4GfV.cjs');
11
+ require('./origin-check-DjLTuZQ8.cjs');
12
+ require('./email-verification-DI_0H4JC.cjs');
13
+ require('./oauth2-5RL4cVNS.cjs');
14
+ const require_state = require('./state-CvSihlVT.cjs');
15
+ const require_social_providers = require('./social-providers-BmFOIIPk.cjs');
16
+ const require_api = require('./api-CaRC1Gio.cjs');
17
17
  const require_request = require('./request-CPNlp-DK.cjs');
18
18
  require('./utils-44aDDP8f.cjs');
19
- require('./schema-D-qjygfE.cjs');
20
- const require_auth = require('./auth-Bo9PDt5j.cjs');
21
- require('./kysely-adapter-Bxi7sPdG.cjs');
22
- require('./adapter-factory-DT-_2aHJ.cjs');
23
- require('./db-BTKyYu-_.cjs');
24
- require('./memory-adapter-BlnDIAAX.cjs');
25
- require('./defu-B0Svx_x4.cjs');
26
- let __faire_auth_core_error = require("@faire-auth/core/error");
19
+ require('./schema-CirKflVs.cjs');
20
+ const require_kysely_adapter = require('./kysely-adapter-QZTx077T.cjs');
21
+ const require_adapter_factory = require('./adapter-factory-D1I7joki.cjs');
22
+ const require_db = require('./db-ChMbb_U-.cjs');
23
+ require('./memory-adapter-17RZd5df.cjs');
24
+ const require_defu = require('./defu-BmOYq4PU.cjs');
27
25
  let __faire_auth_core_env = require("@faire-auth/core/env");
26
+ let __faire_auth_core_error = require("@faire-auth/core/error");
27
+ let __faire_auth_core_static = require("@faire-auth/core/static");
28
+ let __faire_auth_core_datatypes = require("@faire-auth/core/datatypes");
29
+ let __better_fetch_fetch = require("@better-fetch/fetch");
28
30
  let __faire_auth_core_crypto = require("@faire-auth/core/crypto");
29
31
 
32
+ //#region src/context/cloudflare.ts
33
+ /**
34
+ * Symbol used as an index in the global scope to set and retrieve the Cloudflare context
35
+ *
36
+ * This is used both in production (in the actual built worker) and in development (`next dev`)
37
+ *
38
+ * Note: this symbol needs to be kept in sync with the one used in `src/cli/templates/worker.ts`
39
+ */
40
+ const cloudflareContextSymbol = Symbol.for("__cloudflare-context__");
41
+ /**
42
+ * Get the cloudflare context from the current global scope
43
+ */
44
+ function getCloudflareContext() {
45
+ return globalThis[cloudflareContextSymbol];
46
+ }
47
+
48
+ //#endregion
49
+ //#region src/telemetry/detectors/detect-auth-config.ts
50
+ function getTelemetryAuthConfig(options, context) {
51
+ return {
52
+ database: context?.database,
53
+ adapter: context?.adapter,
54
+ emailVerification: {
55
+ sendVerificationEmail: !!options.emailVerification?.sendVerificationEmail,
56
+ sendOnSignUp: !!options.emailVerification?.sendOnSignUp,
57
+ sendOnSignIn: !!options.emailVerification?.sendOnSignIn,
58
+ autoSignInAfterVerification: !!options.emailVerification?.autoSignInAfterVerification,
59
+ expiresIn: options.emailVerification?.expiresIn,
60
+ onEmailVerification: !!options.emailVerification?.onEmailVerification,
61
+ afterEmailVerification: !!options.emailVerification?.afterEmailVerification
62
+ },
63
+ emailAndPassword: {
64
+ enabled: !!options.emailAndPassword?.enabled,
65
+ disableSignUp: !!options.emailAndPassword?.disableSignUp,
66
+ requireEmailVerification: !!options.emailAndPassword?.requireEmailVerification,
67
+ maxPasswordLength: options.emailAndPassword?.maxPasswordLength,
68
+ minPasswordLength: options.emailAndPassword?.minPasswordLength,
69
+ sendResetPassword: !!options.emailAndPassword?.sendResetPassword,
70
+ resetPasswordTokenExpiresIn: options.emailAndPassword?.resetPasswordTokenExpiresIn,
71
+ onPasswordReset: !!options.emailAndPassword?.onPasswordReset,
72
+ password: {
73
+ hash: !!options.emailAndPassword?.password?.hash,
74
+ verify: !!options.emailAndPassword?.password?.verify
75
+ },
76
+ autoSignIn: !!options.emailAndPassword?.autoSignIn,
77
+ revokeSessionsOnPasswordReset: !!options.emailAndPassword?.revokeSessionsOnPasswordReset
78
+ },
79
+ socialProviders: Object.keys(options.socialProviders || {}).map((p) => {
80
+ const provider = options.socialProviders?.[p];
81
+ if (!provider) return {};
82
+ return {
83
+ id: p,
84
+ mapProfileToUser: !!provider.mapProfileToUser,
85
+ disableDefaultScope: !!provider.disableDefaultScope,
86
+ disableIdTokenSignIn: !!provider.disableIdTokenSignIn,
87
+ disableImplicitSignUp: provider.disableImplicitSignUp,
88
+ disableSignUp: provider.disableSignUp,
89
+ getUserInfo: !!provider.getUserInfo,
90
+ overrideUserInfoOnSignIn: !!provider.overrideUserInfoOnSignIn,
91
+ prompt: provider.prompt,
92
+ verifyIdToken: !!provider.verifyIdToken,
93
+ scope: provider.scope,
94
+ refreshAccessToken: !!provider.refreshAccessToken
95
+ };
96
+ }),
97
+ plugins: options.plugins?.map((p) => p.id.toString()),
98
+ user: {
99
+ modelName: options.user?.modelName,
100
+ fields: options.user?.fields,
101
+ additionalFields: options.user?.additionalFields,
102
+ changeEmail: {
103
+ enabled: options.user?.changeEmail?.enabled,
104
+ sendChangeEmailVerification: !!options.user?.changeEmail?.sendChangeEmailVerification
105
+ }
106
+ },
107
+ verification: {
108
+ modelName: options.verification?.modelName,
109
+ disableCleanup: options.verification?.disableCleanup,
110
+ fields: options.verification?.fields
111
+ },
112
+ session: {
113
+ modelName: options.session?.modelName,
114
+ additionalFields: options.session?.additionalFields,
115
+ cookieCache: {
116
+ enabled: options.session?.cookieCache?.enabled,
117
+ maxAge: options.session?.cookieCache?.maxAge
118
+ },
119
+ disableSessionRefresh: options.session?.disableSessionRefresh,
120
+ expiresIn: options.session?.expiresIn,
121
+ fields: options.session?.fields,
122
+ freshAge: options.session?.freshAge,
123
+ preserveSessionInDatabase: options.session?.preserveSessionInDatabase,
124
+ storeSessionInDatabase: options.session?.storeSessionInDatabase,
125
+ updateAge: options.session?.updateAge
126
+ },
127
+ account: {
128
+ modelName: options.account?.modelName,
129
+ fields: options.account?.fields,
130
+ encryptOAuthTokens: options.account?.encryptOAuthTokens,
131
+ updateAccountOnSignIn: options.account?.updateAccountOnSignIn,
132
+ accountLinking: {
133
+ enabled: options.account?.accountLinking?.enabled,
134
+ trustedProviders: options.account?.accountLinking?.trustedProviders,
135
+ updateUserInfoOnLink: options.account?.accountLinking?.updateUserInfoOnLink,
136
+ allowUnlinkingAll: options.account?.accountLinking?.allowUnlinkingAll
137
+ }
138
+ },
139
+ hooks: {
140
+ after: !!options.hooks?.after,
141
+ before: !!options.hooks?.before
142
+ },
143
+ secondaryStorage: !!options.secondaryStorage,
144
+ advanced: {
145
+ cookiePrefix: !!options.advanced?.cookiePrefix,
146
+ cookies: !!options.advanced?.cookies,
147
+ crossSubDomainCookies: {
148
+ domain: !!options.advanced?.crossSubDomainCookies?.domain,
149
+ enabled: options.advanced?.crossSubDomainCookies?.enabled,
150
+ additionalCookies: options.advanced?.crossSubDomainCookies?.additionalCookies
151
+ },
152
+ database: {
153
+ useNumberId: !!options.advanced?.database?.useNumberId,
154
+ generateId: options.advanced?.database?.generateId,
155
+ defaultFindManyLimit: options.advanced?.database?.defaultFindManyLimit
156
+ },
157
+ useSecureCookies: options.advanced?.useSecureCookies,
158
+ ipAddress: {
159
+ disableIpTracking: options.advanced?.ipAddress?.disableIpTracking,
160
+ ipAddressHeaders: options.advanced?.ipAddress?.ipAddressHeaders
161
+ },
162
+ disableCSRFCheck: options.advanced?.disableCSRFCheck,
163
+ cookieAttributes: {
164
+ expires: options.advanced?.defaultCookieAttributes?.expires,
165
+ secure: options.advanced?.defaultCookieAttributes?.secure,
166
+ sameSite: options.advanced?.defaultCookieAttributes?.sameSite,
167
+ domain: !!options.advanced?.defaultCookieAttributes?.domain,
168
+ path: options.advanced?.defaultCookieAttributes?.path,
169
+ httpOnly: options.advanced?.defaultCookieAttributes?.httpOnly
170
+ }
171
+ },
172
+ trustedOrigins: options.trustedOrigins?.length,
173
+ rateLimit: {
174
+ storage: options.rateLimit?.storage,
175
+ modelName: options.rateLimit?.modelName,
176
+ window: options.rateLimit?.window,
177
+ customStorage: !!options.rateLimit?.customStorage,
178
+ enabled: options.rateLimit?.enabled,
179
+ max: options.rateLimit?.max
180
+ },
181
+ onAPIError: {
182
+ errorURL: options.onAPIError?.errorURL,
183
+ onError: !!options.onAPIError?.onError,
184
+ throw: options.onAPIError?.throw
185
+ },
186
+ logger: {
187
+ disabled: options.logger?.disabled,
188
+ level: options.logger?.level,
189
+ log: !!options.logger?.log
190
+ },
191
+ databaseHooks: {
192
+ user: {
193
+ create: {
194
+ after: !!options.databaseHooks?.user?.create?.after,
195
+ before: !!options.databaseHooks?.user?.create?.before
196
+ },
197
+ update: {
198
+ after: !!options.databaseHooks?.user?.update?.after,
199
+ before: !!options.databaseHooks?.user?.update?.before
200
+ }
201
+ },
202
+ session: {
203
+ create: {
204
+ after: !!options.databaseHooks?.session?.create?.after,
205
+ before: !!options.databaseHooks?.session?.create?.before
206
+ },
207
+ update: {
208
+ after: !!options.databaseHooks?.session?.update?.after,
209
+ before: !!options.databaseHooks?.session?.update?.before
210
+ }
211
+ },
212
+ account: {
213
+ create: {
214
+ after: !!options.databaseHooks?.account?.create?.after,
215
+ before: !!options.databaseHooks?.account?.create?.before
216
+ },
217
+ update: {
218
+ after: !!options.databaseHooks?.account?.update?.after,
219
+ before: !!options.databaseHooks?.account?.update?.before
220
+ }
221
+ },
222
+ verification: {
223
+ create: {
224
+ after: !!options.databaseHooks?.verification?.create?.after,
225
+ before: !!options.databaseHooks?.verification?.create?.before
226
+ },
227
+ update: {
228
+ after: !!options.databaseHooks?.verification?.update?.after,
229
+ before: !!options.databaseHooks?.verification?.update?.before
230
+ }
231
+ }
232
+ }
233
+ };
234
+ }
235
+
236
+ //#endregion
237
+ //#region src/utils/package-json.ts
238
+ let packageJSONCache;
239
+ async function readRootPackageJson() {
240
+ if (packageJSONCache) return packageJSONCache;
241
+ try {
242
+ const cwd = typeof process !== "undefined" && typeof process.cwd === "function" ? process.cwd() : "";
243
+ if (!cwd) return void 0;
244
+ const importRuntime = (m) => Function("mm", "return import(mm)")(m);
245
+ const [{ default: fs }, { default: path }] = await Promise.all([importRuntime("fs/promises"), importRuntime("path")]);
246
+ const raw = await fs.readFile(path.join(cwd, "package.json"), "utf-8");
247
+ packageJSONCache = JSON.parse(raw);
248
+ return packageJSONCache;
249
+ } catch {}
250
+ }
251
+ async function getPackageVersion(pkg) {
252
+ if (packageJSONCache) return packageJSONCache.dependencies?.[pkg] || packageJSONCache.devDependencies?.[pkg] || packageJSONCache.peerDependencies?.[pkg];
253
+ try {
254
+ const cwd = typeof process !== "undefined" && typeof process.cwd === "function" ? process.cwd() : "";
255
+ if (!cwd) throw new Error("no-cwd");
256
+ const importRuntime = (m) => Function("mm", "return import(mm)")(m);
257
+ const [{ default: fs }, { default: path }] = await Promise.all([importRuntime("fs/promises"), importRuntime("path")]);
258
+ const pkgJsonPath = path.join(cwd, "node_modules", pkg, "package.json");
259
+ const raw = await fs.readFile(pkgJsonPath, "utf-8");
260
+ return JSON.parse(raw).version || await getVersionFromLocalPackageJson(pkg) || void 0;
261
+ } catch {}
262
+ return await getVersionFromLocalPackageJson(pkg);
263
+ }
264
+ async function getVersionFromLocalPackageJson(pkg) {
265
+ const json = await readRootPackageJson();
266
+ if (!json) return void 0;
267
+ return {
268
+ ...json.dependencies,
269
+ ...json.devDependencies,
270
+ ...json.peerDependencies
271
+ }[pkg];
272
+ }
273
+ async function getNameFromLocalPackageJson() {
274
+ return (await readRootPackageJson())?.name;
275
+ }
276
+
277
+ //#endregion
278
+ //#region src/telemetry/detectors/detect-database.ts
279
+ const DATABASES = {
280
+ pg: "postgresql",
281
+ mysql: "mysql",
282
+ mariadb: "mariadb",
283
+ sqlite3: "sqlite",
284
+ "better-sqlite3": "sqlite",
285
+ "@prisma/client": "prisma",
286
+ mongoose: "mongodb",
287
+ mongodb: "mongodb",
288
+ "drizzle-orm": "drizzle"
289
+ };
290
+ async function detectDatabase() {
291
+ for (const [pkg, name] of Object.entries(DATABASES)) {
292
+ const version = await getPackageVersion(pkg);
293
+ if (version) return {
294
+ name,
295
+ version
296
+ };
297
+ }
298
+ }
299
+
300
+ //#endregion
301
+ //#region src/telemetry/detectors/detect-framework.ts
302
+ const FRAMEWORKS = {
303
+ next: "next",
304
+ nuxt: "nuxt",
305
+ "@remix-run/server-runtime": "remix",
306
+ astro: "astro",
307
+ "@sveltejs/kit": "sveltekit",
308
+ "solid-start": "solid-start",
309
+ "tanstack-start": "tanstack-start",
310
+ hono: "hono",
311
+ express: "express",
312
+ elysia: "elysia",
313
+ expo: "expo"
314
+ };
315
+ async function detectFramework() {
316
+ for (const [pkg, name] of Object.entries(FRAMEWORKS)) {
317
+ const version = await getPackageVersion(pkg);
318
+ if (version) return {
319
+ name,
320
+ version
321
+ };
322
+ }
323
+ }
324
+
325
+ //#endregion
326
+ //#region src/telemetry/detectors/detect-project-info.ts
327
+ function detectPackageManager() {
328
+ const userAgent = process.env.npm_config_user_agent;
329
+ if (!userAgent) return;
330
+ const pmSpec = userAgent.split(" ")[0];
331
+ const separatorPos = pmSpec.lastIndexOf("/");
332
+ const name = pmSpec.substring(0, separatorPos);
333
+ return {
334
+ name: name === "npminstall" ? "cnpm" : name,
335
+ version: pmSpec.substring(separatorPos + 1)
336
+ };
337
+ }
338
+
339
+ //#endregion
340
+ //#region src/telemetry/detectors/detect-system-info.ts
341
+ function getVendor() {
342
+ const hasAny = (...keys) => keys.some((k) => Boolean(__faire_auth_core_env.env[k]));
343
+ if (hasAny("CF_PAGES", "CF_PAGES_URL", "CF_ACCOUNT_ID") || typeof navigator !== "undefined" && navigator.userAgent === "Cloudflare-Workers") return "cloudflare";
344
+ if (hasAny("VERCEL", "VERCEL_URL", "VERCEL_ENV")) return "vercel";
345
+ if (hasAny("NETLIFY", "NETLIFY_URL")) return "netlify";
346
+ if (hasAny("RENDER", "RENDER_URL", "RENDER_INTERNAL_HOSTNAME", "RENDER_SERVICE_ID")) return "render";
347
+ if (hasAny("AWS_LAMBDA_FUNCTION_NAME", "AWS_EXECUTION_ENV", "LAMBDA_TASK_ROOT")) return "aws";
348
+ if (hasAny("GOOGLE_CLOUD_FUNCTION_NAME", "GOOGLE_CLOUD_PROJECT", "GCP_PROJECT", "K_SERVICE")) return "gcp";
349
+ if (hasAny("AZURE_FUNCTION_NAME", "FUNCTIONS_WORKER_RUNTIME", "WEBSITE_INSTANCE_ID", "WEBSITE_SITE_NAME")) return "azure";
350
+ if (hasAny("DENO_DEPLOYMENT_ID", "DENO_REGION")) return "deno-deploy";
351
+ if (hasAny("FLY_APP_NAME", "FLY_REGION", "FLY_ALLOC_ID")) return "fly-io";
352
+ if (hasAny("RAILWAY_STATIC_URL", "RAILWAY_ENVIRONMENT_NAME")) return "railway";
353
+ if (hasAny("DYNO", "HEROKU_APP_NAME")) return "heroku";
354
+ if (hasAny("DO_DEPLOYMENT_ID", "DO_APP_NAME", "DIGITALOCEAN")) return "digitalocean";
355
+ if (hasAny("KOYEB", "KOYEB_DEPLOYMENT_ID", "KOYEB_APP_NAME")) return "koyeb";
356
+ return null;
357
+ }
358
+ async function detectSystemInfo() {
359
+ try {
360
+ if (getVendor() === "cloudflare") return "cloudflare";
361
+ const importRuntime = (m) => Function("mm", "return import(mm)")(m);
362
+ const { default: os } = await importRuntime("os");
363
+ const cpus = os.cpus();
364
+ return {
365
+ deploymentVendor: getVendor(),
366
+ systemPlatform: os.platform(),
367
+ systemRelease: os.release(),
368
+ systemArchitecture: os.arch(),
369
+ cpuCount: cpus.length,
370
+ cpuModel: cpus.length ? cpus[0].model : null,
371
+ cpuSpeed: cpus.length ? cpus[0].speed : null,
372
+ memory: os.totalmem(),
373
+ isWSL: await isWsl(),
374
+ isDocker: await isDocker(),
375
+ isTTY: process.stdout.isTTY
376
+ };
377
+ } catch (e) {
378
+ return {
379
+ systemPlatform: null,
380
+ systemRelease: null,
381
+ systemArchitecture: null,
382
+ cpuCount: null,
383
+ cpuModel: null,
384
+ cpuSpeed: null,
385
+ memory: null,
386
+ isWSL: null,
387
+ isDocker: null,
388
+ isTTY: null
389
+ };
390
+ }
391
+ }
392
+ let isDockerCached;
393
+ async function hasDockerEnv() {
394
+ if (getVendor() === "cloudflare") return false;
395
+ try {
396
+ const importRuntime = (m) => Function("mm", "return import(mm)")(m);
397
+ const { default: fs } = await importRuntime("fs");
398
+ fs.statSync("/.dockerenv");
399
+ return true;
400
+ } catch {
401
+ return false;
402
+ }
403
+ }
404
+ async function hasDockerCGroup() {
405
+ if (getVendor() === "cloudflare") return false;
406
+ try {
407
+ const importRuntime = (m) => Function("mm", "return import(mm)")(m);
408
+ const { default: fs } = await importRuntime("fs");
409
+ return fs.readFileSync("/proc/self/cgroup", "utf8").includes("docker");
410
+ } catch {
411
+ return false;
412
+ }
413
+ }
414
+ async function isDocker() {
415
+ if (getVendor() === "cloudflare") return false;
416
+ if (isDockerCached === void 0) isDockerCached = await hasDockerEnv() || await hasDockerCGroup();
417
+ return isDockerCached;
418
+ }
419
+ async function isWsl() {
420
+ try {
421
+ if (getVendor() === "cloudflare") return false;
422
+ if (process.platform !== "linux") return false;
423
+ const importRuntime = (m) => Function("mm", "return import(mm)")(m);
424
+ const { default: fs } = await importRuntime("fs");
425
+ const { default: os } = await importRuntime("os");
426
+ if (os.release().toLowerCase().includes("microsoft")) {
427
+ if (await isInsideContainer()) return false;
428
+ return true;
429
+ }
430
+ return fs.readFileSync("/proc/version", "utf8").toLowerCase().includes("microsoft") ? !await isInsideContainer() : false;
431
+ } catch {
432
+ return false;
433
+ }
434
+ }
435
+ let isInsideContainerCached;
436
+ const hasContainerEnv = async () => {
437
+ if (getVendor() === "cloudflare") return false;
438
+ try {
439
+ const importRuntime = (m) => Function("mm", "return import(mm)")(m);
440
+ const { default: fs } = await importRuntime("fs");
441
+ fs.statSync("/run/.containerenv");
442
+ return true;
443
+ } catch {
444
+ return false;
445
+ }
446
+ };
447
+ async function isInsideContainer() {
448
+ if (isInsideContainerCached === void 0) isInsideContainerCached = await hasContainerEnv() || await isDocker();
449
+ return isInsideContainerCached;
450
+ }
451
+ function isCI() {
452
+ return __faire_auth_core_env.env.CI !== "false" && ("BUILD_ID" in __faire_auth_core_env.env || "BUILD_NUMBER" in __faire_auth_core_env.env || "CI" in __faire_auth_core_env.env || "CI_APP_ID" in __faire_auth_core_env.env || "CI_BUILD_ID" in __faire_auth_core_env.env || "CI_BUILD_NUMBER" in __faire_auth_core_env.env || "CI_NAME" in __faire_auth_core_env.env || "CONTINUOUS_INTEGRATION" in __faire_auth_core_env.env || "RUN_ID" in __faire_auth_core_env.env);
453
+ }
454
+
455
+ //#endregion
456
+ //#region src/telemetry/detectors/detect-runtime.ts
457
+ function detectRuntime() {
458
+ if (typeof Deno !== "undefined") return {
459
+ name: "deno",
460
+ version: Deno?.version?.deno ?? null
461
+ };
462
+ if (typeof Bun !== "undefined") return {
463
+ name: "bun",
464
+ version: Bun?.version ?? null
465
+ };
466
+ if (typeof process !== "undefined" && process?.versions?.node) return {
467
+ name: "node",
468
+ version: process.versions.node ?? null
469
+ };
470
+ return {
471
+ name: "edge",
472
+ version: null
473
+ };
474
+ }
475
+ function detectEnvironment() {
476
+ return (0, __faire_auth_core_env.getEnvVar)("NODE_ENV") === "production" ? "production" : isCI() ? "ci" : (0, __faire_auth_core_env.isTest)() ? "test" : "development";
477
+ }
478
+
479
+ //#endregion
480
+ //#region src/telemetry/project-id.ts
481
+ let projectIdCached = null;
482
+ async function getProjectId(baseUrl) {
483
+ if (projectIdCached) return projectIdCached;
484
+ const projectName = await getNameFromLocalPackageJson();
485
+ if (projectName) {
486
+ projectIdCached = await (0, __faire_auth_core_datatypes.hashToBase64)(baseUrl ? baseUrl + projectName : projectName);
487
+ return projectIdCached;
488
+ }
489
+ if (baseUrl) {
490
+ projectIdCached = await (0, __faire_auth_core_datatypes.hashToBase64)(baseUrl);
491
+ return projectIdCached;
492
+ }
493
+ projectIdCached = (0, __faire_auth_core_crypto.generateId)(32);
494
+ return projectIdCached;
495
+ }
496
+
497
+ //#endregion
498
+ //#region src/telemetry/index.ts
499
+ function createTelemetry(options, context) {
500
+ const debugEnabled = options.telemetry?.debug || (0, __faire_auth_core_env.getBooleanEnvVar)("FAIRE_AUTH_TELEMETRY_DEBUG", false);
501
+ const TELEMETRY_ENDPOINT = __faire_auth_core_env.ENV.FAIRE_AUTH_TELEMETRY_ENDPOINT;
502
+ const track = async (event) => {
503
+ try {
504
+ if (context?.customTrack) await context.customTrack(event);
505
+ else if (debugEnabled) await Promise.resolve(__faire_auth_core_env.logger.info("telemetry event", JSON.stringify(event, null, 2)));
506
+ else await (0, __better_fetch_fetch.betterFetch)(TELEMETRY_ENDPOINT, {
507
+ method: "POST",
508
+ body: event
509
+ });
510
+ } catch {}
511
+ };
512
+ const isEnabled = () => {
513
+ const telemetryEnabled = options.telemetry?.enabled !== void 0 ? options.telemetry.enabled : false;
514
+ return ((0, __faire_auth_core_env.getBooleanEnvVar)("FAIRE_AUTH_TELEMETRY", false) || telemetryEnabled) && (context?.skipTestCheck || !(0, __faire_auth_core_env.isTest)());
515
+ };
516
+ let initDone;
517
+ let anonymousId;
518
+ let payload;
519
+ const enabled = isEnabled();
520
+ async function ensureInitialized() {
521
+ if (initDone) return initDone;
522
+ initDone = (async () => {
523
+ anonymousId = await getProjectId(options.baseURL);
524
+ payload = {
525
+ config: getTelemetryAuthConfig(options),
526
+ runtime: detectRuntime(),
527
+ database: await detectDatabase(),
528
+ framework: await detectFramework(),
529
+ environment: detectEnvironment(),
530
+ systemInfo: await detectSystemInfo(),
531
+ packageManager: detectPackageManager()
532
+ };
533
+ if (enabled) await track({
534
+ type: "init",
535
+ payload,
536
+ anonymousId
537
+ });
538
+ })();
539
+ return initDone;
540
+ }
541
+ return {
542
+ initPromise: ensureInitialized(),
543
+ async publish(event) {
544
+ if (!enabled) return;
545
+ await track({
546
+ type: event.type,
547
+ payload: event.payload,
548
+ anonymousId
549
+ });
550
+ }
551
+ };
552
+ }
553
+
554
+ //#endregion
555
+ //#region src/init.ts
556
+ const getInternalPlugins = (options) => {
557
+ const plugins = [];
558
+ if (options.advanced?.crossSubDomainCookies?.enabled === true) {}
559
+ return plugins;
560
+ };
561
+ const loadSecret = (options, logger$2) => {
562
+ const secret = options.secret ?? __faire_auth_core_env.env["FAIRE_AUTH_SECRET"] ?? __faire_auth_core_env.env["AUTH_SECRET"] ?? __faire_auth_core_static.DEFAULT_SECRET;
563
+ if (secret === __faire_auth_core_static.DEFAULT_SECRET) {
564
+ if ((0, __faire_auth_core_env.isProduction)()) logger$2.error("You are using the default secret. Please set `FAIRE_AUTH_SECRET` in your environment variables or pass `secret` in your auth config.");
565
+ }
566
+ return secret;
567
+ };
568
+ const runPluginInit = (ctx, options) => {
569
+ let context = ctx;
570
+ const dbHooks = [];
571
+ for (const plugin of options.plugins ?? []) if (plugin.init) {
572
+ const result = plugin.init(context);
573
+ if (typeof result === "object") {
574
+ if (result.options) {
575
+ const { databaseHooks,...restOpts } = result.options;
576
+ if (result.options.databaseHooks) dbHooks.push(result.options.databaseHooks);
577
+ options = require_defu.defu(options, restOpts);
578
+ }
579
+ if (result.context) context = {
580
+ ...context,
581
+ ...result.context
582
+ };
583
+ }
584
+ }
585
+ if (options.databaseHooks) dbHooks.push(options.databaseHooks);
586
+ context.internalAdapter = require_db.createInternalAdapter(ctx.adapter, options, context, dbHooks);
587
+ return [context, options];
588
+ };
589
+ const initGenerateId = (options) => {
590
+ const advDbGenId = options.advanced?.database?.generateId;
591
+ return ({ model, size }) => {
592
+ if (typeof advDbGenId === "function") return advDbGenId({
593
+ model,
594
+ ...size != null ? { size } : {}
595
+ });
596
+ return (0, __faire_auth_core_crypto.generateId)(size);
597
+ };
598
+ };
599
+ const init = (options) => {
600
+ const baseURL = require_url.getBaseURL(options.baseURL, options.basePath);
601
+ if (baseURL == null && !(0, __faire_auth_core_env.isDevelopment)() && !(0, __faire_auth_core_env.isTest)()) throw new Error("baseURL is required for auth context");
602
+ const adapter = require_db.getAdapter(options);
603
+ const internalPlugins = getInternalPlugins(options);
604
+ const logger$2 = (0, __faire_auth_core_env.createLogger)(options.logger);
605
+ const secret = loadSecret(options, logger$2);
606
+ const generateId$1 = initGenerateId(options);
607
+ const secondaryStorage = options.secondaryStorage;
608
+ const sessionConfig = {
609
+ updateAge: options.session?.updateAge ?? 1440 * 60,
610
+ expiresIn: options.session?.expiresIn ?? 3600 * 24 * 7,
611
+ freshAge: options.session?.freshAge ?? 3600 * 24,
612
+ cookieRefreshCache: (() => {
613
+ const refreshCache = options.session?.cookieCache?.refreshCache;
614
+ const maxAge = options.session?.cookieCache?.maxAge ?? 300;
615
+ if (refreshCache === false || refreshCache === void 0) return false;
616
+ if (refreshCache === true) return {
617
+ enabled: true,
618
+ updateAge: Math.floor(maxAge * .2)
619
+ };
620
+ return {
621
+ enabled: true,
622
+ updateAge: refreshCache.updateAge !== void 0 ? refreshCache.updateAge : Math.floor(maxAge * .2)
623
+ };
624
+ })()
625
+ };
626
+ const rateLimit = {
627
+ ...options.rateLimit,
628
+ enabled: options.rateLimit?.enabled ?? (0, __faire_auth_core_env.isProduction)(),
629
+ window: options.rateLimit?.window ?? 10,
630
+ max: options.rateLimit?.max ?? 100,
631
+ storage: options.rateLimit?.storage ?? (options.secondaryStorage ? "secondary-storage" : "memory")
632
+ };
633
+ options.secret = secret;
634
+ options.baseURL = baseURL ? new URL(baseURL).origin : "";
635
+ options.basePath ??= "/api/auth";
636
+ options.plugins ??= [];
637
+ options.plugins.push(...internalPlugins);
638
+ return runPluginInit({
639
+ appName: options.appName ?? "Faire Auth",
640
+ socialProviders: Object.entries(options.socialProviders ?? {}).map(([key, value]) => {
641
+ if (value == null) return null;
642
+ if (value.enabled === false) return null;
643
+ if (!value.clientId) logger$2.warn(`Social provider ${key} is missing clientId or clientSecret`);
644
+ if (!(key in require_social_providers.social_providers_exports.socialProviders)) throw new Error(`${key} does not exist in known social providers`);
645
+ const provider = require_social_providers.social_providers_exports.socialProviders[key](value);
646
+ if (value.disableImplicitSignUp) provider.disableImplicitSignUp = value.disableImplicitSignUp;
647
+ return provider;
648
+ }).filter((x) => x !== null),
649
+ tables: require_adapter_factory.getAuthTables(options),
650
+ trustedOrigins: require_url.getTrustedOrigins(options, { baseURL }).trustedOrigins,
651
+ baseURL,
652
+ sessionConfig,
653
+ secret,
654
+ authCookies: require_cookies.getCookies(options),
655
+ logger: logger$2,
656
+ rateLimit,
657
+ generateId: generateId$1,
658
+ password: {
659
+ hash: options.emailAndPassword?.password?.hash ?? require_crypto.crypto_exports.hashPassword,
660
+ verify: options.emailAndPassword?.password?.verify ?? require_crypto.crypto_exports.verifyPassword,
661
+ config: {
662
+ minPasswordLength: options.emailAndPassword?.minPasswordLength ?? 8,
663
+ maxPasswordLength: options.emailAndPassword?.maxPasswordLength ?? 128
664
+ },
665
+ checkPassword: require_crypto.checkPassword
666
+ },
667
+ newSession: null,
668
+ adapter,
669
+ internalAdapter: require_db.createInternalAdapter(adapter, options, {
670
+ logger: logger$2,
671
+ generateId: generateId$1,
672
+ sessionConfig,
673
+ ...secondaryStorage && { secondaryStorage }
674
+ }, options.databaseHooks ? [options.databaseHooks] : []),
675
+ createAuthCookie: require_cookies.createCookieCreator(options),
676
+ runMigrations: async () => {
677
+ if (!options.database || "updateMany" in options.database) throw new __faire_auth_core_error.FaireAuthError("Database is not provided or it's an adapter. Migrations are only supported with a database instance.");
678
+ const { runMigrations } = await require_db.getMigrations(options);
679
+ await runMigrations();
680
+ },
681
+ publishTelemetry: createTelemetry(options, {
682
+ adapter: adapter.id,
683
+ database: typeof options.database === "function" ? "adapter" : require_kysely_adapter.getKyselyDatabaseType(options.database) || "unknown"
684
+ }).publish,
685
+ ...secondaryStorage && { secondaryStorage }
686
+ }, options);
687
+ };
688
+
689
+ //#endregion
690
+ //#region src/auth.ts
691
+ function defineOptions(config) {
692
+ return config;
693
+ }
694
+ const faireAuth = (options) => {
695
+ const [authContext, authOptions] = init(options);
696
+ const { api, app } = require_api.router(authContext, authOptions);
697
+ return {
698
+ handler: (request, Env, executionCtx) => {
699
+ const cfCtx = getCloudflareContext();
700
+ return app.fetch(request, Object.assign(__faire_auth_core_env.ENV, cfCtx?.env, Env), executionCtx ?? cfCtx?.ctx);
701
+ },
702
+ app,
703
+ api,
704
+ options: authOptions,
705
+ $context: authContext,
706
+ $Infer: {
707
+ App: (_o) => app,
708
+ Api: (_a) => api
709
+ },
710
+ $ERROR_CODES: {
711
+ ...authOptions.plugins?.reduce((acc, plugin) => {
712
+ if (plugin.$ERROR_CODES) return {
713
+ ...acc,
714
+ ...plugin.$ERROR_CODES
715
+ };
716
+ return acc;
717
+ }, {}),
718
+ ...__faire_auth_core_error.BASE_ERROR_CODES
719
+ }
720
+ };
721
+ };
722
+
723
+ //#endregion
30
724
  Object.defineProperty(exports, 'APIError', {
31
725
  enumerable: true,
32
726
  get: function () {
@@ -57,9 +751,9 @@ Object.defineProperty(exports, 'createLogger', {
57
751
  return __faire_auth_core_env.createLogger;
58
752
  }
59
753
  });
60
- exports.createTelemetry = require_auth.createTelemetry;
61
- exports.defineOptions = require_auth.defineOptions;
62
- exports.faireAuth = require_auth.faireAuth;
754
+ exports.createTelemetry = createTelemetry;
755
+ exports.defineOptions = defineOptions;
756
+ exports.faireAuth = faireAuth;
63
757
  Object.defineProperty(exports, 'generateId', {
64
758
  enumerable: true,
65
759
  get: function () {
@@ -74,7 +768,7 @@ Object.defineProperty(exports, 'generateRandomString', {
74
768
  });
75
769
  exports.generateState = require_state.generateState;
76
770
  exports.getCurrentAdapter = require_ip.getCurrentAdapter;
77
- exports.getTelemetryAuthConfig = require_auth.getTelemetryAuthConfig;
771
+ exports.getTelemetryAuthConfig = getTelemetryAuthConfig;
78
772
  Object.defineProperty(exports, 'logger', {
79
773
  enumerable: true,
80
774
  get: function () {