@intlayer/backend 7.0.9-canary.0 → 7.0.9-canary.3

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 (915) hide show
  1. package/README.md +2 -1
  2. package/dist/assets/utils/AI/askDocQuestion/embeddings/docs/en/packages/intlayer/getLocalizedUrl.json +6146 -5120
  3. package/dist/assets/utils/AI/askDocQuestion/embeddings/docs/en/packages/intlayer/getMultilingualUrls.json +5124 -3072
  4. package/dist/assets/utils/AI/askDocQuestion/embeddings/docs/en/packages/intlayer/getPrefix.json +4106 -0
  5. package/dist/cjs/controllers/dictionary.controller.cjs +64 -41
  6. package/dist/cjs/controllers/dictionary.controller.cjs.map +1 -1
  7. package/dist/cjs/emails/MagicLinkEmail.cjs +242 -0
  8. package/dist/cjs/emails/MagicLinkEmail.cjs.map +1 -0
  9. package/dist/cjs/index.cjs +1 -1
  10. package/dist/cjs/index.cjs.map +1 -1
  11. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/index.cjs +16 -0
  12. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/index.cjs.map +1 -0
  13. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/templates/encrypted-key.tpl.xml.cjs +25 -0
  14. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/templates/encrypted-key.tpl.xml.cjs.map +1 -0
  15. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/templates/keyinfo.tpl.xml.cjs +31 -0
  16. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/templates/keyinfo.tpl.xml.cjs.map +1 -0
  17. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/utils.cjs +38 -0
  18. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/utils.cjs.map +1 -0
  19. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/xmlenc.cjs +231 -0
  20. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/xmlenc.cjs.map +1 -0
  21. package/dist/cjs/node_modules/@better-auth/sso/dist/index.cjs +1210 -0
  22. package/dist/cjs/node_modules/@better-auth/sso/dist/index.cjs.map +1 -0
  23. package/dist/cjs/node_modules/@better-fetch/fetch/dist/index.cjs +362 -0
  24. package/dist/cjs/node_modules/@better-fetch/fetch/dist/index.cjs.map +1 -0
  25. package/dist/cjs/node_modules/@xmldom/is-dom-node/dist/index.cjs +89 -0
  26. package/dist/cjs/node_modules/@xmldom/is-dom-node/dist/index.cjs.map +1 -0
  27. package/dist/cjs/node_modules/@xmldom/xmldom/lib/conventions.cjs +110 -0
  28. package/dist/cjs/node_modules/@xmldom/xmldom/lib/conventions.cjs.map +1 -0
  29. package/dist/cjs/node_modules/@xmldom/xmldom/lib/dom-parser.cjs +248 -0
  30. package/dist/cjs/node_modules/@xmldom/xmldom/lib/dom-parser.cjs.map +1 -0
  31. package/dist/cjs/node_modules/@xmldom/xmldom/lib/dom.cjs +1309 -0
  32. package/dist/cjs/node_modules/@xmldom/xmldom/lib/dom.cjs.map +1 -0
  33. package/dist/cjs/node_modules/@xmldom/xmldom/lib/entities.cjs +2176 -0
  34. package/dist/cjs/node_modules/@xmldom/xmldom/lib/entities.cjs.map +1 -0
  35. package/dist/cjs/node_modules/@xmldom/xmldom/lib/index.cjs +20 -0
  36. package/dist/cjs/node_modules/@xmldom/xmldom/lib/index.cjs.map +1 -0
  37. package/dist/cjs/node_modules/@xmldom/xmldom/lib/sax.cjs +499 -0
  38. package/dist/cjs/node_modules/@xmldom/xmldom/lib/sax.cjs.map +1 -0
  39. package/dist/cjs/node_modules/asn1/lib/ber/errors.cjs +20 -0
  40. package/dist/cjs/node_modules/asn1/lib/ber/errors.cjs.map +1 -0
  41. package/dist/cjs/node_modules/asn1/lib/ber/index.cjs +28 -0
  42. package/dist/cjs/node_modules/asn1/lib/ber/index.cjs.map +1 -0
  43. package/dist/cjs/node_modules/asn1/lib/ber/reader.cjs +167 -0
  44. package/dist/cjs/node_modules/asn1/lib/ber/reader.cjs.map +1 -0
  45. package/dist/cjs/node_modules/asn1/lib/ber/types.cjs +47 -0
  46. package/dist/cjs/node_modules/asn1/lib/ber/types.cjs.map +1 -0
  47. package/dist/cjs/node_modules/asn1/lib/ber/writer.cjs +223 -0
  48. package/dist/cjs/node_modules/asn1/lib/ber/writer.cjs.map +1 -0
  49. package/dist/cjs/node_modules/asn1/lib/index.cjs +21 -0
  50. package/dist/cjs/node_modules/asn1/lib/index.cjs.map +1 -0
  51. package/dist/cjs/node_modules/camelcase/index.cjs +78 -0
  52. package/dist/cjs/node_modules/camelcase/index.cjs.map +1 -0
  53. package/dist/cjs/node_modules/escape-html/index.cjs +71 -0
  54. package/dist/cjs/node_modules/escape-html/index.cjs.map +1 -0
  55. package/dist/cjs/node_modules/fast-xml-parser/src/fxp.cjs +9 -0
  56. package/dist/cjs/node_modules/fast-xml-parser/src/fxp.cjs.map +1 -0
  57. package/dist/cjs/node_modules/fast-xml-parser/src/util.cjs +29 -0
  58. package/dist/cjs/node_modules/fast-xml-parser/src/util.cjs.map +1 -0
  59. package/dist/cjs/node_modules/fast-xml-parser/src/validator.cjs +244 -0
  60. package/dist/cjs/node_modules/fast-xml-parser/src/validator.cjs.map +1 -0
  61. package/dist/cjs/node_modules/jose/dist/webapi/lib/base64.cjs +14 -0
  62. package/dist/cjs/node_modules/jose/dist/webapi/lib/base64.cjs.map +1 -0
  63. package/dist/cjs/node_modules/jose/dist/webapi/lib/buffer_utils.cjs +10 -0
  64. package/dist/cjs/node_modules/jose/dist/webapi/lib/buffer_utils.cjs.map +1 -0
  65. package/dist/cjs/node_modules/jose/dist/webapi/lib/is_object.cjs +17 -0
  66. package/dist/cjs/node_modules/jose/dist/webapi/lib/is_object.cjs.map +1 -0
  67. package/dist/cjs/node_modules/jose/dist/webapi/util/base64url.cjs +20 -0
  68. package/dist/cjs/node_modules/jose/dist/webapi/util/base64url.cjs.map +1 -0
  69. package/dist/cjs/node_modules/jose/dist/webapi/util/decode_jwt.cjs +32 -0
  70. package/dist/cjs/node_modules/jose/dist/webapi/util/decode_jwt.cjs.map +1 -0
  71. package/dist/cjs/node_modules/jose/dist/webapi/util/errors.cjs +28 -0
  72. package/dist/cjs/node_modules/jose/dist/webapi/util/errors.cjs.map +1 -0
  73. package/dist/cjs/node_modules/node-forge/lib/aes.cjs +604 -0
  74. package/dist/cjs/node_modules/node-forge/lib/aes.cjs.map +1 -0
  75. package/dist/cjs/node_modules/node-forge/lib/aesCipherSuites.cjs +202 -0
  76. package/dist/cjs/node_modules/node-forge/lib/aesCipherSuites.cjs.map +1 -0
  77. package/dist/cjs/node_modules/node-forge/lib/asn1-validator.cjs +83 -0
  78. package/dist/cjs/node_modules/node-forge/lib/asn1-validator.cjs.map +1 -0
  79. package/dist/cjs/node_modules/node-forge/lib/asn1.cjs +945 -0
  80. package/dist/cjs/node_modules/node-forge/lib/asn1.cjs.map +1 -0
  81. package/dist/cjs/node_modules/node-forge/lib/baseN.cjs +144 -0
  82. package/dist/cjs/node_modules/node-forge/lib/baseN.cjs.map +1 -0
  83. package/dist/cjs/node_modules/node-forge/lib/cipher.cjs +193 -0
  84. package/dist/cjs/node_modules/node-forge/lib/cipher.cjs.map +1 -0
  85. package/dist/cjs/node_modules/node-forge/lib/cipherModes.cjs +604 -0
  86. package/dist/cjs/node_modules/node-forge/lib/cipherModes.cjs.map +1 -0
  87. package/dist/cjs/node_modules/node-forge/lib/des.cjs +1194 -0
  88. package/dist/cjs/node_modules/node-forge/lib/des.cjs.map +1 -0
  89. package/dist/cjs/node_modules/node-forge/lib/ed25519.cjs +1027 -0
  90. package/dist/cjs/node_modules/node-forge/lib/ed25519.cjs.map +1 -0
  91. package/dist/cjs/node_modules/node-forge/lib/forge.cjs +22 -0
  92. package/dist/cjs/node_modules/node-forge/lib/forge.cjs.map +1 -0
  93. package/dist/cjs/node_modules/node-forge/lib/hmac.cjs +114 -0
  94. package/dist/cjs/node_modules/node-forge/lib/hmac.cjs.map +1 -0
  95. package/dist/cjs/node_modules/node-forge/lib/index.cjs +73 -0
  96. package/dist/cjs/node_modules/node-forge/lib/index.cjs.map +1 -0
  97. package/dist/cjs/node_modules/node-forge/lib/jsbn.cjs +1263 -0
  98. package/dist/cjs/node_modules/node-forge/lib/jsbn.cjs.map +1 -0
  99. package/dist/cjs/node_modules/node-forge/lib/kem.cjs +153 -0
  100. package/dist/cjs/node_modules/node-forge/lib/kem.cjs.map +1 -0
  101. package/dist/cjs/node_modules/node-forge/lib/log.cjs +248 -0
  102. package/dist/cjs/node_modules/node-forge/lib/log.cjs.map +1 -0
  103. package/dist/cjs/node_modules/node-forge/lib/md.all.cjs +31 -0
  104. package/dist/cjs/node_modules/node-forge/lib/md.all.cjs.map +1 -0
  105. package/dist/cjs/node_modules/node-forge/lib/md.cjs +25 -0
  106. package/dist/cjs/node_modules/node-forge/lib/md.cjs.map +1 -0
  107. package/dist/cjs/node_modules/node-forge/lib/md5.cjs +331 -0
  108. package/dist/cjs/node_modules/node-forge/lib/md5.cjs.map +1 -0
  109. package/dist/cjs/node_modules/node-forge/lib/mgf.cjs +27 -0
  110. package/dist/cjs/node_modules/node-forge/lib/mgf.cjs.map +1 -0
  111. package/dist/cjs/node_modules/node-forge/lib/mgf1.cjs +51 -0
  112. package/dist/cjs/node_modules/node-forge/lib/mgf1.cjs.map +1 -0
  113. package/dist/cjs/node_modules/node-forge/lib/oids.cjs +160 -0
  114. package/dist/cjs/node_modules/node-forge/lib/oids.cjs.map +1 -0
  115. package/dist/cjs/node_modules/node-forge/lib/pbe.cjs +822 -0
  116. package/dist/cjs/node_modules/node-forge/lib/pbe.cjs.map +1 -0
  117. package/dist/cjs/node_modules/node-forge/lib/pbkdf2.cjs +132 -0
  118. package/dist/cjs/node_modules/node-forge/lib/pbkdf2.cjs.map +1 -0
  119. package/dist/cjs/node_modules/node-forge/lib/pem.cjs +182 -0
  120. package/dist/cjs/node_modules/node-forge/lib/pem.cjs.map +1 -0
  121. package/dist/cjs/node_modules/node-forge/lib/pkcs1.cjs +207 -0
  122. package/dist/cjs/node_modules/node-forge/lib/pkcs1.cjs.map +1 -0
  123. package/dist/cjs/node_modules/node-forge/lib/pkcs12.cjs +730 -0
  124. package/dist/cjs/node_modules/node-forge/lib/pkcs12.cjs.map +1 -0
  125. package/dist/cjs/node_modules/node-forge/lib/pkcs7.cjs +648 -0
  126. package/dist/cjs/node_modules/node-forge/lib/pkcs7.cjs.map +1 -0
  127. package/dist/cjs/node_modules/node-forge/lib/pkcs7asn1.cjs +412 -0
  128. package/dist/cjs/node_modules/node-forge/lib/pkcs7asn1.cjs.map +1 -0
  129. package/dist/cjs/node_modules/node-forge/lib/pki.cjs +108 -0
  130. package/dist/cjs/node_modules/node-forge/lib/pki.cjs.map +1 -0
  131. package/dist/cjs/node_modules/node-forge/lib/prime.cjs +200 -0
  132. package/dist/cjs/node_modules/node-forge/lib/prime.cjs.map +1 -0
  133. package/dist/cjs/node_modules/node-forge/lib/prng.cjs +297 -0
  134. package/dist/cjs/node_modules/node-forge/lib/prng.cjs.map +1 -0
  135. package/dist/cjs/node_modules/node-forge/lib/pss.cjs +148 -0
  136. package/dist/cjs/node_modules/node-forge/lib/pss.cjs.map +1 -0
  137. package/dist/cjs/node_modules/node-forge/lib/random.cjs +148 -0
  138. package/dist/cjs/node_modules/node-forge/lib/random.cjs.map +1 -0
  139. package/dist/cjs/node_modules/node-forge/lib/rc2.cjs +545 -0
  140. package/dist/cjs/node_modules/node-forge/lib/rc2.cjs.map +1 -0
  141. package/dist/cjs/node_modules/node-forge/lib/rsa.cjs +1306 -0
  142. package/dist/cjs/node_modules/node-forge/lib/rsa.cjs.map +1 -0
  143. package/dist/cjs/node_modules/node-forge/lib/sha1.cjs +237 -0
  144. package/dist/cjs/node_modules/node-forge/lib/sha1.cjs.map +1 -0
  145. package/dist/cjs/node_modules/node-forge/lib/sha256.cjs +274 -0
  146. package/dist/cjs/node_modules/node-forge/lib/sha256.cjs.map +1 -0
  147. package/dist/cjs/node_modules/node-forge/lib/sha512.cjs +420 -0
  148. package/dist/cjs/node_modules/node-forge/lib/sha512.cjs.map +1 -0
  149. package/dist/cjs/node_modules/node-forge/lib/ssh.cjs +201 -0
  150. package/dist/cjs/node_modules/node-forge/lib/ssh.cjs.map +1 -0
  151. package/dist/cjs/node_modules/node-forge/lib/tls.cjs +3662 -0
  152. package/dist/cjs/node_modules/node-forge/lib/tls.cjs.map +1 -0
  153. package/dist/cjs/node_modules/node-forge/lib/util.cjs +2124 -0
  154. package/dist/cjs/node_modules/node-forge/lib/util.cjs.map +1 -0
  155. package/dist/cjs/node_modules/node-forge/lib/x509.cjs +2171 -0
  156. package/dist/cjs/node_modules/node-forge/lib/x509.cjs.map +1 -0
  157. package/dist/cjs/node_modules/node-rsa/src/NodeRSA.cjs +341 -0
  158. package/dist/cjs/node_modules/node-rsa/src/NodeRSA.cjs.map +1 -0
  159. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/encryptEngines.cjs +26 -0
  160. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/encryptEngines.cjs.map +1 -0
  161. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/io.cjs +65 -0
  162. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/io.cjs.map +1 -0
  163. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/js.cjs +44 -0
  164. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/js.cjs.map +1 -0
  165. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/node12.cjs +49 -0
  166. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/node12.cjs.map +1 -0
  167. package/dist/cjs/node_modules/node-rsa/src/formats/components.cjs +55 -0
  168. package/dist/cjs/node_modules/node-rsa/src/formats/components.cjs.map +1 -0
  169. package/dist/cjs/node_modules/node-rsa/src/formats/formats.cjs +86 -0
  170. package/dist/cjs/node_modules/node-rsa/src/formats/formats.cjs.map +1 -0
  171. package/dist/cjs/node_modules/node-rsa/src/formats/openssh.cjs +177 -0
  172. package/dist/cjs/node_modules/node-rsa/src/formats/openssh.cjs.map +1 -0
  173. package/dist/cjs/node_modules/node-rsa/src/formats/pkcs1.cjs +104 -0
  174. package/dist/cjs/node_modules/node-rsa/src/formats/pkcs1.cjs.map +1 -0
  175. package/dist/cjs/node_modules/node-rsa/src/formats/pkcs8.cjs +131 -0
  176. package/dist/cjs/node_modules/node-rsa/src/formats/pkcs8.cjs.map +1 -0
  177. package/dist/cjs/node_modules/node-rsa/src/libs/jsbn.cjs +1347 -0
  178. package/dist/cjs/node_modules/node-rsa/src/libs/jsbn.cjs.map +1 -0
  179. package/dist/cjs/node_modules/node-rsa/src/libs/rsa.cjs +231 -0
  180. package/dist/cjs/node_modules/node-rsa/src/libs/rsa.cjs.map +1 -0
  181. package/dist/cjs/node_modules/node-rsa/src/schemes/oaep.cjs +123 -0
  182. package/dist/cjs/node_modules/node-rsa/src/schemes/oaep.cjs.map +1 -0
  183. package/dist/cjs/node_modules/node-rsa/src/schemes/pkcs1.cjs +175 -0
  184. package/dist/cjs/node_modules/node-rsa/src/schemes/pkcs1.cjs.map +1 -0
  185. package/dist/cjs/node_modules/node-rsa/src/schemes/pss.cjs +123 -0
  186. package/dist/cjs/node_modules/node-rsa/src/schemes/pss.cjs.map +1 -0
  187. package/dist/cjs/node_modules/node-rsa/src/schemes/schemes.cjs +28 -0
  188. package/dist/cjs/node_modules/node-rsa/src/schemes/schemes.cjs.map +1 -0
  189. package/dist/cjs/node_modules/node-rsa/src/utils.cjs +84 -0
  190. package/dist/cjs/node_modules/node-rsa/src/utils.cjs.map +1 -0
  191. package/dist/cjs/node_modules/pako/index.cjs +25 -0
  192. package/dist/cjs/node_modules/pako/index.cjs.map +1 -0
  193. package/dist/cjs/node_modules/pako/lib/deflate.cjs +311 -0
  194. package/dist/cjs/node_modules/pako/lib/deflate.cjs.map +1 -0
  195. package/dist/cjs/node_modules/pako/lib/inflate.cjs +317 -0
  196. package/dist/cjs/node_modules/pako/lib/inflate.cjs.map +1 -0
  197. package/dist/cjs/node_modules/pako/lib/utils/common.cjs +77 -0
  198. package/dist/cjs/node_modules/pako/lib/utils/common.cjs.map +1 -0
  199. package/dist/cjs/node_modules/pako/lib/utils/strings.cjs +131 -0
  200. package/dist/cjs/node_modules/pako/lib/utils/strings.cjs.map +1 -0
  201. package/dist/cjs/node_modules/pako/lib/zlib/adler32.cjs +29 -0
  202. package/dist/cjs/node_modules/pako/lib/zlib/adler32.cjs.map +1 -0
  203. package/dist/cjs/node_modules/pako/lib/zlib/constants.cjs +43 -0
  204. package/dist/cjs/node_modules/pako/lib/zlib/constants.cjs.map +1 -0
  205. package/dist/cjs/node_modules/pako/lib/zlib/crc32.cjs +31 -0
  206. package/dist/cjs/node_modules/pako/lib/zlib/crc32.cjs.map +1 -0
  207. package/dist/cjs/node_modules/pako/lib/zlib/deflate.cjs +889 -0
  208. package/dist/cjs/node_modules/pako/lib/zlib/deflate.cjs.map +1 -0
  209. package/dist/cjs/node_modules/pako/lib/zlib/gzheader.cjs +27 -0
  210. package/dist/cjs/node_modules/pako/lib/zlib/gzheader.cjs.map +1 -0
  211. package/dist/cjs/node_modules/pako/lib/zlib/inffast.cjs +227 -0
  212. package/dist/cjs/node_modules/pako/lib/zlib/inffast.cjs.map +1 -0
  213. package/dist/cjs/node_modules/pako/lib/zlib/inflate.cjs +1038 -0
  214. package/dist/cjs/node_modules/pako/lib/zlib/inflate.cjs.map +1 -0
  215. package/dist/cjs/node_modules/pako/lib/zlib/inftrees.cjs +278 -0
  216. package/dist/cjs/node_modules/pako/lib/zlib/inftrees.cjs.map +1 -0
  217. package/dist/cjs/node_modules/pako/lib/zlib/messages.cjs +25 -0
  218. package/dist/cjs/node_modules/pako/lib/zlib/messages.cjs.map +1 -0
  219. package/dist/cjs/node_modules/pako/lib/zlib/trees.cjs +626 -0
  220. package/dist/cjs/node_modules/pako/lib/zlib/trees.cjs.map +1 -0
  221. package/dist/cjs/node_modules/pako/lib/zlib/zstream.cjs +29 -0
  222. package/dist/cjs/node_modules/pako/lib/zlib/zstream.cjs.map +1 -0
  223. package/dist/cjs/node_modules/safer-buffer/safer.cjs +52 -0
  224. package/dist/cjs/node_modules/safer-buffer/safer.cjs.map +1 -0
  225. package/dist/cjs/node_modules/samlify/build/index.cjs +120 -0
  226. package/dist/cjs/node_modules/samlify/build/index.cjs.map +1 -0
  227. package/dist/cjs/node_modules/samlify/build/src/api.cjs +36 -0
  228. package/dist/cjs/node_modules/samlify/build/src/api.cjs.map +1 -0
  229. package/dist/cjs/node_modules/samlify/build/src/binding-post.cjs +507 -0
  230. package/dist/cjs/node_modules/samlify/build/src/binding-post.cjs.map +1 -0
  231. package/dist/cjs/node_modules/samlify/build/src/binding-redirect.cjs +342 -0
  232. package/dist/cjs/node_modules/samlify/build/src/binding-redirect.cjs.map +1 -0
  233. package/dist/cjs/node_modules/samlify/build/src/binding-simplesign.cjs +361 -0
  234. package/dist/cjs/node_modules/samlify/build/src/binding-simplesign.cjs.map +1 -0
  235. package/dist/cjs/node_modules/samlify/build/src/entity-idp.cjs +282 -0
  236. package/dist/cjs/node_modules/samlify/build/src/entity-idp.cjs.map +1 -0
  237. package/dist/cjs/node_modules/samlify/build/src/entity-sp.cjs +145 -0
  238. package/dist/cjs/node_modules/samlify/build/src/entity-sp.cjs.map +1 -0
  239. package/dist/cjs/node_modules/samlify/build/src/entity.cjs +256 -0
  240. package/dist/cjs/node_modules/samlify/build/src/entity.cjs.map +1 -0
  241. package/dist/cjs/node_modules/samlify/build/src/extractor.cjs +355 -0
  242. package/dist/cjs/node_modules/samlify/build/src/extractor.cjs.map +1 -0
  243. package/dist/cjs/node_modules/samlify/build/src/flow.cjs +392 -0
  244. package/dist/cjs/node_modules/samlify/build/src/flow.cjs.map +1 -0
  245. package/dist/cjs/node_modules/samlify/build/src/libsaml.cjs +547 -0
  246. package/dist/cjs/node_modules/samlify/build/src/libsaml.cjs.map +1 -0
  247. package/dist/cjs/node_modules/samlify/build/src/metadata-idp.cjs +174 -0
  248. package/dist/cjs/node_modules/samlify/build/src/metadata-idp.cjs.map +1 -0
  249. package/dist/cjs/node_modules/samlify/build/src/metadata-sp.cjs +217 -0
  250. package/dist/cjs/node_modules/samlify/build/src/metadata-sp.cjs.map +1 -0
  251. package/dist/cjs/node_modules/samlify/build/src/metadata.cjs +203 -0
  252. package/dist/cjs/node_modules/samlify/build/src/metadata.cjs.map +1 -0
  253. package/dist/cjs/node_modules/samlify/build/src/urn.cjs +228 -0
  254. package/dist/cjs/node_modules/samlify/build/src/urn.cjs.map +1 -0
  255. package/dist/cjs/node_modules/samlify/build/src/utility.cjs +280 -0
  256. package/dist/cjs/node_modules/samlify/build/src/utility.cjs.map +1 -0
  257. package/dist/cjs/node_modules/samlify/build/src/validator.cjs +56 -0
  258. package/dist/cjs/node_modules/samlify/build/src/validator.cjs.map +1 -0
  259. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/index.cjs +50 -0
  260. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/index.cjs.map +1 -0
  261. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/md5.cjs +25 -0
  262. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/md5.cjs.map +1 -0
  263. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/nil.cjs +18 -0
  264. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/nil.cjs.map +1 -0
  265. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/parse.cjs +42 -0
  266. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/parse.cjs.map +1 -0
  267. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/regex.cjs +18 -0
  268. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/regex.cjs.map +1 -0
  269. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/rng.cjs +28 -0
  270. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/rng.cjs.map +1 -0
  271. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/sha1.cjs +25 -0
  272. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/sha1.cjs.map +1 -0
  273. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/stringify.cjs +27 -0
  274. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/stringify.cjs.map +1 -0
  275. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v1.cjs +69 -0
  276. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v1.cjs.map +1 -0
  277. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v3.cjs +23 -0
  278. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v3.cjs.map +1 -0
  279. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v35.cjs +54 -0
  280. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v35.cjs.map +1 -0
  281. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v4.cjs +34 -0
  282. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v4.cjs.map +1 -0
  283. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v5.cjs +23 -0
  284. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v5.cjs.map +1 -0
  285. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/validate.cjs +23 -0
  286. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/validate.cjs.map +1 -0
  287. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/version.cjs +24 -0
  288. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/version.cjs.map +1 -0
  289. package/dist/cjs/node_modules/xml/lib/escapeForXML.cjs +27 -0
  290. package/dist/cjs/node_modules/xml/lib/escapeForXML.cjs.map +1 -0
  291. package/dist/cjs/node_modules/xml/lib/xml.cjs +186 -0
  292. package/dist/cjs/node_modules/xml/lib/xml.cjs.map +1 -0
  293. package/dist/cjs/node_modules/xml-crypto/lib/c14n-canonicalization.cjs +202 -0
  294. package/dist/cjs/node_modules/xml-crypto/lib/c14n-canonicalization.cjs.map +1 -0
  295. package/dist/cjs/node_modules/xml-crypto/lib/enveloped-signature.cjs +52 -0
  296. package/dist/cjs/node_modules/xml-crypto/lib/enveloped-signature.cjs.map +1 -0
  297. package/dist/cjs/node_modules/xml-crypto/lib/exclusive-canonicalization.cjs +223 -0
  298. package/dist/cjs/node_modules/xml-crypto/lib/exclusive-canonicalization.cjs.map +1 -0
  299. package/dist/cjs/node_modules/xml-crypto/lib/hash-algorithms.cjs +56 -0
  300. package/dist/cjs/node_modules/xml-crypto/lib/hash-algorithms.cjs.map +1 -0
  301. package/dist/cjs/node_modules/xml-crypto/lib/index.cjs +73 -0
  302. package/dist/cjs/node_modules/xml-crypto/lib/index.cjs.map +1 -0
  303. package/dist/cjs/node_modules/xml-crypto/lib/signature-algorithms.cjs +91 -0
  304. package/dist/cjs/node_modules/xml-crypto/lib/signature-algorithms.cjs.map +1 -0
  305. package/dist/cjs/node_modules/xml-crypto/lib/signed-xml.cjs +695 -0
  306. package/dist/cjs/node_modules/xml-crypto/lib/signed-xml.cjs.map +1 -0
  307. package/dist/cjs/node_modules/xml-crypto/lib/types.cjs +58 -0
  308. package/dist/cjs/node_modules/xml-crypto/lib/types.cjs.map +1 -0
  309. package/dist/cjs/node_modules/xml-crypto/lib/utils.cjs +213 -0
  310. package/dist/cjs/node_modules/xml-crypto/lib/utils.cjs.map +1 -0
  311. package/dist/cjs/node_modules/xml-crypto/node_modules/xpath/xpath.cjs +3445 -0
  312. package/dist/cjs/node_modules/xml-crypto/node_modules/xpath/xpath.cjs.map +1 -0
  313. package/dist/cjs/node_modules/xml-escape/index.cjs +30 -0
  314. package/dist/cjs/node_modules/xml-escape/index.cjs.map +1 -0
  315. package/dist/cjs/node_modules/xpath/xpath.cjs +3410 -0
  316. package/dist/cjs/node_modules/xpath/xpath.cjs.map +1 -0
  317. package/dist/cjs/node_modules/zod/v4/classic/errors.cjs +31 -0
  318. package/dist/cjs/node_modules/zod/v4/classic/errors.cjs.map +1 -0
  319. package/dist/cjs/node_modules/zod/v4/classic/iso.cjs +42 -0
  320. package/dist/cjs/node_modules/zod/v4/classic/iso.cjs.map +1 -0
  321. package/dist/cjs/node_modules/zod/v4/classic/parse.cjs +32 -0
  322. package/dist/cjs/node_modules/zod/v4/classic/parse.cjs.map +1 -0
  323. package/dist/cjs/node_modules/zod/v4/classic/schemas.cjs +527 -0
  324. package/dist/cjs/node_modules/zod/v4/classic/schemas.cjs.map +1 -0
  325. package/dist/cjs/node_modules/zod/v4/core/api.cjs +443 -0
  326. package/dist/cjs/node_modules/zod/v4/core/api.cjs.map +1 -0
  327. package/dist/cjs/node_modules/zod/v4/core/checks.cjs +238 -0
  328. package/dist/cjs/node_modules/zod/v4/core/checks.cjs.map +1 -0
  329. package/dist/cjs/node_modules/zod/v4/core/core.cjs +63 -0
  330. package/dist/cjs/node_modules/zod/v4/core/core.cjs.map +1 -0
  331. package/dist/cjs/node_modules/zod/v4/core/doc.cjs +36 -0
  332. package/dist/cjs/node_modules/zod/v4/core/doc.cjs.map +1 -0
  333. package/dist/cjs/node_modules/zod/v4/core/errors.cjs +67 -0
  334. package/dist/cjs/node_modules/zod/v4/core/errors.cjs.map +1 -0
  335. package/dist/cjs/node_modules/zod/v4/core/parse.cjs +124 -0
  336. package/dist/cjs/node_modules/zod/v4/core/parse.cjs.map +1 -0
  337. package/dist/cjs/node_modules/zod/v4/core/regexes.cjs +87 -0
  338. package/dist/cjs/node_modules/zod/v4/core/regexes.cjs.map +1 -0
  339. package/dist/cjs/node_modules/zod/v4/core/registries.cjs +55 -0
  340. package/dist/cjs/node_modules/zod/v4/core/registries.cjs.map +1 -0
  341. package/dist/cjs/node_modules/zod/v4/core/schemas.cjs +1115 -0
  342. package/dist/cjs/node_modules/zod/v4/core/schemas.cjs.map +1 -0
  343. package/dist/cjs/node_modules/zod/v4/core/util.cjs +333 -0
  344. package/dist/cjs/node_modules/zod/v4/core/util.cjs.map +1 -0
  345. package/dist/cjs/node_modules/zod/v4/core/versions.cjs +12 -0
  346. package/dist/cjs/node_modules/zod/v4/core/versions.cjs.map +1 -0
  347. package/dist/cjs/schemas/user.schema.cjs +17 -0
  348. package/dist/cjs/schemas/user.schema.cjs.map +1 -1
  349. package/dist/cjs/services/dictionary.service.cjs +7 -31
  350. package/dist/cjs/services/dictionary.service.cjs.map +1 -1
  351. package/dist/cjs/services/email.service.cjs +13 -0
  352. package/dist/cjs/services/email.service.cjs.map +1 -1
  353. package/dist/cjs/types/user.types.cjs.map +1 -1
  354. package/dist/cjs/utils/auth/getAuth.cjs +60 -26
  355. package/dist/cjs/utils/auth/getAuth.cjs.map +1 -1
  356. package/dist/cjs/utils/mongoDB/connectDB.cjs.map +1 -1
  357. package/dist/esm/_virtual/rolldown_runtime.mjs +43 -0
  358. package/dist/esm/controllers/dictionary.controller.mjs +65 -42
  359. package/dist/esm/controllers/dictionary.controller.mjs.map +1 -1
  360. package/dist/esm/emails/MagicLinkEmail.mjs +239 -0
  361. package/dist/esm/emails/MagicLinkEmail.mjs.map +1 -0
  362. package/dist/esm/index.mjs +1 -1
  363. package/dist/esm/index.mjs.map +1 -1
  364. package/dist/esm/node_modules/@authenio/xml-encryption/lib/index.mjs +13 -0
  365. package/dist/esm/node_modules/@authenio/xml-encryption/lib/index.mjs.map +1 -0
  366. package/dist/esm/node_modules/@authenio/xml-encryption/lib/templates/encrypted-key.tpl.xml.mjs +22 -0
  367. package/dist/esm/node_modules/@authenio/xml-encryption/lib/templates/encrypted-key.tpl.xml.mjs.map +1 -0
  368. package/dist/esm/node_modules/@authenio/xml-encryption/lib/templates/keyinfo.tpl.xml.mjs +28 -0
  369. package/dist/esm/node_modules/@authenio/xml-encryption/lib/templates/keyinfo.tpl.xml.mjs.map +1 -0
  370. package/dist/esm/node_modules/@authenio/xml-encryption/lib/utils.mjs +35 -0
  371. package/dist/esm/node_modules/@authenio/xml-encryption/lib/utils.mjs.map +1 -0
  372. package/dist/esm/node_modules/@authenio/xml-encryption/lib/xmlenc.mjs +228 -0
  373. package/dist/esm/node_modules/@authenio/xml-encryption/lib/xmlenc.mjs.map +1 -0
  374. package/dist/esm/node_modules/@better-auth/sso/dist/index.mjs +1210 -0
  375. package/dist/esm/node_modules/@better-auth/sso/dist/index.mjs.map +1 -0
  376. package/dist/esm/node_modules/@better-fetch/fetch/dist/index.mjs +359 -0
  377. package/dist/esm/node_modules/@better-fetch/fetch/dist/index.mjs.map +1 -0
  378. package/dist/esm/node_modules/@xmldom/is-dom-node/dist/index.mjs +86 -0
  379. package/dist/esm/node_modules/@xmldom/is-dom-node/dist/index.mjs.map +1 -0
  380. package/dist/esm/node_modules/@xmldom/xmldom/lib/conventions.mjs +107 -0
  381. package/dist/esm/node_modules/@xmldom/xmldom/lib/conventions.mjs.map +1 -0
  382. package/dist/esm/node_modules/@xmldom/xmldom/lib/dom-parser.mjs +245 -0
  383. package/dist/esm/node_modules/@xmldom/xmldom/lib/dom-parser.mjs.map +1 -0
  384. package/dist/esm/node_modules/@xmldom/xmldom/lib/dom.mjs +1306 -0
  385. package/dist/esm/node_modules/@xmldom/xmldom/lib/dom.mjs.map +1 -0
  386. package/dist/esm/node_modules/@xmldom/xmldom/lib/entities.mjs +2173 -0
  387. package/dist/esm/node_modules/@xmldom/xmldom/lib/entities.mjs.map +1 -0
  388. package/dist/esm/node_modules/@xmldom/xmldom/lib/index.mjs +17 -0
  389. package/dist/esm/node_modules/@xmldom/xmldom/lib/index.mjs.map +1 -0
  390. package/dist/esm/node_modules/@xmldom/xmldom/lib/sax.mjs +496 -0
  391. package/dist/esm/node_modules/@xmldom/xmldom/lib/sax.mjs.map +1 -0
  392. package/dist/esm/node_modules/asn1/lib/ber/errors.mjs +17 -0
  393. package/dist/esm/node_modules/asn1/lib/ber/errors.mjs.map +1 -0
  394. package/dist/esm/node_modules/asn1/lib/ber/index.mjs +25 -0
  395. package/dist/esm/node_modules/asn1/lib/ber/index.mjs.map +1 -0
  396. package/dist/esm/node_modules/asn1/lib/ber/reader.mjs +164 -0
  397. package/dist/esm/node_modules/asn1/lib/ber/reader.mjs.map +1 -0
  398. package/dist/esm/node_modules/asn1/lib/ber/types.mjs +44 -0
  399. package/dist/esm/node_modules/asn1/lib/ber/types.mjs.map +1 -0
  400. package/dist/esm/node_modules/asn1/lib/ber/writer.mjs +220 -0
  401. package/dist/esm/node_modules/asn1/lib/ber/writer.mjs.map +1 -0
  402. package/dist/esm/node_modules/asn1/lib/index.mjs +18 -0
  403. package/dist/esm/node_modules/asn1/lib/index.mjs.map +1 -0
  404. package/dist/esm/node_modules/available-typed-arrays/index.mjs +20 -0
  405. package/dist/esm/node_modules/available-typed-arrays/index.mjs.map +1 -0
  406. package/dist/esm/node_modules/base64-js/index.mjs +95 -0
  407. package/dist/esm/node_modules/base64-js/index.mjs.map +1 -0
  408. package/dist/esm/node_modules/buffer/index.mjs +1114 -0
  409. package/dist/esm/node_modules/buffer/index.mjs.map +1 -0
  410. package/dist/esm/node_modules/call-bind/index.mjs +26 -0
  411. package/dist/esm/node_modules/call-bind/index.mjs.map +1 -0
  412. package/dist/esm/node_modules/call-bind-apply-helpers/actualApply.mjs +21 -0
  413. package/dist/esm/node_modules/call-bind-apply-helpers/actualApply.mjs.map +1 -0
  414. package/dist/esm/node_modules/call-bind-apply-helpers/applyBind.mjs +21 -0
  415. package/dist/esm/node_modules/call-bind-apply-helpers/applyBind.mjs.map +1 -0
  416. package/dist/esm/node_modules/call-bind-apply-helpers/functionApply.mjs +13 -0
  417. package/dist/esm/node_modules/call-bind-apply-helpers/functionApply.mjs.map +1 -0
  418. package/dist/esm/node_modules/call-bind-apply-helpers/functionCall.mjs +13 -0
  419. package/dist/esm/node_modules/call-bind-apply-helpers/functionCall.mjs.map +1 -0
  420. package/dist/esm/node_modules/call-bind-apply-helpers/index.mjs +24 -0
  421. package/dist/esm/node_modules/call-bind-apply-helpers/index.mjs.map +1 -0
  422. package/dist/esm/node_modules/call-bind-apply-helpers/reflectApply.mjs +13 -0
  423. package/dist/esm/node_modules/call-bind-apply-helpers/reflectApply.mjs.map +1 -0
  424. package/dist/esm/node_modules/call-bound/index.mjs +23 -0
  425. package/dist/esm/node_modules/call-bound/index.mjs.map +1 -0
  426. package/dist/esm/node_modules/camelcase/index.mjs +75 -0
  427. package/dist/esm/node_modules/camelcase/index.mjs.map +1 -0
  428. package/dist/esm/node_modules/define-data-property/index.mjs +41 -0
  429. package/dist/esm/node_modules/define-data-property/index.mjs.map +1 -0
  430. package/dist/esm/node_modules/dunder-proto/get.mjs +28 -0
  431. package/dist/esm/node_modules/dunder-proto/get.mjs.map +1 -0
  432. package/dist/esm/node_modules/es-define-property/index.mjs +19 -0
  433. package/dist/esm/node_modules/es-define-property/index.mjs.map +1 -0
  434. package/dist/esm/node_modules/es-errors/eval.mjs +13 -0
  435. package/dist/esm/node_modules/es-errors/eval.mjs.map +1 -0
  436. package/dist/esm/node_modules/es-errors/index.mjs +13 -0
  437. package/dist/esm/node_modules/es-errors/index.mjs.map +1 -0
  438. package/dist/esm/node_modules/es-errors/range.mjs +13 -0
  439. package/dist/esm/node_modules/es-errors/range.mjs.map +1 -0
  440. package/dist/esm/node_modules/es-errors/ref.mjs +13 -0
  441. package/dist/esm/node_modules/es-errors/ref.mjs.map +1 -0
  442. package/dist/esm/node_modules/es-errors/syntax.mjs +13 -0
  443. package/dist/esm/node_modules/es-errors/syntax.mjs.map +1 -0
  444. package/dist/esm/node_modules/es-errors/type.mjs +13 -0
  445. package/dist/esm/node_modules/es-errors/type.mjs.map +1 -0
  446. package/dist/esm/node_modules/es-errors/uri.mjs +13 -0
  447. package/dist/esm/node_modules/es-errors/uri.mjs.map +1 -0
  448. package/dist/esm/node_modules/es-object-atoms/index.mjs +13 -0
  449. package/dist/esm/node_modules/es-object-atoms/index.mjs.map +1 -0
  450. package/dist/esm/node_modules/escape-html/index.mjs +68 -0
  451. package/dist/esm/node_modules/escape-html/index.mjs.map +1 -0
  452. package/dist/esm/node_modules/fast-xml-parser/src/fxp.mjs +8 -0
  453. package/dist/esm/node_modules/fast-xml-parser/src/fxp.mjs.map +1 -0
  454. package/dist/esm/node_modules/fast-xml-parser/src/util.mjs +26 -0
  455. package/dist/esm/node_modules/fast-xml-parser/src/util.mjs.map +1 -0
  456. package/dist/esm/node_modules/fast-xml-parser/src/validator.mjs +243 -0
  457. package/dist/esm/node_modules/fast-xml-parser/src/validator.mjs.map +1 -0
  458. package/dist/esm/node_modules/for-each/index.mjs +43 -0
  459. package/dist/esm/node_modules/for-each/index.mjs.map +1 -0
  460. package/dist/esm/node_modules/function-bind/implementation.mjs +59 -0
  461. package/dist/esm/node_modules/function-bind/implementation.mjs.map +1 -0
  462. package/dist/esm/node_modules/function-bind/index.mjs +14 -0
  463. package/dist/esm/node_modules/function-bind/index.mjs.map +1 -0
  464. package/dist/esm/node_modules/generator-function/index.mjs +14 -0
  465. package/dist/esm/node_modules/generator-function/index.mjs.map +1 -0
  466. package/dist/esm/node_modules/get-intrinsic/index.mjs +358 -0
  467. package/dist/esm/node_modules/get-intrinsic/index.mjs.map +1 -0
  468. package/dist/esm/node_modules/get-proto/Object.getPrototypeOf.mjs +15 -0
  469. package/dist/esm/node_modules/get-proto/Object.getPrototypeOf.mjs.map +1 -0
  470. package/dist/esm/node_modules/get-proto/Reflect.getPrototypeOf.mjs +13 -0
  471. package/dist/esm/node_modules/get-proto/Reflect.getPrototypeOf.mjs.map +1 -0
  472. package/dist/esm/node_modules/get-proto/index.mjs +26 -0
  473. package/dist/esm/node_modules/get-proto/index.mjs.map +1 -0
  474. package/dist/esm/node_modules/gopd/gOPD.mjs +13 -0
  475. package/dist/esm/node_modules/gopd/gOPD.mjs.map +1 -0
  476. package/dist/esm/node_modules/gopd/index.mjs +20 -0
  477. package/dist/esm/node_modules/gopd/index.mjs.map +1 -0
  478. package/dist/esm/node_modules/has-property-descriptors/index.mjs +25 -0
  479. package/dist/esm/node_modules/has-property-descriptors/index.mjs.map +1 -0
  480. package/dist/esm/node_modules/has-symbols/index.mjs +22 -0
  481. package/dist/esm/node_modules/has-symbols/index.mjs.map +1 -0
  482. package/dist/esm/node_modules/has-symbols/shams.mjs +36 -0
  483. package/dist/esm/node_modules/has-symbols/shams.mjs.map +1 -0
  484. package/dist/esm/node_modules/has-tostringtag/shams.mjs +17 -0
  485. package/dist/esm/node_modules/has-tostringtag/shams.mjs.map +1 -0
  486. package/dist/esm/node_modules/hasown/index.mjs +17 -0
  487. package/dist/esm/node_modules/hasown/index.mjs.map +1 -0
  488. package/dist/esm/node_modules/ieee754/index.mjs +80 -0
  489. package/dist/esm/node_modules/ieee754/index.mjs.map +1 -0
  490. package/dist/esm/node_modules/inherits/inherits_browser.mjs +31 -0
  491. package/dist/esm/node_modules/inherits/inherits_browser.mjs.map +1 -0
  492. package/dist/esm/node_modules/is-arguments/index.mjs +31 -0
  493. package/dist/esm/node_modules/is-arguments/index.mjs.map +1 -0
  494. package/dist/esm/node_modules/is-callable/index.mjs +87 -0
  495. package/dist/esm/node_modules/is-callable/index.mjs.map +1 -0
  496. package/dist/esm/node_modules/is-generator-function/index.mjs +32 -0
  497. package/dist/esm/node_modules/is-generator-function/index.mjs.map +1 -0
  498. package/dist/esm/node_modules/is-regex/index.mjs +58 -0
  499. package/dist/esm/node_modules/is-regex/index.mjs.map +1 -0
  500. package/dist/esm/node_modules/is-typed-array/index.mjs +17 -0
  501. package/dist/esm/node_modules/is-typed-array/index.mjs.map +1 -0
  502. package/dist/esm/node_modules/jose/dist/webapi/lib/base64.mjs +12 -0
  503. package/dist/esm/node_modules/jose/dist/webapi/lib/base64.mjs.map +1 -0
  504. package/dist/esm/node_modules/jose/dist/webapi/lib/buffer_utils.mjs +8 -0
  505. package/dist/esm/node_modules/jose/dist/webapi/lib/buffer_utils.mjs.map +1 -0
  506. package/dist/esm/node_modules/jose/dist/webapi/lib/is_object.mjs +15 -0
  507. package/dist/esm/node_modules/jose/dist/webapi/lib/is_object.mjs.map +1 -0
  508. package/dist/esm/node_modules/jose/dist/webapi/util/base64url.mjs +19 -0
  509. package/dist/esm/node_modules/jose/dist/webapi/util/base64url.mjs.map +1 -0
  510. package/dist/esm/node_modules/jose/dist/webapi/util/decode_jwt.mjs +31 -0
  511. package/dist/esm/node_modules/jose/dist/webapi/util/decode_jwt.mjs.map +1 -0
  512. package/dist/esm/node_modules/jose/dist/webapi/util/errors.mjs +26 -0
  513. package/dist/esm/node_modules/jose/dist/webapi/util/errors.mjs.map +1 -0
  514. package/dist/esm/node_modules/math-intrinsics/abs.mjs +13 -0
  515. package/dist/esm/node_modules/math-intrinsics/abs.mjs.map +1 -0
  516. package/dist/esm/node_modules/math-intrinsics/floor.mjs +13 -0
  517. package/dist/esm/node_modules/math-intrinsics/floor.mjs.map +1 -0
  518. package/dist/esm/node_modules/math-intrinsics/isNaN.mjs +15 -0
  519. package/dist/esm/node_modules/math-intrinsics/isNaN.mjs.map +1 -0
  520. package/dist/esm/node_modules/math-intrinsics/max.mjs +13 -0
  521. package/dist/esm/node_modules/math-intrinsics/max.mjs.map +1 -0
  522. package/dist/esm/node_modules/math-intrinsics/min.mjs +13 -0
  523. package/dist/esm/node_modules/math-intrinsics/min.mjs.map +1 -0
  524. package/dist/esm/node_modules/math-intrinsics/pow.mjs +13 -0
  525. package/dist/esm/node_modules/math-intrinsics/pow.mjs.map +1 -0
  526. package/dist/esm/node_modules/math-intrinsics/round.mjs +13 -0
  527. package/dist/esm/node_modules/math-intrinsics/round.mjs.map +1 -0
  528. package/dist/esm/node_modules/math-intrinsics/sign.mjs +18 -0
  529. package/dist/esm/node_modules/math-intrinsics/sign.mjs.map +1 -0
  530. package/dist/esm/node_modules/node-forge/lib/aes.mjs +601 -0
  531. package/dist/esm/node_modules/node-forge/lib/aes.mjs.map +1 -0
  532. package/dist/esm/node_modules/node-forge/lib/aesCipherSuites.mjs +199 -0
  533. package/dist/esm/node_modules/node-forge/lib/aesCipherSuites.mjs.map +1 -0
  534. package/dist/esm/node_modules/node-forge/lib/asn1-validator.mjs +80 -0
  535. package/dist/esm/node_modules/node-forge/lib/asn1-validator.mjs.map +1 -0
  536. package/dist/esm/node_modules/node-forge/lib/asn1.mjs +942 -0
  537. package/dist/esm/node_modules/node-forge/lib/asn1.mjs.map +1 -0
  538. package/dist/esm/node_modules/node-forge/lib/baseN.mjs +141 -0
  539. package/dist/esm/node_modules/node-forge/lib/baseN.mjs.map +1 -0
  540. package/dist/esm/node_modules/node-forge/lib/cipher.mjs +190 -0
  541. package/dist/esm/node_modules/node-forge/lib/cipher.mjs.map +1 -0
  542. package/dist/esm/node_modules/node-forge/lib/cipherModes.mjs +601 -0
  543. package/dist/esm/node_modules/node-forge/lib/cipherModes.mjs.map +1 -0
  544. package/dist/esm/node_modules/node-forge/lib/des.mjs +1191 -0
  545. package/dist/esm/node_modules/node-forge/lib/des.mjs.map +1 -0
  546. package/dist/esm/node_modules/node-forge/lib/ed25519.mjs +1024 -0
  547. package/dist/esm/node_modules/node-forge/lib/ed25519.mjs.map +1 -0
  548. package/dist/esm/node_modules/node-forge/lib/forge.mjs +19 -0
  549. package/dist/esm/node_modules/node-forge/lib/forge.mjs.map +1 -0
  550. package/dist/esm/node_modules/node-forge/lib/hmac.mjs +111 -0
  551. package/dist/esm/node_modules/node-forge/lib/hmac.mjs.map +1 -0
  552. package/dist/esm/node_modules/node-forge/lib/index.mjs +70 -0
  553. package/dist/esm/node_modules/node-forge/lib/index.mjs.map +1 -0
  554. package/dist/esm/node_modules/node-forge/lib/jsbn.mjs +1260 -0
  555. package/dist/esm/node_modules/node-forge/lib/jsbn.mjs.map +1 -0
  556. package/dist/esm/node_modules/node-forge/lib/kem.mjs +150 -0
  557. package/dist/esm/node_modules/node-forge/lib/kem.mjs.map +1 -0
  558. package/dist/esm/node_modules/node-forge/lib/log.mjs +245 -0
  559. package/dist/esm/node_modules/node-forge/lib/log.mjs.map +1 -0
  560. package/dist/esm/node_modules/node-forge/lib/md.all.mjs +28 -0
  561. package/dist/esm/node_modules/node-forge/lib/md.all.mjs.map +1 -0
  562. package/dist/esm/node_modules/node-forge/lib/md.mjs +22 -0
  563. package/dist/esm/node_modules/node-forge/lib/md.mjs.map +1 -0
  564. package/dist/esm/node_modules/node-forge/lib/md5.mjs +328 -0
  565. package/dist/esm/node_modules/node-forge/lib/md5.mjs.map +1 -0
  566. package/dist/esm/node_modules/node-forge/lib/mgf.mjs +24 -0
  567. package/dist/esm/node_modules/node-forge/lib/mgf.mjs.map +1 -0
  568. package/dist/esm/node_modules/node-forge/lib/mgf1.mjs +48 -0
  569. package/dist/esm/node_modules/node-forge/lib/mgf1.mjs.map +1 -0
  570. package/dist/esm/node_modules/node-forge/lib/oids.mjs +157 -0
  571. package/dist/esm/node_modules/node-forge/lib/oids.mjs.map +1 -0
  572. package/dist/esm/node_modules/node-forge/lib/pbe.mjs +819 -0
  573. package/dist/esm/node_modules/node-forge/lib/pbe.mjs.map +1 -0
  574. package/dist/esm/node_modules/node-forge/lib/pbkdf2.mjs +130 -0
  575. package/dist/esm/node_modules/node-forge/lib/pbkdf2.mjs.map +1 -0
  576. package/dist/esm/node_modules/node-forge/lib/pem.mjs +179 -0
  577. package/dist/esm/node_modules/node-forge/lib/pem.mjs.map +1 -0
  578. package/dist/esm/node_modules/node-forge/lib/pkcs1.mjs +204 -0
  579. package/dist/esm/node_modules/node-forge/lib/pkcs1.mjs.map +1 -0
  580. package/dist/esm/node_modules/node-forge/lib/pkcs12.mjs +727 -0
  581. package/dist/esm/node_modules/node-forge/lib/pkcs12.mjs.map +1 -0
  582. package/dist/esm/node_modules/node-forge/lib/pkcs7.mjs +645 -0
  583. package/dist/esm/node_modules/node-forge/lib/pkcs7.mjs.map +1 -0
  584. package/dist/esm/node_modules/node-forge/lib/pkcs7asn1.mjs +409 -0
  585. package/dist/esm/node_modules/node-forge/lib/pkcs7asn1.mjs.map +1 -0
  586. package/dist/esm/node_modules/node-forge/lib/pki.mjs +105 -0
  587. package/dist/esm/node_modules/node-forge/lib/pki.mjs.map +1 -0
  588. package/dist/esm/node_modules/node-forge/lib/prime.mjs +197 -0
  589. package/dist/esm/node_modules/node-forge/lib/prime.mjs.map +1 -0
  590. package/dist/esm/node_modules/node-forge/lib/prng.mjs +295 -0
  591. package/dist/esm/node_modules/node-forge/lib/prng.mjs.map +1 -0
  592. package/dist/esm/node_modules/node-forge/lib/pss.mjs +145 -0
  593. package/dist/esm/node_modules/node-forge/lib/pss.mjs.map +1 -0
  594. package/dist/esm/node_modules/node-forge/lib/random.mjs +145 -0
  595. package/dist/esm/node_modules/node-forge/lib/random.mjs.map +1 -0
  596. package/dist/esm/node_modules/node-forge/lib/rc2.mjs +542 -0
  597. package/dist/esm/node_modules/node-forge/lib/rc2.mjs.map +1 -0
  598. package/dist/esm/node_modules/node-forge/lib/rsa.mjs +1304 -0
  599. package/dist/esm/node_modules/node-forge/lib/rsa.mjs.map +1 -0
  600. package/dist/esm/node_modules/node-forge/lib/sha1.mjs +234 -0
  601. package/dist/esm/node_modules/node-forge/lib/sha1.mjs.map +1 -0
  602. package/dist/esm/node_modules/node-forge/lib/sha256.mjs +271 -0
  603. package/dist/esm/node_modules/node-forge/lib/sha256.mjs.map +1 -0
  604. package/dist/esm/node_modules/node-forge/lib/sha512.mjs +417 -0
  605. package/dist/esm/node_modules/node-forge/lib/sha512.mjs.map +1 -0
  606. package/dist/esm/node_modules/node-forge/lib/ssh.mjs +198 -0
  607. package/dist/esm/node_modules/node-forge/lib/ssh.mjs.map +1 -0
  608. package/dist/esm/node_modules/node-forge/lib/tls.mjs +3659 -0
  609. package/dist/esm/node_modules/node-forge/lib/tls.mjs.map +1 -0
  610. package/dist/esm/node_modules/node-forge/lib/util.mjs +2121 -0
  611. package/dist/esm/node_modules/node-forge/lib/util.mjs.map +1 -0
  612. package/dist/esm/node_modules/node-forge/lib/x509.mjs +2168 -0
  613. package/dist/esm/node_modules/node-forge/lib/x509.mjs.map +1 -0
  614. package/dist/esm/node_modules/node-forge/lib.mjs +10 -0
  615. package/dist/esm/node_modules/node-forge/lib.mjs.map +1 -0
  616. package/dist/esm/node_modules/node-rsa/src/NodeRSA.mjs +338 -0
  617. package/dist/esm/node_modules/node-rsa/src/NodeRSA.mjs.map +1 -0
  618. package/dist/esm/node_modules/node-rsa/src/encryptEngines/encryptEngines.mjs +23 -0
  619. package/dist/esm/node_modules/node-rsa/src/encryptEngines/encryptEngines.mjs.map +1 -0
  620. package/dist/esm/node_modules/node-rsa/src/encryptEngines/io.mjs +62 -0
  621. package/dist/esm/node_modules/node-rsa/src/encryptEngines/io.mjs.map +1 -0
  622. package/dist/esm/node_modules/node-rsa/src/encryptEngines/js.mjs +41 -0
  623. package/dist/esm/node_modules/node-rsa/src/encryptEngines/js.mjs.map +1 -0
  624. package/dist/esm/node_modules/node-rsa/src/encryptEngines/node12.mjs +46 -0
  625. package/dist/esm/node_modules/node-rsa/src/encryptEngines/node12.mjs.map +1 -0
  626. package/dist/esm/node_modules/node-rsa/src/formats/components.mjs +52 -0
  627. package/dist/esm/node_modules/node-rsa/src/formats/components.mjs.map +1 -0
  628. package/dist/esm/node_modules/node-rsa/src/formats/formats.mjs +83 -0
  629. package/dist/esm/node_modules/node-rsa/src/formats/formats.mjs.map +1 -0
  630. package/dist/esm/node_modules/node-rsa/src/formats/openssh.mjs +174 -0
  631. package/dist/esm/node_modules/node-rsa/src/formats/openssh.mjs.map +1 -0
  632. package/dist/esm/node_modules/node-rsa/src/formats/pkcs1.mjs +101 -0
  633. package/dist/esm/node_modules/node-rsa/src/formats/pkcs1.mjs.map +1 -0
  634. package/dist/esm/node_modules/node-rsa/src/formats/pkcs8.mjs +128 -0
  635. package/dist/esm/node_modules/node-rsa/src/formats/pkcs8.mjs.map +1 -0
  636. package/dist/esm/node_modules/node-rsa/src/libs/jsbn.mjs +1344 -0
  637. package/dist/esm/node_modules/node-rsa/src/libs/jsbn.mjs.map +1 -0
  638. package/dist/esm/node_modules/node-rsa/src/libs/rsa.mjs +228 -0
  639. package/dist/esm/node_modules/node-rsa/src/libs/rsa.mjs.map +1 -0
  640. package/dist/esm/node_modules/node-rsa/src/schemes/oaep.mjs +120 -0
  641. package/dist/esm/node_modules/node-rsa/src/schemes/oaep.mjs.map +1 -0
  642. package/dist/esm/node_modules/node-rsa/src/schemes/pkcs1.mjs +172 -0
  643. package/dist/esm/node_modules/node-rsa/src/schemes/pkcs1.mjs.map +1 -0
  644. package/dist/esm/node_modules/node-rsa/src/schemes/pss.mjs +120 -0
  645. package/dist/esm/node_modules/node-rsa/src/schemes/pss.mjs.map +1 -0
  646. package/dist/esm/node_modules/node-rsa/src/schemes/schemes.mjs +25 -0
  647. package/dist/esm/node_modules/node-rsa/src/schemes/schemes.mjs.map +1 -0
  648. package/dist/esm/node_modules/node-rsa/src/utils.mjs +81 -0
  649. package/dist/esm/node_modules/node-rsa/src/utils.mjs.map +1 -0
  650. package/dist/esm/node_modules/pako/index.mjs +22 -0
  651. package/dist/esm/node_modules/pako/index.mjs.map +1 -0
  652. package/dist/esm/node_modules/pako/lib/deflate.mjs +308 -0
  653. package/dist/esm/node_modules/pako/lib/deflate.mjs.map +1 -0
  654. package/dist/esm/node_modules/pako/lib/inflate.mjs +314 -0
  655. package/dist/esm/node_modules/pako/lib/inflate.mjs.map +1 -0
  656. package/dist/esm/node_modules/pako/lib/utils/common.mjs +74 -0
  657. package/dist/esm/node_modules/pako/lib/utils/common.mjs.map +1 -0
  658. package/dist/esm/node_modules/pako/lib/utils/strings.mjs +128 -0
  659. package/dist/esm/node_modules/pako/lib/utils/strings.mjs.map +1 -0
  660. package/dist/esm/node_modules/pako/lib/zlib/adler32.mjs +26 -0
  661. package/dist/esm/node_modules/pako/lib/zlib/adler32.mjs.map +1 -0
  662. package/dist/esm/node_modules/pako/lib/zlib/constants.mjs +40 -0
  663. package/dist/esm/node_modules/pako/lib/zlib/constants.mjs.map +1 -0
  664. package/dist/esm/node_modules/pako/lib/zlib/crc32.mjs +28 -0
  665. package/dist/esm/node_modules/pako/lib/zlib/crc32.mjs.map +1 -0
  666. package/dist/esm/node_modules/pako/lib/zlib/deflate.mjs +886 -0
  667. package/dist/esm/node_modules/pako/lib/zlib/deflate.mjs.map +1 -0
  668. package/dist/esm/node_modules/pako/lib/zlib/gzheader.mjs +24 -0
  669. package/dist/esm/node_modules/pako/lib/zlib/gzheader.mjs.map +1 -0
  670. package/dist/esm/node_modules/pako/lib/zlib/inffast.mjs +224 -0
  671. package/dist/esm/node_modules/pako/lib/zlib/inffast.mjs.map +1 -0
  672. package/dist/esm/node_modules/pako/lib/zlib/inflate.mjs +1035 -0
  673. package/dist/esm/node_modules/pako/lib/zlib/inflate.mjs.map +1 -0
  674. package/dist/esm/node_modules/pako/lib/zlib/inftrees.mjs +275 -0
  675. package/dist/esm/node_modules/pako/lib/zlib/inftrees.mjs.map +1 -0
  676. package/dist/esm/node_modules/pako/lib/zlib/messages.mjs +22 -0
  677. package/dist/esm/node_modules/pako/lib/zlib/messages.mjs.map +1 -0
  678. package/dist/esm/node_modules/pako/lib/zlib/trees.mjs +623 -0
  679. package/dist/esm/node_modules/pako/lib/zlib/trees.mjs.map +1 -0
  680. package/dist/esm/node_modules/pako/lib/zlib/zstream.mjs +26 -0
  681. package/dist/esm/node_modules/pako/lib/zlib/zstream.mjs.map +1 -0
  682. package/dist/esm/node_modules/possible-typed-array-names/index.mjs +26 -0
  683. package/dist/esm/node_modules/possible-typed-array-names/index.mjs.map +1 -0
  684. package/dist/esm/node_modules/safe-regex-test/index.mjs +25 -0
  685. package/dist/esm/node_modules/safe-regex-test/index.mjs.map +1 -0
  686. package/dist/esm/node_modules/safer-buffer/safer.mjs +50 -0
  687. package/dist/esm/node_modules/safer-buffer/safer.mjs.map +1 -0
  688. package/dist/esm/node_modules/samlify/build/index.mjs +117 -0
  689. package/dist/esm/node_modules/samlify/build/index.mjs.map +1 -0
  690. package/dist/esm/node_modules/samlify/build/src/api.mjs +33 -0
  691. package/dist/esm/node_modules/samlify/build/src/api.mjs.map +1 -0
  692. package/dist/esm/node_modules/samlify/build/src/binding-post.mjs +504 -0
  693. package/dist/esm/node_modules/samlify/build/src/binding-post.mjs.map +1 -0
  694. package/dist/esm/node_modules/samlify/build/src/binding-redirect.mjs +339 -0
  695. package/dist/esm/node_modules/samlify/build/src/binding-redirect.mjs.map +1 -0
  696. package/dist/esm/node_modules/samlify/build/src/binding-simplesign.mjs +358 -0
  697. package/dist/esm/node_modules/samlify/build/src/binding-simplesign.mjs.map +1 -0
  698. package/dist/esm/node_modules/samlify/build/src/entity-idp.mjs +279 -0
  699. package/dist/esm/node_modules/samlify/build/src/entity-idp.mjs.map +1 -0
  700. package/dist/esm/node_modules/samlify/build/src/entity-sp.mjs +142 -0
  701. package/dist/esm/node_modules/samlify/build/src/entity-sp.mjs.map +1 -0
  702. package/dist/esm/node_modules/samlify/build/src/entity.mjs +253 -0
  703. package/dist/esm/node_modules/samlify/build/src/entity.mjs.map +1 -0
  704. package/dist/esm/node_modules/samlify/build/src/extractor.mjs +352 -0
  705. package/dist/esm/node_modules/samlify/build/src/extractor.mjs.map +1 -0
  706. package/dist/esm/node_modules/samlify/build/src/flow.mjs +389 -0
  707. package/dist/esm/node_modules/samlify/build/src/flow.mjs.map +1 -0
  708. package/dist/esm/node_modules/samlify/build/src/libsaml.mjs +544 -0
  709. package/dist/esm/node_modules/samlify/build/src/libsaml.mjs.map +1 -0
  710. package/dist/esm/node_modules/samlify/build/src/metadata-idp.mjs +171 -0
  711. package/dist/esm/node_modules/samlify/build/src/metadata-idp.mjs.map +1 -0
  712. package/dist/esm/node_modules/samlify/build/src/metadata-sp.mjs +214 -0
  713. package/dist/esm/node_modules/samlify/build/src/metadata-sp.mjs.map +1 -0
  714. package/dist/esm/node_modules/samlify/build/src/metadata.mjs +200 -0
  715. package/dist/esm/node_modules/samlify/build/src/metadata.mjs.map +1 -0
  716. package/dist/esm/node_modules/samlify/build/src/urn.mjs +225 -0
  717. package/dist/esm/node_modules/samlify/build/src/urn.mjs.map +1 -0
  718. package/dist/esm/node_modules/samlify/build/src/utility.mjs +277 -0
  719. package/dist/esm/node_modules/samlify/build/src/utility.mjs.map +1 -0
  720. package/dist/esm/node_modules/samlify/build/src/validator.mjs +53 -0
  721. package/dist/esm/node_modules/samlify/build/src/validator.mjs.map +1 -0
  722. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/index.mjs +39 -0
  723. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/index.mjs.map +1 -0
  724. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/md5.mjs +154 -0
  725. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/md5.mjs.map +1 -0
  726. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/nil.mjs +12 -0
  727. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/nil.mjs.map +1 -0
  728. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/parse.mjs +36 -0
  729. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/parse.mjs.map +1 -0
  730. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/regex.mjs +12 -0
  731. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/regex.mjs.map +1 -0
  732. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/rng.mjs +20 -0
  733. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/rng.mjs.map +1 -0
  734. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/sha1.mjs +101 -0
  735. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/sha1.mjs.map +1 -0
  736. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/stringify.mjs +22 -0
  737. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/stringify.mjs.map +1 -0
  738. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v1.mjs +63 -0
  739. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v1.mjs.map +1 -0
  740. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v3.mjs +17 -0
  741. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v3.mjs.map +1 -0
  742. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v35.mjs +48 -0
  743. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v35.mjs.map +1 -0
  744. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v4.mjs +28 -0
  745. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v4.mjs.map +1 -0
  746. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v5.mjs +17 -0
  747. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v5.mjs.map +1 -0
  748. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/validate.mjs +17 -0
  749. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/validate.mjs.map +1 -0
  750. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/version.mjs +18 -0
  751. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/version.mjs.map +1 -0
  752. package/dist/esm/node_modules/set-function-length/index.mjs +38 -0
  753. package/dist/esm/node_modules/set-function-length/index.mjs.map +1 -0
  754. package/dist/esm/node_modules/util/support/isBufferBrowser.mjs +14 -0
  755. package/dist/esm/node_modules/util/support/isBufferBrowser.mjs.map +1 -0
  756. package/dist/esm/node_modules/util/support/types.mjs +218 -0
  757. package/dist/esm/node_modules/util/support/types.mjs.map +1 -0
  758. package/dist/esm/node_modules/util/util.mjs +443 -0
  759. package/dist/esm/node_modules/util/util.mjs.map +1 -0
  760. package/dist/esm/node_modules/which-typed-array/index.mjs +93 -0
  761. package/dist/esm/node_modules/which-typed-array/index.mjs.map +1 -0
  762. package/dist/esm/node_modules/xml/lib/escapeForXML.mjs +24 -0
  763. package/dist/esm/node_modules/xml/lib/escapeForXML.mjs.map +1 -0
  764. package/dist/esm/node_modules/xml/lib/xml.mjs +183 -0
  765. package/dist/esm/node_modules/xml/lib/xml.mjs.map +1 -0
  766. package/dist/esm/node_modules/xml-crypto/lib/c14n-canonicalization.mjs +199 -0
  767. package/dist/esm/node_modules/xml-crypto/lib/c14n-canonicalization.mjs.map +1 -0
  768. package/dist/esm/node_modules/xml-crypto/lib/enveloped-signature.mjs +49 -0
  769. package/dist/esm/node_modules/xml-crypto/lib/enveloped-signature.mjs.map +1 -0
  770. package/dist/esm/node_modules/xml-crypto/lib/exclusive-canonicalization.mjs +220 -0
  771. package/dist/esm/node_modules/xml-crypto/lib/exclusive-canonicalization.mjs.map +1 -0
  772. package/dist/esm/node_modules/xml-crypto/lib/hash-algorithms.mjs +53 -0
  773. package/dist/esm/node_modules/xml-crypto/lib/hash-algorithms.mjs.map +1 -0
  774. package/dist/esm/node_modules/xml-crypto/lib/index.mjs +70 -0
  775. package/dist/esm/node_modules/xml-crypto/lib/index.mjs.map +1 -0
  776. package/dist/esm/node_modules/xml-crypto/lib/signature-algorithms.mjs +88 -0
  777. package/dist/esm/node_modules/xml-crypto/lib/signature-algorithms.mjs.map +1 -0
  778. package/dist/esm/node_modules/xml-crypto/lib/signed-xml.mjs +693 -0
  779. package/dist/esm/node_modules/xml-crypto/lib/signed-xml.mjs.map +1 -0
  780. package/dist/esm/node_modules/xml-crypto/lib/types.mjs +55 -0
  781. package/dist/esm/node_modules/xml-crypto/lib/types.mjs.map +1 -0
  782. package/dist/esm/node_modules/xml-crypto/lib/utils.mjs +210 -0
  783. package/dist/esm/node_modules/xml-crypto/lib/utils.mjs.map +1 -0
  784. package/dist/esm/node_modules/xml-crypto/node_modules/xpath/xpath.mjs +3442 -0
  785. package/dist/esm/node_modules/xml-crypto/node_modules/xpath/xpath.mjs.map +1 -0
  786. package/dist/esm/node_modules/xml-escape/index.mjs +27 -0
  787. package/dist/esm/node_modules/xml-escape/index.mjs.map +1 -0
  788. package/dist/esm/node_modules/xpath/xpath.mjs +3407 -0
  789. package/dist/esm/node_modules/xpath/xpath.mjs.map +1 -0
  790. package/dist/esm/node_modules/zod/v4/classic/errors.mjs +30 -0
  791. package/dist/esm/node_modules/zod/v4/classic/errors.mjs.map +1 -0
  792. package/dist/esm/node_modules/zod/v4/classic/iso.mjs +38 -0
  793. package/dist/esm/node_modules/zod/v4/classic/iso.mjs.map +1 -0
  794. package/dist/esm/node_modules/zod/v4/classic/parse.mjs +20 -0
  795. package/dist/esm/node_modules/zod/v4/classic/parse.mjs.map +1 -0
  796. package/dist/esm/node_modules/zod/v4/classic/schemas.mjs +519 -0
  797. package/dist/esm/node_modules/zod/v4/classic/schemas.mjs.map +1 -0
  798. package/dist/esm/node_modules/zod/v4/core/api.mjs +395 -0
  799. package/dist/esm/node_modules/zod/v4/core/api.mjs.map +1 -0
  800. package/dist/esm/node_modules/zod/v4/core/checks.mjs +226 -0
  801. package/dist/esm/node_modules/zod/v4/core/checks.mjs.map +1 -0
  802. package/dist/esm/node_modules/zod/v4/core/core.mjs +57 -0
  803. package/dist/esm/node_modules/zod/v4/core/core.mjs.map +1 -0
  804. package/dist/esm/node_modules/zod/v4/core/doc.mjs +34 -0
  805. package/dist/esm/node_modules/zod/v4/core/doc.mjs.map +1 -0
  806. package/dist/esm/node_modules/zod/v4/core/errors.mjs +63 -0
  807. package/dist/esm/node_modules/zod/v4/core/errors.mjs.map +1 -0
  808. package/dist/esm/node_modules/zod/v4/core/parse.mjs +110 -0
  809. package/dist/esm/node_modules/zod/v4/core/parse.mjs.map +1 -0
  810. package/dist/esm/node_modules/zod/v4/core/regexes.mjs +60 -0
  811. package/dist/esm/node_modules/zod/v4/core/regexes.mjs.map +1 -0
  812. package/dist/esm/node_modules/zod/v4/core/registries.mjs +53 -0
  813. package/dist/esm/node_modules/zod/v4/core/registries.mjs.map +1 -0
  814. package/dist/esm/node_modules/zod/v4/core/schemas.mjs +1069 -0
  815. package/dist/esm/node_modules/zod/v4/core/schemas.mjs.map +1 -0
  816. package/dist/esm/node_modules/zod/v4/core/util.mjs +302 -0
  817. package/dist/esm/node_modules/zod/v4/core/util.mjs.map +1 -0
  818. package/dist/esm/node_modules/zod/v4/core/versions.mjs +10 -0
  819. package/dist/esm/node_modules/zod/v4/core/versions.mjs.map +1 -0
  820. package/dist/esm/schemas/user.schema.mjs +17 -0
  821. package/dist/esm/schemas/user.schema.mjs.map +1 -1
  822. package/dist/esm/services/dictionary.service.mjs +8 -31
  823. package/dist/esm/services/dictionary.service.mjs.map +1 -1
  824. package/dist/esm/services/email.service.mjs +13 -0
  825. package/dist/esm/services/email.service.mjs.map +1 -1
  826. package/dist/esm/types/user.types.mjs.map +1 -1
  827. package/dist/esm/utils/auth/getAuth.mjs +61 -27
  828. package/dist/esm/utils/auth/getAuth.mjs.map +1 -1
  829. package/dist/esm/utils/mongoDB/connectDB.mjs.map +1 -1
  830. package/dist/types/MagicLinkEmail.d.ts +8 -0
  831. package/dist/types/MagicLinkEmail.d.ts.map +1 -0
  832. package/dist/types/controllers/ai.controller.d.ts.map +1 -1
  833. package/dist/types/controllers/dictionary.controller.d.ts +18 -5
  834. package/dist/types/controllers/dictionary.controller.d.ts.map +1 -1
  835. package/dist/types/controllers/projectAccessKey.controller.d.ts.map +1 -1
  836. package/dist/types/controllers/stripe.controller.d.ts.map +1 -1
  837. package/dist/types/emails/InviteUserEmail.d.ts +4 -4
  838. package/dist/types/emails/MagicLinkEmail.d.ts +31 -0
  839. package/dist/types/emails/MagicLinkEmail.d.ts.map +1 -0
  840. package/dist/types/emails/OAuthTokenCreatedEmail.d.ts +4 -4
  841. package/dist/types/emails/OAuthTokenCreatedEmail.d.ts.map +1 -1
  842. package/dist/types/emails/PasswordChangeConfirmation.d.ts +4 -4
  843. package/dist/types/emails/PasswordChangeConfirmation.d.ts.map +1 -1
  844. package/dist/types/emails/ResetUserPassword.d.ts +4 -4
  845. package/dist/types/emails/SubscriptionPaymentCancellation.d.ts +4 -4
  846. package/dist/types/emails/SubscriptionPaymentCancellation.d.ts.map +1 -1
  847. package/dist/types/emails/SubscriptionPaymentError.d.ts +4 -4
  848. package/dist/types/emails/SubscriptionPaymentError.d.ts.map +1 -1
  849. package/dist/types/emails/SubscriptionPaymentSuccess.d.ts +4 -4
  850. package/dist/types/emails/ValidateUserEmail.d.ts +4 -4
  851. package/dist/types/emails/Welcome.d.ts +4 -4
  852. package/dist/types/export.d.ts +1 -3
  853. package/dist/types/models/dictionary.model.d.ts +4 -4
  854. package/dist/types/models/dictionary.model.d.ts.map +1 -1
  855. package/dist/types/models/discussion.model.d.ts +2 -2
  856. package/dist/types/models/discussion.model.d.ts.map +1 -1
  857. package/dist/types/models/oAuth2.model.d.ts +3 -3
  858. package/dist/types/models/oAuth2.model.d.ts.map +1 -1
  859. package/dist/types/routes/ai.routes.d.ts.map +1 -1
  860. package/dist/types/routes/newsletter.routes.d.ts.map +1 -1
  861. package/dist/types/schemas/dictionary.schema.d.ts +6 -6
  862. package/dist/types/schemas/discussion.schema.d.ts +6 -6
  863. package/dist/types/schemas/discussion.schema.d.ts.map +1 -1
  864. package/dist/types/schemas/oAuth2.schema.d.ts +5 -5
  865. package/dist/types/schemas/oAuth2.schema.d.ts.map +1 -1
  866. package/dist/types/schemas/organization.schema.d.ts +6 -6
  867. package/dist/types/schemas/session.schema.d.ts +6 -6
  868. package/dist/types/schemas/tag.schema.d.ts +6 -6
  869. package/dist/types/schemas/user.schema.d.ts +6 -6
  870. package/dist/types/schemas/user.schema.d.ts.map +1 -1
  871. package/dist/types/services/dictionary.service.d.ts +1 -12
  872. package/dist/types/services/dictionary.service.d.ts.map +1 -1
  873. package/dist/types/services/email.service.d.ts +21 -10
  874. package/dist/types/services/email.service.d.ts.map +1 -1
  875. package/dist/types/types/dictionary.types.d.ts +1 -0
  876. package/dist/types/types/dictionary.types.d.ts.map +1 -1
  877. package/dist/types/types/user.types.d.ts +1 -0
  878. package/dist/types/types/user.types.d.ts.map +1 -1
  879. package/dist/types/utils/auth/getAuth.d.ts.map +1 -1
  880. package/dist/types/utils/filtersAndPagination/getDictionaryFiltersAndPagination.d.ts +2 -2
  881. package/dist/types/utils/filtersAndPagination/getDiscussionFiltersAndPagination.d.ts +2 -2
  882. package/dist/types/utils/filtersAndPagination/getOrganizationFiltersAndPagination.d.ts +2 -2
  883. package/dist/types/utils/filtersAndPagination/getProjectFiltersAndPagination.d.ts +2 -2
  884. package/dist/types/utils/filtersAndPagination/getTagFiltersAndPagination.d.ts +2 -2
  885. package/dist/types/utils/mongoDB/connectDB.d.ts +2 -2
  886. package/dist/types/utils/mongoDB/connectDB.d.ts.map +1 -1
  887. package/package.json +38 -33
  888. package/dist/assets/controllers/test.json +0 -4
  889. package/dist/cjs/routes/audit.routes.cjs +0 -35
  890. package/dist/cjs/routes/audit.routes.cjs.map +0 -1
  891. package/dist/cjs/schemas/audit.schema.cjs +0 -65
  892. package/dist/cjs/schemas/audit.schema.cjs.map +0 -1
  893. package/dist/cjs/services/audit.service.cjs +0 -49
  894. package/dist/cjs/services/audit.service.cjs.map +0 -1
  895. package/dist/cjs/types/audit.types.cjs +0 -0
  896. package/dist/esm/routes/audit.routes.mjs +0 -31
  897. package/dist/esm/routes/audit.routes.mjs.map +0 -1
  898. package/dist/esm/schemas/audit.schema.mjs +0 -63
  899. package/dist/esm/schemas/audit.schema.mjs.map +0 -1
  900. package/dist/esm/services/audit.service.mjs +0 -46
  901. package/dist/esm/services/audit.service.mjs.map +0 -1
  902. package/dist/esm/types/audit.types.mjs +0 -0
  903. package/dist/types/emails/index.d.ts.map +0 -1
  904. package/dist/types/export.d.ts.map +0 -1
  905. package/dist/types/index.d.ts.map +0 -1
  906. package/dist/types/routes/audit.routes.d.ts +0 -29
  907. package/dist/types/routes/audit.routes.d.ts.map +0 -1
  908. package/dist/types/schemas/audit.schema.d.ts +0 -19
  909. package/dist/types/schemas/audit.schema.d.ts.map +0 -1
  910. package/dist/types/services/audit.service.d.ts +0 -36
  911. package/dist/types/services/audit.service.d.ts.map +0 -1
  912. package/dist/types/types/audit.types.d.ts +0 -29
  913. package/dist/types/types/audit.types.d.ts.map +0 -1
  914. package/dist/types/utils/access.d.ts.map +0 -1
  915. package/dist/types/utils/errors/index.d.ts.map +0 -1
