zudoku 0.0.0-fix-firebase-export.2e421fda → 0.0.0-monetization-standalone.z07361713

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 (410) hide show
  1. package/dist/app/main.d.ts +6 -6
  2. package/dist/cli/common/version-check.js +12 -3
  3. package/dist/cli/common/version-check.js.map +1 -1
  4. package/dist/config/create-plugin.d.ts +2 -0
  5. package/dist/config/create-plugin.js +30 -0
  6. package/dist/config/create-plugin.js.map +1 -0
  7. package/dist/config/loader.js +3 -1
  8. package/dist/config/loader.js.map +1 -1
  9. package/dist/config/validators/InputNavigationSchema.d.ts +77 -75
  10. package/dist/config/validators/InputNavigationSchema.js +1 -0
  11. package/dist/config/validators/InputNavigationSchema.js.map +1 -1
  12. package/dist/config/validators/NavigationSchema.js +6 -1
  13. package/dist/config/validators/NavigationSchema.js.map +1 -1
  14. package/dist/config/validators/ProtectedRoutesSchema.d.ts +1 -1
  15. package/dist/config/validators/validate.d.ts +61 -15
  16. package/dist/config/validators/validate.js +9 -5
  17. package/dist/config/validators/validate.js.map +1 -1
  18. package/dist/flat-config.d.ts +30 -27
  19. package/dist/index.d.ts +3 -1
  20. package/dist/index.js +3 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/lib/auth/issuer.js +1 -1
  23. package/dist/lib/auth/issuer.js.map +1 -1
  24. package/dist/lib/authentication/authentication.d.ts +3 -2
  25. package/dist/lib/authentication/components/CallbackHandler.js +1 -1
  26. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
  27. package/dist/lib/authentication/components/SignIn.js +4 -2
  28. package/dist/lib/authentication/components/SignIn.js.map +1 -1
  29. package/dist/lib/authentication/components/SignUp.js +4 -2
  30. package/dist/lib/authentication/components/SignUp.js.map +1 -1
  31. package/dist/lib/authentication/hook.d.ts +2 -0
  32. package/dist/lib/authentication/hook.js +10 -0
  33. package/dist/lib/authentication/hook.js.map +1 -1
  34. package/dist/lib/authentication/providers/auth0.js +11 -7
  35. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  36. package/dist/lib/authentication/providers/clerk.js +0 -22
  37. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  38. package/dist/lib/authentication/providers/firebase.js +67 -9
  39. package/dist/lib/authentication/providers/firebase.js.map +1 -1
  40. package/dist/lib/authentication/providers/supabase.js +6 -15
  41. package/dist/lib/authentication/providers/supabase.js.map +1 -1
  42. package/dist/lib/authentication/ui/EmailVerificationUi.d.ts +4 -0
  43. package/dist/lib/authentication/ui/EmailVerificationUi.js +34 -0
  44. package/dist/lib/authentication/ui/EmailVerificationUi.js.map +1 -0
  45. package/dist/lib/authentication/ui/ZudokuAuthUi.d.ts +7 -2
  46. package/dist/lib/authentication/ui/ZudokuAuthUi.js +48 -12
  47. package/dist/lib/authentication/ui/ZudokuAuthUi.js.map +1 -1
  48. package/dist/lib/authentication/utils/relativeRedirectUrl.d.ts +1 -0
  49. package/dist/lib/authentication/utils/relativeRedirectUrl.js +8 -0
  50. package/dist/lib/authentication/utils/relativeRedirectUrl.js.map +1 -0
  51. package/dist/lib/components/Bootstrap.js +1 -2
  52. package/dist/lib/components/Bootstrap.js.map +1 -1
  53. package/dist/lib/components/Pagination.js +2 -2
  54. package/dist/lib/components/Pagination.js.map +1 -1
  55. package/dist/lib/components/Zudoku.js +2 -5
  56. package/dist/lib/components/Zudoku.js.map +1 -1
  57. package/dist/lib/components/context/ZudokuContext.d.ts +2 -4
  58. package/dist/lib/components/context/ZudokuContext.js +2 -2
  59. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  60. package/dist/lib/components/context/ZudokuProvider.js +1 -1
  61. package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
  62. package/dist/lib/components/context/ZudokuReactContext.d.ts +11 -0
  63. package/dist/lib/components/context/ZudokuReactContext.js +4 -0
  64. package/dist/lib/components/context/ZudokuReactContext.js.map +1 -0
  65. package/dist/lib/components/index.d.ts +5 -0
  66. package/dist/lib/components/index.js +4 -0
  67. package/dist/lib/components/index.js.map +1 -1
  68. package/dist/lib/components/navigation/NavigationItem.js +2 -2
  69. package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
  70. package/dist/lib/core/RouteGuard.js +12 -7
  71. package/dist/lib/core/RouteGuard.js.map +1 -1
  72. package/dist/lib/core/plugins.d.ts +11 -1
  73. package/dist/lib/core/plugins.js +1 -0
  74. package/dist/lib/core/plugins.js.map +1 -1
  75. package/dist/lib/core/react-query.d.ts +1 -0
  76. package/dist/lib/core/react-query.js +2 -0
  77. package/dist/lib/core/react-query.js.map +1 -0
  78. package/dist/lib/core/transform-config.d.ts +2 -0
  79. package/dist/lib/core/transform-config.js +22 -0
  80. package/dist/lib/core/transform-config.js.map +1 -0
  81. package/dist/lib/errors/ErrorAlert.js +1 -2
  82. package/dist/lib/errors/ErrorAlert.js.map +1 -1
  83. package/dist/lib/errors/ErrorMessage.d.ts +3 -0
  84. package/dist/lib/errors/ErrorMessage.js +16 -0
  85. package/dist/lib/errors/ErrorMessage.js.map +1 -0
  86. package/dist/lib/hooks/index.d.ts +2 -0
  87. package/dist/lib/oas/graphql/circular.d.ts +2 -0
  88. package/dist/lib/oas/graphql/circular.js +32 -10
  89. package/dist/lib/oas/graphql/circular.js.map +1 -1
  90. package/dist/lib/oas/graphql/circular.test.d.ts +1 -0
  91. package/dist/lib/oas/graphql/circular.test.js +152 -0
  92. package/dist/lib/oas/graphql/circular.test.js.map +1 -0
  93. package/dist/lib/oas/graphql/index.js +7 -3
  94. package/dist/lib/oas/graphql/index.js.map +1 -1
  95. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +9 -172
  96. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  97. package/dist/lib/plugins/api-keys/index.d.ts +11 -4
  98. package/dist/lib/plugins/api-keys/index.js +36 -22
  99. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  100. package/dist/lib/plugins/api-keys/settings/ApiKeyItem.d.ts +12 -0
  101. package/dist/lib/plugins/api-keys/settings/ApiKeyItem.js +133 -0
  102. package/dist/lib/plugins/api-keys/settings/ApiKeyItem.js.map +1 -0
  103. package/dist/lib/plugins/api-keys/settings/ApiKeyList.d.ts +4 -0
  104. package/dist/lib/plugins/api-keys/settings/ApiKeyList.js +33 -0
  105. package/dist/lib/plugins/api-keys/settings/ApiKeyList.js.map +1 -0
  106. package/dist/lib/plugins/api-keys/settings/RevealApiKey.d.ts +6 -0
  107. package/dist/lib/plugins/api-keys/settings/RevealApiKey.js +39 -0
  108. package/dist/lib/plugins/api-keys/settings/RevealApiKey.js.map +1 -0
  109. package/dist/lib/plugins/openapi/OasProvider.js +6 -2
  110. package/dist/lib/plugins/openapi/OasProvider.js.map +1 -1
  111. package/dist/lib/plugins/openapi/OperationList.js +4 -4
  112. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  113. package/dist/lib/plugins/openapi/ParamInfos.js +1 -0
  114. package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -1
  115. package/dist/lib/plugins/openapi/Sidecar.js +3 -2
  116. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  117. package/dist/lib/plugins/openapi/interfaces.d.ts +3 -0
  118. package/dist/lib/plugins/openapi/schema/SchemaView.js +1 -1
  119. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  120. package/dist/lib/plugins/openapi/schema/utils.js +11 -3
  121. package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
  122. package/dist/lib/plugins/openapi/util/createHttpSnippet.js +24 -1
  123. package/dist/lib/plugins/openapi/util/createHttpSnippet.js.map +1 -1
  124. package/dist/lib/plugins/openapi/util/getRoutes.d.ts +3 -0
  125. package/dist/lib/plugins/openapi/util/getRoutes.js +2 -1
  126. package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -1
  127. package/dist/lib/ui/Button.js +1 -1
  128. package/dist/lib/ui/Button.js.map +1 -1
  129. package/dist/lib/ui/Command.d.ts +3 -3
  130. package/dist/lib/ui/Secret.js +2 -2
  131. package/dist/lib/ui/Secret.js.map +1 -1
  132. package/dist/lib/util/invariant.d.ts +1 -1
  133. package/dist/lib/util/invariant.js +2 -2
  134. package/dist/lib/util/invariant.js.map +1 -1
  135. package/dist/vite/api/SchemaManager.d.ts +12 -1
  136. package/dist/vite/api/SchemaManager.js +31 -14
  137. package/dist/vite/api/SchemaManager.js.map +1 -1
  138. package/dist/vite/api/SchemaManager.test.js +44 -0
  139. package/dist/vite/api/SchemaManager.test.js.map +1 -1
  140. package/dist/vite/config.js +10 -4
  141. package/dist/vite/config.js.map +1 -1
  142. package/dist/vite/error-handler.js +1 -5
  143. package/dist/vite/error-handler.js.map +1 -1
  144. package/dist/vite/mdx/remark-link-rewrite.js +1 -1
  145. package/dist/vite/plugin-api-keys.js +5 -1
  146. package/dist/vite/plugin-api-keys.js.map +1 -1
  147. package/dist/vite/plugin-api.js +5 -3
  148. package/dist/vite/plugin-api.js.map +1 -1
  149. package/dist/vite/plugin-markdown-export.js +1 -1
  150. package/dist/vite/plugin-markdown-export.js.map +1 -1
  151. package/dist/vite/plugin-theme.js +2 -1
  152. package/dist/vite/plugin-theme.js.map +1 -1
  153. package/dist/vite/prerender/utils.js +9 -3
  154. package/dist/vite/prerender/utils.js.map +1 -1
  155. package/dist/vite/prerender/worker.js +3 -0
  156. package/dist/vite/prerender/worker.js.map +1 -1
  157. package/dist/vite/zuplo.d.ts +13 -0
  158. package/dist/vite/zuplo.js +15 -0
  159. package/dist/vite/zuplo.js.map +1 -0
  160. package/lib/{ActionButton-DUgvSylL.js → ActionButton-B0CXL1Lq.js} +3 -3
  161. package/lib/{ActionButton-DUgvSylL.js.map → ActionButton-B0CXL1Lq.js.map} +1 -1
  162. package/lib/{Button-CynVW1JV.js → Button-GUVe7pmt.js} +8 -7
  163. package/lib/{Button-CynVW1JV.js.map → Button-GUVe7pmt.js.map} +1 -1
  164. package/lib/{Card-KFniaZn5.js → Card-DCdq37aA.js} +2 -2
  165. package/lib/{Card-KFniaZn5.js.map → Card-DCdq37aA.js.map} +1 -1
  166. package/lib/{ClaudeLogo-B4Xxt-x_.js → ClaudeLogo-CUaQXKLK.js} +22 -22
  167. package/lib/ClaudeLogo-CUaQXKLK.js.map +1 -0
  168. package/lib/{Command-BpT1iBE6.js → Command-N6VujV30.js} +3 -3
  169. package/lib/{Command-BpT1iBE6.js.map → Command-N6VujV30.js.map} +1 -1
  170. package/lib/{Dialog-BQciPiHN.js → Dialog-hlvmmQ_c.js} +2 -2
  171. package/lib/{Dialog-BQciPiHN.js.map → Dialog-hlvmmQ_c.js.map} +1 -1
  172. package/lib/{Drawer-Ci7XwhqT.js → Drawer-Ch7927PF.js} +7 -7
  173. package/lib/{Drawer-Ci7XwhqT.js.map → Drawer-Ch7927PF.js.map} +1 -1
  174. package/lib/{DropdownMenu-C8SX_-S_.js → DropdownMenu-DN0jNrjj.js} +2 -2
  175. package/lib/{DropdownMenu-C8SX_-S_.js.map → DropdownMenu-DN0jNrjj.js.map} +1 -1
  176. package/lib/Frame-DKlOmSkU.js +205 -0
  177. package/lib/Frame-DKlOmSkU.js.map +1 -0
  178. package/lib/HydrationBoundary-CNF2ZV3E.js +601 -0
  179. package/lib/HydrationBoundary-CNF2ZV3E.js.map +1 -0
  180. package/lib/{IndexingDialog-B5zCiUKr.js → IndexingDialog-D0YdGfbn.js} +3 -3
  181. package/lib/{IndexingDialog-B5zCiUKr.js.map → IndexingDialog-D0YdGfbn.js.map} +1 -1
  182. package/lib/Input-Cx-GeKoF.js +22 -0
  183. package/lib/Input-Cx-GeKoF.js.map +1 -0
  184. package/lib/{MdxPage-BagO2c-n.js → MdxPage-BiAVpP8K.js} +11 -11
  185. package/lib/{MdxPage-BagO2c-n.js.map → MdxPage-BiAVpP8K.js.map} +1 -1
  186. package/lib/{Mermaid-D_VSX7_Q.js → Mermaid-DEztDKFw.js} +4 -4
  187. package/lib/{Mermaid-D_VSX7_Q.js.map → Mermaid-DEztDKFw.js.map} +1 -1
  188. package/lib/{OAuthErrorPage-Fq54RLgt.js → OAuthErrorPage-DhJo-O2B.js} +15 -15
  189. package/lib/OAuthErrorPage-DhJo-O2B.js.map +1 -0
  190. package/lib/OasProvider-DFMZwyNn.js +48 -0
  191. package/lib/OasProvider-DFMZwyNn.js.map +1 -0
  192. package/lib/{OperationList-C0jiEaG5.js → OperationList-CnmLfOuu.js} +1560 -1545
  193. package/lib/{OperationList-C0jiEaG5.js.map → OperationList-CnmLfOuu.js.map} +1 -1
  194. package/lib/RouteGuard-CZuPjknT.js +77 -0
  195. package/lib/RouteGuard-CZuPjknT.js.map +1 -0
  196. package/lib/{SchemaList-BU0zCHn9.js → SchemaList-B5ikunUd.js} +9 -9
  197. package/lib/{SchemaList-BU0zCHn9.js.map → SchemaList-B5ikunUd.js.map} +1 -1
  198. package/lib/SchemaView-rjji7zMf.js +438 -0
  199. package/lib/SchemaView-rjji7zMf.js.map +1 -0
  200. package/lib/{Select-CkxXP5I7.js → Secret-BE7V0Vb5.js} +159 -139
  201. package/lib/Secret-BE7V0Vb5.js.map +1 -0
  202. package/lib/{Separator-CTPSeW1S.js → Separator-BXt1LYnm.js} +2 -2
  203. package/lib/{Separator-CTPSeW1S.js.map → Separator-BXt1LYnm.js.map} +1 -1
  204. package/lib/SignUp-DHWDXat-.js +50 -0
  205. package/lib/SignUp-DHWDXat-.js.map +1 -0
  206. package/lib/{SyntaxHighlight-Kdyskw3C.js → SyntaxHighlight-paLQ8NP8.js} +1751 -1725
  207. package/lib/SyntaxHighlight-paLQ8NP8.js.map +1 -0
  208. package/lib/{Toc-DJxFPfcS.js → Toc-vMbSQCkj.js} +3 -3
  209. package/lib/{Toc-DJxFPfcS.js.map → Toc-vMbSQCkj.js.map} +1 -1
  210. package/lib/ZudokuContext-CnEI8jPU.js +389 -0
  211. package/lib/ZudokuContext-CnEI8jPU.js.map +1 -0
  212. package/lib/{___vite-browser-external_commonjs-proxy-Cga3HsWk.js → ___vite-browser-external_commonjs-proxy-BttVsNON.js} +2 -2
  213. package/lib/___vite-browser-external_commonjs-proxy-BttVsNON.js.map +1 -0
  214. package/lib/chunk-EPOLDU6W-C6C8jAwd.js +8558 -0
  215. package/lib/chunk-EPOLDU6W-C6C8jAwd.js.map +1 -0
  216. package/lib/{circular-CzWF1hj5.js → circular-CLhJAE3S.js} +771 -749
  217. package/lib/{circular-CzWF1hj5.js.map → circular-CLhJAE3S.js.map} +1 -1
  218. package/lib/{cn-dYga0KKN.js → cn-5-Gd1Dss.js} +531 -498
  219. package/lib/cn-5-Gd1Dss.js.map +1 -0
  220. package/lib/{createServer-BIr2_tGn.js → createServer-BYtu5Pcr.js} +12 -12
  221. package/lib/{createServer-BIr2_tGn.js.map → createServer-BYtu5Pcr.js.map} +1 -1
  222. package/lib/createVariantComponent-Dc0vtOvr.js +18 -0
  223. package/lib/createVariantComponent-Dc0vtOvr.js.map +1 -0
  224. package/lib/{errors-Bs4duWDy.js → errors-DkJIl45d.js} +3 -3
  225. package/lib/{errors-Bs4duWDy.js.map → errors-DkJIl45d.js.map} +1 -1
  226. package/lib/{firebase-Cax7HPzn.js → firebase-CmsW0j7-.js} +1579 -1325
  227. package/lib/firebase-CmsW0j7-.js.map +1 -0
  228. package/lib/hook-Da8QTnPd.js +52 -0
  229. package/lib/hook-Da8QTnPd.js.map +1 -0
  230. package/lib/{index-Css56y3F.js → index-Ba6RP577.js} +4 -4
  231. package/lib/{index-Css56y3F.js.map → index-Ba6RP577.js.map} +1 -1
  232. package/lib/index-CrcNWbel.js.map +1 -1
  233. package/lib/{index-Bh-MffiL.js → index-D35F-SCL.js} +2 -2
  234. package/lib/{index-Bh-MffiL.js.map → index-D35F-SCL.js.map} +1 -1
  235. package/lib/{index-0oT9beQN.js → index-k0PVZBYl.js} +155 -151
  236. package/lib/{index-0oT9beQN.js.map → index-k0PVZBYl.js.map} +1 -1
  237. package/lib/{ErrorAlert-DrOR8w3f.js → index-ofqkdEjL.js} +5457 -4444
  238. package/lib/index-ofqkdEjL.js.map +1 -0
  239. package/lib/index.esm-BYObtETB.js.map +1 -1
  240. package/lib/{index.esm-DtzT_KoE.js → index.esm-B_0dvNjB.js} +2 -2
  241. package/lib/{index.esm-DtzT_KoE.js.map → index.esm-B_0dvNjB.js.map} +1 -1
  242. package/lib/{index.esm-DDENMN4y.js → index.esm-DFzsB75P.js} +16 -14
  243. package/lib/index.esm-DFzsB75P.js.map +1 -0
  244. package/lib/{invariant-CGOLuIIz.js → invariant-BJAl77rw.js} +4 -4
  245. package/lib/invariant-BJAl77rw.js.map +1 -0
  246. package/lib/jsx-runtime-BzflLqGi.js.map +1 -1
  247. package/lib/{mutation-BoVlx8yA.js → mutation-BISOc7OM.js} +70 -44
  248. package/lib/mutation-BISOc7OM.js.map +1 -0
  249. package/lib/ui/Accordion.js +1 -1
  250. package/lib/ui/ActionButton.js +2 -2
  251. package/lib/ui/Alert.js +1 -1
  252. package/lib/ui/AlertDialog.js +1 -1
  253. package/lib/ui/Badge.js +1 -1
  254. package/lib/ui/Breadcrumb.js +1 -1
  255. package/lib/ui/Button.js +7 -6
  256. package/lib/ui/Button.js.map +1 -1
  257. package/lib/ui/ButtonGroup.js +1 -1
  258. package/lib/ui/Callout.js +1 -1
  259. package/lib/ui/Card.js +1 -1
  260. package/lib/ui/Carousel.js +1 -1
  261. package/lib/ui/Carousel.js.map +1 -1
  262. package/lib/ui/Checkbox.js +1 -1
  263. package/lib/ui/CodeBlock.js +1 -1
  264. package/lib/ui/Command.js +2 -2
  265. package/lib/ui/Dialog.js +1 -1
  266. package/lib/ui/Drawer.js +3 -3
  267. package/lib/ui/DropdownMenu.js +1 -1
  268. package/lib/ui/EmbeddedCodeBlock.js +1 -1
  269. package/lib/ui/Form.js +1 -1
  270. package/lib/ui/Frame.js +1 -1
  271. package/lib/ui/HoverCard.js +1 -1
  272. package/lib/ui/Input.js +1 -1
  273. package/lib/ui/Item.js +1 -1
  274. package/lib/ui/Label.js +1 -1
  275. package/lib/ui/NativeSelect.js +1 -1
  276. package/lib/ui/Pagination.js +1 -1
  277. package/lib/ui/Popover.js +1 -1
  278. package/lib/ui/Progress.js +1 -1
  279. package/lib/ui/RadioGroup.js +1 -1
  280. package/lib/ui/ScrollArea.js +1 -1
  281. package/lib/ui/Secret.js +3 -3
  282. package/lib/ui/Secret.js.map +1 -1
  283. package/lib/ui/Separator.js +1 -1
  284. package/lib/ui/Skeleton.js +1 -1
  285. package/lib/ui/Slider.js +1 -1
  286. package/lib/ui/Switch.js +1 -1
  287. package/lib/ui/SyntaxHighlight.js +3 -3
  288. package/lib/ui/Tabs.js +1 -1
  289. package/lib/ui/Textarea.js +1 -1
  290. package/lib/ui/Toggle.js +1 -1
  291. package/lib/ui/ToggleGroup.js +1 -1
  292. package/lib/ui/Value.js +1 -1
  293. package/lib/ui/util.js +1 -1
  294. package/lib/{useMutation-C6RqWmTS.js → useMutation-CFMGlAMW.js} +39 -17
  295. package/lib/useMutation-CFMGlAMW.js.map +1 -0
  296. package/lib/useSuspenseQuery-CSB_rVek.js +1226 -0
  297. package/lib/useSuspenseQuery-CSB_rVek.js.map +1 -0
  298. package/lib/zudoku.__internal.js +826 -1325
  299. package/lib/zudoku.__internal.js.map +1 -1
  300. package/lib/zudoku.auth-auth0.js +16 -16
  301. package/lib/zudoku.auth-auth0.js.map +1 -1
  302. package/lib/zudoku.auth-azureb2c.js +4 -4
  303. package/lib/zudoku.auth-clerk.js +52 -75
  304. package/lib/zudoku.auth-clerk.js.map +1 -1
  305. package/lib/zudoku.auth-firebase.js +6 -5
  306. package/lib/zudoku.auth-firebase.js.map +1 -1
  307. package/lib/zudoku.auth-openid.js +5 -5
  308. package/lib/zudoku.auth-supabase.js +31 -40
  309. package/lib/zudoku.auth-supabase.js.map +1 -1
  310. package/lib/zudoku.components.js +23 -21
  311. package/lib/zudoku.hooks.js +3 -3
  312. package/lib/zudoku.mermaid.js +3 -3
  313. package/lib/zudoku.plugin-api-catalog.js +8 -8
  314. package/lib/zudoku.plugin-api-keys.js +607 -552
  315. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  316. package/lib/zudoku.plugin-custom-pages.js +1 -1
  317. package/lib/zudoku.plugin-markdown.js +1 -1
  318. package/lib/zudoku.plugin-openapi.js +3 -3
  319. package/lib/zudoku.plugin-redirect.js +1 -1
  320. package/lib/zudoku.plugin-search-pagefind.js +30 -29
  321. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  322. package/lib/zudoku.plugins.js +9 -8
  323. package/lib/zudoku.plugins.js.map +1 -1
  324. package/lib/zudoku.react-query.js +440 -0
  325. package/lib/zudoku.react-query.js.map +1 -0
  326. package/lib/zudoku.router.js +1130 -1404
  327. package/lib/zudoku.router.js.map +1 -1
  328. package/package.json +36 -22
  329. package/src/lib/auth/issuer.ts +1 -1
  330. package/src/lib/authentication/authentication.ts +8 -2
  331. package/src/lib/authentication/components/CallbackHandler.tsx +1 -1
  332. package/src/lib/authentication/components/SignIn.tsx +5 -2
  333. package/src/lib/authentication/components/SignUp.tsx +5 -2
  334. package/src/lib/authentication/hook.ts +16 -0
  335. package/src/lib/authentication/providers/auth0.tsx +15 -9
  336. package/src/lib/authentication/providers/clerk.tsx +0 -26
  337. package/src/lib/authentication/providers/firebase.tsx +98 -6
  338. package/src/lib/authentication/providers/supabase.tsx +6 -15
  339. package/src/lib/authentication/ui/EmailVerificationUi.tsx +129 -0
  340. package/src/lib/authentication/ui/ZudokuAuthUi.tsx +181 -39
  341. package/src/lib/authentication/utils/relativeRedirectUrl.ts +12 -0
  342. package/src/lib/components/Bootstrap.tsx +1 -4
  343. package/src/lib/components/Pagination.tsx +4 -5
  344. package/src/lib/components/Zudoku.tsx +5 -11
  345. package/src/lib/components/context/ZudokuContext.ts +2 -6
  346. package/src/lib/components/context/ZudokuProvider.tsx +1 -1
  347. package/src/lib/components/context/ZudokuReactContext.tsx +17 -0
  348. package/src/lib/components/index.ts +4 -0
  349. package/src/lib/components/navigation/NavigationItem.tsx +9 -3
  350. package/src/lib/core/RouteGuard.tsx +30 -24
  351. package/src/lib/core/plugins.ts +21 -1
  352. package/src/lib/core/react-query.ts +1 -0
  353. package/src/lib/core/transform-config.ts +29 -0
  354. package/src/lib/errors/ErrorAlert.tsx +1 -6
  355. package/src/lib/errors/ErrorMessage.tsx +38 -0
  356. package/src/lib/oas/graphql/circular.test.ts +186 -0
  357. package/src/lib/oas/graphql/circular.ts +49 -10
  358. package/src/lib/oas/graphql/index.ts +7 -3
  359. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +36 -476
  360. package/src/lib/plugins/api-keys/index.tsx +76 -32
  361. package/src/lib/plugins/api-keys/settings/ApiKeyItem.tsx +342 -0
  362. package/src/lib/plugins/api-keys/settings/ApiKeyList.tsx +67 -0
  363. package/src/lib/plugins/api-keys/settings/RevealApiKey.tsx +124 -0
  364. package/src/lib/plugins/openapi/OasProvider.tsx +10 -2
  365. package/src/lib/plugins/openapi/OperationList.tsx +4 -4
  366. package/src/lib/plugins/openapi/ParamInfos.tsx +1 -0
  367. package/src/lib/plugins/openapi/Sidecar.tsx +3 -2
  368. package/src/lib/plugins/openapi/interfaces.ts +6 -1
  369. package/src/lib/plugins/openapi/schema/SchemaView.tsx +6 -4
  370. package/src/lib/plugins/openapi/schema/utils.ts +15 -4
  371. package/src/lib/plugins/openapi/util/createHttpSnippet.ts +29 -1
  372. package/src/lib/plugins/openapi/util/getRoutes.tsx +4 -1
  373. package/src/lib/ui/Button.tsx +1 -0
  374. package/src/lib/ui/Secret.tsx +2 -2
  375. package/src/lib/util/invariant.ts +2 -1
  376. package/src/shiki/langs/c3.js +1 -0
  377. package/src/shiki/langs/gn.js +1 -0
  378. package/src/shiki/langs/moonbit.js +1 -0
  379. package/lib/ClaudeLogo-B4Xxt-x_.js.map +0 -1
  380. package/lib/ErrorAlert-DrOR8w3f.js.map +0 -1
  381. package/lib/OAuthErrorPage-Fq54RLgt.js.map +0 -1
  382. package/lib/OasProvider-DPH8mwDa.js +0 -40
  383. package/lib/OasProvider-DPH8mwDa.js.map +0 -1
  384. package/lib/RouteGuard-9wjejsKm.js +0 -77
  385. package/lib/RouteGuard-9wjejsKm.js.map +0 -1
  386. package/lib/RouterError-DSLXagd5.js +0 -42
  387. package/lib/RouterError-DSLXagd5.js.map +0 -1
  388. package/lib/SchemaView-DVae4RO2.js +0 -597
  389. package/lib/SchemaView-DVae4RO2.js.map +0 -1
  390. package/lib/Select-CkxXP5I7.js.map +0 -1
  391. package/lib/SignUp-BjS4ozA7.js +0 -50
  392. package/lib/SignUp-BjS4ozA7.js.map +0 -1
  393. package/lib/SyntaxHighlight-Kdyskw3C.js.map +0 -1
  394. package/lib/ZudokuContext-BXldanA8.js +0 -1508
  395. package/lib/ZudokuContext-BXldanA8.js.map +0 -1
  396. package/lib/___vite-browser-external_commonjs-proxy-Cga3HsWk.js.map +0 -1
  397. package/lib/chunk-PVWAREVJ-dLIqswPy.js +0 -7965
  398. package/lib/chunk-PVWAREVJ-dLIqswPy.js.map +0 -1
  399. package/lib/cn-dYga0KKN.js.map +0 -1
  400. package/lib/createVariantComponent-B9_dVBvu.js +0 -35
  401. package/lib/createVariantComponent-B9_dVBvu.js.map +0 -1
  402. package/lib/firebase-Cax7HPzn.js.map +0 -1
  403. package/lib/hook-BNxidGQq.js +0 -40
  404. package/lib/hook-BNxidGQq.js.map +0 -1
  405. package/lib/index-CCmMJp02.js +0 -1059
  406. package/lib/index-CCmMJp02.js.map +0 -1
  407. package/lib/index.esm-DDENMN4y.js.map +0 -1
  408. package/lib/invariant-CGOLuIIz.js.map +0 -1
  409. package/lib/mutation-BoVlx8yA.js.map +0 -1
  410. package/lib/useMutation-C6RqWmTS.js.map +0 -1
