zudoku 0.0.0-z7b86faab → 0.0.0-z8ac421f0

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 (321) hide show
  1. package/dist/app/main.js +1 -1
  2. package/dist/app/main.js.map +1 -1
  3. package/dist/config/create-plugin.d.ts +2 -0
  4. package/dist/config/create-plugin.js +55 -0
  5. package/dist/config/create-plugin.js.map +1 -0
  6. package/dist/config/loader.js +2 -2
  7. package/dist/config/loader.js.map +1 -1
  8. package/dist/config/validators/InputNavigationSchema.d.ts +174 -124
  9. package/dist/config/validators/InputNavigationSchema.js +17 -0
  10. package/dist/config/validators/InputNavigationSchema.js.map +1 -1
  11. package/dist/config/validators/NavigationSchema.d.ts +10 -2
  12. package/dist/config/validators/NavigationSchema.js +7 -0
  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 +6 -5
  16. package/dist/config/validators/validate.js +2 -0
  17. package/dist/config/validators/validate.js.map +1 -1
  18. package/dist/flat-config.d.ts +36 -24
  19. package/dist/index.d.ts +2 -1
  20. package/dist/index.js +1 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/lib/components/Bootstrap.js +1 -2
  23. package/dist/lib/components/Bootstrap.js.map +1 -1
  24. package/dist/lib/components/Heading.d.ts +1 -1
  25. package/dist/lib/components/MobileTopNavigation.js +2 -1
  26. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  27. package/dist/lib/components/Slot.test.js +1 -1
  28. package/dist/lib/components/Slot.test.js.map +1 -1
  29. package/dist/lib/components/TopNavigation.d.ts +7 -1
  30. package/dist/lib/components/TopNavigation.js +7 -2
  31. package/dist/lib/components/TopNavigation.js.map +1 -1
  32. package/dist/lib/components/Zudoku.d.ts +4 -1
  33. package/dist/lib/components/Zudoku.js +4 -7
  34. package/dist/lib/components/Zudoku.js.map +1 -1
  35. package/dist/lib/components/context/ZudokuContext.d.ts +9 -4
  36. package/dist/lib/components/context/ZudokuContext.js +4 -2
  37. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  38. package/dist/lib/components/context/ZudokuProvider.js +1 -1
  39. package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
  40. package/dist/lib/components/context/ZudokuReactContext.d.ts +11 -0
  41. package/dist/lib/components/context/ZudokuReactContext.js +4 -0
  42. package/dist/lib/components/context/ZudokuReactContext.js.map +1 -0
  43. package/dist/lib/components/index.d.ts +18 -74
  44. package/dist/lib/components/index.js +19 -36
  45. package/dist/lib/components/index.js.map +1 -1
  46. package/dist/lib/components/navigation/Navigation.js +4 -3
  47. package/dist/lib/components/navigation/Navigation.js.map +1 -1
  48. package/dist/lib/components/navigation/NavigationCategory.js +8 -0
  49. package/dist/lib/components/navigation/NavigationCategory.js.map +1 -1
  50. package/dist/lib/components/navigation/NavigationFilterContext.d.ts +8 -0
  51. package/dist/lib/components/navigation/NavigationFilterContext.js +12 -0
  52. package/dist/lib/components/navigation/NavigationFilterContext.js.map +1 -0
  53. package/dist/lib/components/navigation/NavigationFilterInput.d.ts +3 -0
  54. package/dist/lib/components/navigation/NavigationFilterInput.js +9 -0
  55. package/dist/lib/components/navigation/NavigationFilterInput.js.map +1 -0
  56. package/dist/lib/components/navigation/NavigationItem.js +11 -1
  57. package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
  58. package/dist/lib/components/navigation/utils.d.ts +2 -1
  59. package/dist/lib/components/navigation/utils.js +22 -1
  60. package/dist/lib/components/navigation/utils.js.map +1 -1
  61. package/dist/lib/core/ZudokuContext.d.ts +2 -1
  62. package/dist/lib/core/ZudokuContext.js +3 -1
  63. package/dist/lib/core/ZudokuContext.js.map +1 -1
  64. package/dist/lib/core/__internal.d.ts +1 -0
  65. package/dist/lib/core/__internal.js +2 -0
  66. package/dist/lib/core/__internal.js.map +1 -1
  67. package/dist/lib/core/plugins.d.ts +5 -1
  68. package/dist/lib/core/plugins.js.map +1 -1
  69. package/dist/lib/core/transform-config.d.ts +4 -2
  70. package/dist/lib/core/transform-config.js +33 -13
  71. package/dist/lib/core/transform-config.js.map +1 -1
  72. package/dist/lib/core/transform-config.test.d.ts +1 -0
  73. package/dist/lib/core/transform-config.test.js +83 -0
  74. package/dist/lib/core/transform-config.test.js.map +1 -0
  75. package/dist/lib/errors/ErrorAlert.js +1 -2
  76. package/dist/lib/errors/ErrorAlert.js.map +1 -1
  77. package/dist/lib/hooks/index.d.ts +7 -30
  78. package/dist/lib/hooks/index.js +7 -15
  79. package/dist/lib/hooks/index.js.map +1 -1
  80. package/dist/lib/hooks/useEvent.test.js +1 -1
  81. package/dist/lib/hooks/useEvent.test.js.map +1 -1
  82. package/dist/lib/oas/graphql/circular.d.ts +1 -1
  83. package/dist/lib/oas/graphql/circular.js +18 -35
  84. package/dist/lib/oas/graphql/circular.js.map +1 -1
  85. package/dist/lib/oas/graphql/circular.test.js +33 -2
  86. package/dist/lib/oas/graphql/circular.test.js.map +1 -1
  87. package/dist/lib/oas/parser/index.js +14 -5
  88. package/dist/lib/oas/parser/index.js.map +1 -1
  89. package/dist/lib/plugins/openapi/ParamInfos.js +8 -5
  90. package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -1
  91. package/dist/lib/plugins/openapi/ParameterListItem.js +1 -1
  92. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  93. package/dist/lib/plugins/openapi/playground/fileUtils.d.ts +1 -0
  94. package/dist/lib/plugins/openapi/playground/fileUtils.js +3 -0
  95. package/dist/lib/plugins/openapi/playground/fileUtils.js.map +1 -1
  96. package/dist/lib/plugins/openapi/playground/result-panel/AudioPlayer.d.ts +6 -0
  97. package/dist/lib/plugins/openapi/playground/result-panel/AudioPlayer.js +20 -0
  98. package/dist/lib/plugins/openapi/playground/result-panel/AudioPlayer.js.map +1 -0
  99. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +7 -2
  100. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
  101. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +2 -2
  102. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -1
  103. package/dist/lib/ui/Alert.d.ts +3 -2
  104. package/dist/lib/ui/Alert.js +9 -5
  105. package/dist/lib/ui/Alert.js.map +1 -1
  106. package/dist/lib/ui/InputGroup.d.ts +16 -0
  107. package/dist/lib/ui/InputGroup.js +65 -0
  108. package/dist/lib/ui/InputGroup.js.map +1 -0
  109. package/dist/lib/ui/Secret.js +2 -2
  110. package/dist/lib/ui/Secret.js.map +1 -1
  111. package/dist/lib/util/flattenAllOf.d.ts +0 -2
  112. package/dist/lib/util/flattenAllOf.js +6 -46
  113. package/dist/lib/util/flattenAllOf.js.map +1 -1
  114. package/dist/lib/util/flattenAllOf.test.js +28 -1
  115. package/dist/lib/util/flattenAllOf.test.js.map +1 -1
  116. package/dist/lib/util/flattenAllOfProcessor.d.ts +2 -0
  117. package/dist/lib/util/flattenAllOfProcessor.js +48 -0
  118. package/dist/lib/util/flattenAllOfProcessor.js.map +1 -0
  119. package/dist/lib/util/readFrontmatter.js +2 -1
  120. package/dist/lib/util/readFrontmatter.js.map +1 -1
  121. package/dist/vite/api/SchemaManager.js +1 -1
  122. package/dist/vite/api/SchemaManager.js.map +1 -1
  123. package/dist/vite/api/SchemaManager.test.js +1 -1
  124. package/dist/vite/api/SchemaManager.test.js.map +1 -1
  125. package/dist/vite/build.js +91 -73
  126. package/dist/vite/build.js.map +1 -1
  127. package/dist/vite/config.js +5 -2
  128. package/dist/vite/config.js.map +1 -1
  129. package/dist/vite/mdx/remark-inject-filepath.js +5 -1
  130. package/dist/vite/mdx/remark-inject-filepath.js.map +1 -1
  131. package/dist/vite/mdx/remark-link-rewrite.js +3 -2
  132. package/dist/vite/mdx/remark-link-rewrite.js.map +1 -1
  133. package/dist/vite/plugin-config.js +16 -4
  134. package/dist/vite/plugin-config.js.map +1 -1
  135. package/dist/vite/plugin-docs.js +9 -7
  136. package/dist/vite/plugin-docs.js.map +1 -1
  137. package/dist/vite/plugin-markdown-export.js +4 -2
  138. package/dist/vite/plugin-markdown-export.js.map +1 -1
  139. package/dist/vite/plugin-theme.js +2 -1
  140. package/dist/vite/plugin-theme.js.map +1 -1
  141. package/dist/vite/prerender/prerender.js +3 -1
  142. package/dist/vite/prerender/prerender.js.map +1 -1
  143. package/dist/vite/prerender/worker.js +3 -1
  144. package/dist/vite/prerender/worker.js.map +1 -1
  145. package/lib/{ClaudeLogo-DJ9bU-sO.js → ClaudeLogo-Br8C_vTq.js} +26 -22
  146. package/lib/{ClaudeLogo-DJ9bU-sO.js.map → ClaudeLogo-Br8C_vTq.js.map} +1 -1
  147. package/lib/Drawer-Ch7927PF.js.map +1 -1
  148. package/lib/{HydrationBoundary-CNF2ZV3E.js → HydrationBoundary-CJu4vUlG.js} +6 -6
  149. package/lib/{HydrationBoundary-CNF2ZV3E.js.map → HydrationBoundary-CJu4vUlG.js.map} +1 -1
  150. package/lib/{MdxPage-stpAoBtx.js → MdxPage-C0QFAsgv.js} +8 -8
  151. package/lib/{MdxPage-stpAoBtx.js.map → MdxPage-C0QFAsgv.js.map} +1 -1
  152. package/lib/Mermaid-Chx5BPHn.js +104 -0
  153. package/lib/Mermaid-Chx5BPHn.js.map +1 -0
  154. package/lib/{OAuthErrorPage-DJ811Bn_.js → OAuthErrorPage-CFz_gBFx.js} +22 -19
  155. package/lib/{OAuthErrorPage-DJ811Bn_.js.map → OAuthErrorPage-CFz_gBFx.js.map} +1 -1
  156. package/lib/{OasProvider-CS_ASmBB.js → OasProvider-BwIOIlky.js} +3 -3
  157. package/lib/{OasProvider-CS_ASmBB.js.map → OasProvider-BwIOIlky.js.map} +1 -1
  158. package/lib/OperationList-DYRzbPJu.js +5908 -0
  159. package/lib/OperationList-DYRzbPJu.js.map +1 -0
  160. package/lib/{RouteGuard--A04ESy8.js → RouteGuard-CVs3yvEs.js} +5 -5
  161. package/lib/{RouteGuard--A04ESy8.js.map → RouteGuard-CVs3yvEs.js.map} +1 -1
  162. package/lib/{SchemaList-BJZJv1gD.js → SchemaList-D4FEyoDV.js} +8 -8
  163. package/lib/{SchemaList-BJZJv1gD.js.map → SchemaList-D4FEyoDV.js.map} +1 -1
  164. package/lib/{SchemaView-U4JMYB3N.js → SchemaView-ScvkhsYE.js} +116 -110
  165. package/lib/SchemaView-ScvkhsYE.js.map +1 -0
  166. package/lib/{Secret-BDBqq4p3.js → Secret-DUpgv4V3.js} +92 -72
  167. package/lib/Secret-DUpgv4V3.js.map +1 -0
  168. package/lib/{SignUp-DCBViNUi.js → SignUp-Dug1jAGC.js} +31 -26
  169. package/lib/{SignUp-DCBViNUi.js.map → SignUp-Dug1jAGC.js.map} +1 -1
  170. package/lib/{SyntaxHighlight-Dshjn3Zf.js → SyntaxHighlight-BMu0b_hF.js} +9 -9
  171. package/lib/{SyntaxHighlight-Dshjn3Zf.js.map → SyntaxHighlight-BMu0b_hF.js.map} +1 -1
  172. package/lib/{Toc-Cgz6CPiE.js → Toc-BiJ2YL0O.js} +2 -2
  173. package/lib/{Toc-Cgz6CPiE.js.map → Toc-BiJ2YL0O.js.map} +1 -1
  174. package/lib/{index-CL8eDnQW.js → Zudoku-iyiXgWFY.js} +2996 -2859
  175. package/lib/Zudoku-iyiXgWFY.js.map +1 -0
  176. package/lib/ZudokuContext-CYyb_PB_.js +175 -0
  177. package/lib/ZudokuContext-CYyb_PB_.js.map +1 -0
  178. package/lib/ZudokuReactContext-DGJAP1sN.js +222 -0
  179. package/lib/ZudokuReactContext-DGJAP1sN.js.map +1 -0
  180. package/lib/chunk-EPOLDU6W-C6C8jAwd.js.map +1 -1
  181. package/lib/{circular-BmMJjG1v.js → circular-BOpxmAie.js} +1327 -1346
  182. package/lib/{circular-BmMJjG1v.js.map → circular-BOpxmAie.js.map} +1 -1
  183. package/lib/createServer-BunbJzB5.js +13038 -0
  184. package/lib/createServer-BunbJzB5.js.map +1 -0
  185. package/lib/{errors-b9I-fAOY.js → errors-B77S9iOc.js} +3 -3
  186. package/lib/{errors-b9I-fAOY.js.map → errors-B77S9iOc.js.map} +1 -1
  187. package/lib/{firebase-BCXX7Qv5.js → firebase-C7XKRGLf.js} +26 -25
  188. package/lib/{firebase-BCXX7Qv5.js.map → firebase-C7XKRGLf.js.map} +1 -1
  189. package/lib/{hook-BGlHBdET.js → hook-Dz_n9SoE.js} +16 -15
  190. package/lib/{hook-BGlHBdET.js.map → hook-Dz_n9SoE.js.map} +1 -1
  191. package/lib/{index-UOLtazB8.js → index-BDp2MTiq.js} +2 -2
  192. package/lib/{index-UOLtazB8.js.map → index-BDp2MTiq.js.map} +1 -1
  193. package/lib/{index-O9RHI87z.js → index-Bx29qHVi.js} +589 -551
  194. package/lib/index-Bx29qHVi.js.map +1 -0
  195. package/lib/index-CrcNWbel.js.map +1 -1
  196. package/lib/index-DAWHN3cH.js +86 -0
  197. package/lib/index-DAWHN3cH.js.map +1 -0
  198. package/lib/index.esm-BYObtETB.js.map +1 -1
  199. package/lib/{index.esm-B_0dvNjB.js → index.esm-Ca5zvoff.js} +20 -20
  200. package/lib/{index.esm-B_0dvNjB.js.map → index.esm-Ca5zvoff.js.map} +1 -1
  201. package/lib/{index.esm-C5CBsVzN.js → index.esm-Cth49JBv.js} +2 -2
  202. package/lib/index.esm-Cth49JBv.js.map +1 -0
  203. package/lib/{invariant-BJAl77rw.js → invariant-B_t_F2s_.js} +3 -3
  204. package/lib/{invariant-BJAl77rw.js.map → invariant-B_t_F2s_.js.map} +1 -1
  205. package/lib/jsx-runtime-BzflLqGi.js.map +1 -1
  206. package/lib/{mutation-BISOc7OM.js → mutation-B7eFBLZY.js} +2 -2
  207. package/lib/{mutation-BISOc7OM.js.map → mutation-B7eFBLZY.js.map} +1 -1
  208. package/lib/ui/Alert.js +32 -20
  209. package/lib/ui/Alert.js.map +1 -1
  210. package/lib/ui/Carousel.js.map +1 -1
  211. package/lib/ui/InputGroup.js +155 -0
  212. package/lib/ui/InputGroup.js.map +1 -0
  213. package/lib/ui/Secret.js +2 -2
  214. package/lib/ui/Secret.js.map +1 -1
  215. package/lib/ui/SyntaxHighlight.js +3 -3
  216. package/lib/useExposedProps-CzTDfXfq.js +30 -0
  217. package/lib/useExposedProps-CzTDfXfq.js.map +1 -0
  218. package/lib/{useMutation-CFMGlAMW.js → useMutation-CErliDZ9.js} +5 -5
  219. package/lib/{useMutation-CFMGlAMW.js.map → useMutation-CErliDZ9.js.map} +1 -1
  220. package/lib/{useSuspenseQuery-CSB_rVek.js → useQuery-ht7aWJ3S.js} +432 -446
  221. package/lib/useQuery-ht7aWJ3S.js.map +1 -0
  222. package/lib/useSuspenseQuery-DQH4Bmc2.js +18 -0
  223. package/lib/useSuspenseQuery-DQH4Bmc2.js.map +1 -0
  224. package/lib/zudoku.__internal.js +1519 -1033
  225. package/lib/zudoku.__internal.js.map +1 -1
  226. package/lib/zudoku.auth-auth0.js +6 -5
  227. package/lib/zudoku.auth-auth0.js.map +1 -1
  228. package/lib/zudoku.auth-azureb2c.js +14 -13
  229. package/lib/zudoku.auth-azureb2c.js.map +1 -1
  230. package/lib/zudoku.auth-clerk.js +2 -2
  231. package/lib/zudoku.auth-firebase.js +5 -5
  232. package/lib/zudoku.auth-openid.js +8 -7
  233. package/lib/zudoku.auth-openid.js.map +1 -1
  234. package/lib/zudoku.auth-supabase.js +4 -4
  235. package/lib/zudoku.components.js +31 -29
  236. package/lib/zudoku.components.js.map +1 -1
  237. package/lib/zudoku.hooks.js +24 -11
  238. package/lib/zudoku.hooks.js.map +1 -1
  239. package/lib/zudoku.mermaid.js +5 -4
  240. package/lib/zudoku.mermaid.js.map +1 -1
  241. package/lib/zudoku.plugin-api-catalog.js +41 -36
  242. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  243. package/lib/zudoku.plugin-api-keys.js +156 -153
  244. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  245. package/lib/zudoku.plugin-custom-pages.js +1 -1
  246. package/lib/zudoku.plugin-markdown.js +1 -1
  247. package/lib/zudoku.plugin-openapi.js +2 -2
  248. package/lib/zudoku.plugin-search-pagefind.js +19 -18
  249. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  250. package/lib/zudoku.plugins.js.map +1 -1
  251. package/lib/zudoku.react-query.js +26 -25
  252. package/lib/zudoku.react-query.js.map +1 -1
  253. package/lib/zudoku.router.js.map +1 -1
  254. package/package.json +17 -10
  255. package/src/app/defaultTheme.css +4 -0
  256. package/src/app/main.css +2 -0
  257. package/src/app/main.tsx +1 -1
  258. package/src/lib/components/Bootstrap.tsx +1 -4
  259. package/src/lib/components/MobileTopNavigation.tsx +13 -8
  260. package/src/lib/components/Slot.test.tsx +1 -1
  261. package/src/lib/components/TopNavigation.tsx +25 -7
  262. package/src/lib/components/Zudoku.tsx +18 -14
  263. package/src/lib/components/context/ZudokuContext.ts +3 -6
  264. package/src/lib/components/context/ZudokuProvider.tsx +1 -1
  265. package/src/lib/components/context/ZudokuReactContext.tsx +17 -0
  266. package/src/lib/components/index.ts +19 -39
  267. package/src/lib/components/navigation/Navigation.tsx +4 -3
  268. package/src/lib/components/navigation/NavigationCategory.tsx +9 -0
  269. package/src/lib/components/navigation/NavigationFilterContext.tsx +28 -0
  270. package/src/lib/components/navigation/NavigationFilterInput.tsx +35 -0
  271. package/src/lib/components/navigation/NavigationItem.tsx +17 -1
  272. package/src/lib/components/navigation/utils.ts +32 -1
  273. package/src/lib/core/ZudokuContext.ts +7 -1
  274. package/src/lib/core/__internal.tsx +2 -0
  275. package/src/lib/core/plugins.ts +7 -3
  276. package/src/lib/core/transform-config.test.tsx +99 -0
  277. package/src/lib/core/transform-config.ts +57 -19
  278. package/src/lib/errors/ErrorAlert.tsx +1 -6
  279. package/src/lib/hooks/index.ts +7 -16
  280. package/src/lib/hooks/useEvent.test.tsx +1 -1
  281. package/src/lib/oas/graphql/circular.test.ts +37 -2
  282. package/src/lib/oas/graphql/circular.ts +25 -51
  283. package/src/lib/oas/parser/index.ts +17 -6
  284. package/src/lib/plugins/openapi/ParamInfos.tsx +10 -5
  285. package/src/lib/plugins/openapi/ParameterListItem.tsx +1 -0
  286. package/src/lib/plugins/openapi/playground/fileUtils.ts +4 -0
  287. package/src/lib/plugins/openapi/playground/result-panel/AudioPlayer.tsx +50 -0
  288. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +33 -17
  289. package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +2 -0
  290. package/src/lib/ui/Alert.tsx +17 -5
  291. package/src/lib/ui/InputGroup.tsx +168 -0
  292. package/src/lib/ui/Secret.tsx +2 -2
  293. package/src/lib/util/flattenAllOf.test.ts +34 -1
  294. package/src/lib/util/flattenAllOf.ts +7 -57
  295. package/src/lib/util/flattenAllOfProcessor.ts +58 -0
  296. package/src/lib/util/readFrontmatter.ts +2 -1
  297. package/src/zuplo/enrich-with-zuplo-mcp.ts +168 -0
  298. package/src/zuplo/enrich-with-zuplo.ts +254 -0
  299. package/src/zuplo/policy-types.ts +46 -0
  300. package/src/zuplo/with-zuplo-processors.ts +35 -0
  301. package/src/zuplo/with-zuplo.ts +14 -0
  302. package/lib/Mermaid-Koc3z8mU.js +0 -102
  303. package/lib/Mermaid-Koc3z8mU.js.map +0 -1
  304. package/lib/OperationList-Dq_AB4W9.js +0 -5820
  305. package/lib/OperationList-Dq_AB4W9.js.map +0 -1
  306. package/lib/SchemaView-U4JMYB3N.js.map +0 -1
  307. package/lib/Secret-BDBqq4p3.js.map +0 -1
  308. package/lib/Separator-BXt1LYnm.js +0 -27
  309. package/lib/Separator-BXt1LYnm.js.map +0 -1
  310. package/lib/ZudokuContext-BZB1TWdT.js +0 -387
  311. package/lib/ZudokuContext-BZB1TWdT.js.map +0 -1
  312. package/lib/___vite-browser-external_commonjs-proxy-BttVsNON.js +0 -9
  313. package/lib/___vite-browser-external_commonjs-proxy-BttVsNON.js.map +0 -1
  314. package/lib/createServer-CLSZ7hWJ.js +0 -16693
  315. package/lib/createServer-CLSZ7hWJ.js.map +0 -1
  316. package/lib/index-CL8eDnQW.js.map +0 -1
  317. package/lib/index-DBjOT2H1.js +0 -133
  318. package/lib/index-DBjOT2H1.js.map +0 -1
  319. package/lib/index-O9RHI87z.js.map +0 -1
  320. package/lib/index.esm-C5CBsVzN.js.map +0 -1
  321. package/lib/useSuspenseQuery-CSB_rVek.js.map +0 -1