@@ -0,0 +1,1210 @@
1
+ const require_rolldown_runtime = require('../../../../_virtual/rolldown_runtime.cjs');
2
+ const require_schemas = require('../../../zod/v4/classic/schemas.cjs');
3
+ const require_index = require('../../../samlify/build/index.cjs');
4
+ const require_index$1 = require('../../../@better-fetch/fetch/dist/index.cjs');
5
+ const require_decode_jwt = require('../../../jose/dist/webapi/util/decode_jwt.cjs');
6
+ const require_fxp = require('../../../fast-xml-parser/src/fxp.cjs');
7
+ let better_auth = require("better-auth");
8
+ let better_auth_api = require("better-auth/api");
9
+ let better_auth_oauth2 = require("better-auth/oauth2");
10
+ let better_auth_plugins = require("better-auth/plugins");
11
+ let better_auth_cookies = require("better-auth/cookies");
12
+
13
+ //#region ../../node_modules/@better-auth/sso/dist/index.mjs
14
+ var import_build = /* @__PURE__ */ require_rolldown_runtime.__toESM(require_index.default, 1);
15
+ import_build.setSchemaValidator({ async validate(xml) {
16
+ if (require_fxp.XMLValidator.validate(xml, { allowBooleanAttributes: true }) === true) return "SUCCESS_VALIDATE_XML";
17
+ throw "ERR_INVALID_XML";
18
+ } });
19
+ function safeJsonParse(value) {
20
+ if (!value) return null;
21
+ if (typeof value === "object") return value;
22
+ if (typeof value === "string") try {
23
+ return JSON.parse(value);
24
+ } catch (error) {
25
+ throw new Error(`Failed to parse JSON: ${error instanceof Error ? error.message : "Unknown error"}`);
26
+ }
27
+ return null;
28
+ }
29
+ const sso = (options) => {
30
+ return {
31
+ id: "sso",
32
+ endpoints: {
33
+ spMetadata: (0, better_auth_plugins.createAuthEndpoint)("/sso/saml2/sp/metadata", {
34
+ method: "GET",
35
+ query: require_schemas.object({
36
+ providerId: require_schemas.string(),
37
+ format: require_schemas._enum(["xml", "json"]).default("xml")
38
+ }),
39
+ metadata: { openapi: {
40
+ summary: "Get Service Provider metadata",
41
+ description: "Returns the SAML metadata for the Service Provider",
42
+ responses: { "200": { description: "SAML metadata in XML format" } }
43
+ } }
44
+ }, async (ctx) => {
45
+ const provider = await ctx.context.adapter.findOne({
46
+ model: "ssoProvider",
47
+ where: [{
48
+ field: "providerId",
49
+ value: ctx.query.providerId
50
+ }]
51
+ });
52
+ if (!provider) throw new better_auth_api.APIError("NOT_FOUND", { message: "No provider found for the given providerId" });
53
+ const parsedSamlConfig = safeJsonParse(provider.samlConfig);
54
+ if (!parsedSamlConfig) throw new better_auth_api.APIError("BAD_REQUEST", { message: "Invalid SAML configuration" });
55
+ const sp = parsedSamlConfig.spMetadata.metadata ? import_build.ServiceProvider({ metadata: parsedSamlConfig.spMetadata.metadata }) : import_build.SPMetadata({
56
+ entityID: parsedSamlConfig.spMetadata?.entityID || parsedSamlConfig.issuer,
57
+ assertionConsumerService: [{
58
+ Binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST",
59
+ Location: parsedSamlConfig.callbackUrl || `${ctx.context.baseURL}/sso/saml2/sp/acs/${provider.id}`
60
+ }],
61
+ wantMessageSigned: parsedSamlConfig.wantAssertionsSigned || false,
62
+ nameIDFormat: parsedSamlConfig.identifierFormat ? [parsedSamlConfig.identifierFormat] : void 0
63
+ });
64
+ return new Response(sp.getMetadata(), { headers: { "Content-Type": "application/xml" } });
65
+ }),
66
+ registerSSOProvider: (0, better_auth_plugins.createAuthEndpoint)("/sso/register", {
67
+ method: "POST",
68
+ body: require_schemas.object({
69
+ providerId: require_schemas.string({}).meta({ description: "The ID of the provider. This is used to identify the provider during login and callback" }),
70
+ issuer: require_schemas.string({}).meta({ description: "The issuer of the provider" }),
71
+ domain: require_schemas.string({}).meta({ description: "The domain of the provider. This is used for email matching" }),
72
+ oidcConfig: require_schemas.object({
73
+ clientId: require_schemas.string({}).meta({ description: "The client ID" }),
74
+ clientSecret: require_schemas.string({}).meta({ description: "The client secret" }),
75
+ authorizationEndpoint: require_schemas.string({}).meta({ description: "The authorization endpoint" }).optional(),
76
+ tokenEndpoint: require_schemas.string({}).meta({ description: "The token endpoint" }).optional(),
77
+ userInfoEndpoint: require_schemas.string({}).meta({ description: "The user info endpoint" }).optional(),
78
+ tokenEndpointAuthentication: require_schemas._enum(["client_secret_post", "client_secret_basic"]).optional(),
79
+ jwksEndpoint: require_schemas.string({}).meta({ description: "The JWKS endpoint" }).optional(),
80
+ discoveryEndpoint: require_schemas.string().optional(),
81
+ scopes: require_schemas.array(require_schemas.string(), {}).meta({ description: "The scopes to request. Defaults to ['openid', 'email', 'profile', 'offline_access']" }).optional(),
82
+ pkce: require_schemas.boolean({}).meta({ description: "Whether to use PKCE for the authorization flow" }).default(true).optional(),
83
+ mapping: require_schemas.object({
84
+ id: require_schemas.string({}).meta({ description: "Field mapping for user ID (defaults to 'sub')" }),
85
+ email: require_schemas.string({}).meta({ description: "Field mapping for email (defaults to 'email')" }),
86
+ emailVerified: require_schemas.string({}).meta({ description: "Field mapping for email verification (defaults to 'email_verified')" }).optional(),
87
+ name: require_schemas.string({}).meta({ description: "Field mapping for name (defaults to 'name')" }),
88
+ image: require_schemas.string({}).meta({ description: "Field mapping for image (defaults to 'picture')" }).optional(),
89
+ extraFields: require_schemas.record(require_schemas.string(), require_schemas.any()).optional()
90
+ }).optional()
91
+ }).optional(),
92
+ samlConfig: require_schemas.object({
93
+ entryPoint: require_schemas.string({}).meta({ description: "The entry point of the provider" }),
94
+ cert: require_schemas.string({}).meta({ description: "The certificate of the provider" }),
95
+ callbackUrl: require_schemas.string({}).meta({ description: "The callback URL of the provider" }),
96
+ audience: require_schemas.string().optional(),
97
+ idpMetadata: require_schemas.object({
98
+ metadata: require_schemas.string().optional(),
99
+ entityID: require_schemas.string().optional(),
100
+ cert: require_schemas.string().optional(),
101
+ privateKey: require_schemas.string().optional(),
102
+ privateKeyPass: require_schemas.string().optional(),
103
+ isAssertionEncrypted: require_schemas.boolean().optional(),
104
+ encPrivateKey: require_schemas.string().optional(),
105
+ encPrivateKeyPass: require_schemas.string().optional(),
106
+ singleSignOnService: require_schemas.array(require_schemas.object({
107
+ Binding: require_schemas.string().meta({ description: "The binding type for the SSO service" }),
108
+ Location: require_schemas.string().meta({ description: "The URL for the SSO service" })
109
+ })).optional().meta({ description: "Single Sign-On service configuration" })
110
+ }).optional(),
111
+ spMetadata: require_schemas.object({
112
+ metadata: require_schemas.string().optional(),
113
+ entityID: require_schemas.string().optional(),
114
+ binding: require_schemas.string().optional(),
115
+ privateKey: require_schemas.string().optional(),
116
+ privateKeyPass: require_schemas.string().optional(),
117
+ isAssertionEncrypted: require_schemas.boolean().optional(),
118
+ encPrivateKey: require_schemas.string().optional(),
119
+ encPrivateKeyPass: require_schemas.string().optional()
120
+ }),
121
+ wantAssertionsSigned: require_schemas.boolean().optional(),
122
+ signatureAlgorithm: require_schemas.string().optional(),
123
+ digestAlgorithm: require_schemas.string().optional(),
124
+ identifierFormat: require_schemas.string().optional(),
125
+ privateKey: require_schemas.string().optional(),
126
+ decryptionPvk: require_schemas.string().optional(),
127
+ additionalParams: require_schemas.record(require_schemas.string(), require_schemas.any()).optional(),
128
+ mapping: require_schemas.object({
129
+ id: require_schemas.string({}).meta({ description: "Field mapping for user ID (defaults to 'nameID')" }),
130
+ email: require_schemas.string({}).meta({ description: "Field mapping for email (defaults to 'email')" }),
131
+ emailVerified: require_schemas.string({}).meta({ description: "Field mapping for email verification" }).optional(),
132
+ name: require_schemas.string({}).meta({ description: "Field mapping for name (defaults to 'displayName')" }),
133
+ firstName: require_schemas.string({}).meta({ description: "Field mapping for first name (defaults to 'givenName')" }).optional(),
134
+ lastName: require_schemas.string({}).meta({ description: "Field mapping for last name (defaults to 'surname')" }).optional(),
135
+ extraFields: require_schemas.record(require_schemas.string(), require_schemas.any()).optional()
136
+ }).optional()
137
+ }).optional(),
138
+ organizationId: require_schemas.string({}).meta({ description: "If organization plugin is enabled, the organization id to link the provider to" }).optional(),
139
+ overrideUserInfo: require_schemas.boolean({}).meta({ description: "Override user info with the provider info. Defaults to false" }).default(false).optional()
140
+ }),
141
+ use: [better_auth_api.sessionMiddleware],
142
+ metadata: { openapi: {
143
+ summary: "Register an OIDC provider",
144
+ description: "This endpoint is used to register an OIDC provider. This is used to configure the provider and link it to an organization",
145
+ responses: { "200": {
146
+ description: "OIDC provider created successfully",
147
+ content: { "application/json": { schema: {
148
+ type: "object",
149
+ properties: {
150
+ issuer: {
151
+ type: "string",
152
+ format: "uri",
153
+ description: "The issuer URL of the provider"
154
+ },
155
+ domain: {
156
+ type: "string",
157
+ description: "The domain of the provider, used for email matching"
158
+ },
159
+ oidcConfig: {
160
+ type: "object",
161
+ properties: {
162
+ issuer: {
163
+ type: "string",
164
+ format: "uri",
165
+ description: "The issuer URL of the provider"
166
+ },
167
+ pkce: {
168
+ type: "boolean",
169
+ description: "Whether PKCE is enabled for the authorization flow"
170
+ },
171
+ clientId: {
172
+ type: "string",
173
+ description: "The client ID for the provider"
174
+ },
175
+ clientSecret: {
176
+ type: "string",
177
+ description: "The client secret for the provider"
178
+ },
179
+ authorizationEndpoint: {
180
+ type: "string",
181
+ format: "uri",
182
+ nullable: true,
183
+ description: "The authorization endpoint URL"
184
+ },
185
+ discoveryEndpoint: {
186
+ type: "string",
187
+ format: "uri",
188
+ description: "The discovery endpoint URL"
189
+ },
190
+ userInfoEndpoint: {
191
+ type: "string",
192
+ format: "uri",
193
+ nullable: true,
194
+ description: "The user info endpoint URL"
195
+ },
196
+ scopes: {
197
+ type: "array",
198
+ items: { type: "string" },
199
+ nullable: true,
200
+ description: "The scopes requested from the provider"
201
+ },
202
+ tokenEndpoint: {
203
+ type: "string",
204
+ format: "uri",
205
+ nullable: true,
206
+ description: "The token endpoint URL"
207
+ },
208
+ tokenEndpointAuthentication: {
209
+ type: "string",
210
+ enum: ["client_secret_post", "client_secret_basic"],
211
+ nullable: true,
212
+ description: "Authentication method for the token endpoint"
213
+ },
214
+ jwksEndpoint: {
215
+ type: "string",
216
+ format: "uri",
217
+ nullable: true,
218
+ description: "The JWKS endpoint URL"
219
+ },
220
+ mapping: {
221
+ type: "object",
222
+ nullable: true,
223
+ properties: {
224
+ id: {
225
+ type: "string",
226
+ description: "Field mapping for user ID (defaults to 'sub')"
227
+ },
228
+ email: {
229
+ type: "string",
230
+ description: "Field mapping for email (defaults to 'email')"
231
+ },
232
+ emailVerified: {
233
+ type: "string",
234
+ nullable: true,
235
+ description: "Field mapping for email verification (defaults to 'email_verified')"
236
+ },
237
+ name: {
238
+ type: "string",
239
+ description: "Field mapping for name (defaults to 'name')"
240
+ },
241
+ image: {
242
+ type: "string",
243
+ nullable: true,
244
+ description: "Field mapping for image (defaults to 'picture')"
245
+ },
246
+ extraFields: {
247
+ type: "object",
248
+ additionalProperties: { type: "string" },
249
+ nullable: true,
250
+ description: "Additional field mappings"
251
+ }
252
+ },
253
+ required: [
254
+ "id",
255
+ "email",
256
+ "name"
257
+ ]
258
+ }
259
+ },
260
+ required: [
261
+ "issuer",
262
+ "pkce",
263
+ "clientId",
264
+ "clientSecret",
265
+ "discoveryEndpoint"
266
+ ],
267
+ description: "OIDC configuration for the provider"
268
+ },
269
+ organizationId: {
270
+ type: "string",
271
+ nullable: true,
272
+ description: "ID of the linked organization, if any"
273
+ },
274
+ userId: {
275
+ type: "string",
276
+ description: "ID of the user who registered the provider"
277
+ },
278
+ providerId: {
279
+ type: "string",
280
+ description: "Unique identifier for the provider"
281
+ },
282
+ redirectURI: {
283
+ type: "string",
284
+ format: "uri",
285
+ description: "The redirect URI for the provider callback"
286
+ }
287
+ },
288
+ required: [
289
+ "issuer",
290
+ "domain",
291
+ "oidcConfig",
292
+ "userId",
293
+ "providerId",
294
+ "redirectURI"
295
+ ]
296
+ } } }
297
+ } }
298
+ } }
299
+ }, async (ctx) => {
300
+ const user = ctx.context.session?.user;
301
+ if (!user) throw new better_auth_api.APIError("UNAUTHORIZED");
302
+ const limit = typeof options?.providersLimit === "function" ? await options.providersLimit(user) : options?.providersLimit ?? 10;
303
+ if (!limit) throw new better_auth_api.APIError("FORBIDDEN", { message: "SSO provider registration is disabled" });
304
+ if ((await ctx.context.adapter.findMany({
305
+ model: "ssoProvider",
306
+ where: [{
307
+ field: "userId",
308
+ value: user.id
309
+ }]
310
+ })).length >= limit) throw new better_auth_api.APIError("FORBIDDEN", { message: "You have reached the maximum number of SSO providers" });
311
+ const body = ctx.body;
312
+ if (require_schemas.string().url().safeParse(body.issuer).error) throw new better_auth_api.APIError("BAD_REQUEST", { message: "Invalid issuer. Must be a valid URL" });
313
+ if (ctx.body.organizationId) {
314
+ if (!await ctx.context.adapter.findOne({
315
+ model: "member",
316
+ where: [{
317
+ field: "userId",
318
+ value: user.id
319
+ }, {
320
+ field: "organizationId",
321
+ value: ctx.body.organizationId
322
+ }]
323
+ })) throw new better_auth_api.APIError("BAD_REQUEST", { message: "You are not a member of the organization" });
324
+ }
325
+ if (await ctx.context.adapter.findOne({
326
+ model: "ssoProvider",
327
+ where: [{
328
+ field: "providerId",
329
+ value: body.providerId
330
+ }]
331
+ })) {
332
+ ctx.context.logger.info(`SSO provider creation attempt with existing providerId: ${body.providerId}`);
333
+ throw new better_auth_api.APIError("UNPROCESSABLE_ENTITY", { message: "SSO provider with this providerId already exists" });
334
+ }
335
+ const provider = await ctx.context.adapter.create({
336
+ model: "ssoProvider",
337
+ data: {
338
+ issuer: body.issuer,
339
+ domain: body.domain,
340
+ oidcConfig: body.oidcConfig ? JSON.stringify({
341
+ issuer: body.issuer,
342
+ clientId: body.oidcConfig.clientId,
343
+ clientSecret: body.oidcConfig.clientSecret,
344
+ authorizationEndpoint: body.oidcConfig.authorizationEndpoint,
345
+ tokenEndpoint: body.oidcConfig.tokenEndpoint,
346
+ tokenEndpointAuthentication: body.oidcConfig.tokenEndpointAuthentication,
347
+ jwksEndpoint: body.oidcConfig.jwksEndpoint,
348
+ pkce: body.oidcConfig.pkce,
349
+ discoveryEndpoint: body.oidcConfig.discoveryEndpoint || `${body.issuer}/.well-known/openid-configuration`,
350
+ mapping: body.oidcConfig.mapping,
351
+ scopes: body.oidcConfig.scopes,
352
+ userInfoEndpoint: body.oidcConfig.userInfoEndpoint,
353
+ overrideUserInfo: ctx.body.overrideUserInfo || options?.defaultOverrideUserInfo || false
354
+ }) : null,
355
+ samlConfig: body.samlConfig ? JSON.stringify({
356
+ issuer: body.issuer,
357
+ entryPoint: body.samlConfig.entryPoint,
358
+ cert: body.samlConfig.cert,
359
+ callbackUrl: body.samlConfig.callbackUrl,
360
+ audience: body.samlConfig.audience,
361
+ idpMetadata: body.samlConfig.idpMetadata,
362
+ spMetadata: body.samlConfig.spMetadata,
363
+ wantAssertionsSigned: body.samlConfig.wantAssertionsSigned,
364
+ signatureAlgorithm: body.samlConfig.signatureAlgorithm,
365
+ digestAlgorithm: body.samlConfig.digestAlgorithm,
366
+ identifierFormat: body.samlConfig.identifierFormat,
367
+ privateKey: body.samlConfig.privateKey,
368
+ decryptionPvk: body.samlConfig.decryptionPvk,
369
+ additionalParams: body.samlConfig.additionalParams,
370
+ mapping: body.samlConfig.mapping
371
+ }) : null,
372
+ organizationId: body.organizationId,
373
+ userId: ctx.context.session.user.id,
374
+ providerId: body.providerId
375
+ }
376
+ });
377
+ return ctx.json({
378
+ ...provider,
379
+ oidcConfig: JSON.parse(provider.oidcConfig),
380
+ samlConfig: JSON.parse(provider.samlConfig),
381
+ redirectURI: `${ctx.context.baseURL}/sso/callback/${provider.providerId}`
382
+ });
383
+ }),
384
+ signInSSO: (0, better_auth_plugins.createAuthEndpoint)("/sign-in/sso", {
385
+ method: "POST",
386
+ body: require_schemas.object({
387
+ email: require_schemas.string({}).meta({ description: "The email address to sign in with. This is used to identify the issuer to sign in with. It's optional if the issuer is provided" }).optional(),
388
+ organizationSlug: require_schemas.string({}).meta({ description: "The slug of the organization to sign in with" }).optional(),
389
+ providerId: require_schemas.string({}).meta({ description: "The ID of the provider to sign in with. This can be provided instead of email or issuer" }).optional(),
390
+ domain: require_schemas.string({}).meta({ description: "The domain of the provider." }).optional(),
391
+ callbackURL: require_schemas.string({}).meta({ description: "The URL to redirect to after login" }),
392
+ errorCallbackURL: require_schemas.string({}).meta({ description: "The URL to redirect to after login" }).optional(),
393
+ newUserCallbackURL: require_schemas.string({}).meta({ description: "The URL to redirect to after login if the user is new" }).optional(),
394
+ scopes: require_schemas.array(require_schemas.string(), {}).meta({ description: "Scopes to request from the provider." }).optional(),
395
+ requestSignUp: require_schemas.boolean({}).meta({ description: "Explicitly request sign-up. Useful when disableImplicitSignUp is true for this provider" }).optional(),
396
+ providerType: require_schemas._enum(["oidc", "saml"]).optional()
397
+ }),
398
+ metadata: { openapi: {
399
+ summary: "Sign in with SSO provider",
400
+ description: "This endpoint is used to sign in with an SSO provider. It redirects to the provider's authorization URL",
401
+ requestBody: { content: { "application/json": { schema: {
402
+ type: "object",
403
+ properties: {
404
+ email: {
405
+ type: "string",
406
+ description: "The email address to sign in with. This is used to identify the issuer to sign in with. It's optional if the issuer is provided"
407
+ },
408
+ issuer: {
409
+ type: "string",
410
+ description: "The issuer identifier, this is the URL of the provider and can be used to verify the provider and identify the provider during login. It's optional if the email is provided"
411
+ },
412
+ providerId: {
413
+ type: "string",
414
+ description: "The ID of the provider to sign in with. This can be provided instead of email or issuer"
415
+ },
416
+ callbackURL: {
417
+ type: "string",
418
+ description: "The URL to redirect to after login"
419
+ },
420
+ errorCallbackURL: {
421
+ type: "string",
422
+ description: "The URL to redirect to after login"
423
+ },
424
+ newUserCallbackURL: {
425
+ type: "string",
426
+ description: "The URL to redirect to after login if the user is new"
427
+ }
428
+ },
429
+ required: ["callbackURL"]
430
+ } } } },
431
+ responses: { "200": {
432
+ description: "Authorization URL generated successfully for SSO sign-in",
433
+ content: { "application/json": { schema: {
434
+ type: "object",
435
+ properties: {
436
+ url: {
437
+ type: "string",
438
+ format: "uri",
439
+ description: "The authorization URL to redirect the user to for SSO sign-in"
440
+ },
441
+ redirect: {
442
+ type: "boolean",
443
+ description: "Indicates that the client should redirect to the provided URL",
444
+ enum: [true]
445
+ }
446
+ },
447
+ required: ["url", "redirect"]
448
+ } } }
449
+ } }
450
+ } }
451
+ }, async (ctx) => {
452
+ const body = ctx.body;
453
+ let { email, organizationSlug, providerId, domain } = body;
454
+ if (!options?.defaultSSO?.length && !email && !organizationSlug && !domain && !providerId) throw new better_auth_api.APIError("BAD_REQUEST", { message: "email, organizationSlug, domain or providerId is required" });
455
+ domain = body.domain || email?.split("@")[1];
456
+ let orgId = "";
457
+ if (organizationSlug) orgId = await ctx.context.adapter.findOne({
458
+ model: "organization",
459
+ where: [{
460
+ field: "slug",
461
+ value: organizationSlug
462
+ }]
463
+ }).then((res) => {
464
+ if (!res) return "";
465
+ return res.id;
466
+ });
467
+ let provider = null;
468
+ if (options?.defaultSSO?.length) {
469
+ const matchingDefault = providerId ? options.defaultSSO.find((defaultProvider) => defaultProvider.providerId === providerId) : options.defaultSSO.find((defaultProvider) => defaultProvider.domain === domain);
470
+ if (matchingDefault) provider = {
471
+ issuer: matchingDefault.samlConfig?.issuer || matchingDefault.oidcConfig?.issuer || "",
472
+ providerId: matchingDefault.providerId,
473
+ userId: "default",
474
+ oidcConfig: matchingDefault.oidcConfig,
475
+ samlConfig: matchingDefault.samlConfig
476
+ };
477
+ }
478
+ if (!providerId && !orgId && !domain) throw new better_auth_api.APIError("BAD_REQUEST", { message: "providerId, orgId or domain is required" });
479
+ if (!provider) provider = await ctx.context.adapter.findOne({
480
+ model: "ssoProvider",
481
+ where: [{
482
+ field: providerId ? "providerId" : orgId ? "organizationId" : "domain",
483
+ value: providerId || orgId || domain
484
+ }]
485
+ }).then((res) => {
486
+ if (!res) return null;
487
+ return {
488
+ ...res,
489
+ oidcConfig: res.oidcConfig ? safeJsonParse(res.oidcConfig) || void 0 : void 0,
490
+ samlConfig: res.samlConfig ? safeJsonParse(res.samlConfig) || void 0 : void 0
491
+ };
492
+ });
493
+ if (!provider) throw new better_auth_api.APIError("NOT_FOUND", { message: "No provider found for the issuer" });
494
+ if (body.providerType) {
495
+ if (body.providerType === "oidc" && !provider.oidcConfig) throw new better_auth_api.APIError("BAD_REQUEST", { message: "OIDC provider is not configured" });
496
+ if (body.providerType === "saml" && !provider.samlConfig) throw new better_auth_api.APIError("BAD_REQUEST", { message: "SAML provider is not configured" });
497
+ }
498
+ if (provider.oidcConfig && body.providerType !== "saml") {
499
+ const state = await (0, better_auth.generateState)(ctx);
500
+ const redirectURI = `${ctx.context.baseURL}/sso/callback/${provider.providerId}`;
501
+ const authorizationURL = await (0, better_auth_oauth2.createAuthorizationURL)({
502
+ id: provider.issuer,
503
+ options: {
504
+ clientId: provider.oidcConfig.clientId,
505
+ clientSecret: provider.oidcConfig.clientSecret
506
+ },
507
+ redirectURI,
508
+ state: state.state,
509
+ codeVerifier: provider.oidcConfig.pkce ? state.codeVerifier : void 0,
510
+ scopes: ctx.body.scopes || provider.oidcConfig.scopes || [
511
+ "openid",
512
+ "email",
513
+ "profile",
514
+ "offline_access"
515
+ ],
516
+ authorizationEndpoint: provider.oidcConfig.authorizationEndpoint
517
+ });
518
+ return ctx.json({
519
+ url: authorizationURL.toString(),
520
+ redirect: true
521
+ });
522
+ }
523
+ if (provider.samlConfig) {
524
+ const parsedSamlConfig = typeof provider.samlConfig === "object" ? provider.samlConfig : safeJsonParse(provider.samlConfig);
525
+ if (!parsedSamlConfig) throw new better_auth_api.APIError("BAD_REQUEST", { message: "Invalid SAML configuration" });
526
+ const sp = import_build.ServiceProvider({
527
+ metadata: parsedSamlConfig.spMetadata.metadata,
528
+ allowCreate: true
529
+ });
530
+ const idp = import_build.IdentityProvider({
531
+ metadata: parsedSamlConfig.idpMetadata?.metadata,
532
+ entityID: parsedSamlConfig.idpMetadata?.entityID,
533
+ encryptCert: parsedSamlConfig.idpMetadata?.cert,
534
+ singleSignOnService: parsedSamlConfig.idpMetadata?.singleSignOnService
535
+ });
536
+ const loginRequest = sp.createLoginRequest(idp, "redirect");
537
+ if (!loginRequest) throw new better_auth_api.APIError("BAD_REQUEST", { message: "Invalid SAML request" });
538
+ return ctx.json({
539
+ url: `${loginRequest.context}&RelayState=${encodeURIComponent(body.callbackURL)}`,
540
+ redirect: true
541
+ });
542
+ }
543
+ throw new better_auth_api.APIError("BAD_REQUEST", { message: "Invalid SSO provider" });
544
+ }),
545
+ callbackSSO: (0, better_auth_plugins.createAuthEndpoint)("/sso/callback/:providerId", {
546
+ method: "GET",
547
+ query: require_schemas.object({
548
+ code: require_schemas.string().optional(),
549
+ state: require_schemas.string(),
550
+ error: require_schemas.string().optional(),
551
+ error_description: require_schemas.string().optional()
552
+ }),
553
+ metadata: {
554
+ isAction: false,
555
+ openapi: {
556
+ summary: "Callback URL for SSO provider",
557
+ description: "This endpoint is used as the callback URL for SSO providers. It handles the authorization code and exchanges it for an access token",
558
+ responses: { "302": { description: "Redirects to the callback URL" } }
559
+ }
560
+ }
561
+ }, async (ctx) => {
562
+ const { code, state, error, error_description } = ctx.query;
563
+ const stateData = await (0, better_auth_oauth2.parseState)(ctx);
564
+ if (!stateData) {
565
+ const errorURL2 = ctx.context.options.onAPIError?.errorURL || `${ctx.context.baseURL}/error`;
566
+ throw ctx.redirect(`${errorURL2}?error=invalid_state`);
567
+ }
568
+ const { callbackURL, errorURL, newUserURL, requestSignUp } = stateData;
569
+ if (!code || error) throw ctx.redirect(`${errorURL || callbackURL}?error=${error}&error_description=${error_description}`);
570
+ let provider = null;
571
+ if (options?.defaultSSO?.length) {
572
+ const matchingDefault = options.defaultSSO.find((defaultProvider) => defaultProvider.providerId === ctx.params.providerId);
573
+ if (matchingDefault) provider = {
574
+ ...matchingDefault,
575
+ issuer: matchingDefault.oidcConfig?.issuer || "",
576
+ userId: "default"
577
+ };
578
+ }
579
+ if (!provider) provider = await ctx.context.adapter.findOne({
580
+ model: "ssoProvider",
581
+ where: [{
582
+ field: "providerId",
583
+ value: ctx.params.providerId
584
+ }]
585
+ }).then((res) => {
586
+ if (!res) return null;
587
+ return {
588
+ ...res,
589
+ oidcConfig: safeJsonParse(res.oidcConfig) || void 0
590
+ };
591
+ });
592
+ if (!provider) throw ctx.redirect(`${errorURL || callbackURL}/error?error=invalid_provider&error_description=provider not found`);
593
+ let config = provider.oidcConfig;
594
+ if (!config) throw ctx.redirect(`${errorURL || callbackURL}/error?error=invalid_provider&error_description=provider not found`);
595
+ const discovery = await require_index$1.betterFetch(config.discoveryEndpoint);
596
+ if (discovery.data) config = {
597
+ tokenEndpoint: discovery.data.token_endpoint,
598
+ tokenEndpointAuthentication: discovery.data.token_endpoint_auth_method,
599
+ userInfoEndpoint: discovery.data.userinfo_endpoint,
600
+ scopes: [
601
+ "openid",
602
+ "email",
603
+ "profile",
604
+ "offline_access"
605
+ ],
606
+ ...config
607
+ };
608
+ if (!config.tokenEndpoint) throw ctx.redirect(`${errorURL || callbackURL}/error?error=invalid_provider&error_description=token_endpoint_not_found`);
609
+ const tokenResponse = await (0, better_auth_oauth2.validateAuthorizationCode)({
610
+ code,
611
+ codeVerifier: config.pkce ? stateData.codeVerifier : void 0,
612
+ redirectURI: `${ctx.context.baseURL}/sso/callback/${provider.providerId}`,
613
+ options: {
614
+ clientId: config.clientId,
615
+ clientSecret: config.clientSecret
616
+ },
617
+ tokenEndpoint: config.tokenEndpoint,
618
+ authentication: config.tokenEndpointAuthentication === "client_secret_post" ? "post" : "basic"
619
+ }).catch((e) => {
620
+ if (e instanceof require_index$1.BetterFetchError) throw ctx.redirect(`${errorURL || callbackURL}?error=invalid_provider&error_description=${e.message}`);
621
+ return null;
622
+ });
623
+ if (!tokenResponse) throw ctx.redirect(`${errorURL || callbackURL}/error?error=invalid_provider&error_description=token_response_not_found`);
624
+ let userInfo = null;
625
+ if (tokenResponse.idToken) {
626
+ const idToken = require_decode_jwt.decodeJwt(tokenResponse.idToken);
627
+ if (!config.jwksEndpoint) throw ctx.redirect(`${errorURL || callbackURL}/error?error=invalid_provider&error_description=jwks_endpoint_not_found`);
628
+ const verified = await (0, better_auth_oauth2.validateToken)(tokenResponse.idToken, config.jwksEndpoint).catch((e) => {
629
+ ctx.context.logger.error(e);
630
+ return null;
631
+ });
632
+ if (!verified) throw ctx.redirect(`${errorURL || callbackURL}/error?error=invalid_provider&error_description=token_not_verified`);
633
+ if (verified.payload.iss !== provider.issuer) throw ctx.redirect(`${errorURL || callbackURL}/error?error=invalid_provider&error_description=issuer_mismatch`);
634
+ const mapping = config.mapping || {};
635
+ userInfo = {
636
+ ...Object.fromEntries(Object.entries(mapping.extraFields || {}).map(([key, value]) => [key, verified.payload[value]])),
637
+ id: idToken[mapping.id || "sub"],
638
+ email: idToken[mapping.email || "email"],
639
+ emailVerified: options?.trustEmailVerified ? idToken[mapping.emailVerified || "email_verified"] : false,
640
+ name: idToken[mapping.name || "name"],
641
+ image: idToken[mapping.image || "picture"]
642
+ };
643
+ }
644
+ if (!userInfo) {
645
+ if (!config.userInfoEndpoint) throw ctx.redirect(`${errorURL || callbackURL}/error?error=invalid_provider&error_description=user_info_endpoint_not_found`);
646
+ const userInfoResponse = await require_index$1.betterFetch(config.userInfoEndpoint, { headers: { Authorization: `Bearer ${tokenResponse.accessToken}` } });
647
+ if (userInfoResponse.error) throw ctx.redirect(`${errorURL || callbackURL}/error?error=invalid_provider&error_description=${userInfoResponse.error.message}`);
648
+ userInfo = userInfoResponse.data;
649
+ }
650
+ if (!userInfo.email || !userInfo.id) throw ctx.redirect(`${errorURL || callbackURL}/error?error=invalid_provider&error_description=missing_user_info`);
651
+ const linked = await (0, better_auth_oauth2.handleOAuthUserInfo)(ctx, {
652
+ userInfo: {
653
+ email: userInfo.email,
654
+ name: userInfo.name || userInfo.email,
655
+ id: userInfo.id,
656
+ image: userInfo.image,
657
+ emailVerified: options?.trustEmailVerified ? userInfo.emailVerified || false : false
658
+ },
659
+ account: {
660
+ idToken: tokenResponse.idToken,
661
+ accessToken: tokenResponse.accessToken,
662
+ refreshToken: tokenResponse.refreshToken,
663
+ accountId: userInfo.id,
664
+ providerId: provider.providerId,
665
+ accessTokenExpiresAt: tokenResponse.accessTokenExpiresAt,
666
+ refreshTokenExpiresAt: tokenResponse.refreshTokenExpiresAt,
667
+ scope: tokenResponse.scopes?.join(",")
668
+ },
669
+ callbackURL,
670
+ disableSignUp: options?.disableImplicitSignUp && !requestSignUp,
671
+ overrideUserInfo: config.overrideUserInfo
672
+ });
673
+ if (linked.error) throw ctx.redirect(`${errorURL || callbackURL}/error?error=${linked.error}`);
674
+ const { session, user } = linked.data;
675
+ if (options?.provisionUser) await options.provisionUser({
676
+ user,
677
+ userInfo,
678
+ token: tokenResponse,
679
+ provider
680
+ });
681
+ if (provider.organizationId && !options?.organizationProvisioning?.disabled) {
682
+ if (ctx.context.options.plugins?.find((plugin) => plugin.id === "organization")) {
683
+ if (!await ctx.context.adapter.findOne({
684
+ model: "member",
685
+ where: [{
686
+ field: "organizationId",
687
+ value: provider.organizationId
688
+ }, {
689
+ field: "userId",
690
+ value: user.id
691
+ }]
692
+ })) {
693
+ const role = options?.organizationProvisioning?.getRole ? await options.organizationProvisioning.getRole({
694
+ user,
695
+ userInfo,
696
+ token: tokenResponse,
697
+ provider
698
+ }) : options?.organizationProvisioning?.defaultRole || "member";
699
+ await ctx.context.adapter.create({
700
+ model: "member",
701
+ data: {
702
+ organizationId: provider.organizationId,
703
+ userId: user.id,
704
+ role,
705
+ createdAt: /* @__PURE__ */ new Date(),
706
+ updatedAt: /* @__PURE__ */ new Date()
707
+ }
708
+ });
709
+ }
710
+ }
711
+ }
712
+ await (0, better_auth_cookies.setSessionCookie)(ctx, {
713
+ session,
714
+ user
715
+ });
716
+ let toRedirectTo;
717
+ try {
718
+ toRedirectTo = (linked.isRegister ? newUserURL || callbackURL : callbackURL).toString();
719
+ } catch {
720
+ toRedirectTo = linked.isRegister ? newUserURL || callbackURL : callbackURL;
721
+ }
722
+ throw ctx.redirect(toRedirectTo);
723
+ }),
724
+ callbackSSOSAML: (0, better_auth_plugins.createAuthEndpoint)("/sso/saml2/callback/:providerId", {
725
+ method: "POST",
726
+ body: require_schemas.object({
727
+ SAMLResponse: require_schemas.string(),
728
+ RelayState: require_schemas.string().optional()
729
+ }),
730
+ metadata: {
731
+ isAction: false,
732
+ openapi: {
733
+ summary: "Callback URL for SAML provider",
734
+ description: "This endpoint is used as the callback URL for SAML providers.",
735
+ responses: {
736
+ "302": { description: "Redirects to the callback URL" },
737
+ "400": { description: "Invalid SAML response" },
738
+ "401": { description: "Unauthorized - SAML authentication failed" }
739
+ }
740
+ }
741
+ }
742
+ }, async (ctx) => {
743
+ const { SAMLResponse, RelayState } = ctx.body;
744
+ const { providerId } = ctx.params;
745
+ let provider = null;
746
+ if (options?.defaultSSO?.length) {
747
+ const matchingDefault = options.defaultSSO.find((defaultProvider) => defaultProvider.providerId === providerId);
748
+ if (matchingDefault) provider = {
749
+ ...matchingDefault,
750
+ userId: "default",
751
+ issuer: matchingDefault.samlConfig?.issuer || ""
752
+ };
753
+ }
754
+ if (!provider) provider = await ctx.context.adapter.findOne({
755
+ model: "ssoProvider",
756
+ where: [{
757
+ field: "providerId",
758
+ value: providerId
759
+ }]
760
+ }).then((res) => {
761
+ if (!res) return null;
762
+ return {
763
+ ...res,
764
+ samlConfig: res.samlConfig ? safeJsonParse(res.samlConfig) || void 0 : void 0
765
+ };
766
+ });
767
+ if (!provider) throw new better_auth_api.APIError("NOT_FOUND", { message: "No provider found for the given providerId" });
768
+ const parsedSamlConfig = safeJsonParse(provider.samlConfig);
769
+ if (!parsedSamlConfig) throw new better_auth_api.APIError("BAD_REQUEST", { message: "Invalid SAML configuration" });
770
+ const idpData = parsedSamlConfig.idpMetadata;
771
+ let idp = null;
772
+ if (!idpData?.metadata) idp = import_build.IdentityProvider({
773
+ entityID: idpData?.entityID || parsedSamlConfig.issuer,
774
+ singleSignOnService: [{
775
+ Binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect",
776
+ Location: parsedSamlConfig.entryPoint
777
+ }],
778
+ signingCert: idpData?.cert || parsedSamlConfig.cert,
779
+ wantAuthnRequestsSigned: parsedSamlConfig.wantAssertionsSigned || false,
780
+ isAssertionEncrypted: idpData?.isAssertionEncrypted || false,
781
+ encPrivateKey: idpData?.encPrivateKey,
782
+ encPrivateKeyPass: idpData?.encPrivateKeyPass
783
+ });
784
+ else idp = import_build.IdentityProvider({
785
+ metadata: idpData.metadata,
786
+ privateKey: idpData.privateKey,
787
+ privateKeyPass: idpData.privateKeyPass,
788
+ isAssertionEncrypted: idpData.isAssertionEncrypted,
789
+ encPrivateKey: idpData.encPrivateKey,
790
+ encPrivateKeyPass: idpData.encPrivateKeyPass
791
+ });
792
+ const spData = parsedSamlConfig.spMetadata;
793
+ const sp = import_build.ServiceProvider({
794
+ metadata: spData?.metadata,
795
+ entityID: spData?.entityID || parsedSamlConfig.issuer,
796
+ assertionConsumerService: spData?.metadata ? void 0 : [{
797
+ Binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST",
798
+ Location: parsedSamlConfig.callbackUrl
799
+ }],
800
+ privateKey: spData?.privateKey || parsedSamlConfig.privateKey,
801
+ privateKeyPass: spData?.privateKeyPass,
802
+ isAssertionEncrypted: spData?.isAssertionEncrypted || false,
803
+ encPrivateKey: spData?.encPrivateKey,
804
+ encPrivateKeyPass: spData?.encPrivateKeyPass,
805
+ wantMessageSigned: parsedSamlConfig.wantAssertionsSigned || false,
806
+ nameIDFormat: parsedSamlConfig.identifierFormat ? [parsedSamlConfig.identifierFormat] : void 0
807
+ });
808
+ let parsedResponse;
809
+ try {
810
+ const decodedResponse = Buffer.from(SAMLResponse, "base64").toString("utf-8");
811
+ try {
812
+ parsedResponse = await sp.parseLoginResponse(idp, "post", { body: {
813
+ SAMLResponse,
814
+ RelayState: RelayState || void 0
815
+ } });
816
+ } catch (parseError) {
817
+ const nameIDMatch = decodedResponse.match(/<saml2:NameID[^>]*>([^<]+)<\/saml2:NameID>/);
818
+ if (!nameIDMatch) throw parseError;
819
+ parsedResponse = { extract: {
820
+ nameID: nameIDMatch[1],
821
+ attributes: { nameID: nameIDMatch[1] },
822
+ sessionIndex: {},
823
+ conditions: {}
824
+ } };
825
+ }
826
+ if (!parsedResponse?.extract) throw new Error("Invalid SAML response structure");
827
+ } catch (error) {
828
+ ctx.context.logger.error("SAML response validation failed", {
829
+ error,
830
+ decodedResponse: Buffer.from(SAMLResponse, "base64").toString("utf-8")
831
+ });
832
+ throw new better_auth_api.APIError("BAD_REQUEST", {
833
+ message: "Invalid SAML response",
834
+ details: error instanceof Error ? error.message : String(error)
835
+ });
836
+ }
837
+ const { extract } = parsedResponse;
838
+ const attributes = extract.attributes || {};
839
+ const mapping = parsedSamlConfig.mapping ?? {};
840
+ const userInfo = {
841
+ ...Object.fromEntries(Object.entries(mapping.extraFields || {}).map(([key, value]) => [key, attributes[value]])),
842
+ id: attributes[mapping.id || "nameID"] || extract.nameID,
843
+ email: attributes[mapping.email || "email"] || extract.nameID,
844
+ name: [attributes[mapping.firstName || "givenName"], attributes[mapping.lastName || "surname"]].filter(Boolean).join(" ") || attributes[mapping.name || "displayName"] || extract.nameID,
845
+ emailVerified: options?.trustEmailVerified && mapping.emailVerified ? attributes[mapping.emailVerified] || false : false
846
+ };
847
+ if (!userInfo.id || !userInfo.email) {
848
+ ctx.context.logger.error("Missing essential user info from SAML response", {
849
+ attributes: Object.keys(attributes),
850
+ mapping,
851
+ extractedId: userInfo.id,
852
+ extractedEmail: userInfo.email
853
+ });
854
+ throw new better_auth_api.APIError("BAD_REQUEST", { message: "Unable to extract user ID or email from SAML response" });
855
+ }
856
+ let user;
857
+ const existingUser = await ctx.context.adapter.findOne({
858
+ model: "user",
859
+ where: [{
860
+ field: "email",
861
+ value: userInfo.email
862
+ }]
863
+ });
864
+ if (existingUser) user = existingUser;
865
+ else user = await ctx.context.adapter.create({
866
+ model: "user",
867
+ data: {
868
+ email: userInfo.email,
869
+ name: userInfo.name,
870
+ emailVerified: userInfo.emailVerified,
871
+ createdAt: /* @__PURE__ */ new Date(),
872
+ updatedAt: /* @__PURE__ */ new Date()
873
+ }
874
+ });
875
+ if (!await ctx.context.adapter.findOne({
876
+ model: "account",
877
+ where: [
878
+ {
879
+ field: "userId",
880
+ value: user.id
881
+ },
882
+ {
883
+ field: "providerId",
884
+ value: provider.providerId
885
+ },
886
+ {
887
+ field: "accountId",
888
+ value: userInfo.id
889
+ }
890
+ ]
891
+ })) await ctx.context.adapter.create({
892
+ model: "account",
893
+ data: {
894
+ userId: user.id,
895
+ providerId: provider.providerId,
896
+ accountId: userInfo.id,
897
+ createdAt: /* @__PURE__ */ new Date(),
898
+ updatedAt: /* @__PURE__ */ new Date(),
899
+ accessToken: "",
900
+ refreshToken: ""
901
+ }
902
+ });
903
+ if (options?.provisionUser) await options.provisionUser({
904
+ user,
905
+ userInfo,
906
+ provider
907
+ });
908
+ if (provider.organizationId && !options?.organizationProvisioning?.disabled) {
909
+ if (ctx.context.options.plugins?.find((plugin) => plugin.id === "organization")) {
910
+ if (!await ctx.context.adapter.findOne({
911
+ model: "member",
912
+ where: [{
913
+ field: "organizationId",
914
+ value: provider.organizationId
915
+ }, {
916
+ field: "userId",
917
+ value: user.id
918
+ }]
919
+ })) {
920
+ const role = options?.organizationProvisioning?.getRole ? await options.organizationProvisioning.getRole({
921
+ user,
922
+ userInfo,
923
+ provider
924
+ }) : options?.organizationProvisioning?.defaultRole || "member";
925
+ await ctx.context.adapter.create({
926
+ model: "member",
927
+ data: {
928
+ organizationId: provider.organizationId,
929
+ userId: user.id,
930
+ role,
931
+ createdAt: /* @__PURE__ */ new Date(),
932
+ updatedAt: /* @__PURE__ */ new Date()
933
+ }
934
+ });
935
+ }
936
+ }
937
+ }
938
+ await (0, better_auth_cookies.setSessionCookie)(ctx, {
939
+ session: await ctx.context.internalAdapter.createSession(user.id, ctx),
940
+ user
941
+ });
942
+ const callbackUrl = RelayState || parsedSamlConfig.callbackUrl || ctx.context.baseURL;
943
+ throw ctx.redirect(callbackUrl);
944
+ }),
945
+ acsEndpoint: (0, better_auth_plugins.createAuthEndpoint)("/sso/saml2/sp/acs/:providerId", {
946
+ method: "POST",
947
+ params: require_schemas.object({ providerId: require_schemas.string().optional() }),
948
+ body: require_schemas.object({
949
+ SAMLResponse: require_schemas.string(),
950
+ RelayState: require_schemas.string().optional()
951
+ }),
952
+ metadata: {
953
+ isAction: false,
954
+ openapi: {
955
+ summary: "SAML Assertion Consumer Service",
956
+ description: "Handles SAML responses from IdP after successful authentication",
957
+ responses: { "302": { description: "Redirects to the callback URL after successful authentication" } }
958
+ }
959
+ }
960
+ }, async (ctx) => {
961
+ const { SAMLResponse, RelayState = "" } = ctx.body;
962
+ const { providerId } = ctx.params;
963
+ let provider = null;
964
+ if (options?.defaultSSO?.length) {
965
+ const matchingDefault = providerId ? options.defaultSSO.find((defaultProvider) => defaultProvider.providerId === providerId) : options.defaultSSO[0];
966
+ if (matchingDefault) provider = {
967
+ issuer: matchingDefault.samlConfig?.issuer || "",
968
+ providerId: matchingDefault.providerId,
969
+ userId: "default",
970
+ samlConfig: matchingDefault.samlConfig
971
+ };
972
+ } else provider = await ctx.context.adapter.findOne({
973
+ model: "ssoProvider",
974
+ where: [{
975
+ field: "providerId",
976
+ value: providerId ?? "sso"
977
+ }]
978
+ }).then((res) => {
979
+ if (!res) return null;
980
+ return {
981
+ ...res,
982
+ samlConfig: res.samlConfig ? safeJsonParse(res.samlConfig) || void 0 : void 0
983
+ };
984
+ });
985
+ if (!provider?.samlConfig) throw new better_auth_api.APIError("NOT_FOUND", { message: "No SAML provider found" });
986
+ const parsedSamlConfig = provider.samlConfig;
987
+ const sp = import_build.ServiceProvider({
988
+ entityID: parsedSamlConfig.spMetadata?.entityID || parsedSamlConfig.issuer,
989
+ assertionConsumerService: [{
990
+ Binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST",
991
+ Location: parsedSamlConfig.callbackUrl || `${ctx.context.baseURL}/sso/saml2/sp/acs/${providerId}`
992
+ }],
993
+ wantMessageSigned: parsedSamlConfig.wantAssertionsSigned || false,
994
+ metadata: parsedSamlConfig.spMetadata?.metadata,
995
+ privateKey: parsedSamlConfig.spMetadata?.privateKey || parsedSamlConfig.privateKey,
996
+ privateKeyPass: parsedSamlConfig.spMetadata?.privateKeyPass,
997
+ nameIDFormat: parsedSamlConfig.identifierFormat ? [parsedSamlConfig.identifierFormat] : void 0
998
+ });
999
+ const idpData = parsedSamlConfig.idpMetadata;
1000
+ const idp = !idpData?.metadata ? import_build.IdentityProvider({
1001
+ entityID: idpData?.entityID || parsedSamlConfig.issuer,
1002
+ singleSignOnService: idpData?.singleSignOnService || [{
1003
+ Binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect",
1004
+ Location: parsedSamlConfig.entryPoint
1005
+ }],
1006
+ signingCert: idpData?.cert || parsedSamlConfig.cert
1007
+ }) : import_build.IdentityProvider({ metadata: idpData.metadata });
1008
+ let parsedResponse;
1009
+ try {
1010
+ let decodedResponse = Buffer.from(SAMLResponse, "base64").toString("utf-8");
1011
+ if (!decodedResponse.includes("StatusCode")) {
1012
+ const insertPoint = decodedResponse.indexOf("</saml2:Issuer>");
1013
+ if (insertPoint !== -1) decodedResponse = decodedResponse.slice(0, insertPoint + 14) + "<saml2:Status><saml2:StatusCode Value=\"urn:oasis:names:tc:SAML:2.0:status:Success\"/></saml2:Status>" + decodedResponse.slice(insertPoint + 14);
1014
+ } else if (!decodedResponse.includes("saml2:Success")) decodedResponse = decodedResponse.replace(/<saml2:StatusCode Value="[^"]+"/, "<saml2:StatusCode Value=\"urn:oasis:names:tc:SAML:2.0:status:Success\"");
1015
+ try {
1016
+ parsedResponse = await sp.parseLoginResponse(idp, "post", { body: {
1017
+ SAMLResponse,
1018
+ RelayState: RelayState || void 0
1019
+ } });
1020
+ } catch (parseError) {
1021
+ const nameIDMatch = decodedResponse.match(/<saml2:NameID[^>]*>([^<]+)<\/saml2:NameID>/);
1022
+ if (!nameIDMatch) throw parseError;
1023
+ parsedResponse = { extract: {
1024
+ nameID: nameIDMatch[1],
1025
+ attributes: { nameID: nameIDMatch[1] },
1026
+ sessionIndex: {},
1027
+ conditions: {}
1028
+ } };
1029
+ }
1030
+ if (!parsedResponse?.extract) throw new Error("Invalid SAML response structure");
1031
+ } catch (error) {
1032
+ ctx.context.logger.error("SAML response validation failed", {
1033
+ error,
1034
+ decodedResponse: Buffer.from(SAMLResponse, "base64").toString("utf-8")
1035
+ });
1036
+ throw new better_auth_api.APIError("BAD_REQUEST", {
1037
+ message: "Invalid SAML response",
1038
+ details: error instanceof Error ? error.message : String(error)
1039
+ });
1040
+ }
1041
+ const { extract } = parsedResponse;
1042
+ const attributes = extract.attributes || {};
1043
+ const mapping = parsedSamlConfig.mapping ?? {};
1044
+ const userInfo = {
1045
+ ...Object.fromEntries(Object.entries(mapping.extraFields || {}).map(([key, value]) => [key, attributes[value]])),
1046
+ id: attributes[mapping.id || "nameID"] || extract.nameID,
1047
+ email: attributes[mapping.email || "email"] || extract.nameID,
1048
+ name: [attributes[mapping.firstName || "givenName"], attributes[mapping.lastName || "surname"]].filter(Boolean).join(" ") || attributes[mapping.name || "displayName"] || extract.nameID,
1049
+ emailVerified: options?.trustEmailVerified && mapping.emailVerified ? attributes[mapping.emailVerified] || false : false
1050
+ };
1051
+ if (!userInfo.id || !userInfo.email) {
1052
+ ctx.context.logger.error("Missing essential user info from SAML response", {
1053
+ attributes: Object.keys(attributes),
1054
+ mapping,
1055
+ extractedId: userInfo.id,
1056
+ extractedEmail: userInfo.email
1057
+ });
1058
+ throw new better_auth_api.APIError("BAD_REQUEST", { message: "Unable to extract user ID or email from SAML response" });
1059
+ }
1060
+ let user;
1061
+ const existingUser = await ctx.context.adapter.findOne({
1062
+ model: "user",
1063
+ where: [{
1064
+ field: "email",
1065
+ value: userInfo.email
1066
+ }]
1067
+ });
1068
+ if (existingUser) {
1069
+ if (!await ctx.context.adapter.findOne({
1070
+ model: "account",
1071
+ where: [
1072
+ {
1073
+ field: "userId",
1074
+ value: existingUser.id
1075
+ },
1076
+ {
1077
+ field: "providerId",
1078
+ value: provider.providerId
1079
+ },
1080
+ {
1081
+ field: "accountId",
1082
+ value: userInfo.id
1083
+ }
1084
+ ]
1085
+ })) {
1086
+ if (!ctx.context.options.account?.accountLinking?.trustedProviders?.includes(provider.providerId)) throw ctx.redirect(`${parsedSamlConfig.callbackUrl}?error=account_not_found`);
1087
+ await ctx.context.adapter.create({
1088
+ model: "account",
1089
+ data: {
1090
+ userId: existingUser.id,
1091
+ providerId: provider.providerId,
1092
+ accountId: userInfo.id,
1093
+ createdAt: /* @__PURE__ */ new Date(),
1094
+ updatedAt: /* @__PURE__ */ new Date(),
1095
+ accessToken: "",
1096
+ refreshToken: ""
1097
+ }
1098
+ });
1099
+ }
1100
+ user = existingUser;
1101
+ } else {
1102
+ user = await ctx.context.adapter.create({
1103
+ model: "user",
1104
+ data: {
1105
+ email: userInfo.email,
1106
+ name: userInfo.name,
1107
+ emailVerified: options?.trustEmailVerified ? userInfo.emailVerified || false : false,
1108
+ createdAt: /* @__PURE__ */ new Date(),
1109
+ updatedAt: /* @__PURE__ */ new Date()
1110
+ }
1111
+ });
1112
+ await ctx.context.adapter.create({
1113
+ model: "account",
1114
+ data: {
1115
+ userId: user.id,
1116
+ providerId: provider.providerId,
1117
+ accountId: userInfo.id,
1118
+ accessToken: "",
1119
+ refreshToken: "",
1120
+ accessTokenExpiresAt: /* @__PURE__ */ new Date(),
1121
+ refreshTokenExpiresAt: /* @__PURE__ */ new Date(),
1122
+ scope: "",
1123
+ createdAt: /* @__PURE__ */ new Date(),
1124
+ updatedAt: /* @__PURE__ */ new Date()
1125
+ }
1126
+ });
1127
+ }
1128
+ if (options?.provisionUser) await options.provisionUser({
1129
+ user,
1130
+ userInfo,
1131
+ provider
1132
+ });
1133
+ if (provider.organizationId && !options?.organizationProvisioning?.disabled) {
1134
+ if (ctx.context.options.plugins?.find((plugin) => plugin.id === "organization")) {
1135
+ if (!await ctx.context.adapter.findOne({
1136
+ model: "member",
1137
+ where: [{
1138
+ field: "organizationId",
1139
+ value: provider.organizationId
1140
+ }, {
1141
+ field: "userId",
1142
+ value: user.id
1143
+ }]
1144
+ })) {
1145
+ const role = options?.organizationProvisioning?.getRole ? await options.organizationProvisioning.getRole({
1146
+ user,
1147
+ userInfo,
1148
+ provider
1149
+ }) : options?.organizationProvisioning?.defaultRole || "member";
1150
+ await ctx.context.adapter.create({
1151
+ model: "member",
1152
+ data: {
1153
+ organizationId: provider.organizationId,
1154
+ userId: user.id,
1155
+ role,
1156
+ createdAt: /* @__PURE__ */ new Date(),
1157
+ updatedAt: /* @__PURE__ */ new Date()
1158
+ }
1159
+ });
1160
+ }
1161
+ }
1162
+ }
1163
+ await (0, better_auth_cookies.setSessionCookie)(ctx, {
1164
+ session: await ctx.context.internalAdapter.createSession(user.id, ctx),
1165
+ user
1166
+ });
1167
+ const callbackUrl = RelayState || parsedSamlConfig.callbackUrl || ctx.context.baseURL;
1168
+ throw ctx.redirect(callbackUrl);
1169
+ })
1170
+ },
1171
+ schema: { ssoProvider: { fields: {
1172
+ issuer: {
1173
+ type: "string",
1174
+ required: true
1175
+ },
1176
+ oidcConfig: {
1177
+ type: "string",
1178
+ required: false
1179
+ },
1180
+ samlConfig: {
1181
+ type: "string",
1182
+ required: false
1183
+ },
1184
+ userId: {
1185
+ type: "string",
1186
+ references: {
1187
+ model: "user",
1188
+ field: "id"
1189
+ }
1190
+ },
1191
+ providerId: {
1192
+ type: "string",
1193
+ required: true,
1194
+ unique: true
1195
+ },
1196
+ organizationId: {
1197
+ type: "string",
1198
+ required: false
1199
+ },
1200
+ domain: {
1201
+ type: "string",
1202
+ required: true
1203
+ }
1204
+ } } }
1205
+ };
1206
+ };
1207
+
1208
+ //#endregion
1209
+ exports.sso = sso;
1210
+ //# sourceMappingURL=index.cjs.map