@@ -1,6 +1,6 @@
1
- import { u as r } from "./ZudokuContext-BXldanA8.js";
2
- import { OpenIDAuthenticationProvider as a } from "./zudoku.auth-openid.js";
3
- class p extends a {
1
+ import { u as r, j as a } from "./ZudokuContext-CnEI8jPU.js";
2
+ import { OpenIDAuthenticationProvider as p } from "./zudoku.auth-openid.js";
3
+ class d extends p {
4
4
  options;
5
5
  constructor(t) {
6
6
  super({
@@ -16,28 +16,28 @@ class p extends a {
16
16
  this.options?.prompt !== void 0 ? this.options.prompt !== "" && t.searchParams.set("prompt", this.options.prompt) : this.options?.alwaysPromptLogin !== !1 && t.searchParams.set("prompt", "login"), e && t.searchParams.set("screen_hint", "signup");
17
17
  };
18
18
  signOut = async (t) => {
19
- const e = await this.getAuthServer(), i = await this.getAccessToken();
19
+ const e = await this.getAuthServer(), s = r.getState().providerData?.idToken;
20
20
  r.setState({
21
21
  isAuthenticated: !1,
22
22
  isPending: !1,
23
23
  profile: void 0,
24
24
  providerData: void 0
25
25
  });
26
- const o = new URL(window.location.origin);
27
- if (o.pathname = this.redirectToAfterSignOut, e.end_session_endpoint) {
28
- const n = new URL(e.end_session_endpoint);
29
- i && n.searchParams.set("id_token_hint", i), n.searchParams.set(
26
+ const n = new URL(window.location.origin);
27
+ if (n.pathname = a(
28
+ "/",
29
+ this.redirectToAfterSignOut
30
+ ), e.end_session_endpoint) {
31
+ const i = new URL(e.end_session_endpoint);
32
+ s && i.searchParams.set("id_token_hint", s), i.searchParams.set(
30
33
  "post_logout_redirect_uri",
31
- o.toString()
32
- );
33
- } else
34
- new URL(
35
- `${this.issuer.replace(/\/$/, "")}/oidc/logout`
36
- );
34
+ n.toString()
35
+ ), window.location.href = i.toString();
36
+ }
37
37
  };
38
38
  }
39
- const h = (s) => new p(s);
39
+ const l = (o) => new d(o);
40
40
  export {
41
- h as default
41
+ l as default
42
42
  };
43
43
  //# sourceMappingURL=zudoku.auth-auth0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.auth-auth0.js","sources":["../src/lib/authentication/providers/auth0.tsx"],"sourcesContent":["import type { Auth0AuthenticationConfig } from \"../../../config/config.js\";\nimport type {\n AuthActionContext,\n AuthenticationPlugin,\n AuthenticationProviderInitializer,\n} from \"../authentication.js\";\nimport { useAuthState } from \"../state.js\";\nimport { OpenIDAuthenticationProvider } from \"./openid.js\";\n\nclass Auth0AuthenticationProvider\n extends OpenIDAuthenticationProvider\n implements AuthenticationPlugin\n{\n private readonly options: Auth0AuthenticationConfig[\"options\"];\n constructor(config: Auth0AuthenticationConfig) {\n super({\n ...config,\n type: \"openid\",\n issuer: `https://${config.domain}/`,\n clientId: config.clientId,\n audience: config.audience,\n scopes: config.scopes,\n });\n this.options = config.options;\n }\n\n onAuthorizationUrl = async (\n url: URL,\n { isSignUp }: { isSignUp: boolean },\n ) => {\n if (this.options?.prompt !== undefined) {\n if (this.options.prompt !== \"\") {\n url.searchParams.set(\"prompt\", this.options.prompt);\n }\n } else if (this.options?.alwaysPromptLogin !== false) {\n url.searchParams.set(\"prompt\", \"login\");\n }\n\n if (isSignUp) {\n url.searchParams.set(\"screen_hint\", \"signup\");\n }\n };\n\n signOut = async (_: AuthActionContext): Promise<void> => {\n const as = await this.getAuthServer();\n const idToken = await this.getAccessToken();\n\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: undefined,\n providerData: undefined,\n });\n\n const redirectUrl = new URL(window.location.origin);\n redirectUrl.pathname = this.redirectToAfterSignOut;\n\n // SEE: https://auth0.com/docs/authenticate/login/logout/log-users-out-of-auth0\n // For Auth0 tenants created on or after 14 November 2023, RP-Initiated\n // Logout End Session Endpoint Discovery is enabled by default.\n // Otherwise we fallback to the old non-compliant logout\n\n // The endSessionEndpoint is set, the IdP supports some form of logout,\n // so we use the IdP logout. Otherwise, just redirect the user to home\n if (as.end_session_endpoint) {\n const logoutUrl = new URL(as.end_session_endpoint);\n if (idToken) {\n logoutUrl.searchParams.set(\"id_token_hint\", idToken);\n }\n logoutUrl.searchParams.set(\n \"post_logout_redirect_uri\",\n redirectUrl.toString(),\n );\n\n // window.location.href = logoutUrl.toString();\n } else {\n const _logoutUrl = new URL(\n `${this.issuer.replace(/\\/$/, \"\")}/oidc/logout`,\n );\n // window.location.href = logoutUrl.toString();\n }\n };\n}\n\nconst auth0Auth: AuthenticationProviderInitializer<\n Auth0AuthenticationConfig\n> = (options) => new Auth0AuthenticationProvider(options);\n\nexport default auth0Auth;\n"],"names":["Auth0AuthenticationProvider","OpenIDAuthenticationProvider","config","url","isSignUp","_","as","idToken","useAuthState","redirectUrl","logoutUrl","auth0Auth","options"],"mappings":";;AASA,MAAMA,UACIC,EAEV;AAAA,EACmB;AAAA,EACjB,YAAYC,GAAmC;AAC7C,UAAM;AAAA,MACJ,GAAGA;AAAA,MACH,MAAM;AAAA,MACN,QAAQ,WAAWA,EAAO,MAAM;AAAA,MAChC,UAAUA,EAAO;AAAA,MACjB,UAAUA,EAAO;AAAA,MACjB,QAAQA,EAAO;AAAA,IAAA,CAChB,GACD,KAAK,UAAUA,EAAO;AAAA,EACxB;AAAA,EAEA,qBAAqB,OACnBC,GACA,EAAE,UAAAC,QACC;AACH,IAAI,KAAK,SAAS,WAAW,SACvB,KAAK,QAAQ,WAAW,MAC1BD,EAAI,aAAa,IAAI,UAAU,KAAK,QAAQ,MAAM,IAE3C,KAAK,SAAS,sBAAsB,MAC7CA,EAAI,aAAa,IAAI,UAAU,OAAO,GAGpCC,KACFD,EAAI,aAAa,IAAI,eAAe,QAAQ;AAAA,EAEhD;AAAA,EAEA,UAAU,OAAOE,MAAwC;AACvD,UAAMC,IAAK,MAAM,KAAK,cAAA,GAChBC,IAAU,MAAM,KAAK,eAAA;AAE3B,IAAAC,EAAa,SAAS;AAAA,MACpB,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,SAAS;AAAA,MACT,cAAc;AAAA,IAAA,CACf;AAED,UAAMC,IAAc,IAAI,IAAI,OAAO,SAAS,MAAM;AAUlD,QATAA,EAAY,WAAW,KAAK,wBASxBH,EAAG,sBAAsB;AAC3B,YAAMI,IAAY,IAAI,IAAIJ,EAAG,oBAAoB;AACjD,MAAIC,KACFG,EAAU,aAAa,IAAI,iBAAiBH,CAAO,GAErDG,EAAU,aAAa;AAAA,QACrB;AAAA,QACAD,EAAY,SAAA;AAAA,MAAS;AAAA,IAIzB;AACqB,UAAI;AAAA,QACrB,GAAG,KAAK,OAAO,QAAQ,OAAO,EAAE,CAAC;AAAA,MAAA;AAAA,EAIvC;AACF;AAEA,MAAME,IAEF,CAACC,MAAY,IAAIZ,EAA4BY,CAAO;"}
1
+ {"version":3,"file":"zudoku.auth-auth0.js","sources":["../src/lib/authentication/providers/auth0.tsx"],"sourcesContent":["import type { Auth0AuthenticationConfig } from \"../../../config/config.js\";\nimport { joinUrl } from \"../../util/joinUrl.js\";\nimport type {\n AuthActionContext,\n AuthenticationPlugin,\n AuthenticationProviderInitializer,\n} from \"../authentication.js\";\nimport { useAuthState } from \"../state.js\";\nimport { OpenIDAuthenticationProvider } from \"./openid.js\";\n\nclass Auth0AuthenticationProvider\n extends OpenIDAuthenticationProvider\n implements AuthenticationPlugin\n{\n private readonly options: Auth0AuthenticationConfig[\"options\"];\n constructor(config: Auth0AuthenticationConfig) {\n super({\n ...config,\n type: \"openid\",\n issuer: `https://${config.domain}/`,\n clientId: config.clientId,\n audience: config.audience,\n scopes: config.scopes,\n });\n this.options = config.options;\n }\n\n onAuthorizationUrl = async (\n url: URL,\n { isSignUp }: { isSignUp: boolean },\n ) => {\n if (this.options?.prompt !== undefined) {\n if (this.options.prompt !== \"\") {\n url.searchParams.set(\"prompt\", this.options.prompt);\n }\n } else if (this.options?.alwaysPromptLogin !== false) {\n url.searchParams.set(\"prompt\", \"login\");\n }\n\n if (isSignUp) {\n url.searchParams.set(\"screen_hint\", \"signup\");\n }\n };\n\n signOut = async (_: AuthActionContext): Promise<void> => {\n const as = await this.getAuthServer();\n\n // biome-ignore lint/suspicious/noExplicitAny: We don't have a good way for typing provider-data yet.\n const providerData = useAuthState.getState().providerData as any;\n const idToken = providerData?.idToken;\n\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: undefined,\n providerData: undefined,\n });\n\n const redirectUrl = new URL(window.location.origin);\n redirectUrl.pathname = joinUrl(\n import.meta.env.BASE_URL,\n this.redirectToAfterSignOut,\n );\n\n // SEE: https://auth0.com/docs/authenticate/login/logout/log-users-out-of-auth0\n // For Auth0 tenants created on or after 14 November 2023, RP-Initiated\n // Logout End Session Endpoint Discovery is enabled by default.\n // Otherwise we fallback to the old non-compliant logout\n\n // The end_session_endpoint is set, the IdP supports some form of logout,\n // so we use auth0 logout. Otherwise, just redirect the user to home\n if (as.end_session_endpoint) {\n const logoutUrl = new URL(as.end_session_endpoint);\n if (idToken) {\n logoutUrl.searchParams.set(\"id_token_hint\", idToken);\n }\n logoutUrl.searchParams.set(\n \"post_logout_redirect_uri\",\n redirectUrl.toString(),\n );\n\n window.location.href = logoutUrl.toString();\n } else {\n // const logoutUrl = new URL(`${this.issuer.replace(/\\/$/, \"\")}/v2/logout`);\n // logoutUrl.searchParams.set(\"returnTo\", redirectUrl.toString());\n // don't support the deprecated logout today\n }\n };\n}\n\nconst auth0Auth: AuthenticationProviderInitializer<\n Auth0AuthenticationConfig\n> = (options) => new Auth0AuthenticationProvider(options);\n\nexport default auth0Auth;\n"],"names":["Auth0AuthenticationProvider","OpenIDAuthenticationProvider","config","url","isSignUp","_","as","idToken","useAuthState","redirectUrl","joinUrl","logoutUrl","auth0Auth","options"],"mappings":";;AAUA,MAAMA,UACIC,EAEV;AAAA,EACmB;AAAA,EACjB,YAAYC,GAAmC;AAC7C,UAAM;AAAA,MACJ,GAAGA;AAAA,MACH,MAAM;AAAA,MACN,QAAQ,WAAWA,EAAO,MAAM;AAAA,MAChC,UAAUA,EAAO;AAAA,MACjB,UAAUA,EAAO;AAAA,MACjB,QAAQA,EAAO;AAAA,IAAA,CAChB,GACD,KAAK,UAAUA,EAAO;AAAA,EACxB;AAAA,EAEA,qBAAqB,OACnBC,GACA,EAAE,UAAAC,QACC;AACH,IAAI,KAAK,SAAS,WAAW,SACvB,KAAK,QAAQ,WAAW,MAC1BD,EAAI,aAAa,IAAI,UAAU,KAAK,QAAQ,MAAM,IAE3C,KAAK,SAAS,sBAAsB,MAC7CA,EAAI,aAAa,IAAI,UAAU,OAAO,GAGpCC,KACFD,EAAI,aAAa,IAAI,eAAe,QAAQ;AAAA,EAEhD;AAAA,EAEA,UAAU,OAAOE,MAAwC;AACvD,UAAMC,IAAK,MAAM,KAAK,cAAA,GAIhBC,IADeC,EAAa,SAAA,EAAW,cACf;AAE9B,IAAAA,EAAa,SAAS;AAAA,MACpB,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,SAAS;AAAA,MACT,cAAc;AAAA,IAAA,CACf;AAED,UAAMC,IAAc,IAAI,IAAI,OAAO,SAAS,MAAM;AAalD,QAZAA,EAAY,WAAWC;AAAA,MACrB;AAAA,MACA,KAAK;AAAA,IAAA,GAUHJ,EAAG,sBAAsB;AAC3B,YAAMK,IAAY,IAAI,IAAIL,EAAG,oBAAoB;AACjD,MAAIC,KACFI,EAAU,aAAa,IAAI,iBAAiBJ,CAAO,GAErDI,EAAU,aAAa;AAAA,QACrB;AAAA,QACAF,EAAY,SAAA;AAAA,MAAS,GAGvB,OAAO,SAAS,OAAOE,EAAU,SAAA;AAAA,IACnC;AAAA,EAKF;AACF;AAEA,MAAMC,IAEF,CAACC,MAAY,IAAIb,EAA4Ba,CAAO;"}
@@ -1,10 +1,10 @@
1
1
  import { j as n } from "./jsx-runtime-BzflLqGi.js";
2
2
  import { PublicClientApplication as A, EventType as f } from "@azure/msal-browser";
3
- import { E as I } from "./index-CCmMJp02.js";
3
+ import { E as I } from "./index-ofqkdEjL.js";
4
4
  import { C as T } from "./ClientOnly-E7hGysn1.js";
5
- import { j as S, u as h } from "./ZudokuContext-BXldanA8.js";
6
- import { C, A as c } from "./errors-Bs4duWDy.js";
7
- import { C as k, O as w } from "./OAuthErrorPage-Fq54RLgt.js";
5
+ import { j as S, u as h } from "./ZudokuContext-CnEI8jPU.js";
6
+ import { C, A as c } from "./errors-DkJIl45d.js";
7
+ import { C as k, O as w } from "./OAuthErrorPage-DhJo-O2B.js";
8
8
  const u = "/oauth/callback";
9
9
  class y extends C {
10
10
  msalInstance;
@@ -1,70 +1,47 @@
1
- import { j as l } from "./jsx-runtime-BzflLqGi.js";
2
- import { LogOutIcon as f } from "lucide-react";
3
- import { S as w, a as p, b as v } from "./SignUp-BjS4ozA7.js";
4
- import { u as n } from "./ZudokuContext-BXldanA8.js";
5
- const b = ({
6
- clerkPubKey: d,
7
- jwtTemplateName: m,
8
- redirectToAfterSignOut: c = "/",
9
- redirectToAfterSignUp: a,
10
- redirectToAfterSignIn: r
1
+ import { j as a } from "./jsx-runtime-BzflLqGi.js";
2
+ import { LogOutIcon as m } from "lucide-react";
3
+ import { S as p, a as f, b as h } from "./SignUp-DHWDXat-.js";
4
+ import { u as r } from "./ZudokuContext-CnEI8jPU.js";
5
+ const R = ({
6
+ clerkPubKey: u,
7
+ jwtTemplateName: c,
8
+ redirectToAfterSignOut: d = "/",
9
+ redirectToAfterSignUp: n,
10
+ redirectToAfterSignIn: o
11
11
  }) => {
12
- let e;
12
+ let i;
13
13
  const t = (async () => {
14
14
  if (typeof window > "u") return;
15
- const { Clerk: s } = await import("@clerk/clerk-js");
16
- if (e = new s(d), await e.load(), e.user) {
17
- const i = e.user.emailAddresses.find(
18
- (o) => o.verification.status === "verified"
19
- );
20
- n.getState().setLoggedIn({
21
- profile: {
22
- sub: e.user.id,
23
- name: e.user.fullName ?? void 0,
24
- email: i?.emailAddress ?? e.user.emailAddresses[0]?.emailAddress,
25
- emailVerified: i !== void 0,
26
- pictureUrl: e.user.imageUrl
27
- },
28
- providerData: {
29
- user: {
30
- publicMetadata: e.user.publicMetadata,
31
- id: e.user.id,
32
- emailAddresses: e.user.emailAddresses,
33
- imageUrl: e.user.imageUrl,
34
- fullName: e.user.fullName
35
- }
36
- }
37
- });
38
- }
39
- return e;
15
+ const { Clerk: e } = await import("@clerk/clerk-js");
16
+ return i = new e(u), await i.load(), i;
40
17
  })();
41
- async function u() {
42
- if (await t, !e?.session)
18
+ async function l() {
19
+ if (await t, !i?.session)
43
20
  throw new Error("No session available");
44
- const s = await e.session.getToken({
45
- template: m
21
+ const e = await i.session.getToken({
22
+ template: c
46
23
  });
47
- if (!s)
24
+ if (!e)
48
25
  throw new Error("Could not get access token from Clerk");
49
- return s;
26
+ return e;
50
27
  }
51
- async function g(s) {
52
- const i = await u();
53
- return s.headers.set("Authorization", `Bearer ${i}`), s;
28
+ async function g(e) {
29
+ const s = await l();
30
+ return e.headers.set("Authorization", `Bearer ${s}`), e;
54
31
  }
55
32
  return {
56
33
  getRoutes: () => [
57
34
  {
58
35
  path: "/signout",
59
- element: /* @__PURE__ */ l.jsx(w, {})
36
+ element: /* @__PURE__ */ a.jsx(p, {})
60
37
  },
61
38
  {
62
39
  path: "/signin",
63
- element: /* @__PURE__ */ l.jsx(p, {})
40
+ element: /* @__PURE__ */ a.jsx(f, {})
64
41
  },
65
42
  {
66
43
  path: "/signup",
67
- element: /* @__PURE__ */ l.jsx(v, {})
44
+ element: /* @__PURE__ */ a.jsx(h, {})
68
45
  }
69
46
  ],
70
47
  getProfileMenuItems() {
@@ -73,58 +50,58 @@ const b = ({
73
50
  label: "Logout",
74
51
  path: "/signout",
75
52
  category: "bottom",
76
- icon: f
53
+ icon: m
77
54
  }
78
55
  ];
79
56
  },
80
57
  initialize: async () => {
81
- const s = await t;
82
- if (s)
83
- if (s.session) {
84
- const i = s.session.user.emailAddresses.find(
85
- (o) => o.verification.status === "verified"
58
+ const e = await t;
59
+ if (e)
60
+ if (e.session) {
61
+ const s = e.session.user.emailAddresses.find(
62
+ (w) => w.verification.status === "verified"
86
63
  );
87
- n.getState().setLoggedIn({
64
+ r.getState().setLoggedIn({
88
65
  profile: {
89
- sub: s.session.user.id,
90
- name: s.session.user.fullName ?? void 0,
91
- email: i?.emailAddress ?? s.session.user.emailAddresses[0]?.emailAddress,
92
- emailVerified: i !== void 0,
93
- pictureUrl: s.session.user.imageUrl
66
+ sub: e.session.user.id,
67
+ name: e.session.user.fullName ?? void 0,
68
+ email: s?.emailAddress ?? e.session.user.emailAddresses[0]?.emailAddress,
69
+ emailVerified: s !== void 0,
70
+ pictureUrl: e.session.user.imageUrl
94
71
  },
95
72
  providerData: {
96
- user: s.session.user
73
+ user: e.session.user
97
74
  }
98
75
  });
99
76
  } else
100
- n.setState({
77
+ r.setState({
101
78
  isAuthenticated: !1,
102
79
  isPending: !1,
103
80
  profile: void 0
104
81
  });
105
82
  },
106
- getAccessToken: u,
83
+ getAccessToken: l,
107
84
  signRequest: g,
108
85
  signOut: async () => {
109
- await t, await e?.signOut({
110
- redirectUrl: window.location.origin + c
111
- }), n.getState().setLoggedOut();
86
+ await t, await i?.signOut({
87
+ redirectUrl: window.location.origin + d
88
+ }), r.getState().setLoggedOut();
112
89
  },
113
- signIn: async (s, { redirectTo: i } = {}) => {
114
- await t, await e?.redirectToSignIn({
115
- signInForceRedirectUrl: r ? window.location.origin + r : i,
116
- signUpForceRedirectUrl: a ? window.location.origin + a : i
90
+ signIn: async (e, { redirectTo: s } = {}) => {
91
+ await t, await i?.redirectToSignIn({
92
+ signInForceRedirectUrl: o ? window.location.origin + o : s,
93
+ signUpForceRedirectUrl: n ? window.location.origin + n : s
117
94
  });
118
95
  },
119
- signUp: async (s, { redirectTo: i } = {}) => {
120
- await t, await e?.redirectToSignUp({
121
- signInForceRedirectUrl: r ? window.location.origin + r : i,
122
- signUpForceRedirectUrl: a ? window.location.origin + a : i
96
+ signUp: async (e, { redirectTo: s } = {}) => {
97
+ await t, await i?.redirectToSignUp({
98
+ signInForceRedirectUrl: o ? window.location.origin + o : s,
99
+ signUpForceRedirectUrl: n ? window.location.origin + n : s
123
100
  });
124
101
  }
125
102
  };
126
103
  };
127
104
  export {
128
- b as default
105
+ R as default
129
106
  };
130
107
  //# sourceMappingURL=zudoku.auth-clerk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.auth-clerk.js","sources":["../src/lib/authentication/providers/clerk.tsx"],"sourcesContent":["import type { Clerk } from \"@clerk/clerk-js\";\nimport { LogOutIcon } from \"lucide-react\";\nimport type { ZudokuPlugin } from \"zudoku/plugins\";\nimport type { ClerkAuthenticationConfig } from \"../../../config/config.js\";\nimport type {\n AuthActionContext,\n AuthenticationPlugin,\n AuthenticationProviderInitializer,\n} from \"../authentication.js\";\nimport { SignIn } from \"../components/SignIn.js\";\nimport { SignOut } from \"../components/SignOut.js\";\nimport { SignUp } from \"../components/SignUp.js\";\nimport { useAuthState } from \"../state.js\";\n\nconst clerkAuth: AuthenticationProviderInitializer<\n ClerkAuthenticationConfig\n> = ({\n clerkPubKey,\n jwtTemplateName,\n redirectToAfterSignOut = \"/\",\n redirectToAfterSignUp,\n redirectToAfterSignIn,\n}): AuthenticationPlugin & ZudokuPlugin => {\n let clerkApi: Clerk | undefined;\n const ensureLoaded = (async () => {\n if (typeof window === \"undefined\") return;\n const { Clerk } = await import(\"@clerk/clerk-js\");\n clerkApi = new Clerk(clerkPubKey);\n\n await clerkApi.load();\n\n if (clerkApi.user) {\n const verifiedEmail = clerkApi.user.emailAddresses.find(\n (email) => email.verification.status === \"verified\",\n );\n useAuthState.getState().setLoggedIn({\n profile: {\n sub: clerkApi.user.id,\n name: clerkApi.user.fullName ?? undefined,\n email:\n verifiedEmail?.emailAddress ??\n clerkApi.user.emailAddresses[0]?.emailAddress,\n emailVerified: verifiedEmail !== undefined,\n pictureUrl: clerkApi.user.imageUrl,\n },\n providerData: {\n user: {\n publicMetadata: clerkApi.user.publicMetadata,\n id: clerkApi.user.id,\n emailAddresses: clerkApi.user.emailAddresses,\n imageUrl: clerkApi.user.imageUrl,\n fullName: clerkApi.user.fullName,\n },\n },\n });\n }\n\n return clerkApi;\n })();\n\n async function getAccessToken() {\n await ensureLoaded;\n if (!clerkApi?.session) {\n throw new Error(\"No session available\");\n }\n const response = await clerkApi.session.getToken({\n template: jwtTemplateName,\n });\n if (!response) {\n throw new Error(\"Could not get access token from Clerk\");\n }\n return response;\n }\n\n async function signRequest(request: Request): Promise<Request> {\n const response = await getAccessToken();\n request.headers.set(\"Authorization\", `Bearer ${response}`);\n return request;\n }\n\n return {\n getRoutes: () => {\n return [\n {\n path: \"/signout\",\n element: <SignOut />,\n },\n {\n path: \"/signin\",\n element: <SignIn />,\n },\n {\n path: \"/signup\",\n element: <SignUp />,\n },\n ];\n },\n\n getProfileMenuItems() {\n return [\n {\n label: \"Logout\",\n path: \"/signout\",\n category: \"bottom\",\n icon: LogOutIcon,\n } as const,\n ];\n },\n initialize: async () => {\n const clerk = await ensureLoaded;\n\n if (!clerk) {\n return;\n }\n\n if (clerk.session) {\n const verifiedEmail = clerk.session.user.emailAddresses.find(\n (email) => email.verification.status === \"verified\",\n );\n useAuthState.getState().setLoggedIn({\n profile: {\n sub: clerk.session.user.id,\n name: clerk.session.user.fullName ?? undefined,\n email:\n verifiedEmail?.emailAddress ??\n clerk.session.user.emailAddresses[0]?.emailAddress,\n emailVerified: verifiedEmail !== undefined,\n pictureUrl: clerk.session.user.imageUrl,\n },\n providerData: {\n user: clerk.session.user,\n },\n });\n } else {\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: undefined,\n });\n }\n },\n getAccessToken,\n signRequest,\n signOut: async () => {\n await ensureLoaded;\n await clerkApi?.signOut({\n redirectUrl: window.location.origin + redirectToAfterSignOut,\n });\n useAuthState.getState().setLoggedOut();\n },\n signIn: async (\n _: AuthActionContext,\n { redirectTo }: { redirectTo?: string } = {},\n ) => {\n await ensureLoaded;\n await clerkApi?.redirectToSignIn({\n signInForceRedirectUrl: redirectToAfterSignIn\n ? window.location.origin + redirectToAfterSignIn\n : redirectTo,\n signUpForceRedirectUrl: redirectToAfterSignUp\n ? window.location.origin + redirectToAfterSignUp\n : redirectTo,\n });\n },\n signUp: async (\n _: AuthActionContext,\n { redirectTo }: { redirectTo?: string } = {},\n ) => {\n await ensureLoaded;\n await clerkApi?.redirectToSignUp({\n signInForceRedirectUrl: redirectToAfterSignIn\n ? window.location.origin + redirectToAfterSignIn\n : redirectTo,\n signUpForceRedirectUrl: redirectToAfterSignUp\n ? window.location.origin + redirectToAfterSignUp\n : redirectTo,\n });\n },\n };\n};\n\nexport default clerkAuth;\n"],"names":["clerkAuth","clerkPubKey","jwtTemplateName","redirectToAfterSignOut","redirectToAfterSignUp","redirectToAfterSignIn","clerkApi","ensureLoaded","Clerk","verifiedEmail","email","useAuthState","getAccessToken","response","signRequest","request","SignOut","SignIn","SignUp","LogOutIcon","clerk","_","redirectTo"],"mappings":"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"}
1
+ {"version":3,"file":"zudoku.auth-clerk.js","sources":["../src/lib/authentication/providers/clerk.tsx"],"sourcesContent":["import type { Clerk } from \"@clerk/clerk-js\";\nimport { LogOutIcon } from \"lucide-react\";\nimport type { ZudokuPlugin } from \"zudoku/plugins\";\nimport type { ClerkAuthenticationConfig } from \"../../../config/config.js\";\nimport type {\n AuthActionContext,\n AuthenticationPlugin,\n AuthenticationProviderInitializer,\n} from \"../authentication.js\";\nimport { SignIn } from \"../components/SignIn.js\";\nimport { SignOut } from \"../components/SignOut.js\";\nimport { SignUp } from \"../components/SignUp.js\";\nimport { useAuthState } from \"../state.js\";\n\nconst clerkAuth: AuthenticationProviderInitializer<\n ClerkAuthenticationConfig\n> = ({\n clerkPubKey,\n jwtTemplateName,\n redirectToAfterSignOut = \"/\",\n redirectToAfterSignUp,\n redirectToAfterSignIn,\n}): AuthenticationPlugin & ZudokuPlugin => {\n let clerkApi: Clerk | undefined;\n const ensureLoaded = (async () => {\n if (typeof window === \"undefined\") return;\n const { Clerk } = await import(\"@clerk/clerk-js\");\n clerkApi = new Clerk(clerkPubKey);\n\n await clerkApi.load();\n\n return clerkApi;\n })();\n\n async function getAccessToken() {\n await ensureLoaded;\n if (!clerkApi?.session) {\n throw new Error(\"No session available\");\n }\n const response = await clerkApi.session.getToken({\n template: jwtTemplateName,\n });\n if (!response) {\n throw new Error(\"Could not get access token from Clerk\");\n }\n return response;\n }\n\n async function signRequest(request: Request): Promise<Request> {\n const response = await getAccessToken();\n request.headers.set(\"Authorization\", `Bearer ${response}`);\n return request;\n }\n\n return {\n getRoutes: () => {\n return [\n {\n path: \"/signout\",\n element: <SignOut />,\n },\n {\n path: \"/signin\",\n element: <SignIn />,\n },\n {\n path: \"/signup\",\n element: <SignUp />,\n },\n ];\n },\n\n getProfileMenuItems() {\n return [\n {\n label: \"Logout\",\n path: \"/signout\",\n category: \"bottom\",\n icon: LogOutIcon,\n } as const,\n ];\n },\n initialize: async () => {\n const clerk = await ensureLoaded;\n\n if (!clerk) {\n return;\n }\n\n if (clerk.session) {\n const verifiedEmail = clerk.session.user.emailAddresses.find(\n (email) => email.verification.status === \"verified\",\n );\n useAuthState.getState().setLoggedIn({\n profile: {\n sub: clerk.session.user.id,\n name: clerk.session.user.fullName ?? undefined,\n email:\n verifiedEmail?.emailAddress ??\n clerk.session.user.emailAddresses[0]?.emailAddress,\n emailVerified: verifiedEmail !== undefined,\n pictureUrl: clerk.session.user.imageUrl,\n },\n providerData: {\n user: clerk.session.user,\n },\n });\n } else {\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: undefined,\n });\n }\n },\n getAccessToken,\n signRequest,\n signOut: async () => {\n await ensureLoaded;\n await clerkApi?.signOut({\n redirectUrl: window.location.origin + redirectToAfterSignOut,\n });\n useAuthState.getState().setLoggedOut();\n },\n signIn: async (\n _: AuthActionContext,\n { redirectTo }: { redirectTo?: string } = {},\n ) => {\n await ensureLoaded;\n await clerkApi?.redirectToSignIn({\n signInForceRedirectUrl: redirectToAfterSignIn\n ? window.location.origin + redirectToAfterSignIn\n : redirectTo,\n signUpForceRedirectUrl: redirectToAfterSignUp\n ? window.location.origin + redirectToAfterSignUp\n : redirectTo,\n });\n },\n signUp: async (\n _: AuthActionContext,\n { redirectTo }: { redirectTo?: string } = {},\n ) => {\n await ensureLoaded;\n await clerkApi?.redirectToSignUp({\n signInForceRedirectUrl: redirectToAfterSignIn\n ? window.location.origin + redirectToAfterSignIn\n : redirectTo,\n signUpForceRedirectUrl: redirectToAfterSignUp\n ? window.location.origin + redirectToAfterSignUp\n : redirectTo,\n });\n },\n };\n};\n\nexport default clerkAuth;\n"],"names":["clerkAuth","clerkPubKey","jwtTemplateName","redirectToAfterSignOut","redirectToAfterSignUp","redirectToAfterSignIn","clerkApi","ensureLoaded","Clerk","getAccessToken","response","signRequest","request","SignOut","SignIn","SignUp","LogOutIcon","clerk","verifiedEmail","email","useAuthState","_","redirectTo"],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import "./jsx-runtime-BzflLqGi.js";
2
- import { w as a } from "./firebase-Cax7HPzn.js";
3
- import "./errors-Bs4duWDy.js";
4
- import "./SignUp-BjS4ozA7.js";
5
- import "./ZudokuContext-BXldanA8.js";
2
+ import { y as e } from "./firebase-CmsW0j7-.js";
3
+ import "./invariant-BJAl77rw.js";
4
+ import "./errors-DkJIl45d.js";
5
+ import "./SignUp-DHWDXat-.js";
6
+ import "./ZudokuContext-CnEI8jPU.js";
6
7
  export {
7
- a as default
8
+ e as default
8
9
  };
9
10
  //# sourceMappingURL=zudoku.auth-firebase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.auth-firebase.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"zudoku.auth-firebase.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,10 +1,10 @@
1
1
  import { j as D } from "./jsx-runtime-BzflLqGi.js";
2
- import { a as Le } from "./invariant-CGOLuIIz.js";
3
- import { E as Ue } from "./index-CCmMJp02.js";
2
+ import { a as Le } from "./invariant-BJAl77rw.js";
3
+ import { E as Ue } from "./index-ofqkdEjL.js";
4
4
  import { C as xe } from "./ClientOnly-E7hGysn1.js";
5
- import { j as Ce, u as S } from "./ZudokuContext-BXldanA8.js";
6
- import { C as Ie, O as re, A as R } from "./errors-Bs4duWDy.js";
7
- import { C as je, O as Oe } from "./OAuthErrorPage-Fq54RLgt.js";
5
+ import { j as Ce, u as S } from "./ZudokuContext-CnEI8jPU.js";
6
+ import { C as Ie, O as re, A as R } from "./errors-DkJIl45d.js";
7
+ import { C as je, O as Oe } from "./OAuthErrorPage-DhJo-O2B.js";
8
8
  var J = { exports: {} }, De = J.exports, oe;
9
9
  function Je() {
10
10
  return oe || (oe = 1, (function(t) {
@@ -1,28 +1,28 @@
1
- import { j as i } from "./jsx-runtime-BzflLqGi.js";
2
- import { createClient as h } from "@supabase/supabase-js";
3
- import { C as m, A as g } from "./errors-Bs4duWDy.js";
4
- import { S as f } from "./SignUp-BjS4ozA7.js";
5
- import { u } from "./ZudokuContext-BXldanA8.js";
1
+ import { j as a } from "./jsx-runtime-BzflLqGi.js";
2
+ import { createClient as g } from "@supabase/supabase-js";
3
+ import { C as m, A as h } from "./errors-DkJIl45d.js";
4
+ import { S as f } from "./SignUp-DHWDXat-.js";
5
+ import { u } from "./ZudokuContext-CnEI8jPU.js";
6
6
  import { Auth as v } from "@supabase/auth-ui-react";
7
7
  import { ThemeSupa as S } from "@supabase/auth-ui-shared";
8
- import { b as A } from "./chunk-PVWAREVJ-dLIqswPy.js";
9
- import { H as T } from "./ErrorAlert-DrOR8w3f.js";
10
- const d = ({
11
- client: s,
8
+ import { b as T } from "./chunk-EPOLDU6W-C6C8jAwd.js";
9
+ import { H as A } from "./index-ofqkdEjL.js";
10
+ const c = ({
11
+ client: i,
12
12
  config: e,
13
13
  view: t = "sign_in"
14
14
  }) => {
15
- const [r] = A(), a = r.get("redirectTo"), n = e.provider ? [e.provider] : e.providers, o = e.basePath ?? "/", c = a ?? e.redirectToAfterSignUp ?? o, l = a ?? e.redirectToAfterSignIn ?? o, p = a ?? e.redirectToAfterSignOut ?? o;
16
- return /* @__PURE__ */ i.jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ i.jsxs("div", { className: "max-w-md w-full mt-10", children: [
17
- /* @__PURE__ */ i.jsx(T, { level: 1, children: t === "sign_in" ? "Sign in" : "Sign up" }),
18
- /* @__PURE__ */ i.jsx(
15
+ const [s] = T(), r = s.get("redirectTo"), n = e.provider ? [e.provider] : e.providers, o = e.basePath ?? "/", d = r ?? e.redirectToAfterSignUp ?? o, l = r ?? e.redirectToAfterSignIn ?? o, p = r ?? e.redirectToAfterSignOut ?? o;
16
+ return /* @__PURE__ */ a.jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ a.jsxs("div", { className: "max-w-md w-full mt-10", children: [
17
+ /* @__PURE__ */ a.jsx(A, { level: 1, children: t === "sign_in" ? "Sign in" : "Sign up" }),
18
+ /* @__PURE__ */ a.jsx(
19
19
  v,
20
20
  {
21
21
  view: t,
22
22
  redirectToAfterSignIn: l,
23
- redirectToAfterSignUp: c,
23
+ redirectToAfterSignUp: d,
24
24
  redirectToAfterSignOut: p,
25
- supabaseClient: s,
25
+ supabaseClient: i,
26
26
  onlyThirdPartyProviders: e.onlyThirdPartyProviders,
27
27
  appearance: {
28
28
  theme: S,
@@ -58,18 +58,18 @@ class b extends m {
58
58
  client;
59
59
  config;
60
60
  constructor(e) {
61
- const { supabaseUrl: t, supabaseKey: r } = e;
62
- super(), this.client = h(t, r, {
61
+ const { supabaseUrl: t, supabaseKey: s } = e;
62
+ super(), this.client = g(t, s, {
63
63
  auth: {
64
64
  autoRefreshToken: !0,
65
65
  persistSession: !0
66
66
  }
67
- }), this.config = e, this.client.auth.onAuthStateChange(async (a, n) => {
68
- n && (a === "SIGNED_IN" || a === "TOKEN_REFRESHED") ? await this.updateUserState(n) : a === "SIGNED_OUT" && u.getState().setLoggedOut();
67
+ }), this.config = e, this.client.auth.onAuthStateChange(async (r, n) => {
68
+ n && (r === "SIGNED_IN" || r === "TOKEN_REFRESHED") ? await this.updateUserState(n) : r === "SIGNED_OUT" && u.getState().setLoggedOut();
69
69
  });
70
70
  }
71
71
  async updateUserState(e) {
72
- const { user: t } = e, r = {
72
+ const { user: t } = e, s = {
73
73
  sub: t.id,
74
74
  email: t.email,
75
75
  name: t.user_metadata.full_name || t.user_metadata.name,
@@ -77,14 +77,14 @@ class b extends m {
77
77
  pictureUrl: t.user_metadata.avatar_url
78
78
  };
79
79
  u.getState().setLoggedIn({
80
- profile: r,
80
+ profile: s,
81
81
  providerData: { session: e }
82
82
  });
83
83
  }
84
84
  async getAccessToken() {
85
85
  const { data: e, error: t } = await this.client.auth.getSession();
86
86
  if (t || !e.session)
87
- throw new g("User is not authenticated");
87
+ throw new h("User is not authenticated");
88
88
  return e.session.access_token;
89
89
  }
90
90
  async signRequest(e) {
@@ -104,8 +104,8 @@ class b extends m {
104
104
  getRoutes = () => [
105
105
  {
106
106
  path: "/signin",
107
- element: /* @__PURE__ */ i.jsx(
108
- d,
107
+ element: /* @__PURE__ */ a.jsx(
108
+ c,
109
109
  {
110
110
  view: "sign_in",
111
111
  client: this.client,
@@ -115,8 +115,8 @@ class b extends m {
115
115
  },
116
116
  {
117
117
  path: "/signup",
118
- element: /* @__PURE__ */ i.jsx(
119
- d,
118
+ element: /* @__PURE__ */ a.jsx(
119
+ c,
120
120
  {
121
121
  view: "sign_up",
122
122
  client: this.client,
@@ -126,29 +126,20 @@ class b extends m {
126
126
  },
127
127
  {
128
128
  path: "/signout",
129
- element: /* @__PURE__ */ i.jsx(f, {})
129
+ element: /* @__PURE__ */ a.jsx(f, {})
130
130
  }
131
131
  ];
132
132
  signOut = async () => {
133
- await new Promise((e) => {
134
- const { data: t } = this.client.auth.onAuthStateChange(async (r) => {
135
- r === "SIGNED_OUT" && (t.subscription.unsubscribe(), e());
136
- });
137
- this.client.auth.signOut();
138
- }), u.setState({
139
- isAuthenticated: !1,
140
- isPending: !1,
141
- profile: void 0,
142
- providerData: void 0
143
- });
133
+ const { error: e } = await this.client.auth.signOut({ scope: "local" });
134
+ e && console.error("Error signing out", e), u.getState().setLoggedOut();
144
135
  };
145
136
  onPageLoad = async () => {
146
137
  const { data: e, error: t } = await this.client.auth.getSession();
147
138
  !t && e.session && await this.updateUserState(e.session);
148
139
  };
149
140
  }
150
- const j = (s) => new b(s);
141
+ const P = (i) => new b(i);
151
142
  export {
152
- j as default
143
+ P as default
153
144
  };
154
145
  //# sourceMappingURL=zudoku.auth-supabase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.auth-supabase.js","sources":["../src/lib/authentication/providers/supabase/SupabaseAuthUI.tsx","../src/lib/authentication/providers/supabase.tsx"],"sourcesContent":["import { Auth } from \"@supabase/auth-ui-react\";\nimport {\n ThemeSupa,\n type ThemeVariables,\n type ViewType,\n} from \"@supabase/auth-ui-shared\";\nimport type { SupabaseClient } from \"@supabase/supabase-js\";\nimport { useSearchParams } from \"react-router\";\nimport type { SupabaseAuthenticationConfig } from \"../../../../config/config.js\";\nimport { Heading } from \"../../../components/Heading.js\";\n\nexport const SupabaseAuthUI = ({\n client,\n config,\n view = \"sign_in\",\n}: {\n client: SupabaseClient;\n config: SupabaseAuthenticationConfig;\n view: ViewType;\n}) => {\n const [searchParams] = useSearchParams();\n const redirectTo = searchParams.get(\"redirectTo\");\n const providers = config.provider ? [config.provider] : config.providers;\n const root = config.basePath ?? \"/\";\n const redirectToAfterSignUp =\n redirectTo ?? config.redirectToAfterSignUp ?? root;\n const redirectToAfterSignIn =\n redirectTo ?? config.redirectToAfterSignIn ?? root;\n const redirectToAfterSignOut =\n redirectTo ?? config.redirectToAfterSignOut ?? root;\n\n return (\n <div className=\"flex items-center justify-center\">\n <div className=\"max-w-md w-full mt-10\">\n <Heading level={1}>\n {view === \"sign_in\" ? \"Sign in\" : \"Sign up\"}\n </Heading>\n <Auth\n view={view}\n redirectToAfterSignIn={redirectToAfterSignIn}\n redirectToAfterSignUp={redirectToAfterSignUp}\n redirectToAfterSignOut={redirectToAfterSignOut}\n supabaseClient={client}\n onlyThirdPartyProviders={config.onlyThirdPartyProviders}\n appearance={{\n theme: ThemeSupa,\n variables: {\n default: {\n colors: {\n dividerBackground: \"var(--border)\",\n brand: \"var(--primary)\",\n brandAccent: \"hsla(from var(--primary) h s l / 0.8)\",\n brandButtonText: \"var(--primary-foreground)\",\n defaultButtonBorder: \"var(--border)\",\n inputBorder: \"var(--border)\",\n inputText: \"var(--foreground)\",\n inputBorderHover: \"var(--accent)\",\n defaultButtonBackground: \"var(--secondary)\",\n defaultButtonBackgroundHover: \"var(--accent)\",\n },\n radii: {\n borderRadiusButton: \"var(--radius)\",\n buttonBorderRadius: \"var(--radius)\",\n inputBorderRadius: \"var(--radius)\",\n },\n } satisfies ThemeVariables,\n },\n }}\n providers={providers}\n redirectTo={config.redirectToAfterSignIn ?? \"/\"}\n />\n </div>\n </div>\n );\n};\n","import {\n createClient,\n type Session,\n type SupabaseClient,\n} from \"@supabase/supabase-js\";\nimport type { SupabaseAuthenticationConfig } from \"../../../config/config.js\";\nimport { CoreAuthenticationPlugin } from \"../AuthenticationPlugin.js\";\nimport type {\n AuthActionContext,\n AuthActionOptions,\n AuthenticationPlugin,\n AuthenticationProviderInitializer,\n} from \"../authentication.js\";\nimport { SignOut } from \"../components/SignOut.js\";\nimport { AuthorizationError } from \"../errors.js\";\nimport { type UserProfile, useAuthState } from \"../state.js\";\nimport { SupabaseAuthUI } from \"./supabase/SupabaseAuthUI.js\";\n\nclass SupabaseAuthenticationProvider\n extends CoreAuthenticationPlugin\n implements AuthenticationPlugin\n{\n private readonly client: SupabaseClient;\n private readonly config: SupabaseAuthenticationConfig;\n\n constructor(config: SupabaseAuthenticationConfig) {\n const { supabaseUrl, supabaseKey } = config;\n super();\n\n this.client = createClient(supabaseUrl, supabaseKey, {\n auth: {\n autoRefreshToken: true,\n persistSession: true,\n },\n });\n this.config = config;\n\n this.client.auth.onAuthStateChange(async (event, session) => {\n if (session && (event === \"SIGNED_IN\" || event === \"TOKEN_REFRESHED\")) {\n await this.updateUserState(session);\n } else if (event === \"SIGNED_OUT\") {\n useAuthState.getState().setLoggedOut();\n }\n });\n }\n\n private async updateUserState(session: Session) {\n const { user } = session;\n\n const profile: UserProfile = {\n sub: user.id,\n email: user.email,\n name: user.user_metadata.full_name || user.user_metadata.name,\n emailVerified: user.email_confirmed_at != null,\n pictureUrl: user.user_metadata.avatar_url,\n };\n\n useAuthState.getState().setLoggedIn({\n profile,\n providerData: { session },\n });\n }\n\n async getAccessToken(): Promise<string> {\n const { data, error } = await this.client.auth.getSession();\n\n if (error || !data.session) {\n throw new AuthorizationError(\"User is not authenticated\");\n }\n\n return data.session.access_token;\n }\n\n async signRequest(request: Request): Promise<Request> {\n const accessToken = await this.getAccessToken();\n request.headers.set(\"Authorization\", `Bearer ${accessToken}`);\n return request;\n }\n\n signUp = async (\n { navigate }: AuthActionContext,\n { redirectTo }: AuthActionOptions,\n ) => {\n void navigate(\n redirectTo\n ? `/signup?redirectTo=${encodeURIComponent(redirectTo)}`\n : `/signup`,\n );\n };\n\n signIn = async (\n { navigate }: AuthActionContext,\n { redirectTo }: AuthActionOptions,\n ) => {\n void navigate(\n redirectTo\n ? `/signin?redirectTo=${encodeURIComponent(redirectTo)}`\n : `/signin`,\n );\n };\n\n getRoutes = () => {\n return [\n {\n path: \"/signin\",\n element: (\n <SupabaseAuthUI\n view=\"sign_in\"\n client={this.client}\n config={this.config}\n />\n ),\n },\n {\n path: \"/signup\",\n element: (\n <SupabaseAuthUI\n view=\"sign_up\"\n client={this.client}\n config={this.config}\n />\n ),\n },\n {\n path: \"/signout\",\n element: <SignOut />,\n },\n ];\n };\n\n signOut = async () => {\n await new Promise<void>((resolve) => {\n const { data } = this.client.auth.onAuthStateChange(async (event) => {\n if (event !== \"SIGNED_OUT\") return;\n data.subscription.unsubscribe();\n resolve();\n });\n void this.client.auth.signOut();\n });\n\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: undefined,\n providerData: undefined,\n });\n };\n\n onPageLoad = async () => {\n const { data, error } = await this.client.auth.getSession();\n\n if (!error && data.session) {\n await this.updateUserState(data.session);\n }\n };\n}\n\nconst supabaseAuth: AuthenticationProviderInitializer<\n SupabaseAuthenticationConfig\n> = (options) => new SupabaseAuthenticationProvider(options);\n\nexport default supabaseAuth;\n"],"names":["SupabaseAuthUI","client","config","view","searchParams","useSearchParams","redirectTo","providers","root","redirectToAfterSignUp","redirectToAfterSignIn","redirectToAfterSignOut","jsxs","jsx","Heading","Auth","ThemeSupa","SupabaseAuthenticationProvider","CoreAuthenticationPlugin","supabaseUrl","supabaseKey","createClient","event","session","useAuthState","user","profile","data","error","AuthorizationError","request","accessToken","navigate","SignOut","resolve","supabaseAuth","options"],"mappings":"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"}
1
+ {"version":3,"file":"zudoku.auth-supabase.js","sources":["../src/lib/authentication/providers/supabase/SupabaseAuthUI.tsx","../src/lib/authentication/providers/supabase.tsx"],"sourcesContent":["import { Auth } from \"@supabase/auth-ui-react\";\nimport {\n ThemeSupa,\n type ThemeVariables,\n type ViewType,\n} from \"@supabase/auth-ui-shared\";\nimport type { SupabaseClient } from \"@supabase/supabase-js\";\nimport { useSearchParams } from \"react-router\";\nimport type { SupabaseAuthenticationConfig } from \"../../../../config/config.js\";\nimport { Heading } from \"../../../components/Heading.js\";\n\nexport const SupabaseAuthUI = ({\n client,\n config,\n view = \"sign_in\",\n}: {\n client: SupabaseClient;\n config: SupabaseAuthenticationConfig;\n view: ViewType;\n}) => {\n const [searchParams] = useSearchParams();\n const redirectTo = searchParams.get(\"redirectTo\");\n const providers = config.provider ? [config.provider] : config.providers;\n const root = config.basePath ?? \"/\";\n const redirectToAfterSignUp =\n redirectTo ?? config.redirectToAfterSignUp ?? root;\n const redirectToAfterSignIn =\n redirectTo ?? config.redirectToAfterSignIn ?? root;\n const redirectToAfterSignOut =\n redirectTo ?? config.redirectToAfterSignOut ?? root;\n\n return (\n <div className=\"flex items-center justify-center\">\n <div className=\"max-w-md w-full mt-10\">\n <Heading level={1}>\n {view === \"sign_in\" ? \"Sign in\" : \"Sign up\"}\n </Heading>\n <Auth\n view={view}\n redirectToAfterSignIn={redirectToAfterSignIn}\n redirectToAfterSignUp={redirectToAfterSignUp}\n redirectToAfterSignOut={redirectToAfterSignOut}\n supabaseClient={client}\n onlyThirdPartyProviders={config.onlyThirdPartyProviders}\n appearance={{\n theme: ThemeSupa,\n variables: {\n default: {\n colors: {\n dividerBackground: \"var(--border)\",\n brand: \"var(--primary)\",\n brandAccent: \"hsla(from var(--primary) h s l / 0.8)\",\n brandButtonText: \"var(--primary-foreground)\",\n defaultButtonBorder: \"var(--border)\",\n inputBorder: \"var(--border)\",\n inputText: \"var(--foreground)\",\n inputBorderHover: \"var(--accent)\",\n defaultButtonBackground: \"var(--secondary)\",\n defaultButtonBackgroundHover: \"var(--accent)\",\n },\n radii: {\n borderRadiusButton: \"var(--radius)\",\n buttonBorderRadius: \"var(--radius)\",\n inputBorderRadius: \"var(--radius)\",\n },\n } satisfies ThemeVariables,\n },\n }}\n providers={providers}\n redirectTo={config.redirectToAfterSignIn ?? \"/\"}\n />\n </div>\n </div>\n );\n};\n","import {\n createClient,\n type Session,\n type SupabaseClient,\n} from \"@supabase/supabase-js\";\nimport type { SupabaseAuthenticationConfig } from \"../../../config/config.js\";\nimport { CoreAuthenticationPlugin } from \"../AuthenticationPlugin.js\";\nimport type {\n AuthActionContext,\n AuthActionOptions,\n AuthenticationPlugin,\n AuthenticationProviderInitializer,\n} from \"../authentication.js\";\nimport { SignOut } from \"../components/SignOut.js\";\nimport { AuthorizationError } from \"../errors.js\";\nimport { type UserProfile, useAuthState } from \"../state.js\";\nimport { SupabaseAuthUI } from \"./supabase/SupabaseAuthUI.js\";\n\nclass SupabaseAuthenticationProvider\n extends CoreAuthenticationPlugin\n implements AuthenticationPlugin\n{\n private readonly client: SupabaseClient;\n private readonly config: SupabaseAuthenticationConfig;\n\n constructor(config: SupabaseAuthenticationConfig) {\n const { supabaseUrl, supabaseKey } = config;\n super();\n\n this.client = createClient(supabaseUrl, supabaseKey, {\n auth: {\n autoRefreshToken: true,\n persistSession: true,\n },\n });\n this.config = config;\n\n this.client.auth.onAuthStateChange(async (event, session) => {\n if (session && (event === \"SIGNED_IN\" || event === \"TOKEN_REFRESHED\")) {\n await this.updateUserState(session);\n } else if (event === \"SIGNED_OUT\") {\n useAuthState.getState().setLoggedOut();\n }\n });\n }\n\n private async updateUserState(session: Session) {\n const { user } = session;\n\n const profile: UserProfile = {\n sub: user.id,\n email: user.email,\n name: user.user_metadata.full_name || user.user_metadata.name,\n emailVerified: user.email_confirmed_at != null,\n pictureUrl: user.user_metadata.avatar_url,\n };\n\n useAuthState.getState().setLoggedIn({\n profile,\n providerData: { session },\n });\n }\n\n async getAccessToken(): Promise<string> {\n const { data, error } = await this.client.auth.getSession();\n\n if (error || !data.session) {\n throw new AuthorizationError(\"User is not authenticated\");\n }\n\n return data.session.access_token;\n }\n\n async signRequest(request: Request): Promise<Request> {\n const accessToken = await this.getAccessToken();\n request.headers.set(\"Authorization\", `Bearer ${accessToken}`);\n return request;\n }\n\n signUp = async (\n { navigate }: AuthActionContext,\n { redirectTo }: AuthActionOptions,\n ) => {\n void navigate(\n redirectTo\n ? `/signup?redirectTo=${encodeURIComponent(redirectTo)}`\n : `/signup`,\n );\n };\n\n signIn = async (\n { navigate }: AuthActionContext,\n { redirectTo }: AuthActionOptions,\n ) => {\n void navigate(\n redirectTo\n ? `/signin?redirectTo=${encodeURIComponent(redirectTo)}`\n : `/signin`,\n );\n };\n\n getRoutes = () => {\n return [\n {\n path: \"/signin\",\n element: (\n <SupabaseAuthUI\n view=\"sign_in\"\n client={this.client}\n config={this.config}\n />\n ),\n },\n {\n path: \"/signup\",\n element: (\n <SupabaseAuthUI\n view=\"sign_up\"\n client={this.client}\n config={this.config}\n />\n ),\n },\n {\n path: \"/signout\",\n element: <SignOut />,\n },\n ];\n };\n\n signOut = async () => {\n const { error } = await this.client.auth.signOut({ scope: \"local\" });\n if (error) {\n // biome-ignore lint/suspicious: Logging is better than not doing anything\n console.error(\"Error signing out\", error);\n }\n useAuthState.getState().setLoggedOut();\n };\n\n onPageLoad = async () => {\n const { data, error } = await this.client.auth.getSession();\n\n if (!error && data.session) {\n await this.updateUserState(data.session);\n }\n };\n}\n\nconst supabaseAuth: AuthenticationProviderInitializer<\n SupabaseAuthenticationConfig\n> = (options) => new SupabaseAuthenticationProvider(options);\n\nexport default supabaseAuth;\n"],"names":["SupabaseAuthUI","client","config","view","searchParams","useSearchParams","redirectTo","providers","root","redirectToAfterSignUp","redirectToAfterSignIn","redirectToAfterSignOut","jsxs","jsx","Heading","Auth","ThemeSupa","SupabaseAuthenticationProvider","CoreAuthenticationPlugin","supabaseUrl","supabaseKey","createClient","event","session","useAuthState","user","profile","data","error","AuthorizationError","request","accessToken","navigate","SignOut","supabaseAuth","options"],"mappings":"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"}
@@ -1,30 +1,32 @@
1
- import "./index.esm-DtzT_KoE.js";
2
- import "./index-Css56y3F.js";
3
- import "./chunk-PVWAREVJ-dLIqswPy.js";
4
- import "./hook-BNxidGQq.js";
1
+ import "./index.esm-B_0dvNjB.js";
2
+ import "./index-Ba6RP577.js";
3
+ import "./chunk-EPOLDU6W-C6C8jAwd.js";
4
+ import "./hook-Da8QTnPd.js";
5
5
  import "./ui/Button.js";
6
6
  import "./ui/Callout.js";
7
+ import "./invariant-BJAl77rw.js";
7
8
  import "./ClientOnly-E7hGysn1.js";
8
- import "./ZudokuContext-BXldanA8.js";
9
- import "./ErrorAlert-DrOR8w3f.js";
9
+ import "./ZudokuContext-CnEI8jPU.js";
10
+ import { B as d, y as k, C as l, p as h, n as y, o as S, L as Z, m as E, r as H, S as g, q as w, Z as x, t as A, w as B, x as L, v as M, z as T, a as c } from "./index-ofqkdEjL.js";
10
11
  import "./Spinner-CI6bRyZw.js";
11
- import { B as d, i as h, C as l, d as k, c as S, L as y, M, e as T, S as Z, T as c, Z as f, g, h as A, f as B, j as E, u as H } from "./index-CCmMJp02.js";
12
12
  export {
13
13
  d as Button,
14
- h as CACHE_KEYS,
14
+ k as CACHE_KEYS,
15
15
  l as Callout,
16
- k as ClientOnly,
17
- S as Head,
18
- y as Link,
19
- M as Markdown,
20
- T as Slot,
21
- Z as Spinner,
22
- c as Typography,
23
- f as Zudoku,
24
- g as useAuth,
25
- A as useCache,
26
- B as useMDXComponents,
27
- E as useTheme,
28
- H as useZudoku
16
+ h as ClientOnly,
17
+ y as Head,
18
+ S as Heading,
19
+ Z as Link,
20
+ E as Markdown,
21
+ H as Slot,
22
+ g as Spinner,
23
+ w as Typography,
24
+ x as Zudoku,
25
+ A as ZudokuError,
26
+ B as useAuth,
27
+ L as useCache,
28
+ M as useMDXComponents,
29
+ T as useTheme,
30
+ c as useZudoku
29
31
  };
30
32
  //# sourceMappingURL=zudoku.components.js.map
@@ -1,6 +1,6 @@
1
- import { b as o, h as u, e as p, f as r, g as t, a as m, c as C } from "./index-Css56y3F.js";
2
- import "./hook-BNxidGQq.js";
3
- import { C as E } from "./ZudokuContext-BXldanA8.js";
1
+ import { b as o, h as u, e as p, f as r, g as t, a as m, c as C } from "./index-Ba6RP577.js";
2
+ import "./hook-Da8QTnPd.js";
3
+ import { C as E } from "./ZudokuContext-CnEI8jPU.js";
4
4
  export {
5
5
  E as CACHE_KEYS,
6
6
  o as useAuth,