@@ -1,4 +1,5 @@
1
- import { u as r, j as a } from "./ZudokuContext-BZB1TWdT.js";
1
+ import { j as a } from "./ZudokuContext-CYyb_PB_.js";
2
+ import { u as r } from "./ZudokuReactContext-DGJAP1sN.js";
2
3
  import { OpenIDAuthenticationProvider as p } from "./zudoku.auth-openid.js";
3
4
  class d extends p {
4
5
  options;
@@ -28,15 +29,15 @@ class d extends p {
28
29
  "/",
29
30
  this.redirectToAfterSignOut
30
31
  ), 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(
32
+ const o = new URL(e.end_session_endpoint);
33
+ s && o.searchParams.set("id_token_hint", s), o.searchParams.set(
33
34
  "post_logout_redirect_uri",
34
35
  n.toString()
35
- ), window.location.href = i.toString();
36
+ ), window.location.href = o.toString();
36
37
  }
37
38
  };
38
39
  }
39
- const l = (o) => new d(o);
40
+ const l = (i) => new d(i);
40
41
  export {
41
42
  l as default
42
43
  };
@@ -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 { 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
+ {"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,11 @@
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-CL8eDnQW.js";
3
+ import { E as I } from "./Zudoku-iyiXgWFY.js";
4
4
  import { C as T } from "./ClientOnly-E7hGysn1.js";
5
- import { j as S, u as h } from "./ZudokuContext-BZB1TWdT.js";
6
- import { C, A as c } from "./errors-b9I-fAOY.js";
7
- import { C as k, O as w } from "./OAuthErrorPage-DJ811Bn_.js";
5
+ import { j as S } from "./ZudokuContext-CYyb_PB_.js";
6
+ import { C, A as c } from "./errors-B77S9iOc.js";
7
+ import { C as k, O as w } from "./OAuthErrorPage-CFz_gBFx.js";
8
+ import { u as h } from "./ZudokuReactContext-DGJAP1sN.js";
8
9
  const u = "/oauth/callback";
9
10
  class y extends C {
10
11
  msalInstance;
@@ -16,13 +17,13 @@ class y extends C {
16
17
  clientId: e,
17
18
  tenantName: t,
18
19
  policyName: i,
19
- scopes: a,
20
+ scopes: r,
20
21
  redirectToAfterSignUp: s,
21
- redirectToAfterSignIn: r,
22
+ redirectToAfterSignIn: a,
22
23
  redirectToAfterSignOut: d = "/",
23
24
  basePath: m = ""
24
25
  }) {
25
- super(), this.scopes = a ?? ["openid", "profile", "email"], this.redirectToAfterSignUp = s, this.redirectToAfterSignIn = r, this.redirectToAfterSignOut = d;
26
+ super(), this.scopes = r ?? ["openid", "profile", "email"], this.redirectToAfterSignUp = s, this.redirectToAfterSignIn = a, this.redirectToAfterSignOut = d;
26
27
  const p = `https://${t}.b2clogin.com/${t}.onmicrosoft.com/${i}`, g = S(m, u);
27
28
  this.msalInstance = new A({
28
29
  auth: {
@@ -44,21 +45,21 @@ class y extends C {
44
45
  });
45
46
  }
46
47
  handleAuthResponse(e) {
47
- const { accessToken: t, idToken: i, scopes: a, account: s } = e;
48
+ const { accessToken: t, idToken: i, scopes: r, account: s } = e;
48
49
  if (!s)
49
50
  throw new c("No account information in response");
50
- const r = [s.idTokenClaims?.given_name, s.idTokenClaims?.family_name].filter(Boolean).join(" ") || s.username;
51
+ const a = [s.idTokenClaims?.given_name, s.idTokenClaims?.family_name].filter(Boolean).join(" ") || s.username;
51
52
  h.getState().setLoggedIn({
52
53
  providerData: {
53
54
  accessToken: t,
54
55
  idToken: i,
55
- scopes: a,
56
+ scopes: r,
56
57
  account: s
57
58
  },
58
59
  profile: {
59
60
  sub: s.localAccountId,
60
61
  email: s.username,
61
- name: r,
62
+ name: a,
62
63
  emailVerified: !0,
63
64
  // Azure B2C emails are verified
64
65
  pictureUrl: void 0
@@ -128,9 +129,9 @@ class y extends C {
128
129
  ];
129
130
  }
130
131
  }
131
- const _ = (l) => new y(l);
132
+ const x = (l) => new y(l);
132
133
  export {
133
134
  y as AzureB2CAuthPlugin,
134
- _ as default
135
+ x as default
135
136
  };
136
137
  //# sourceMappingURL=zudoku.auth-azureb2c.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.auth-azureb2c.js","sources":["../src/lib/authentication/providers/azureb2c.tsx"],"sourcesContent":["import type { AuthenticationResult, EventMessage } from \"@azure/msal-browser\";\nimport { EventType, PublicClientApplication } from \"@azure/msal-browser\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport type { AzureB2CAuthenticationConfig } from \"../../../config/config.js\";\nimport { ClientOnly } from \"../../components/ClientOnly.js\";\nimport { joinUrl } from \"../../util/joinUrl.js\";\nimport { CoreAuthenticationPlugin } from \"../AuthenticationPlugin.js\";\nimport type {\n AuthActionContext,\n AuthenticationPlugin,\n AuthenticationProviderInitializer,\n} from \"../authentication.js\";\nimport { CallbackHandler } from \"../components/CallbackHandler.js\";\nimport { OAuthErrorPage } from \"../components/OAuthErrorPage.js\";\nimport { AuthorizationError } from \"../errors.js\";\nimport { useAuthState } from \"../state.js\";\n\nconst AZUREB2C_CALLBACK_PATH = \"/oauth/callback\";\n\nexport class AzureB2CAuthPlugin\n extends CoreAuthenticationPlugin\n implements AuthenticationPlugin\n{\n private msalInstance: PublicClientApplication;\n private readonly scopes: string[];\n private readonly redirectToAfterSignUp?: string;\n private readonly redirectToAfterSignIn?: string;\n private readonly redirectToAfterSignOut: string;\n\n constructor({\n clientId,\n tenantName,\n policyName,\n scopes,\n redirectToAfterSignUp,\n redirectToAfterSignIn,\n redirectToAfterSignOut = \"/\",\n basePath = \"\",\n }: AzureB2CAuthenticationConfig) {\n super();\n this.scopes = scopes ?? [\"openid\", \"profile\", \"email\"];\n this.redirectToAfterSignUp = redirectToAfterSignUp;\n this.redirectToAfterSignIn = redirectToAfterSignIn;\n this.redirectToAfterSignOut = redirectToAfterSignOut;\n\n const authority = `https://${tenantName}.b2clogin.com/${tenantName}.onmicrosoft.com/${policyName}`;\n const redirectUri = joinUrl(basePath, AZUREB2C_CALLBACK_PATH);\n\n this.msalInstance = new PublicClientApplication({\n auth: {\n clientId,\n authority,\n redirectUri,\n knownAuthorities: [`${tenantName}.b2clogin.com`],\n },\n cache: {\n cacheLocation: \"sessionStorage\",\n storeAuthStateInCookie: false,\n },\n });\n\n void this.msalInstance.initialize().then(async () => {\n void this.msalInstance\n .handleRedirectPromise()\n .then((response: AuthenticationResult | null) => {\n if (response) {\n this.handleAuthResponse(response);\n }\n });\n\n // Add event callback\n void this.msalInstance.addEventCallback((event: EventMessage) => {\n if (event.eventType === EventType.LOGIN_SUCCESS) {\n this.handleAuthResponse(event.payload as AuthenticationResult);\n }\n });\n });\n }\n\n private handleAuthResponse(response: AuthenticationResult) {\n const { accessToken, idToken, scopes, account } = response;\n\n if (!account) {\n throw new AuthorizationError(\"No account information in response\");\n }\n\n // Get the user's name from Azure B2C claims\n const name =\n [account.idTokenClaims?.given_name, account.idTokenClaims?.family_name]\n .filter(Boolean)\n .join(\" \") || account.username;\n\n useAuthState.getState().setLoggedIn({\n providerData: {\n accessToken,\n idToken,\n scopes,\n account,\n },\n profile: {\n sub: account.localAccountId,\n email: account.username,\n name,\n emailVerified: true, // Azure B2C emails are verified\n pictureUrl: undefined, // Azure B2C doesn't provide profile pictures by default\n },\n });\n }\n\n async signUp(\n _: AuthActionContext,\n { redirectTo }: { redirectTo?: string } = {},\n ) {\n const redirectUri = this.redirectToAfterSignUp ?? redirectTo ?? \"/\";\n sessionStorage.setItem(\"redirect-to\", redirectUri);\n\n await this.msalInstance.loginRedirect({\n scopes: this.scopes,\n prompt: \"select_account\",\n });\n }\n\n async signIn(\n _: AuthActionContext,\n { redirectTo }: { redirectTo?: string } = {},\n ) {\n const redirectUri = this.redirectToAfterSignIn ?? redirectTo ?? \"/\";\n sessionStorage.setItem(\"redirect-to\", redirectUri);\n\n await this.msalInstance.loginRedirect({\n scopes: this.scopes,\n });\n }\n\n async getAccessToken(): Promise<string> {\n const account = this.msalInstance.getAllAccounts()[0];\n if (!account) {\n throw new AuthorizationError(\"No active account\");\n }\n\n try {\n const response = await this.msalInstance.acquireTokenSilent({\n scopes: this.scopes,\n account,\n });\n return response.accessToken;\n } catch {\n // If silent token acquisition fails, try interactive\n await this.msalInstance.acquireTokenRedirect({\n scopes: this.scopes,\n account,\n });\n\n throw new AuthorizationError(\n \"Token acquisition failed after interactive attempt\",\n );\n }\n }\n\n signRequest = async (request: Request): Promise<Request> => {\n const accessToken = await this.getAccessToken();\n request.headers.set(\"Authorization\", `Bearer ${accessToken}`);\n return request;\n };\n\n signOut = async (_: AuthActionContext) => {\n const account = this.msalInstance.getAllAccounts()[0];\n if (account) {\n await this.msalInstance.logoutRedirect({\n account,\n postLogoutRedirectUri:\n window.location.origin + this.redirectToAfterSignOut,\n });\n }\n\n useAuthState.getState().setLoggedOut();\n };\n\n handleCallback = async () => {\n const redirectTo = sessionStorage.getItem(\"redirect-to\") ?? \"/\";\n sessionStorage.removeItem(\"redirect-to\");\n return redirectTo;\n };\n\n getRoutes() {\n return [\n ...super.getRoutes(),\n {\n path: AZUREB2C_CALLBACK_PATH,\n element: (\n <ClientOnly>\n <ErrorBoundary\n fallbackRender={({ error }) => <OAuthErrorPage error={error} />}\n >\n <CallbackHandler handleCallback={this.handleCallback} />\n </ErrorBoundary>\n </ClientOnly>\n ),\n },\n ];\n }\n}\n\nconst azureB2CAuth: AuthenticationProviderInitializer<\n AzureB2CAuthenticationConfig\n> = (options) => new AzureB2CAuthPlugin(options);\n\nexport default azureB2CAuth;\n"],"names":["AZUREB2C_CALLBACK_PATH","AzureB2CAuthPlugin","CoreAuthenticationPlugin","clientId","tenantName","policyName","scopes","redirectToAfterSignUp","redirectToAfterSignIn","redirectToAfterSignOut","basePath","authority","redirectUri","joinUrl","PublicClientApplication","response","event","EventType","accessToken","idToken","account","AuthorizationError","name","useAuthState","_","redirectTo","request","ClientOnly","jsx","ErrorBoundary","error","OAuthErrorPage","CallbackHandler","azureB2CAuth","options"],"mappings":"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"}
1
+ {"version":3,"file":"zudoku.auth-azureb2c.js","sources":["../src/lib/authentication/providers/azureb2c.tsx"],"sourcesContent":["import type { AuthenticationResult, EventMessage } from \"@azure/msal-browser\";\nimport { EventType, PublicClientApplication } from \"@azure/msal-browser\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport type { AzureB2CAuthenticationConfig } from \"../../../config/config.js\";\nimport { ClientOnly } from \"../../components/ClientOnly.js\";\nimport { joinUrl } from \"../../util/joinUrl.js\";\nimport { CoreAuthenticationPlugin } from \"../AuthenticationPlugin.js\";\nimport type {\n AuthActionContext,\n AuthenticationPlugin,\n AuthenticationProviderInitializer,\n} from \"../authentication.js\";\nimport { CallbackHandler } from \"../components/CallbackHandler.js\";\nimport { OAuthErrorPage } from \"../components/OAuthErrorPage.js\";\nimport { AuthorizationError } from \"../errors.js\";\nimport { useAuthState } from \"../state.js\";\n\nconst AZUREB2C_CALLBACK_PATH = \"/oauth/callback\";\n\nexport class AzureB2CAuthPlugin\n extends CoreAuthenticationPlugin\n implements AuthenticationPlugin\n{\n private msalInstance: PublicClientApplication;\n private readonly scopes: string[];\n private readonly redirectToAfterSignUp?: string;\n private readonly redirectToAfterSignIn?: string;\n private readonly redirectToAfterSignOut: string;\n\n constructor({\n clientId,\n tenantName,\n policyName,\n scopes,\n redirectToAfterSignUp,\n redirectToAfterSignIn,\n redirectToAfterSignOut = \"/\",\n basePath = \"\",\n }: AzureB2CAuthenticationConfig) {\n super();\n this.scopes = scopes ?? [\"openid\", \"profile\", \"email\"];\n this.redirectToAfterSignUp = redirectToAfterSignUp;\n this.redirectToAfterSignIn = redirectToAfterSignIn;\n this.redirectToAfterSignOut = redirectToAfterSignOut;\n\n const authority = `https://${tenantName}.b2clogin.com/${tenantName}.onmicrosoft.com/${policyName}`;\n const redirectUri = joinUrl(basePath, AZUREB2C_CALLBACK_PATH);\n\n this.msalInstance = new PublicClientApplication({\n auth: {\n clientId,\n authority,\n redirectUri,\n knownAuthorities: [`${tenantName}.b2clogin.com`],\n },\n cache: {\n cacheLocation: \"sessionStorage\",\n storeAuthStateInCookie: false,\n },\n });\n\n void this.msalInstance.initialize().then(async () => {\n void this.msalInstance\n .handleRedirectPromise()\n .then((response: AuthenticationResult | null) => {\n if (response) {\n this.handleAuthResponse(response);\n }\n });\n\n // Add event callback\n void this.msalInstance.addEventCallback((event: EventMessage) => {\n if (event.eventType === EventType.LOGIN_SUCCESS) {\n this.handleAuthResponse(event.payload as AuthenticationResult);\n }\n });\n });\n }\n\n private handleAuthResponse(response: AuthenticationResult) {\n const { accessToken, idToken, scopes, account } = response;\n\n if (!account) {\n throw new AuthorizationError(\"No account information in response\");\n }\n\n // Get the user's name from Azure B2C claims\n const name =\n [account.idTokenClaims?.given_name, account.idTokenClaims?.family_name]\n .filter(Boolean)\n .join(\" \") || account.username;\n\n useAuthState.getState().setLoggedIn({\n providerData: {\n accessToken,\n idToken,\n scopes,\n account,\n },\n profile: {\n sub: account.localAccountId,\n email: account.username,\n name,\n emailVerified: true, // Azure B2C emails are verified\n pictureUrl: undefined, // Azure B2C doesn't provide profile pictures by default\n },\n });\n }\n\n async signUp(\n _: AuthActionContext,\n { redirectTo }: { redirectTo?: string } = {},\n ) {\n const redirectUri = this.redirectToAfterSignUp ?? redirectTo ?? \"/\";\n sessionStorage.setItem(\"redirect-to\", redirectUri);\n\n await this.msalInstance.loginRedirect({\n scopes: this.scopes,\n prompt: \"select_account\",\n });\n }\n\n async signIn(\n _: AuthActionContext,\n { redirectTo }: { redirectTo?: string } = {},\n ) {\n const redirectUri = this.redirectToAfterSignIn ?? redirectTo ?? \"/\";\n sessionStorage.setItem(\"redirect-to\", redirectUri);\n\n await this.msalInstance.loginRedirect({\n scopes: this.scopes,\n });\n }\n\n async getAccessToken(): Promise<string> {\n const account = this.msalInstance.getAllAccounts()[0];\n if (!account) {\n throw new AuthorizationError(\"No active account\");\n }\n\n try {\n const response = await this.msalInstance.acquireTokenSilent({\n scopes: this.scopes,\n account,\n });\n return response.accessToken;\n } catch {\n // If silent token acquisition fails, try interactive\n await this.msalInstance.acquireTokenRedirect({\n scopes: this.scopes,\n account,\n });\n\n throw new AuthorizationError(\n \"Token acquisition failed after interactive attempt\",\n );\n }\n }\n\n signRequest = async (request: Request): Promise<Request> => {\n const accessToken = await this.getAccessToken();\n request.headers.set(\"Authorization\", `Bearer ${accessToken}`);\n return request;\n };\n\n signOut = async (_: AuthActionContext) => {\n const account = this.msalInstance.getAllAccounts()[0];\n if (account) {\n await this.msalInstance.logoutRedirect({\n account,\n postLogoutRedirectUri:\n window.location.origin + this.redirectToAfterSignOut,\n });\n }\n\n useAuthState.getState().setLoggedOut();\n };\n\n handleCallback = async () => {\n const redirectTo = sessionStorage.getItem(\"redirect-to\") ?? \"/\";\n sessionStorage.removeItem(\"redirect-to\");\n return redirectTo;\n };\n\n getRoutes() {\n return [\n ...super.getRoutes(),\n {\n path: AZUREB2C_CALLBACK_PATH,\n element: (\n <ClientOnly>\n <ErrorBoundary\n fallbackRender={({ error }) => <OAuthErrorPage error={error} />}\n >\n <CallbackHandler handleCallback={this.handleCallback} />\n </ErrorBoundary>\n </ClientOnly>\n ),\n },\n ];\n }\n}\n\nconst azureB2CAuth: AuthenticationProviderInitializer<\n AzureB2CAuthenticationConfig\n> = (options) => new AzureB2CAuthPlugin(options);\n\nexport default azureB2CAuth;\n"],"names":["AZUREB2C_CALLBACK_PATH","AzureB2CAuthPlugin","CoreAuthenticationPlugin","clientId","tenantName","policyName","scopes","redirectToAfterSignUp","redirectToAfterSignIn","redirectToAfterSignOut","basePath","authority","redirectUri","joinUrl","PublicClientApplication","response","event","EventType","accessToken","idToken","account","AuthorizationError","name","useAuthState","_","redirectTo","request","ClientOnly","jsx","ErrorBoundary","error","OAuthErrorPage","CallbackHandler","azureB2CAuth","options"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { j as a } from "./jsx-runtime-BzflLqGi.js";
2
2
  import { LogOutIcon as m } from "lucide-react";
3
- import { S as p, a as f, b as h } from "./SignUp-DCBViNUi.js";
4
- import { u as r } from "./ZudokuContext-BZB1TWdT.js";
3
+ import { S as p, a as f, b as h } from "./SignUp-Dug1jAGC.js";
4
+ import { u as r } from "./ZudokuReactContext-DGJAP1sN.js";
5
5
  const R = ({
6
6
  clerkPubKey: u,
7
7
  jwtTemplateName: c,
@@ -1,9 +1,9 @@
1
1
  import "./jsx-runtime-BzflLqGi.js";
2
- import { y as e } from "./firebase-BCXX7Qv5.js";
3
- import "./invariant-BJAl77rw.js";
4
- import "./errors-b9I-fAOY.js";
5
- import "./SignUp-DCBViNUi.js";
6
- import "./ZudokuContext-BZB1TWdT.js";
2
+ import { y as e } from "./firebase-C7XKRGLf.js";
3
+ import "./invariant-B_t_F2s_.js";
4
+ import "./errors-B77S9iOc.js";
5
+ import "./SignUp-Dug1jAGC.js";
6
+ import "./ZudokuReactContext-DGJAP1sN.js";
7
7
  export {
8
8
  e as default
9
9
  };
@@ -1,10 +1,11 @@
1
1
  import { j as D } from "./jsx-runtime-BzflLqGi.js";
2
- import { a as Le } from "./invariant-BJAl77rw.js";
3
- import { E as Ue } from "./index-CL8eDnQW.js";
2
+ import { g as Le } from "./invariant-B_t_F2s_.js";
3
+ import { E as Ue } from "./Zudoku-iyiXgWFY.js";
4
4
  import { C as xe } from "./ClientOnly-E7hGysn1.js";
5
- import { j as Ce, u as S } from "./ZudokuContext-BZB1TWdT.js";
6
- import { C as Ie, O as re, A as R } from "./errors-b9I-fAOY.js";
7
- import { C as je, O as Oe } from "./OAuthErrorPage-DJ811Bn_.js";
5
+ import { j as Ce } from "./ZudokuContext-CYyb_PB_.js";
6
+ import { C as Ie, O as re, A as R } from "./errors-B77S9iOc.js";
7
+ import { C as je, O as Oe } from "./OAuthErrorPage-CFz_gBFx.js";
8
+ import { u as S } from "./ZudokuReactContext-DGJAP1sN.js";
8
9
  var J = { exports: {} }, De = J.exports, oe;
9
10
  function Je() {
10
11
  return oe || (oe = 1, (function(t) {
@@ -1110,10 +1111,10 @@ class It extends Ie {
1110
1111
  ];
1111
1112
  }
1112
1113
  }
1113
- const Kt = (t) => new It(t);
1114
+ const Ht = (t) => new It(t);
1114
1115
  export {
1115
1116
  pe as OPENID_CALLBACK_PATH,
1116
1117
  It as OpenIDAuthenticationProvider,
1117
- Kt as default
1118
+ Ht as default
1118
1119
  };
1119
1120
  //# sourceMappingURL=zudoku.auth-openid.js.map