zudoku 0.47.2 → 0.48.1

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 (265) hide show
  1. package/dist/app/ZuploBuildConfig.d.ts +4 -114
  2. package/dist/app/ZuploBuildConfig.js +1 -1
  3. package/dist/app/ZuploBuildConfig.js.map +1 -1
  4. package/dist/app/demo.js +4 -3
  5. package/dist/app/demo.js.map +1 -1
  6. package/dist/app/main.js +5 -5
  7. package/dist/app/main.js.map +1 -1
  8. package/dist/app/standalone.js +4 -3
  9. package/dist/app/standalone.js.map +1 -1
  10. package/dist/config/loader.js +1 -2
  11. package/dist/config/loader.js.map +1 -1
  12. package/dist/config/validators/BuildSchema.d.ts +20 -44
  13. package/dist/config/validators/BuildSchema.js +3 -14
  14. package/dist/config/validators/BuildSchema.js.map +1 -1
  15. package/dist/config/validators/InputNavigationSchema.d.ts +7217 -0
  16. package/dist/config/validators/InputNavigationSchema.js +74 -0
  17. package/dist/config/validators/InputNavigationSchema.js.map +1 -0
  18. package/dist/config/validators/InputNavigationSchema.test-d.d.ts +1 -0
  19. package/dist/config/validators/InputNavigationSchema.test-d.js +146 -0
  20. package/dist/config/validators/InputNavigationSchema.test-d.js.map +1 -0
  21. package/dist/config/validators/NavigationSchema.d.ts +44 -0
  22. package/dist/config/validators/NavigationSchema.js +95 -0
  23. package/dist/config/validators/NavigationSchema.js.map +1 -0
  24. package/dist/config/validators/icon-types.d.ts +2 -1
  25. package/dist/config/validators/icon-types.js +1775 -1
  26. package/dist/config/validators/icon-types.js.map +1 -1
  27. package/dist/config/validators/validate.d.ts +442 -5780
  28. package/dist/config/validators/validate.js +37 -55
  29. package/dist/config/validators/validate.js.map +1 -1
  30. package/dist/config/validators/validate.test.js +0 -2
  31. package/dist/config/validators/validate.test.js.map +1 -1
  32. package/dist/flat-config.d.ts +320 -0
  33. package/dist/index.d.ts +1 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/lib/components/BuildCheck.js +1 -1
  36. package/dist/lib/components/BuildCheck.js.map +1 -1
  37. package/dist/lib/components/Header.js +10 -9
  38. package/dist/lib/components/Header.js.map +1 -1
  39. package/dist/lib/components/Heading.d.ts +6 -2
  40. package/dist/lib/components/Heading.js +2 -2
  41. package/dist/lib/components/Heading.js.map +1 -1
  42. package/dist/lib/components/Main.js +4 -4
  43. package/dist/lib/components/Main.js.map +1 -1
  44. package/dist/lib/components/MobileTopNavigation.js +5 -5
  45. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  46. package/dist/lib/components/PageProgress.d.ts +1 -0
  47. package/dist/lib/components/PageProgress.js +20 -0
  48. package/dist/lib/components/PageProgress.js.map +1 -0
  49. package/dist/lib/components/TopNavigation.d.ts +2 -3
  50. package/dist/lib/components/TopNavigation.js +45 -44
  51. package/dist/lib/components/TopNavigation.js.map +1 -1
  52. package/dist/lib/components/context/ZudokuContext.d.ts +3 -7
  53. package/dist/lib/components/context/ZudokuContext.js +44 -26
  54. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  55. package/dist/lib/components/navigation/Navigation.d.ts +5 -0
  56. package/dist/lib/components/navigation/Navigation.js +12 -0
  57. package/dist/lib/components/navigation/Navigation.js.map +1 -0
  58. package/dist/lib/components/navigation/{SidebarBadge.d.ts → NavigationBadge.d.ts} +1 -1
  59. package/dist/lib/components/navigation/{SidebarBadge.js → NavigationBadge.js} +2 -2
  60. package/dist/lib/components/navigation/NavigationBadge.js.map +1 -0
  61. package/dist/lib/components/navigation/NavigationCategory.d.ts +5 -0
  62. package/dist/lib/components/navigation/{SidebarCategory.js → NavigationCategory.js} +14 -12
  63. package/dist/lib/components/navigation/NavigationCategory.js.map +1 -0
  64. package/dist/lib/components/navigation/NavigationItem.d.ts +6 -0
  65. package/dist/lib/components/navigation/NavigationItem.js +47 -0
  66. package/dist/lib/components/navigation/NavigationItem.js.map +1 -0
  67. package/dist/lib/components/navigation/{SidebarWrapper.d.ts → NavigationWrapper.d.ts} +1 -1
  68. package/dist/lib/components/navigation/{SidebarWrapper.js → NavigationWrapper.js} +3 -3
  69. package/dist/lib/components/navigation/NavigationWrapper.js.map +1 -0
  70. package/dist/lib/components/navigation/utils.d.ts +7 -9
  71. package/dist/lib/components/navigation/utils.js +17 -17
  72. package/dist/lib/components/navigation/utils.js.map +1 -1
  73. package/dist/lib/core/ZudokuContext.d.ts +6 -8
  74. package/dist/lib/core/ZudokuContext.js +5 -7
  75. package/dist/lib/core/ZudokuContext.js.map +1 -1
  76. package/dist/lib/core/plugins.d.ts +2 -2
  77. package/dist/lib/hooks/useEvent.test.js +5 -3
  78. package/dist/lib/hooks/useEvent.test.js.map +1 -1
  79. package/dist/lib/plugins/api-catalog/Catalog.d.ts +1 -1
  80. package/dist/lib/plugins/api-catalog/index.d.ts +6 -6
  81. package/dist/lib/plugins/api-catalog/index.js +10 -10
  82. package/dist/lib/plugins/api-catalog/index.js.map +1 -1
  83. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +4 -4
  84. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  85. package/dist/lib/plugins/custom-pages/index.d.ts +3 -2
  86. package/dist/lib/plugins/custom-pages/index.js +15 -8
  87. package/dist/lib/plugins/custom-pages/index.js.map +1 -1
  88. package/dist/lib/plugins/markdown/MdxPage.js +6 -3
  89. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  90. package/dist/lib/plugins/markdown/index.d.ts +2 -1
  91. package/dist/lib/plugins/markdown/index.js +9 -26
  92. package/dist/lib/plugins/markdown/index.js.map +1 -1
  93. package/dist/lib/plugins/openapi/OperationList.js +1 -1
  94. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  95. package/dist/lib/plugins/openapi/OperationListItem.js +1 -1
  96. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  97. package/dist/lib/plugins/openapi/SchemaList.js +1 -1
  98. package/dist/lib/plugins/openapi/SchemaList.js.map +1 -1
  99. package/dist/lib/plugins/openapi/graphql/gql.d.ts +1 -1
  100. package/dist/lib/plugins/openapi/graphql/gql.js +1 -1
  101. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  102. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +3 -3
  103. package/dist/lib/plugins/openapi/graphql/graphql.js +2 -2
  104. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  105. package/dist/lib/plugins/openapi/index.d.ts +3 -3
  106. package/dist/lib/plugins/openapi/index.js +9 -9
  107. package/dist/lib/plugins/openapi/index.js.map +1 -1
  108. package/dist/lib/plugins/openapi/interfaces.d.ts +3 -3
  109. package/dist/lib/plugins/openapi/util/createNavigationCategory.d.ts +9 -0
  110. package/dist/lib/plugins/openapi/util/{createSidebarCategory.js → createNavigationCategory.js} +5 -4
  111. package/dist/lib/plugins/openapi/util/createNavigationCategory.js.map +1 -0
  112. package/dist/lib/plugins/openapi/util/getRoutes.js +2 -2
  113. package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -1
  114. package/dist/lib/plugins/openapi/util/methodColorMap.d.ts +1 -1
  115. package/dist/lib/util/useScrollToAnchor.js +3 -3
  116. package/dist/lib/util/useScrollToAnchor.js.map +1 -1
  117. package/dist/vite/api/SchemaManager.d.ts +4 -4
  118. package/dist/vite/api/SchemaManager.js +19 -19
  119. package/dist/vite/api/SchemaManager.js.map +1 -1
  120. package/dist/vite/api/SchemaManager.test.js +4 -4
  121. package/dist/vite/api/SchemaManager.test.js.map +1 -1
  122. package/dist/vite/config.js +1 -0
  123. package/dist/vite/config.js.map +1 -1
  124. package/dist/vite/plugin-api.js +8 -8
  125. package/dist/vite/plugin-api.js.map +1 -1
  126. package/dist/vite/plugin-config-reload.js +2 -0
  127. package/dist/vite/plugin-config-reload.js.map +1 -1
  128. package/dist/vite/plugin-custom-pages.js +2 -2
  129. package/dist/vite/plugin-custom-pages.js.map +1 -1
  130. package/dist/vite/plugin-docs.js +61 -59
  131. package/dist/vite/plugin-docs.js.map +1 -1
  132. package/dist/vite/{plugin-sidebar.d.ts → plugin-navigation.d.ts} +1 -1
  133. package/dist/vite/{plugin-sidebar.js → plugin-navigation.js} +20 -19
  134. package/dist/vite/plugin-navigation.js.map +1 -0
  135. package/dist/vite/plugin.js +2 -2
  136. package/dist/vite/plugin.js.map +1 -1
  137. package/dist/vite/shadcn-registry.d.ts +4 -4
  138. package/lib/{Markdown-C5j8kKSX.js → Markdown-DCAIYXF5.js} +480 -475
  139. package/lib/Markdown-DCAIYXF5.js.map +1 -0
  140. package/lib/{MdxPage-CKTMf1cR.js → MdxPage-Cf9YXWoC.js} +30 -30
  141. package/lib/MdxPage-Cf9YXWoC.js.map +1 -0
  142. package/lib/OasProvider-JMVTfG6_.js +35 -0
  143. package/lib/OasProvider-JMVTfG6_.js.map +1 -0
  144. package/lib/{OperationList-BJAKaG5p.js → OperationList-m4tFCI4S.js} +8 -8
  145. package/lib/{OperationList-BJAKaG5p.js.map → OperationList-m4tFCI4S.js.map} +1 -1
  146. package/lib/{RouteGuard-B7GVW4oL.js → RouteGuard-gV7nvzi7.js} +2 -2
  147. package/lib/{RouteGuard-B7GVW4oL.js.map → RouteGuard-gV7nvzi7.js.map} +1 -1
  148. package/lib/{SchemaList-Dgc0A8x5.js → SchemaList-_wRy4aQ0.js} +20 -20
  149. package/lib/SchemaList-_wRy4aQ0.js.map +1 -0
  150. package/lib/{SchemaView-DVx-jFN4.js → SchemaView-CRl_cQYH.js} +3 -3
  151. package/lib/{SchemaView-DVx-jFN4.js.map → SchemaView-CRl_cQYH.js.map} +1 -1
  152. package/lib/{SignUp-CRIKdWt9.js → SignUp-B6w5AwHM.js} +2 -2
  153. package/lib/{SignUp-CRIKdWt9.js.map → SignUp-B6w5AwHM.js.map} +1 -1
  154. package/lib/{Slot-ITby_hMb.js → Slot-BkYrj_uC.js} +4 -4
  155. package/lib/{Slot-ITby_hMb.js.map → Slot-BkYrj_uC.js.map} +1 -1
  156. package/lib/{SyntaxHighlight-CqKHkyEy.js → SyntaxHighlight-CH9OUJre.js} +2 -2
  157. package/lib/{SyntaxHighlight-CqKHkyEy.js.map → SyntaxHighlight-CH9OUJre.js.map} +1 -1
  158. package/lib/{Toc-Csq3UNtW.js → Toc-DRxqEsFc.js} +2 -2
  159. package/lib/{Toc-Csq3UNtW.js.map → Toc-DRxqEsFc.js.map} +1 -1
  160. package/lib/{circular-BP4OrHFK.js → circular-wJaV4vh_.js} +2 -2
  161. package/lib/{circular-BP4OrHFK.js.map → circular-wJaV4vh_.js.map} +1 -1
  162. package/lib/{createServer-zu4cDiPe.js → createServer-DN5AJLcN.js} +3 -3
  163. package/lib/{createServer-zu4cDiPe.js.map → createServer-DN5AJLcN.js.map} +1 -1
  164. package/lib/{errors-CPPSp5F4.js → errors-D_5vKvUq.js} +3 -3
  165. package/lib/{errors-CPPSp5F4.js.map → errors-D_5vKvUq.js.map} +1 -1
  166. package/lib/hook-CHXroBFt.js +1503 -0
  167. package/lib/hook-CHXroBFt.js.map +1 -0
  168. package/lib/{index-jWXxqkni.js → index-DJVaRmzI.js} +63 -62
  169. package/lib/index-DJVaRmzI.js.map +1 -0
  170. package/lib/{mutation-C1XCQTQL.js → mutation-BpcyTgWI.js} +2 -2
  171. package/lib/{mutation-C1XCQTQL.js.map → mutation-BpcyTgWI.js.map} +1 -1
  172. package/lib/ui/SyntaxHighlight.js +2 -2
  173. package/lib/{useMutation-BKvPttRn.js → useMutation-N4ockVKi.js} +3 -3
  174. package/lib/{useMutation-BKvPttRn.js.map → useMutation-N4ockVKi.js.map} +1 -1
  175. package/lib/zudoku.auth-auth0.js +1 -1
  176. package/lib/zudoku.auth-azureb2c.js +2 -2
  177. package/lib/zudoku.auth-clerk.js +2 -2
  178. package/lib/zudoku.auth-openid.js +2 -2
  179. package/lib/zudoku.components.js +2756 -3424
  180. package/lib/zudoku.components.js.map +1 -1
  181. package/lib/zudoku.hooks.js +2 -2
  182. package/lib/zudoku.plugin-api-catalog.js +44 -44
  183. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  184. package/lib/zudoku.plugin-api-keys.js +42 -39
  185. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  186. package/lib/zudoku.plugin-custom-pages.js +22 -16
  187. package/lib/zudoku.plugin-custom-pages.js.map +1 -1
  188. package/lib/zudoku.plugin-markdown.js +20 -69
  189. package/lib/zudoku.plugin-markdown.js.map +1 -1
  190. package/lib/zudoku.plugin-openapi.js +5 -5
  191. package/lib/zudoku.plugin-search-pagefind.js +2 -2
  192. package/lib/zudoku.plugins.js.map +1 -1
  193. package/package.json +12 -9
  194. package/src/app/ZuploBuildConfig.ts +1 -1
  195. package/src/app/demo.tsx +4 -3
  196. package/src/app/main.css +5 -0
  197. package/src/app/main.tsx +6 -5
  198. package/src/app/standalone.tsx +4 -3
  199. package/src/lib/components/BuildCheck.tsx +1 -1
  200. package/src/lib/components/Header.tsx +5 -3
  201. package/src/lib/components/Heading.tsx +7 -3
  202. package/src/lib/components/Main.tsx +8 -8
  203. package/src/lib/components/MobileTopNavigation.tsx +12 -11
  204. package/src/lib/components/PageProgress.tsx +28 -0
  205. package/src/lib/components/TopNavigation.tsx +57 -66
  206. package/src/lib/components/context/ZudokuContext.ts +50 -32
  207. package/src/lib/components/navigation/{Sidebar.tsx → Navigation.tsx} +18 -16
  208. package/src/lib/components/navigation/{SidebarBadge.tsx → NavigationBadge.tsx} +1 -1
  209. package/src/lib/components/navigation/{SidebarCategory.tsx → NavigationCategory.tsx} +16 -14
  210. package/src/lib/components/navigation/{SidebarItem.tsx → NavigationItem.tsx} +23 -17
  211. package/src/lib/components/navigation/{SidebarWrapper.tsx → NavigationWrapper.tsx} +2 -2
  212. package/src/lib/components/navigation/utils.ts +27 -28
  213. package/src/lib/core/ZudokuContext.ts +9 -15
  214. package/src/lib/core/plugins.ts +2 -2
  215. package/src/lib/hooks/useEvent.test.tsx +7 -5
  216. package/src/lib/plugins/api-catalog/Catalog.tsx +1 -1
  217. package/src/lib/plugins/api-catalog/index.tsx +19 -19
  218. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +6 -5
  219. package/src/lib/plugins/custom-pages/index.tsx +20 -11
  220. package/src/lib/plugins/markdown/MdxPage.tsx +6 -3
  221. package/src/lib/plugins/markdown/index.tsx +19 -40
  222. package/src/lib/plugins/openapi/OperationList.tsx +1 -1
  223. package/src/lib/plugins/openapi/OperationListItem.tsx +1 -1
  224. package/src/lib/plugins/openapi/SchemaList.tsx +2 -2
  225. package/src/lib/plugins/openapi/graphql/gql.ts +5 -5
  226. package/src/lib/plugins/openapi/graphql/graphql.ts +6 -6
  227. package/src/lib/plugins/openapi/index.tsx +11 -11
  228. package/src/lib/plugins/openapi/interfaces.ts +3 -3
  229. package/src/lib/plugins/openapi/util/{createSidebarCategory.tsx → createNavigationCategory.tsx} +6 -5
  230. package/src/lib/plugins/openapi/util/getRoutes.tsx +2 -2
  231. package/src/lib/plugins/openapi/util/methodColorMap.tsx +1 -1
  232. package/src/lib/util/useScrollToAnchor.ts +3 -3
  233. package/dist/config/validators/InputSidebarSchema.d.ts +0 -220
  234. package/dist/config/validators/InputSidebarSchema.js +0 -63
  235. package/dist/config/validators/InputSidebarSchema.js.map +0 -1
  236. package/dist/config/validators/SidebarSchema.d.ts +0 -46
  237. package/dist/config/validators/SidebarSchema.js +0 -118
  238. package/dist/config/validators/SidebarSchema.js.map +0 -1
  239. package/dist/lib/components/navigation/Sidebar.d.ts +0 -5
  240. package/dist/lib/components/navigation/Sidebar.js +0 -10
  241. package/dist/lib/components/navigation/Sidebar.js.map +0 -1
  242. package/dist/lib/components/navigation/SidebarBadge.js.map +0 -1
  243. package/dist/lib/components/navigation/SidebarCategory.d.ts +0 -5
  244. package/dist/lib/components/navigation/SidebarCategory.js.map +0 -1
  245. package/dist/lib/components/navigation/SidebarItem.d.ts +0 -6
  246. package/dist/lib/components/navigation/SidebarItem.js +0 -44
  247. package/dist/lib/components/navigation/SidebarItem.js.map +0 -1
  248. package/dist/lib/components/navigation/SidebarWrapper.js.map +0 -1
  249. package/dist/lib/plugins/markdown/resolver.d.ts +0 -32
  250. package/dist/lib/plugins/markdown/resolver.js +0 -46
  251. package/dist/lib/plugins/markdown/resolver.js.map +0 -1
  252. package/dist/lib/plugins/openapi/util/createSidebarCategory.d.ts +0 -9
  253. package/dist/lib/plugins/openapi/util/createSidebarCategory.js.map +0 -1
  254. package/dist/vite/plugin-sidebar.js.map +0 -1
  255. package/lib/Markdown-C5j8kKSX.js.map +0 -1
  256. package/lib/MdxPage-CKTMf1cR.js.map +0 -1
  257. package/lib/OasProvider-_GzmsbMg.js +0 -33
  258. package/lib/OasProvider-_GzmsbMg.js.map +0 -1
  259. package/lib/SchemaList-Dgc0A8x5.js.map +0 -1
  260. package/lib/hook-7wZANGJP.js +0 -1483
  261. package/lib/hook-7wZANGJP.js.map +0 -1
  262. package/lib/index-jWXxqkni.js.map +0 -1
  263. package/lib/joinPath-B7kNnUX4.js +0 -8
  264. package/lib/joinPath-B7kNnUX4.js.map +0 -1
  265. package/src/lib/plugins/markdown/resolver.ts +0 -59
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.components.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/queryCache.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/queryClient.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/hydration.js","../../../node_modules/.pnpm/@tanstack+react-query@5.74.3_react@19.1.0/node_modules/@tanstack/react-query/build/modern/HydrationBoundary.js","../src/lib/errors/ServerError.tsx","../../../node_modules/.pnpm/react-router@7.6.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/react-router/dist/development/dom-export.mjs","../src/lib/plugins/openapi/StaggeredRender.tsx","../src/lib/components/Bootstrap.tsx","../../../node_modules/.pnpm/zod@3.25.51/node_modules/zod/dist/esm/v3/helpers/util.js","../../../node_modules/.pnpm/zod@3.25.51/node_modules/zod/dist/esm/v3/ZodError.js","../../../node_modules/.pnpm/zod@3.25.51/node_modules/zod/dist/esm/v3/locales/en.js","../../../node_modules/.pnpm/zod@3.25.51/node_modules/zod/dist/esm/v3/errors.js","../../../node_modules/.pnpm/zod@3.25.51/node_modules/zod/dist/esm/v3/helpers/parseUtil.js","../../../node_modules/.pnpm/zod@3.25.51/node_modules/zod/dist/esm/v3/helpers/errorUtil.js","../../../node_modules/.pnpm/zod@3.25.51/node_modules/zod/dist/esm/v3/types.js","../src/lib/components/BuildCheck.tsx","../src/lib/util/useScrollToTop.ts","../src/lib/components/Footer.tsx","../src/lib/ui/Skeleton.tsx","../src/lib/components/Banner.tsx","../src/lib/components/navigation/ZudokuLogo.tsx","../src/lib/components/navigation/PoweredByZudoku.tsx","../src/lib/util/detectOS.ts","../src/lib/components/Search.tsx","../src/lib/components/ThemeSwitch.tsx","../src/lib/components/TopNavigation.tsx","../src/lib/components/MobileTopNavigation.tsx","../src/lib/components/Header.tsx","../src/lib/ui/Drawer.tsx","../src/lib/components/navigation/SidebarWrapper.tsx","../src/lib/components/navigation/Sidebar.tsx","../src/lib/components/Main.tsx","../src/lib/components/Layout.tsx","../src/lib/components/ErrorPage.tsx","../src/lib/components/StatusPage.tsx","../../../node_modules/.pnpm/react-error-boundary@5.0.0_react@19.1.0/node_modules/react-error-boundary/dist/react-error-boundary.esm.js","../../../node_modules/.pnpm/nanoevents@9.1.0/node_modules/nanoevents/index.js","../src/lib/core/ZudokuContext.ts","../src/lib/errors/TopLevelError.tsx","../src/lib/util/requestIdleCallbackPolyfill.ts","../src/lib/components/context/ComponentsContext.tsx","../src/lib/components/context/RouterEventsEmitter.tsx","../src/lib/components/context/ZudokuProvider.tsx","../src/lib/components/Zudoku.tsx","../src/lib/components/index.ts"],"sourcesContent":["// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n client,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Set();\n this.#scopes = /* @__PURE__ */ new Map();\n this.#mutationId = 0;\n }\n #mutations;\n #scopes;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n this.#mutations.add(mutation);\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n scopedMutations.push(mutation);\n } else {\n this.#scopes.set(scope, [mutation]);\n }\n }\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n if (scopedMutations.length > 1) {\n const index = scopedMutations.indexOf(mutation);\n if (index !== -1) {\n scopedMutations.splice(index, 1);\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope);\n }\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const mutationsWithSameScope = this.#scopes.get(scope);\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) => m.state.status === \"pending\"\n );\n return !firstPendingMutation || firstPendingMutation === mutation;\n } else {\n return true;\n }\n }\n runNext(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const foundMutation = this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.notify({ type: \"removed\", mutation });\n });\n this.#mutations.clear();\n this.#scopes.clear();\n });\n }\n getAll() {\n return Array.from(this.#mutations);\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id;\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/infiniteQueryBehavior.ts\nimport { addToEnd, addToStart, ensureQueryFn } from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n let result = { pages: [], pageParams: [] };\n let currentPage = 0;\n const fetchFn = async () => {\n let cancelled = false;\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true;\n } else {\n context.signal.addEventListener(\"abort\", () => {\n cancelled = true;\n });\n }\n return context.signal;\n }\n });\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const queryFnContext = {\n client: context.client,\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const page = await queryFn(\n queryFnContext\n );\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n const remainingPages = pages ?? oldPages.length;\n do {\n const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n if (currentPage > 0 && param == null) {\n break;\n }\n result = await fetchPage(result, param);\n currentPage++;\n } while (currentPage < remainingPages);\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n client: context.client,\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return pages.length > 0 ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n ) : void 0;\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n}\nfunction hasNextPage(options, data) {\n if (!data) return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam) return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1) return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0) return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n /**\n * Imperative (non-reactive) way to retrieve data for a QueryKey.\n * Should only be used in callbacks or functions where reading the latest data is necessary, e.g. for optimistic updates.\n *\n * Hint: Do not use this function inside a component, because it won't receive updates.\n * Use `useQuery` to create a `QueryObserver` that subscribes to changes.\n */\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n const cachedData = query.state.data;\n if (cachedData === void 0) {\n return this.fetchQuery(options);\n }\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(\n options.queryHash\n )?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(\n {\n type: \"active\",\n ...filters\n },\n options\n );\n });\n }\n cancelQueries(filters, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters?.refetchType === \"none\") {\n return Promise.resolve();\n }\n return this.refetchQueries(\n {\n ...filters,\n type: filters?.refetchType ?? filters?.type ?? \"active\"\n },\n options\n );\n });\n }\n refetchQueries(filters, options = {}) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","// src/hydration.ts\nfunction defaultTransformerFn(data) {\n return data;\n}\nfunction dehydrateMutation(mutation) {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n ...mutation.options.scope && { scope: mutation.options.scope },\n ...mutation.meta && { meta: mutation.meta }\n };\n}\nfunction dehydrateQuery(query, serializeData, shouldRedactErrors) {\n return {\n state: {\n ...query.state,\n ...query.state.data !== void 0 && {\n data: serializeData(query.state.data)\n }\n },\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n ...query.state.status === \"pending\" && {\n promise: query.promise?.then(serializeData).catch((error) => {\n if (!shouldRedactErrors(error)) {\n return Promise.reject(error);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `A query that was dehydrated as pending ended up rejecting. [${query.queryHash}]: ${error}; The error will be redacted in production builds`\n );\n }\n return Promise.reject(new Error(\"redacted\"));\n })\n },\n ...query.meta && { meta: query.meta }\n };\n}\nfunction defaultShouldDehydrateMutation(mutation) {\n return mutation.state.isPaused;\n}\nfunction defaultShouldDehydrateQuery(query) {\n return query.state.status === \"success\";\n}\nfunction defaultShouldRedactErrors(_) {\n return true;\n}\nfunction dehydrate(client, options = {}) {\n const filterMutation = options.shouldDehydrateMutation ?? client.getDefaultOptions().dehydrate?.shouldDehydrateMutation ?? defaultShouldDehydrateMutation;\n const mutations = client.getMutationCache().getAll().flatMap(\n (mutation) => filterMutation(mutation) ? [dehydrateMutation(mutation)] : []\n );\n const filterQuery = options.shouldDehydrateQuery ?? client.getDefaultOptions().dehydrate?.shouldDehydrateQuery ?? defaultShouldDehydrateQuery;\n const shouldRedactErrors = options.shouldRedactErrors ?? client.getDefaultOptions().dehydrate?.shouldRedactErrors ?? defaultShouldRedactErrors;\n const serializeData = options.serializeData ?? client.getDefaultOptions().dehydrate?.serializeData ?? defaultTransformerFn;\n const queries = client.getQueryCache().getAll().flatMap(\n (query) => filterQuery(query) ? [dehydrateQuery(query, serializeData, shouldRedactErrors)] : []\n );\n return { mutations, queries };\n}\nfunction hydrate(client, dehydratedState, options) {\n if (typeof dehydratedState !== \"object\" || dehydratedState === null) {\n return;\n }\n const mutationCache = client.getMutationCache();\n const queryCache = client.getQueryCache();\n const deserializeData = options?.defaultOptions?.deserializeData ?? client.getDefaultOptions().hydrate?.deserializeData ?? defaultTransformerFn;\n const mutations = dehydratedState.mutations || [];\n const queries = dehydratedState.queries || [];\n mutations.forEach(({ state, ...mutationOptions }) => {\n mutationCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.mutations,\n ...options?.defaultOptions?.mutations,\n ...mutationOptions\n },\n state\n );\n });\n queries.forEach(({ queryKey, state, queryHash, meta, promise }) => {\n let query = queryCache.get(queryHash);\n const data = state.data === void 0 ? state.data : deserializeData(state.data);\n if (query) {\n if (query.state.dataUpdatedAt < state.dataUpdatedAt) {\n const { fetchStatus: _ignored, ...serializedState } = state;\n query.setState({\n ...serializedState,\n data\n });\n }\n } else {\n query = queryCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.queries,\n ...options?.defaultOptions?.queries,\n queryKey,\n queryHash,\n meta\n },\n // Reset fetch status to idle to avoid\n // query being stuck in fetching state upon hydration\n {\n ...state,\n data,\n fetchStatus: \"idle\"\n }\n );\n }\n if (promise) {\n const initialPromise = Promise.resolve(promise).then(deserializeData);\n void query.fetch(void 0, { initialPromise });\n }\n });\n}\nexport {\n defaultShouldDehydrateMutation,\n defaultShouldDehydrateQuery,\n dehydrate,\n hydrate\n};\n//# sourceMappingURL=hydration.js.map","\"use client\";\n\n// src/HydrationBoundary.tsx\nimport * as React from \"react\";\nimport { hydrate } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nvar hasProperty = (obj, key) => {\n return typeof obj === \"object\" && obj !== null && key in obj;\n};\nvar HydrationBoundary = ({\n children,\n options = {},\n state,\n queryClient\n}) => {\n const client = useQueryClient(queryClient);\n const [hydrationQueue, setHydrationQueue] = React.useState();\n const optionsRef = React.useRef(options);\n optionsRef.current = options;\n React.useMemo(() => {\n if (state) {\n if (typeof state !== \"object\") {\n return;\n }\n const queryCache = client.getQueryCache();\n const queries = state.queries || [];\n const newQueries = [];\n const existingQueries = [];\n for (const dehydratedQuery of queries) {\n const existingQuery = queryCache.get(dehydratedQuery.queryHash);\n if (!existingQuery) {\n newQueries.push(dehydratedQuery);\n } else {\n const hydrationIsNewer = dehydratedQuery.state.dataUpdatedAt > existingQuery.state.dataUpdatedAt || // RSC special serialized then-able chunks\n hasProperty(dehydratedQuery.promise, \"status\") && hasProperty(existingQuery.promise, \"status\") && dehydratedQuery.promise.status !== existingQuery.promise.status;\n const queryAlreadyQueued = hydrationQueue?.find(\n (query) => query.queryHash === dehydratedQuery.queryHash\n );\n if (hydrationIsNewer && (!queryAlreadyQueued || dehydratedQuery.state.dataUpdatedAt > queryAlreadyQueued.state.dataUpdatedAt)) {\n existingQueries.push(dehydratedQuery);\n }\n }\n }\n if (newQueries.length > 0) {\n hydrate(client, { queries: newQueries }, optionsRef.current);\n }\n if (existingQueries.length > 0) {\n setHydrationQueue(\n (prev) => prev ? [...prev, ...existingQueries] : existingQueries\n );\n }\n }\n }, [client, hydrationQueue, state]);\n React.useEffect(() => {\n if (hydrationQueue) {\n hydrate(client, { queries: hydrationQueue }, optionsRef.current);\n setHydrationQueue(void 0);\n }\n }, [client, hydrationQueue]);\n return children;\n};\nexport {\n HydrationBoundary\n};\n//# sourceMappingURL=HydrationBoundary.js.map","import { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function ServerError({ error }: { error: unknown }) {\n return <ErrorAlert error={error} />;\n}\n","/**\n * react-router v7.6.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport {\n FrameworkContext,\n RemixErrorBoundary,\n RouterProvider,\n createBrowserHistory,\n createClientRoutes,\n createClientRoutesWithHMRRevalidationOptOut,\n createRouter,\n decodeViaTurboStream,\n deserializeErrors,\n getHydrationData,\n getPatchRoutesOnNavigationFunction,\n getTurboStreamSingleFetchDataStrategy,\n hydrationRouteProperties,\n invariant,\n mapRouteProperties,\n useFogOFWarDiscovery\n} from \"./chunk-DQRVZFIR.mjs\";\n\n// lib/dom-export/dom-router-provider.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nfunction RouterProvider2(props) {\n return /* @__PURE__ */ React.createElement(RouterProvider, { flushSync: ReactDOM.flushSync, ...props });\n}\n\n// lib/dom-export/hydrated-router.tsx\nimport * as React2 from \"react\";\nvar ssrInfo = null;\nvar router = null;\nfunction initSsrInfo() {\n if (!ssrInfo && window.__reactRouterContext && window.__reactRouterManifest && window.__reactRouterRouteModules) {\n if (window.__reactRouterManifest.sri === true) {\n const importMap = document.querySelector(\"script[rr-importmap]\");\n if (importMap?.textContent) {\n try {\n window.__reactRouterManifest.sri = JSON.parse(\n importMap.textContent\n ).integrity;\n } catch (err) {\n console.error(\"Failed to parse import map\", err);\n }\n }\n }\n ssrInfo = {\n context: window.__reactRouterContext,\n manifest: window.__reactRouterManifest,\n routeModules: window.__reactRouterRouteModules,\n stateDecodingPromise: void 0,\n router: void 0,\n routerInitialized: false\n };\n }\n}\nfunction createHydratedRouter({\n unstable_getContext\n}) {\n initSsrInfo();\n if (!ssrInfo) {\n throw new Error(\n \"You must be using the SSR features of React Router in order to skip passing a `router` prop to `<RouterProvider>`\"\n );\n }\n let localSsrInfo = ssrInfo;\n if (!ssrInfo.stateDecodingPromise) {\n let stream = ssrInfo.context.stream;\n invariant(stream, \"No stream found for single fetch decoding\");\n ssrInfo.context.stream = void 0;\n ssrInfo.stateDecodingPromise = decodeViaTurboStream(stream, window).then((value) => {\n ssrInfo.context.state = value.value;\n localSsrInfo.stateDecodingPromise.value = true;\n }).catch((e) => {\n localSsrInfo.stateDecodingPromise.error = e;\n });\n }\n if (ssrInfo.stateDecodingPromise.error) {\n throw ssrInfo.stateDecodingPromise.error;\n }\n if (!ssrInfo.stateDecodingPromise.value) {\n throw ssrInfo.stateDecodingPromise;\n }\n let routes = createClientRoutes(\n ssrInfo.manifest.routes,\n ssrInfo.routeModules,\n ssrInfo.context.state,\n ssrInfo.context.ssr,\n ssrInfo.context.isSpaMode\n );\n let hydrationData = void 0;\n if (ssrInfo.context.isSpaMode) {\n let { loaderData } = ssrInfo.context.state;\n if (ssrInfo.manifest.routes.root?.hasLoader && loaderData && \"root\" in loaderData) {\n hydrationData = {\n loaderData: {\n root: loaderData.root\n }\n };\n }\n } else {\n hydrationData = getHydrationData(\n ssrInfo.context.state,\n routes,\n (routeId) => ({\n clientLoader: ssrInfo.routeModules[routeId]?.clientLoader,\n hasLoader: ssrInfo.manifest.routes[routeId]?.hasLoader === true,\n hasHydrateFallback: ssrInfo.routeModules[routeId]?.HydrateFallback != null\n }),\n window.location,\n window.__reactRouterContext?.basename,\n ssrInfo.context.isSpaMode\n );\n if (hydrationData && hydrationData.errors) {\n hydrationData.errors = deserializeErrors(hydrationData.errors);\n }\n }\n let router2 = createRouter({\n routes,\n history: createBrowserHistory(),\n basename: ssrInfo.context.basename,\n unstable_getContext,\n hydrationData,\n hydrationRouteProperties,\n mapRouteProperties,\n future: {\n unstable_middleware: ssrInfo.context.future.unstable_middleware\n },\n dataStrategy: getTurboStreamSingleFetchDataStrategy(\n () => router2,\n ssrInfo.manifest,\n ssrInfo.routeModules,\n ssrInfo.context.ssr,\n ssrInfo.context.basename\n ),\n patchRoutesOnNavigation: getPatchRoutesOnNavigationFunction(\n ssrInfo.manifest,\n ssrInfo.routeModules,\n ssrInfo.context.ssr,\n ssrInfo.context.routeDiscovery,\n ssrInfo.context.isSpaMode,\n ssrInfo.context.basename\n )\n });\n ssrInfo.router = router2;\n if (router2.state.initialized) {\n ssrInfo.routerInitialized = true;\n router2.initialize();\n }\n router2.createRoutesForHMR = /* spacer so ts-ignore does not affect the right hand of the assignment */\n createClientRoutesWithHMRRevalidationOptOut;\n window.__reactRouterDataRouter = router2;\n return router2;\n}\nfunction HydratedRouter(props) {\n if (!router) {\n router = createHydratedRouter({\n unstable_getContext: props.unstable_getContext\n });\n }\n let [criticalCss, setCriticalCss] = React2.useState(\n process.env.NODE_ENV === \"development\" ? ssrInfo?.context.criticalCss : void 0\n );\n if (process.env.NODE_ENV === \"development\") {\n if (ssrInfo) {\n window.__reactRouterClearCriticalCss = () => setCriticalCss(void 0);\n }\n }\n let [location, setLocation] = React2.useState(router.state.location);\n React2.useLayoutEffect(() => {\n if (ssrInfo && ssrInfo.router && !ssrInfo.routerInitialized) {\n ssrInfo.routerInitialized = true;\n ssrInfo.router.initialize();\n }\n }, []);\n React2.useLayoutEffect(() => {\n if (ssrInfo && ssrInfo.router) {\n return ssrInfo.router.subscribe((newState) => {\n if (newState.location !== location) {\n setLocation(newState.location);\n }\n });\n }\n }, [location]);\n invariant(ssrInfo, \"ssrInfo unavailable for HydratedRouter\");\n useFogOFWarDiscovery(\n router,\n ssrInfo.manifest,\n ssrInfo.routeModules,\n ssrInfo.context.ssr,\n ssrInfo.context.routeDiscovery,\n ssrInfo.context.isSpaMode\n );\n return (\n // This fragment is important to ensure we match the <ServerRouter> JSX\n // structure so that useId values hydrate correctly\n /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(\n FrameworkContext.Provider,\n {\n value: {\n manifest: ssrInfo.manifest,\n routeModules: ssrInfo.routeModules,\n future: ssrInfo.context.future,\n criticalCss,\n ssr: ssrInfo.context.ssr,\n isSpaMode: ssrInfo.context.isSpaMode,\n routeDiscovery: ssrInfo.context.routeDiscovery\n }\n },\n /* @__PURE__ */ React2.createElement(RemixErrorBoundary, { location }, /* @__PURE__ */ React2.createElement(RouterProvider2, { router }))\n ), /* @__PURE__ */ React2.createElement(React2.Fragment, null))\n );\n}\nexport {\n HydratedRouter,\n RouterProvider2 as RouterProvider\n};\n","import {\n Children,\n createContext,\n ReactNode,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\nexport const StaggeredRenderContext = createContext({ stagger: false });\n\nconst StaggeredRender = ({ children }: { children: ReactNode[] }) => {\n const { stagger } = useContext(StaggeredRenderContext);\n const [renderAll, setRenderAll] = useState(!stagger);\n\n useEffect(() => {\n if (renderAll) {\n return;\n }\n\n const idle = requestIdleCallback(() => {\n setRenderAll(true);\n });\n\n return () => cancelIdleCallback(idle);\n }, [renderAll]);\n\n return !renderAll ? Children.toArray(children).slice(0, 3) : children;\n};\n\nexport default StaggeredRender;\n","import {\n HydrationBoundary,\n QueryClient,\n QueryClientProvider,\n} from \"@tanstack/react-query\";\nimport { type HelmetData, HelmetProvider } from \"@zudoku/react-helmet-async\";\nimport { StrictMode } from \"react\";\nimport {\n type createBrowserRouter,\n type createStaticRouter,\n type StaticHandlerContext,\n StaticRouterProvider,\n} from \"react-router\";\nimport { RouterProvider } from \"react-router/dom\";\nimport { StaggeredRenderContext } from \"../plugins/openapi/StaggeredRender.js\";\nimport { BypassProtectedRoutesContext } from \"./context/BypassProtectedRoutesContext.js\";\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 1000 * 60 * 5,\n },\n },\n});\n\nconst Bootstrap = ({\n router,\n hydrate = false,\n}: {\n hydrate?: boolean;\n router: ReturnType<typeof createBrowserRouter>;\n}) => (\n <StrictMode>\n <QueryClientProvider client={queryClient}>\n <HydrationBoundary state={hydrate ? (window as any).DATA : undefined}>\n <BypassProtectedRoutesContext value={false}>\n <HelmetProvider>\n <StaggeredRenderContext.Provider value={{ stagger: !hydrate }}>\n <RouterProvider router={router} />\n </StaggeredRenderContext.Provider>\n </HelmetProvider>\n </BypassProtectedRoutesContext>\n </HydrationBoundary>\n </QueryClientProvider>\n </StrictMode>\n);\n\nconst BootstrapStatic = ({\n router,\n context,\n queryClient,\n helmetContext,\n bypassProtection = false,\n}: {\n helmetContext: HelmetData[\"context\"];\n context: StaticHandlerContext;\n queryClient: QueryClient;\n router: ReturnType<typeof createStaticRouter>;\n bypassProtection?: boolean;\n}) => (\n <StrictMode>\n <QueryClientProvider client={queryClient}>\n <HelmetProvider context={helmetContext}>\n <BypassProtectedRoutesContext value={bypassProtection}>\n <StaticRouterProvider router={router} context={context} />\n </BypassProtectedRoutesContext>\n </HelmetProvider>\n </QueryClientProvider>\n </StrictMode>\n);\n\nexport { Bootstrap, BootstrapStatic };\n","export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n","import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n","import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n","import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n","import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n","export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n","import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { CircleFadingArrowUpIcon, LoaderCircleIcon } from \"lucide-react\";\nimport { z } from \"zod\";\nimport { Button } from \"../ui/Button.js\";\n\nconst BuildStatusSchema = z.object({\n buildId: z.string(),\n timestamp: z.string(),\n status: z.enum([\"in-progress\", \"success\", \"failed\"]),\n});\n\nexport const BuildCheck = ({\n buildId,\n endpoint = \"/__zuplo/docs\",\n}: {\n buildId?: string;\n endpoint?: string;\n}) => {\n const buildStatusQuery = useQuery({\n queryKey: [\"zuplo-build-check\", buildId, endpoint],\n refetchInterval: 3000,\n enabled:\n typeof buildId !== \"undefined\" &&\n import.meta.env.ZUPLO_ENVIRONMENT_TYPE === \"WORKING_COPY\",\n retry: false,\n queryFn: () =>\n fetch(endpoint, { signal: AbortSignal.timeout(2000) })\n .then((res) => {\n if (!res.ok) throw new Error(\"Failed to fetch build status\");\n return res.json();\n })\n .then((data) => BuildStatusSchema.parse(data)),\n });\n\n if (\n buildStatusQuery.isError ||\n !buildStatusQuery.data ||\n buildStatusQuery.data.buildId === buildId\n ) {\n return null;\n }\n\n const isCompleted = buildStatusQuery.data.status === \"success\";\n\n return (\n <div className=\"fixed flex flex-col gap-3 p-4 rounded-xl w-96 border z-20 bg-background left-0 right-0 top-4 mx-auto shadow-lg\">\n {isCompleted ? (\n <div className=\"flex flex-row items-center gap-2\">\n <CircleFadingArrowUpIcon size={16} />\n <span className=\"text-sm\">New version available</span>\n </div>\n ) : (\n <div className=\"flex flex-row items-center gap-2\">\n <LoaderCircleIcon size={16} className=\"animate-spin\" />\n <span className=\"text-sm\">Building new version...</span>\n </div>\n )}\n <span className=\"text-xs\">\n {!isCompleted\n ? \"A new version of the developer portal will be available soon.\"\n : \"To see the new version, reload the page now.\"}\n </span>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"w-full\"\n onClick={() => {\n window.location.reload();\n }}\n >\n Reload\n </Button>\n </div>\n );\n};\n","import { useEffect, useRef } from \"react\";\nimport { useLocation } from \"react-router\";\n\nexport const useScrollToTop = () => {\n const location = useLocation();\n const previousPath = useRef(location.pathname);\n\n useEffect(() => {\n const isNewPage = previousPath.current !== location.pathname;\n const hasAnchor = location.hash !== \"\";\n\n if (isNewPage && !hasAnchor) {\n window.scrollTo(0, 0);\n }\n\n previousPath.current = location.pathname;\n }, [location.pathname, location.hash]);\n};\n","import { ExternalLink as ExternalLinkIcon } from \"lucide-react\";\nimport type { CSSProperties, ReactNode } from \"react\";\nimport type { FooterSocialIcons } from \"../../config/validators/validate.js\";\nimport { cn } from \"../util/cn.js\";\nimport { AnchorLink } from \"./AnchorLink.js\";\nimport { useZudoku } from \"./index.js\";\nimport { Slot } from \"./Slot.js\";\n\nconst SocialIcon = ({\n icon,\n}: {\n icon: (typeof FooterSocialIcons)[number] | ReactNode;\n}) => {\n if (typeof icon === \"string\") {\n return (\n <img\n src={`https://cdn.simpleicons.org/${icon}/000000/ffffff`}\n className=\"size-5\"\n alt={icon}\n />\n );\n }\n return icon;\n};\n\nconst isExternalUrl = (href: string) => /^https?:/.test(href);\n\nexport const Footer = () => {\n const { page } = useZudoku();\n const footer = page?.footer;\n\n if (!footer) return null;\n\n return (\n <footer className=\"border-t bg-background\">\n <div className=\"mx-auto max-w-screen-2xl px-4 lg:px-8 py-8 pt-20\">\n <div\n className={cn(\"flex flex-row gap-8\", {\n \"justify-center\": !footer.position || footer.position === \"center\",\n \"justify-start\": footer.position === \"start\",\n \"justify-end\": footer.position === \"end\",\n })}\n >\n <Slot.Target name=\"footer-before\" />\n {footer.columns && (\n <div\n className=\"w-full md:max-w-screen-md grid grid-cols-[1fr_1fr] gap-8 md:grid-cols-[repeat(var(--columns),minmax(0,1fr))]\"\n style={{ \"--columns\": footer.columns.length } as CSSProperties}\n >\n {footer.columns.map((column) => (\n <div\n className={cn({\n \"justify-self-center\":\n !column.position || column.position === \"center\",\n \"justify-self-start\": column.position === \"start\",\n \"justify-self-end\": column.position === \"end\",\n })}\n key={column.title}\n >\n <span className=\"text-sm font-semibold\">{column.title}</span>\n <ul className=\"mt-4 space-y-2\">\n {column.links.map((link) => {\n const className =\n \"flex flex-row gap-1 items-center text-sm text-muted-foreground hover:text-accent-foreground\";\n\n return (\n <li key={link.href + link.label}>\n {isExternalUrl(link.href) ? (\n <a\n href={link.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={className}\n >\n <span>{link.label}</span>\n <ExternalLinkIcon size={12} />\n </a>\n ) : (\n <AnchorLink to={link.href} className={className}>\n <span>{link.label}</span>\n </AnchorLink>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n ))}\n </div>\n )}\n <Slot.Target name=\"footer-after\" />\n </div>\n <div\n className={cn(\n \"flex items-center justify-between\",\n footer.columns && \"border-t mt-8 pt-8\",\n )}\n >\n {footer.logo && (\n <>\n <img\n src={footer.logo.src.light}\n alt={footer.logo.alt}\n className=\"w-8 dark:hidden\"\n style={{ width: footer.logo.width }}\n />\n <img\n src={footer.logo.src.dark}\n alt={footer.logo.alt}\n className=\"w-8 hidden dark:block\"\n style={{ width: footer.logo.width }}\n />\n </>\n )}\n {footer.copyright && (\n <p className=\"text-sm text-muted-foreground\">{footer.copyright}</p>\n )}\n <div className=\"flex items-center gap-2\">\n {footer.social?.map((social) => (\n <a\n key={social.href}\n href={social.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"w-auto gap-2 flex text-muted-foreground hover:text-accent-foreground\"\n >\n <SocialIcon icon={social.icon} />\n {social.label}\n </a>\n ))}\n </div>\n </div>\n </div>\n </footer>\n );\n};\n","import { cn } from \"../util/cn.js\";\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","import { CircleXIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { cn } from \"../util/cn.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\n\nconst COLOR_MAP = {\n info: \"bg-blue-500\",\n note: \"bg-gray-500\",\n tip: \"bg-green-600\",\n caution: \"bg-orange-500\",\n danger: \"bg-rose-500\",\n} as const;\n\nexport const Banner = () => {\n const { page } = useZudoku();\n const [isBannerOpen, setIsBannerOpen] = useState(true);\n\n if (!page?.banner || !isBannerOpen) {\n return <style>{`:root { --banner-height: 0px; }`}</style>;\n }\n\n const mappedColor =\n page.banner.color && page.banner.color in COLOR_MAP\n ? COLOR_MAP[page.banner.color as keyof typeof COLOR_MAP]\n : !page.banner.color\n ? \"bg-primary\"\n : undefined;\n\n const style = !mappedColor ? { backgroundColor: page.banner.color } : {};\n\n return (\n <div\n className={cn(\n \"relative text-primary-foreground text-sm font-medium px-4 py-2 flex gap-2 items-center lg:h-(--banner-height)\",\n mappedColor,\n )}\n data-pagefind-ignore=\"all\"\n style={style}\n >\n <div className=\"w-full\">{page.banner.message}</div>\n {page.banner.dismissible && (\n <button\n type=\"button\"\n className=\"md:absolute md:end-4 -m-1.5 p-1.5 hover:bg-accent-foreground/10 rounded-md\"\n onClick={() => setIsBannerOpen(false)}\n >\n <CircleXIcon size={16} />\n </button>\n )}\n </div>\n );\n};\n","import * as React from \"react\";\n\nconst ZudokuLogo = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 132 100\"\n fill=\"none\"\n {...props}\n >\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M80.092 2.963A4.66 4.66 0 0 1 84.449 0h34.049c6.325 0 10.835 6.135 8.948 12.172L116.653 46.71a4.688 4.688 0 0 1-4.474 3.29H75c-5.178 0-7.813 4.687-9.375 9.374-1.288 3.864-11.07 28.963-14.467 37.662A4.66 4.66 0 0 1 46.801 100H12.75c-6.324 0-10.834-6.134-8.947-12.171l10.793-34.54A4.688 4.688 0 0 1 19.071 50H56.25c5.178 0 7.813-4.687 9.375-9.375 1.288-3.864 11.07-28.962 14.467-37.662Z\"\n clipRule=\"evenodd\"\n />\n <path\n fill=\"currentColor\"\n d=\"M83.54 57.813a7.813 7.813 0 0 0-7.316 5.07L63.888 95.777c-.766 2.043.744 4.222 2.926 4.222h36.828c5.211 0 9.875-3.232 11.704-8.11l8.821-23.522c1.915-5.107-1.861-10.555-7.315-10.555H83.539ZM29.17 0a12.5 12.5 0 0 0-11.704 8.111l-8.82 23.521c-1.915 5.107 1.86 10.556 7.315 10.556h33.312a7.813 7.813 0 0 0 7.316-5.07L68.924 4.223C69.691 2.18 68.18 0 65.998 0H29.17Z\"\n />\n </svg>\n);\n\nZudokuLogo.displayName = \"ZudokuLogo\";\n\nexport default ZudokuLogo;\n","import { ChevronRightIcon } from \"lucide-react\";\nimport { cn } from \"../../util/cn.js\";\nimport ZudokuLogo from \"./ZudokuLogo.js\";\nimport ZuploLogo from \"./ZuploLogo.js\";\n\nexport const PoweredByZudoku = ({ className }: { className?: string }) => (\n <a\n href={import.meta.env.IS_ZUPLO ? \"https://zuplo.com\" : \"https://zudoku.dev\"}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n \"flex justify-between items-center w-full border border-transparent hover:border-border rounded-full hover:shadow-xs h-7 px-3 text-nowrap hover:bg-muted/80 transition-all\",\n className,\n )}\n >\n <div className=\"opacity-70 hover:opacity-100 transition-opacity gap-1.5 text-[11px] font-medium rounded-full h-7 flex items-center text-nowrap\">\n {import.meta.env.IS_ZUPLO ? (\n <ZuploLogo className=\"w-3.5 h-3.5 dark:fill-white\" />\n ) : (\n <ZudokuLogo className=\"w-3.5 h-3.5 dark:fill-white\" />\n )}\n powered by {import.meta.env.IS_ZUPLO ? \"Zuplo\" : \"Zudoku\"}\n </div>\n <div className=\"text-xs font-medium opacity-70 hover:text-foreground transition-colors cursor-pointer\">\n <ChevronRightIcon\n size={12}\n absoluteStrokeWidth\n strokeWidth={1.5}\n className=\"rtl:rotate-180\"\n />\n </div>\n </a>\n);\n","export function detectOS() {\n const userAgent = navigator.userAgent.toLowerCase();\n\n if (userAgent.includes(\"win\")) return \"Windows\";\n if (userAgent.includes(\"mac\")) return \"macOS\";\n if (userAgent.includes(\"linux\")) return \"Linux\";\n\n return undefined;\n}\n","import { SearchIcon } from \"lucide-react\";\nimport { Suspense, useCallback, useEffect, useState } from \"react\";\nimport { isSearchPlugin } from \"../core/plugins.js\";\nimport { detectOS } from \"../util/detectOS.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\n\nexport const Search = ({ className }: { className?: string }) => {\n const ctx = useZudoku();\n const [isOpen, setIsOpen] = useState(false);\n\n const onClose = useCallback(() => setIsOpen(false), []);\n\n useEffect(() => {\n if (isOpen) {\n return;\n }\n\n function onKeyDown(event: KeyboardEvent) {\n if (event.key === \"k\" && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n setIsOpen(true);\n }\n }\n\n window.addEventListener(\"keydown\", onKeyDown);\n\n return () => {\n window.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [isOpen, setIsOpen]);\n\n const searchPlugin = ctx.plugins.find(isSearchPlugin);\n\n if (!searchPlugin) {\n return null;\n }\n\n return (\n <div className={className}>\n <button\n type=\"button\"\n onClick={() => setIsOpen(true)}\n className=\"flex items-center border border-input hover:bg-accent hover:text-accent-foreground p-4 relative h-8 justify-start rounded-lg bg-background text-sm text-muted-foreground shadow-none w-full sm:w-72\"\n >\n <div className=\"flex items-center gap-2 grow\">\n <SearchIcon size={14} />\n Search\n </div>\n <ClientOnly>\n <KbdShortcut />\n </ClientOnly>\n </button>\n <Suspense fallback={null}>\n {searchPlugin.renderSearch({\n isOpen,\n onClose,\n })}\n </Suspense>\n </div>\n );\n};\n\nconst KbdShortcut = () => {\n const os = detectOS();\n return (\n <kbd className=\"absolute end-1.5 hidden h-5 select-none items-center gap-1 rounded-sm border bg-muted px-1.5 font-mono text-[11px] font-medium opacity-100 sm:flex\">\n {os === \"macOS\" ? \"⌘\" : \"Ctrl\"}+K\n </kbd>\n );\n};\n","import { MoonIcon, SunIcon } from \"lucide-react\";\nimport { useTheme } from \"next-themes\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { cn } from \"../util/cn.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\n\nexport const ThemeSwitch = () => {\n const { resolvedTheme, setTheme } = useTheme();\n\n return (\n <ClientOnly fallback={<Button variant=\"ghost\" size=\"icon\" />}>\n <button\n type=\"button\"\n className=\"flex rounded-full border p-0.5 gap-0.5 group\"\n onClick={() => setTheme(resolvedTheme === \"dark\" ? \"light\" : \"dark\")}\n aria-label={\n resolvedTheme === \"dark\"\n ? \"Switch to light mode\"\n : \"Switch to dark mode\"\n }\n >\n <div\n className={cn(\n \"border border-transparent rounded-full p-0.5 [&>svg>circle]:transition-colors [&>svg>path]:transition-transform transition-all [&>svg>path]:duration-200 [&>svg>circle]:duration-500 [&>svg>circle]:fill-transparent\",\n resolvedTheme === \"light\" && \"border-border bg-muted\",\n resolvedTheme === \"dark\" &&\n \"group-hover:[&>svg>path]:scale-110 group-hover:[&>svg>path]:-translate-x-[1px] group-hover:[&>svg>path]:-translate-y-[1px] group-hover:rotate-[15deg] \",\n )}\n >\n <SunIcon size={16} />\n </div>\n <div\n className={cn(\n \"border border-transparent rounded-full p-0.5 transition-transform transform-gpu duration-500\",\n resolvedTheme === \"dark\" &&\n \"border-border bg-muted [&>svg>path]:fill-white [&>svg>path]:stroke-transparent\",\n resolvedTheme === \"light\" &&\n \"group-hover:rotate-[-10deg] [&>svg>path]:stroke-currentColor\",\n )}\n >\n <MoonIcon size={16} />\n </div>\n </button>\n </ClientOnly>\n );\n};\n","import { useNProgress } from \"@tanem/react-nprogress\";\nimport { cx } from \"class-variance-authority\";\nimport { Suspense, useEffect, useState } from \"react\";\nimport { NavLink, useNavigation } from \"react-router\";\nimport type { TopNavigationItem } from \"../../config/validators/validate.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport { joinUrl } from \"../util/joinUrl.js\";\nimport { useCurrentNavigation, useZudoku } from \"./context/ZudokuContext.js\";\nimport { isHiddenItem, traverseSidebar } from \"./navigation/utils.js\";\nimport { Slot } from \"./Slot.js\";\n\nexport const PageProgress = () => {\n const navigation = useNavigation();\n const isNavigating = navigation.state === \"loading\";\n // delay the animation to avoid flickering\n const [isAnimating, setIsAnimating] = useState(false);\n\n useEffect(() => {\n const timer = setTimeout(() => setIsAnimating(isNavigating), 100);\n\n return () => clearTimeout(timer);\n }, [isNavigating]);\n\n const { isFinished, progress } = useNProgress({ isAnimating });\n\n return (\n <div\n className=\"absolute w-0 left-0 right-0 bottom-[-1px] h-[2px] bg-primary transition-all duration-300 ease-in-out\"\n style={{\n opacity: isFinished ? 0 : 1,\n width: isFinished ? 0 : `${progress * 100}%`,\n }}\n />\n );\n};\n\nexport const TopNavigation = () => {\n const { topNavigation } = useZudoku();\n const { isAuthenticated } = useAuth();\n\n const filteredItems = topNavigation.filter(isHiddenItem(isAuthenticated));\n\n if (filteredItems.length === 0 || import.meta.env.MODE === \"standalone\") {\n return <style>{`:root { --top-nav-height: 0px; }`}</style>;\n }\n\n return (\n <Suspense>\n <div className=\"items-center justify-between px-8 h-(--top-nav-height) hidden lg:flex text-sm relative\">\n <nav className=\"text-sm\">\n <ul className=\"flex flex-row items-center gap-8\">\n {filteredItems.map((item) => (\n <li key={item.id}>\n <TopNavItem {...item} />\n </li>\n ))}\n </ul>\n </nav>\n <Slot.Target name=\"top-navigation-side\" />\n </div>\n <PageProgress />\n </Suspense>\n );\n};\n\nexport const TopNavItem = ({\n id,\n label,\n default: defaultLink,\n}: TopNavigationItem) => {\n const { sidebars } = useZudoku();\n const currentSidebar = sidebars[id];\n const currentNav = useCurrentNavigation();\n const isNavigating = Boolean(useNavigation().location);\n const isActive = currentNav.topNavItem?.id === id && !isNavigating;\n\n // TODO: This is a bit of a hack to get the first link in the sidebar\n // We should really process this when we load the config so we can validate\n // that the sidebar is actually set. In this case we just fall back to linking\n // to the id if we can't resolve a sidebar.\n const first =\n defaultLink ??\n (currentSidebar\n ? traverseSidebar(currentSidebar, (item) => {\n if (item.type === \"doc\") return joinUrl(item.id);\n })\n : joinUrl(id)) ??\n joinUrl(id);\n\n return (\n // We don't use isActive here because it has to be inside the sidebar,\n // the top nav id doesn't necessarily start with the sidebar id\n <NavLink\n className={({ isPending }) =>\n cx(\n \"block lg:py-3.5 font-medium -mb-px\",\n isActive || isPending\n ? \"border-primary text-foreground\"\n : \"border-transparent text-foreground/75 hover:text-foreground hover:border-accent-foreground/25\",\n )\n }\n to={first}\n >\n {label}\n </NavLink>\n );\n};\n","import { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { MenuIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport {\n Drawer,\n DrawerContent,\n DrawerTitle,\n DrawerTrigger,\n} from \"../ui/Drawer.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { PoweredByZudoku } from \"./navigation/PoweredByZudoku.js\";\nimport { isHiddenItem } from \"./navigation/utils.js\";\nimport { Search } from \"./Search.js\";\nimport { Slot } from \"./Slot.js\";\nimport { ThemeSwitch } from \"./ThemeSwitch.js\";\nimport { PageProgress, TopNavItem } from \"./TopNavigation.js\";\n\nexport const MobileTopNavigation = () => {\n const { topNavigation, options } = useZudoku();\n const { isAuthenticated } = useAuth();\n const [drawerOpen, setDrawerOpen] = useState(false);\n\n return (\n <Drawer\n direction={options.page?.dir === \"rtl\" ? \"left\" : \"right\"}\n open={drawerOpen}\n onOpenChange={(open) => setDrawerOpen(open)}\n >\n <div className=\"flex lg:hidden justify-self-end\">\n <DrawerTrigger className=\"lg:hidden\">\n <MenuIcon size={22} />\n </DrawerTrigger>\n <PageProgress />\n </div>\n <DrawerContent\n className=\"lg:hidden h-[100dvh] end-0 start-auto w-[320px] rounded-none\"\n aria-describedby={undefined}\n >\n <div className=\"p-4 overflow-y-auto overscroll-none h-full flex flex-col justify-between\">\n <div>\n <VisuallyHidden>\n <DrawerTitle>Navigation</DrawerTitle>\n </VisuallyHidden>\n <Search className=\"flex p-4\" />\n <ul className=\"flex flex-col items-center gap-4 p-4\">\n <li className=\"empty:hidden\">\n <Slot.Target name=\"top-navigation-side\" />\n </li>\n <li>\n <ThemeSwitch />\n </li>\n {topNavigation\n .filter(isHiddenItem(isAuthenticated))\n .map((item) => (\n <li key={item.label}>\n <button type=\"button\" onClick={() => setDrawerOpen(false)}>\n <TopNavItem {...item} />\n </button>\n </li>\n ))}\n </ul>\n </div>\n {options.page?.showPoweredBy !== false && (\n <PoweredByZudoku className=\"grow-0 justify-center gap-1\" />\n )}\n </div>\n </DrawerContent>\n </Drawer>\n );\n};\n","import { memo } from \"react\";\nimport { Link } from \"react-router\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { Skeleton } from \"zudoku/ui/Skeleton.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport {\n isProfileMenuPlugin,\n type ProfileNavigationItem,\n} from \"../core/plugins.js\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"../ui/DropdownMenu.js\";\nimport { cn } from \"../util/cn.js\";\nimport { joinUrl } from \"../util/joinUrl.js\";\nimport { Banner } from \"./Banner.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { MobileTopNavigation } from \"./MobileTopNavigation.js\";\nimport { Search } from \"./Search.js\";\nimport { Slot } from \"./Slot.js\";\nimport { ThemeSwitch } from \"./ThemeSwitch.js\";\nimport { TopNavigation } from \"./TopNavigation.js\";\n\nconst RecursiveMenu = ({ item }: { item: ProfileNavigationItem }) => {\n return item.children ? (\n <DropdownMenuSub key={item.label}>\n <DropdownMenuSubTrigger>{item.label}</DropdownMenuSubTrigger>\n <DropdownMenuPortal>\n <DropdownMenuSubContent>\n {item.children.map((item, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <RecursiveMenu key={i} item={item} />\n ))}\n </DropdownMenuSubContent>\n </DropdownMenuPortal>\n </DropdownMenuSub>\n ) : (\n <Link to={item.path ?? \"\"}>\n <DropdownMenuItem key={item.label} className=\"flex gap-2\">\n {item.icon && (\n <item.icon size={16} strokeWidth={1} absoluteStrokeWidth />\n )}\n {item.label}\n </DropdownMenuItem>\n </Link>\n );\n};\n\nexport const Header = memo(function HeaderInner() {\n const auth = useAuth();\n const { isAuthenticated, profile, isAuthEnabled } = useAuth();\n const context = useZudoku();\n const { page, plugins, options } = context;\n\n const accountItems = plugins\n .filter((p) => isProfileMenuPlugin(p))\n .flatMap((p) => p.getProfileMenuItems(context))\n .sort((i) => i.weight ?? 0);\n\n const logoLightSrc = page?.logo\n ? /https?:\\/\\//.test(page.logo.src.light)\n ? page.logo.src.light\n : joinUrl(options.basePath, page.logo.src.light)\n : undefined;\n const logoDarkSrc = page?.logo\n ? /https?:\\/\\//.test(page.logo.src.dark)\n ? page.logo.src.dark\n : joinUrl(options.basePath, page.logo.src.dark)\n : undefined;\n\n const borderBottom = \"inset-shadow-[0_-1px_0_0_var(--border)]\";\n\n return (\n <header className=\"sticky lg:top-0 z-10 bg-background/80 backdrop-blur w-full\">\n <Banner />\n <div className={borderBottom}>\n <div className=\"max-w-screen-2xl mx-auto flex relative items-center justify-between h-(--top-header-height) px-4 lg:px-8 border-transparent\">\n <div className=\"flex\">\n <Link to=\"/\">\n <div className=\"flex items-center gap-3.5\">\n {page?.logo && (\n <>\n <img\n src={logoLightSrc}\n alt={page.logo.alt ?? page.pageTitle}\n style={{ width: page.logo.width }}\n className=\"max-h-(--top-header-height) dark:hidden\"\n loading=\"lazy\"\n />\n <img\n src={logoDarkSrc}\n alt={page.logo.alt ?? page.pageTitle}\n style={{ width: page.logo.width }}\n className=\"max-h-(--top-header-height) hidden dark:block\"\n loading=\"lazy\"\n />\n </>\n )}\n <span className=\"font-semibold text-2xl\">\n {page?.pageTitle}\n </span>\n </div>\n </Link>\n </div>\n\n <div className=\"absolute inset-x-0 justify-center items-center hidden lg:flex w-full pointer-events-none\">\n <Search className=\"pointer-events-auto\" />\n </div>\n\n <div className=\"flex items-center gap-8\">\n <MobileTopNavigation />\n <div className=\"hidden lg:flex items-center justify-self-end text-sm gap-2\">\n <Slot.Target name=\"head-navigation-start\" />\n {isAuthEnabled && (\n <ClientOnly\n fallback={<Skeleton className=\"rounded-sm h-5 w-24 mr-4\" />}\n >\n {!isAuthenticated ? (\n <Button variant=\"ghost\" onClick={() => auth.login()}>\n Login\n </Button>\n ) : (\n Object.values(accountItems).length > 0 && (\n <DropdownMenu modal={false}>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\">\n {profile?.name ?? \"My Account\"}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"w-56\">\n <DropdownMenuLabel>\n {profile?.name ? `${profile.name}` : \"My Account\"}\n {profile?.email && (\n <div className=\"font-normal text-muted-foreground\">\n {profile.email}\n </div>\n )}\n </DropdownMenuLabel>\n {accountItems.filter((i) => i.category === \"top\")\n .length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter((i) => i.category === \"top\")\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n {accountItems.filter(\n (i) => !i.category || i.category === \"middle\",\n ).length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter(\n (i) => !i.category || i.category === \"middle\",\n )\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n {accountItems.filter((i) => i.category === \"bottom\")\n .length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter((i) => i.category === \"bottom\")\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n )}\n </ClientOnly>\n )}\n <Slot.Target name=\"head-navigation-end\" />\n <ThemeSwitch />\n </div>\n </div>\n </div>\n </div>\n <div className={cn(\"hidden lg:block\", borderBottom)}>\n <div className=\"max-w-screen-2xl mx-auto border-transparent\">\n <Slot.Target name=\"top-navigation-before\" />\n <TopNavigation />\n <Slot.Target name=\"top-navigation-after\" />\n </div>\n </div>\n </header>\n );\n});\n","import * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport { cn } from \"../util/cn.js\";\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n <DrawerPrimitive.Root\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n);\nDrawer.displayName = \"Drawer\";\n\nconst DrawerTrigger: typeof DrawerPrimitive.Trigger = DrawerPrimitive.Trigger;\n\nconst DrawerPortal: typeof DrawerPrimitive.Portal = DrawerPrimitive.Portal;\n\nconst DrawerClose: typeof DrawerPrimitive.Close = DrawerPrimitive.Close;\n\nconst DrawerOverlay: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay> &\n React.RefAttributes<React.ElementRef<typeof DrawerPrimitive.Overlay>>\n> = React.forwardRef(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n {...props}\n />\n));\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerContent: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content> & {\n hideBar?: boolean;\n } & React.RefAttributes<React.ElementRef<typeof DrawerPrimitive.Content>>\n> = React.forwardRef(\n ({ className, children, hideBar = true, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background\",\n className,\n )}\n {...props}\n >\n {!hideBar && (\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n )}\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n ),\n);\n\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className)}\n {...props}\n />\n);\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n);\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title> &\n React.RefAttributes<React.ElementRef<typeof DrawerPrimitive.Title>>\n> = React.forwardRef(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description> &\n React.RefAttributes<React.ElementRef<typeof DrawerPrimitive.Description>>\n> = React.forwardRef(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerOverlay,\n DrawerPortal,\n DrawerTitle,\n DrawerTrigger,\n};\n","import { useEffect, useRef, type PropsWithChildren } from \"react\";\nimport { cn } from \"../../util/cn.js\";\nimport { scrollIntoViewIfNeeded } from \"../../util/scrollIntoViewIfNeeded.js\";\nimport { useZudoku } from \"../context/ZudokuContext.js\";\nimport { PoweredByZudoku } from \"./PoweredByZudoku.js\";\n\nexport const SidebarWrapper = ({\n children,\n className,\n}: PropsWithChildren<{\n className?: string;\n}>) => {\n const { options } = useZudoku();\n const navRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const active = navRef.current?.querySelector('[aria-current=\"page\"]');\n scrollIntoViewIfNeeded(active ?? null);\n }, []);\n\n return (\n <div className=\"grid sticky top-(--header-height) lg:h-[calc(100vh-var(--header-height))] grid-rows-[1fr_min-content] border-r\">\n <nav\n ref={navRef}\n className={cn(\n \"hidden max-w-[calc(var(--side-nav-width)+var(--padding-nav-item))] lg:flex scrollbar flex-col overflow-y-auto shrink-0 text-sm pe-3 ps-4 lg:ps-8\",\n \"-mx-(--padding-nav-item) pb-[8vh] pt-(--padding-content-top) scroll-pt-2 gap-1\",\n // Revert the padding/margin on the first child\n \"-mt-2.5\",\n className,\n )}\n style={{\n maskImage: `linear-gradient(180deg, transparent 1%, rgba(0, 0, 0, 1) 20px, rgba(0, 0, 0, 1) 90%, transparent 99%)`,\n }}\n >\n {children}\n </nav>\n\n <div className=\"bg-background border-t p-2 mx-5 gap-2 items-center mt-2 drop-shadow-[0_-3px_1px_rgba(0,0,0,0.015)] hidden lg:[&:has(>_:nth-child(1):last-child)]:flex\">\n {options.page?.showPoweredBy !== false && <PoweredByZudoku />}\n </div>\n </div>\n );\n};\n\nSidebarWrapper.displayName = \"SidebarWrapper\";\n","import { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport type { SidebarItem as SidebarItemType } from \"../../../config/validators/SidebarSchema.js\";\nimport { DrawerContent, DrawerTitle } from \"../../ui/Drawer.js\";\nimport { Slot } from \"../Slot.js\";\nimport { SidebarItem } from \"./SidebarItem.js\";\nimport { SidebarWrapper } from \"./SidebarWrapper.js\";\n\nexport const Sidebar = ({\n onRequestClose,\n sidebar,\n}: {\n onRequestClose?: () => void;\n sidebar: SidebarItemType[];\n}) => (\n <>\n <SidebarWrapper>\n <Slot.Target name=\"navigation-before\" />\n {sidebar.map((item) => (\n <SidebarItem\n key={\n (\"id\" in item ? item.id : \"\") +\n (\"href\" in item ? item.href : \"\") +\n item.label\n }\n item={item}\n />\n ))}\n <Slot.Target name=\"navigation-after\" />\n </SidebarWrapper>\n <DrawerContent\n className=\"lg:hidden h-[100dvh] start-0 w-[320px] rounded-none\"\n aria-describedby={undefined}\n >\n <div className=\"p-4 overflow-y-auto overscroll-none\">\n <VisuallyHidden>\n <DrawerTitle>Sidebar</DrawerTitle>\n </VisuallyHidden>\n {sidebar.map((item) => (\n <SidebarItem\n key={item.label}\n item={item}\n onRequestClose={onRequestClose}\n />\n ))}\n </div>\n </DrawerContent>\n </>\n);\n","import { PanelLeftIcon } from \"lucide-react\";\nimport { type PropsWithChildren, useState } from \"react\";\nimport { useNavigation } from \"react-router\";\nimport { Drawer, DrawerTrigger } from \"zudoku/ui/Drawer.js\";\nimport { cn } from \"../util/cn.js\";\nimport { useCurrentNavigation, useZudoku } from \"./context/ZudokuContext.js\";\nimport { Sidebar } from \"./navigation/Sidebar.js\";\nimport { Slot } from \"./Slot.js\";\n\nexport const Main = ({ children }: PropsWithChildren) => {\n const [isDrawerOpen, setDrawerOpen] = useState(false);\n const { sidebar } = useCurrentNavigation();\n const hasSidebar = sidebar.length > 0;\n const isNavigating = useNavigation().state === \"loading\";\n const { options } = useZudoku();\n\n return (\n <Drawer\n direction={options.page?.dir === \"rtl\" ? \"right\" : \"left\"}\n open={isDrawerOpen}\n onOpenChange={(open) => setDrawerOpen(open)}\n >\n {hasSidebar && (\n <Sidebar\n onRequestClose={() => setDrawerOpen(false)}\n sidebar={sidebar}\n />\n )}\n {hasSidebar && (\n <div className=\"lg:hidden -mx-4 px-4 py-2 sticky bg-background/80 backdrop-blur-xs z-10 top-0 start-0 end-0 border-b\">\n <DrawerTrigger className=\"flex items-center gap-2 px-4\">\n <PanelLeftIcon size={16} strokeWidth={1.5} />\n <span className=\"text-sm\">Menu</span>\n </DrawerTrigger>\n </div>\n )}\n <main\n data-pagefind-body\n className={cn(\n \"px-4 lg:pe-8 lg:px-8\",\n !hasSidebar && \"col-span-full\",\n isNavigating && \"animate-pulse\",\n )}\n >\n <Slot.Target name=\"content-before\" />\n {children}\n <Slot.Target name=\"content-after\" />\n </main>\n </Drawer>\n );\n};\n","import { Helmet } from \"@zudoku/react-helmet-async\";\nimport { Suspense, useEffect, type ReactNode } from \"react\";\nimport { Outlet, useLocation } from \"react-router\";\nimport { cn } from \"../util/cn.js\";\nimport { joinUrl } from \"../util/joinUrl.js\";\nimport { useScrollToAnchor } from \"../util/useScrollToAnchor.js\";\nimport { useScrollToTop } from \"../util/useScrollToTop.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { Footer } from \"./Footer.js\";\nimport { Header } from \"./Header.js\";\nimport { Main } from \"./Main.js\";\nimport { Slot } from \"./Slot.js\";\nimport { Spinner } from \"./Spinner.js\";\n\nconst LoadingFallback = () => (\n <main className=\"col-span-full row-span-full grid place-items-center\">\n <Spinner />\n </main>\n);\n\nexport const Layout = ({ children }: { children?: ReactNode }) => {\n const { meta, authentication, options } = useZudoku();\n const location = useLocation();\n\n useScrollToAnchor();\n useScrollToTop();\n\n useEffect(() => {\n // Initialize the authentication plugin\n authentication?.onPageLoad?.();\n }, [authentication]);\n\n return (\n <>\n <Helmet titleTemplate={meta?.title}>\n {options.canonicalUrlOrigin && (\n <link\n rel=\"canonical\"\n href={joinUrl(\n options.canonicalUrlOrigin,\n options.basePath,\n location.pathname,\n )}\n />\n )}\n {meta?.description && (\n <meta name=\"description\" content={meta.description} />\n )}\n {meta?.favicon && <link rel=\"icon\" href={meta.favicon} />}\n </Helmet>\n <Slot.Target name=\"layout-before-head\" />\n <Header />\n <Slot.Target name=\"layout-after-head\" />\n\n <div\n className={cn(\n \"grid max-w-screen-2xl w-full lg:mx-auto\",\n \"[&:has(>:only-child)]:grid-rows-1 grid-rows-[0_min-content_1fr] lg:grid-rows-[min-content_1fr]\",\n \"grid-cols-1 lg:grid-cols-[var(--side-nav-width)_1fr]\",\n )}\n >\n <Suspense fallback={<LoadingFallback />}>\n <Main>{children ?? <Outlet />}</Main>\n </Suspense>\n </div>\n <Footer />\n </>\n );\n};\n","import type { ReactNode } from \"react\";\nimport { CategoryHeading } from \"./CategoryHeading.js\";\nimport { Heading } from \"./Heading.js\";\nimport { ProseClasses } from \"./Markdown.js\";\n\nexport const ErrorPage = ({\n title = \"An error occurred\",\n message,\n category,\n}: {\n title?: ReactNode;\n message?: ReactNode;\n category?: ReactNode;\n}) => {\n return (\n <div className={ProseClasses + \" h-full pt-(--padding-content-top)\"}>\n {category && <CategoryHeading>{category}</CategoryHeading>}\n {title && (\n <Heading level={1} className=\"flex gap-3.5 items-center\">\n {title}\n </Heading>\n )}\n <p>{message}</p>\n </div>\n );\n};\n","import type { ReactNode } from \"react\";\nimport { ErrorPage } from \"./ErrorPage.js\";\n\ntype StatusPageProps = {\n statusCode: number;\n message?: ReactNode;\n};\n\nconst getDefaultContent = (\n statusCode: number,\n): { title: string; message: string } => {\n switch (statusCode) {\n case 400:\n return {\n title: \"Bad Request\",\n message:\n \"The request could not be understood by the server due to malformed syntax.\",\n };\n case 403:\n return {\n title: \"Forbidden\",\n message: \"You don't have permission to access this resource.\",\n };\n case 404:\n return {\n title: \"Not Found\",\n message: \"The requested resource could not be found.\",\n };\n case 405:\n return {\n title: \"Method Not Allowed\",\n message:\n \"The request method is not supported for the requested resource.\",\n };\n case 414:\n return {\n title: \"Request URI Too Large\",\n message: \"The request URI is too large.\",\n };\n case 416:\n return {\n title: \"Range Not Satisfiable\",\n message: \"The server cannot satisfy the request range.\",\n };\n case 500:\n return {\n title: \"Internal Server Error\",\n message: \"An unexpected error occurred while processing your request.\",\n };\n case 501:\n return {\n title: \"Not Implemented\",\n message:\n \"The server does not support the functionality required to fulfill the request.\",\n };\n case 502:\n return {\n title: \"Bad Gateway\",\n message:\n \"The server received an invalid response from the upstream server.\",\n };\n case 503:\n return {\n title: \"Service Unavailable\",\n message: \"The server is temporarily unable to handle the request.\",\n };\n case 504:\n return {\n title: \"Gateway Timeout\",\n message:\n \"The server did not receive a timely response from the upstream server.\",\n };\n default:\n return {\n title: \"An error occurred\",\n message: \"Something went wrong while processing your request.\",\n };\n }\n};\n\nexport const StatusPage = ({ statusCode, message }: StatusPageProps) => {\n const defaultContent = getDefaultContent(statusCode);\n\n return (\n <ErrorPage\n title={defaultContent.title}\n message={message ?? defaultContent.message}\n category={statusCode}\n />\n );\n};\n","'use client';\nimport { createContext, Component, createElement, useContext, useState, useMemo, forwardRef } from 'react';\n\nconst ErrorBoundaryContext = createContext(null);\n\nconst initialState = {\n didCatch: false,\n error: null\n};\nclass ErrorBoundary extends Component {\n constructor(props) {\n super(props);\n this.resetErrorBoundary = this.resetErrorBoundary.bind(this);\n this.state = initialState;\n }\n static getDerivedStateFromError(error) {\n return {\n didCatch: true,\n error\n };\n }\n resetErrorBoundary() {\n const {\n error\n } = this.state;\n if (error !== null) {\n var _this$props$onReset, _this$props;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_this$props$onReset = (_this$props = this.props).onReset) === null || _this$props$onReset === void 0 ? void 0 : _this$props$onReset.call(_this$props, {\n args,\n reason: \"imperative-api\"\n });\n this.setState(initialState);\n }\n }\n componentDidCatch(error, info) {\n var _this$props$onError, _this$props2;\n (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 ? void 0 : _this$props$onError.call(_this$props2, error, info);\n }\n componentDidUpdate(prevProps, prevState) {\n const {\n didCatch\n } = this.state;\n const {\n resetKeys\n } = this.props;\n\n // There's an edge case where if the thing that triggered the error happens to *also* be in the resetKeys array,\n // we'd end up resetting the error boundary immediately.\n // This would likely trigger a second error to be thrown.\n // So we make sure that we don't check the resetKeys on the first call of cDU after the error is set.\n\n if (didCatch && prevState.error !== null && hasArrayChanged(prevProps.resetKeys, resetKeys)) {\n var _this$props$onReset2, _this$props3;\n (_this$props$onReset2 = (_this$props3 = this.props).onReset) === null || _this$props$onReset2 === void 0 ? void 0 : _this$props$onReset2.call(_this$props3, {\n next: resetKeys,\n prev: prevProps.resetKeys,\n reason: \"keys\"\n });\n this.setState(initialState);\n }\n }\n render() {\n const {\n children,\n fallbackRender,\n FallbackComponent,\n fallback\n } = this.props;\n const {\n didCatch,\n error\n } = this.state;\n let childToRender = children;\n if (didCatch) {\n const props = {\n error,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if (typeof fallbackRender === \"function\") {\n childToRender = fallbackRender(props);\n } else if (FallbackComponent) {\n childToRender = createElement(FallbackComponent, props);\n } else if (fallback !== undefined) {\n childToRender = fallback;\n } else {\n throw error;\n }\n }\n return createElement(ErrorBoundaryContext.Provider, {\n value: {\n didCatch,\n error,\n resetErrorBoundary: this.resetErrorBoundary\n }\n }, childToRender);\n }\n}\nfunction hasArrayChanged() {\n let a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return a.length !== b.length || a.some((item, index) => !Object.is(item, b[index]));\n}\n\nfunction assertErrorBoundaryContext(value) {\n if (value == null || typeof value.didCatch !== \"boolean\" || typeof value.resetErrorBoundary !== \"function\") {\n throw new Error(\"ErrorBoundaryContext not found\");\n }\n}\n\nfunction useErrorBoundary() {\n const context = useContext(ErrorBoundaryContext);\n assertErrorBoundaryContext(context);\n const [state, setState] = useState({\n error: null,\n hasError: false\n });\n const memoized = useMemo(() => ({\n resetBoundary: () => {\n context.resetErrorBoundary();\n setState({\n error: null,\n hasError: false\n });\n },\n showBoundary: error => setState({\n error,\n hasError: true\n })\n }), [context.resetErrorBoundary]);\n if (state.hasError) {\n throw state.error;\n }\n return memoized;\n}\n\nfunction withErrorBoundary(component, errorBoundaryProps) {\n const Wrapped = forwardRef((props, ref) => createElement(ErrorBoundary, errorBoundaryProps, createElement(component, {\n ...props,\n ref\n })));\n\n // Format for display in DevTools\n const name = component.displayName || component.name || \"Unknown\";\n Wrapped.displayName = \"withErrorBoundary(\".concat(name, \")\");\n return Wrapped;\n}\n\nexport { ErrorBoundary, ErrorBoundaryContext, useErrorBoundary, withErrorBoundary };\n","export let createNanoEvents = () => ({\n emit(event, ...args) {\n for (\n let callbacks = this.events[event] || [],\n i = 0,\n length = callbacks.length;\n i < length;\n i++\n ) {\n callbacks[i](...args)\n }\n },\n events: {},\n on(event, cb) {\n ;(this.events[event] ||= []).push(cb)\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i)\n }\n }\n})\n","import type { QueryClient } from \"@tanstack/react-query\";\nimport { createNanoEvents } from \"nanoevents\";\nimport type { ReactNode } from \"react\";\nimport type { Location } from \"react-router\";\nimport type { BundledTheme, HighlighterCore } from \"shiki\";\nimport type { z } from \"zod\";\nimport type { SidebarConfig } from \"../../config/validators/SidebarSchema.js\";\nimport type {\n FooterSchema,\n TopNavigationItem,\n} from \"../../config/validators/validate.js\";\nimport type { AuthenticationPlugin } from \"../authentication/authentication.js\";\nimport { type AuthState, useAuthState } from \"../authentication/state.js\";\nimport type { ComponentsContextType } from \"../components/context/ComponentsContext.js\";\nimport type { SlotType } from \"../components/context/SlotProvider.js\";\nimport { joinPath } from \"../util/joinPath.js\";\nimport type { MdxComponentsType } from \"../util/MdxComponents.js\";\nimport { objectEntries } from \"../util/objectEntries.js\";\nimport {\n isApiIdentityPlugin,\n isAuthenticationPlugin,\n isEventConsumerPlugin,\n isNavigationPlugin,\n type NavigationPlugin,\n needsInitialization,\n type ZudokuPlugin,\n} from \"./plugins.js\";\n\nexport interface ZudokuEvents {\n location: (event: { from?: Location; to: Location }) => void;\n auth: (auth: { prev: AuthState; next: AuthState }) => void;\n}\n\nexport interface ApiIdentity {\n authorizeRequest: (request: Request) => Promise<Request> | Request;\n authorizationFields?: {\n headers?: string[];\n queryParams?: string[];\n };\n label: string;\n id: string;\n}\n\nexport type ApiKeyCache = \"api-keys\";\n\ntype Metadata = Partial<{\n title: string;\n description: string;\n logo: string;\n favicon: string;\n generator: string;\n applicationName: string;\n referrer: string;\n keywords: string[];\n authors: string[];\n creator: string;\n publisher: string;\n}>;\n\ntype Page = Partial<{\n dir?: \"ltr\" | \"rtl\";\n showPoweredBy?: boolean;\n pageTitle?: string;\n logo?: {\n src: {\n light: string;\n dark: string;\n };\n width?: string | number;\n alt?: string;\n };\n banner?: {\n message: ReactNode;\n color?: \"note\" | \"tip\" | \"info\" | \"caution\" | \"danger\" | (string & {});\n dismissible?: boolean;\n };\n footer?: z.infer<typeof FooterSchema>;\n}>;\n\nexport type ZudokuContextOptions = {\n basePath?: string;\n canonicalUrlOrigin?: string;\n metadata?: Metadata;\n page?: Page;\n authentication?: AuthenticationPlugin;\n topNavigation?: TopNavigationItem[];\n sidebars?: SidebarConfig;\n plugins?: ZudokuPlugin[];\n slots?: Record<string, SlotType>;\n /**\n * @deprecated Use `slots` instead\n */\n UNSAFE_slotlets?: Record<string, SlotType>;\n mdx?: {\n components?: MdxComponentsType;\n };\n overrides?: ComponentsContextType;\n protectedRoutes?: string[];\n syntaxHighlighting?: {\n highlighter: HighlighterCore;\n themes?: { light: BundledTheme; dark: BundledTheme };\n };\n};\n\nexport class ZudokuContext {\n public plugins: NonNullable<ZudokuContextOptions[\"plugins\"]>;\n public sidebars: SidebarConfig;\n public topNavigation: NonNullable<ZudokuContextOptions[\"topNavigation\"]>;\n public meta: ZudokuContextOptions[\"metadata\"];\n public page: ZudokuContextOptions[\"page\"];\n public readonly authentication?: ZudokuContextOptions[\"authentication\"];\n public readonly queryClient: QueryClient;\n public readonly options: ZudokuContextOptions;\n private readonly navigationPlugins: NavigationPlugin[];\n private emitter = createNanoEvents<ZudokuEvents>();\n\n constructor(options: ZudokuContextOptions, queryClient: QueryClient) {\n const protectedRoutes = (options.protectedRoutes ?? []).concat(\n options.plugins?.flatMap((plugin) =>\n isNavigationPlugin(plugin) ? (plugin.getProtectedRoutes?.() ?? []) : [],\n ) ?? [],\n );\n\n this.queryClient = queryClient;\n this.options = { ...options, protectedRoutes };\n this.plugins = options.plugins ?? [];\n this.topNavigation = options.topNavigation ?? [];\n this.sidebars = options.sidebars ?? {};\n this.navigationPlugins = this.plugins.filter(isNavigationPlugin);\n this.authentication = this.plugins.find(isAuthenticationPlugin);\n this.meta = options.metadata;\n this.page = options.page;\n this.plugins.forEach((plugin) => {\n if (!isEventConsumerPlugin(plugin)) return;\n\n objectEntries(plugin.events).forEach(([event, handler]) => {\n this.emitter.on(event, handler!);\n });\n });\n\n useAuthState.subscribe((state, prevState) => {\n this.emitEvent(\"auth\", {\n prev: prevState,\n next: state,\n });\n });\n }\n\n initialize = async (): Promise<void> => {\n await Promise.all(\n this.plugins\n .filter(needsInitialization)\n .map((plugin) => plugin.initialize?.(this)),\n );\n };\n\n getApiIdentities = async () => {\n const keys = await Promise.all(\n this.plugins\n .filter(isApiIdentityPlugin)\n .map((plugin) => plugin.getIdentities(this)),\n );\n\n return keys.flat();\n };\n\n addEventListener<E extends keyof ZudokuEvents>(\n event: E,\n callback: ZudokuEvents[E],\n ) {\n return this.emitter.on(event, callback);\n }\n\n emitEvent = <E extends keyof ZudokuEvents>(\n event: E,\n ...data: Parameters<ZudokuEvents[E]>\n ) => {\n return this.emitter.emit(event, ...data);\n };\n\n getPluginSidebar = async (path: string) => {\n const navigations = await Promise.all(\n this.navigationPlugins.map((plugin) =>\n plugin.getSidebar?.(joinPath(path), this),\n ),\n );\n\n return navigations.flatMap((nav) => nav ?? []);\n };\n\n signRequest = async (request: Request) => {\n if (!this.authentication) {\n throw new Error(\"No authentication provider configured\");\n }\n\n return await this.authentication.signRequest(request);\n };\n}\n","import { FallbackProps } from \"react-error-boundary\";\nimport { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function TopLevelError({ error, resetErrorBoundary }: FallbackProps) {\n // Call resetErrorBoundary() to reset the error boundary and retry the render.\n\n return <ErrorAlert error={error} />;\n}\n","const root = globalThis;\n\nif (!root.requestIdleCallback || !root.cancelIdleCallback) {\n root.requestIdleCallback = (cb: IdleRequestCallback) => setTimeout(cb, 1);\n root.cancelIdleCallback = clearTimeout;\n}\n","import {\n createContext,\n useContext,\n type ComponentProps,\n type ComponentType,\n} from \"react\";\nimport { Header } from \"../Header.js\";\n\nexport const DEFAULT_COMPONENTS = {\n Header,\n};\n\nexport type ComponentsContextType = {\n Header?: ComponentType<ComponentProps<typeof Header>>;\n};\n\nconst ComponentsContext =\n createContext<Required<ComponentsContextType>>(DEFAULT_COMPONENTS);\n\nexport const ComponentsProvider = ComponentsContext.Provider;\n\nexport const useComponents = () => {\n return useContext(ComponentsContext);\n};\n","import { useEffect, useRef } from \"react\";\nimport { useLocation, type Location } from \"react-router\";\nimport { useZudoku } from \"./ZudokuContext.js\";\n\nexport const RouterEventsEmitter = () => {\n const location = useLocation();\n const zudoku = useZudoku();\n const previousLocation = useRef<Location | undefined>(undefined);\n\n useEffect(() => {\n zudoku.emitEvent(\"location\", {\n from: previousLocation.current,\n to: location,\n });\n previousLocation.current = location;\n }, [zudoku, location]);\n\n return null;\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport type { PropsWithChildren } from \"react\";\nimport { type ZudokuContext } from \"../../core/ZudokuContext.js\";\nimport { NO_DEHYDRATE } from \"../cache.js\";\nimport { ZudokuReactContext } from \"./ZudokuContext.js\";\n\nexport const ZudokuProvider = ({\n children,\n context,\n}: PropsWithChildren<{ context: ZudokuContext }>) => {\n useSuspenseQuery({\n queryFn: async () => {\n await context.initialize();\n return true;\n },\n queryKey: [\"zudoku-initialize\", NO_DEHYDRATE],\n });\n\n return (\n <ZudokuReactContext.Provider value={context}>\n {children}\n </ZudokuReactContext.Provider>\n );\n};\n","import { MDXProvider } from \"@mdx-js/react\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { ThemeProvider } from \"next-themes\";\nimport {\n memo,\n type PropsWithChildren,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport { Outlet, useLocation, useNavigation } from \"react-router\";\nimport { hasHead, isMdxProviderPlugin } from \"../core/plugins.js\";\nimport {\n ZudokuContext,\n type ZudokuContextOptions,\n} from \"../core/ZudokuContext.js\";\nimport { TopLevelError } from \"../errors/TopLevelError.js\";\nimport { StaggeredRenderContext } from \"../plugins/openapi/StaggeredRender.js\";\nimport { MdxComponents } from \"../util/MdxComponents.js\";\nimport \"../util/requestIdleCallbackPolyfill.js\";\nimport {\n ComponentsProvider,\n DEFAULT_COMPONENTS,\n} from \"./context/ComponentsContext.js\";\nimport { RouterEventsEmitter } from \"./context/RouterEventsEmitter.js\";\nimport { SlotProvider } from \"./context/SlotProvider.js\";\nimport { ViewportAnchorProvider } from \"./context/ViewportAnchorContext.js\";\nimport { ZudokuProvider } from \"./context/ZudokuProvider.js\";\n\nlet zudokuContext: ZudokuContext | undefined;\n\nconst ZudokoInner = memo(\n ({ children, ...props }: PropsWithChildren<ZudokuContextOptions>) => {\n const components = useMemo(\n () => ({ ...DEFAULT_COMPONENTS, ...props.overrides }),\n [props.overrides],\n );\n\n const location = useLocation();\n const mdxComponents = useMemo(() => {\n const componentsFromPlugins = (props.plugins ?? [])\n .filter(isMdxProviderPlugin)\n .flatMap((plugin) =>\n plugin.getMdxComponents ? [plugin.getMdxComponents()] : [],\n );\n\n return {\n ...componentsFromPlugins.reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n {},\n ),\n ...MdxComponents,\n ...props.mdx?.components,\n };\n }, [props.mdx?.components, props.plugins]);\n const { stagger } = useContext(StaggeredRenderContext);\n const [didNavigate, setDidNavigate] = useState(false);\n const staggeredValue = useMemo(\n () => (didNavigate ? { stagger: true } : { stagger }),\n [stagger, didNavigate],\n );\n const navigation = useNavigation();\n const queryClient = useQueryClient();\n\n useEffect(() => {\n if (didNavigate) {\n return;\n }\n setDidNavigate(true);\n }, [didNavigate, navigation.location]);\n\n zudokuContext ??= new ZudokuContext(props, queryClient);\n\n const heads = props.plugins\n ?.flatMap((plugin) =>\n hasHead(plugin) ? (plugin.getHead?.({ location }) ?? []) : [],\n )\n // eslint-disable-next-line react/no-array-index-key\n .map((entry, i) => <Helmet key={i}>{entry}</Helmet>);\n\n return (\n <>\n {heads}\n <StaggeredRenderContext.Provider value={staggeredValue}>\n <ZudokuProvider context={zudokuContext}>\n <RouterEventsEmitter />\n <SlotProvider slots={props.slots ?? props.UNSAFE_slotlets}>\n <MDXProvider components={mdxComponents}>\n <ThemeProvider attribute=\"class\" disableTransitionOnChange>\n <ComponentsProvider value={components}>\n <ViewportAnchorProvider>\n {children ?? <Outlet />}\n </ViewportAnchorProvider>\n </ComponentsProvider>\n </ThemeProvider>\n </MDXProvider>\n </SlotProvider>\n </ZudokuProvider>\n </StaggeredRenderContext.Provider>\n </>\n );\n },\n);\n\nZudokoInner.displayName = \"ZudokoInner\";\n\nconst Zudoku = (props: ZudokuContextOptions) => {\n return (\n <ErrorBoundary FallbackComponent={TopLevelError}>\n <ZudokoInner {...props} />\n </ErrorBoundary>\n );\n};\nZudoku.displayName = \"Zudoku\";\n\nexport { Zudoku };\n","import { useMDXComponents as useMDXComponentsImport } from \"@mdx-js/react\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { useTheme as useThemeImport } from \"next-themes\";\nimport { Link as LinkImport } from \"react-router\";\nimport { useAuth as useAuthImport } from \"../authentication/hook.js\";\nimport { RouteGuard as RouteGuardImport } from \"../core/RouteGuard.js\";\nimport { RouterError as RouterErrorImport } from \"../errors/RouterError.js\";\nimport { ServerError as ServerErrorImport } from \"../errors/ServerError.js\";\nimport { Button as ButtonImport } from \"../ui/Button.js\";\nimport { Callout as CalloutImport } from \"../ui/Callout.js\";\nimport {\n Bootstrap as BootstrapImport,\n BootstrapStatic as BootstrapStaticImport,\n} from \"./Bootstrap.js\";\nimport { BuildCheck as BuildCheckImport } from \"./BuildCheck.js\";\nimport {\n CACHE_KEYS as CACHE_KEYS_IMPORT,\n useCache as useCacheImport,\n} from \"./cache.js\";\nimport { ClientOnly as ClientOnlyImport } from \"./ClientOnly.js\";\nimport { useZudoku as useZudokuImport } from \"./context/ZudokuContext.js\";\nimport { Layout as LayoutImport } from \"./Layout.js\";\nimport { Markdown as MarkdownImport } from \"./Markdown.js\";\nimport { Spinner as SpinnerImport } from \"./Spinner.js\";\nimport { StatusPage as StatusPageImport } from \"./StatusPage.js\";\nimport { Zudoku as ZudokuImport } from \"./Zudoku.js\";\n\nexport const Layout = /*@__PURE__*/ LayoutImport;\nexport const RouterError = /*@__PURE__*/ RouterErrorImport;\nexport const ServerError = /*@__PURE__*/ ServerErrorImport;\nexport const Bootstrap = /*@__PURE__*/ BootstrapImport;\nexport const BootstrapStatic = /*@__PURE__*/ BootstrapStaticImport;\nexport const RouteGuard = /*@__PURE__*/ RouteGuardImport;\nexport const Head = /*@__PURE__*/ Helmet;\nexport const StatusPage = /*@__PURE__*/ StatusPageImport;\nexport const Callout = /*@__PURE__*/ CalloutImport;\nexport const Markdown = /*@__PURE__*/ MarkdownImport;\nexport const Spinner = /*@__PURE__*/ SpinnerImport;\nexport const ClientOnly = /*@__PURE__*/ ClientOnlyImport;\nexport const Button = /*@__PURE__*/ ButtonImport;\nexport const Link = /*@__PURE__*/ LinkImport;\nexport const BuildCheck = /*@__PURE__*/ BuildCheckImport;\nexport const Zudoku = /*@__PURE__*/ ZudokuImport;\n\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useMDXComponents = /*@__PURE__*/ useMDXComponentsImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useZudoku = /*@__PURE__*/ useZudokuImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useAuth = /*@__PURE__*/ useAuthImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useCache = /*@__PURE__*/ useCacheImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const CACHE_KEYS = /*@__PURE__*/ CACHE_KEYS_IMPORT;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useTheme = /*@__PURE__*/ useThemeImport;\n"],"names":["QueryCache","Subscribable","config","#queries","client","options","state","queryKey","queryHash","hashQueryKeyByOptions","query","Query","queryInMap","notifyManager","filters","defaultedFilters","matchQuery","queries","event","listener","MutationCache","#mutations","#scopes","#mutationId","mutation","Mutation","scope","scopeFor","scopedMutations","index","firstPendingMutation","m","matchMutation","pausedMutations","x","noop","infiniteQueryBehavior","pages","context","direction","oldPages","oldPageParams","result","currentPage","fetchFn","cancelled","addSignalProperty","object","queryFn","ensureQueryFn","fetchPage","data","param","previous","queryFnContext","page","maxPages","addTo","addToStart","addToEnd","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pageParams","lastIndex","QueryClient","#queryCache","#mutationCache","#defaultOptions","#queryDefaults","#mutationDefaults","#mountCount","#unsubscribeFocus","#unsubscribeOnline","focusManager","focused","onlineManager","online","defaultedOptions","cachedData","resolveStaleTime","updater","prevData","functionalUpdate","queryCache","cancelOptions","defaultedCancelOptions","promises","fetchOptions","promise","hashKey","defaults","queryDefault","partialMatchKey","mutationKey","skipToken","defaultTransformerFn","hydrate","dehydratedState","mutationCache","deserializeData","mutations","mutationOptions","meta","_ignored","serializedState","initialPromise","hasProperty","obj","key","HydrationBoundary","children","queryClient","useQueryClient","hydrationQueue","setHydrationQueue","React","optionsRef","newQueries","existingQueries","dehydratedQuery","existingQuery","hydrationIsNewer","queryAlreadyQueued","prev","ServerError","error","jsx","ErrorAlert","RouterProvider2","props","RouterProvider","ReactDOM","StaggeredRenderContext","createContext","Bootstrap","router","StrictMode","QueryClientProvider","BypassProtectedRoutesContext","HelmetProvider","BootstrapStatic","helmetContext","bypassProtection","StaticRouterProvider","util","_","assertIs","_arg","assertNever","_x","items","item","validKeys","k","filtered","e","keys","arr","checker","val","joinValues","array","separator","value","objectUtil","first","second","ZodParsedType","getParsedType","ZodIssueCode","ZodError","issues","sub","subs","actualProto","_mapper","mapper","issue","fieldErrors","processError","curr","i","el","formErrors","errorMap","_ctx","message","overrideErrorMap","defaultErrorMap","getErrorMap","makeIssue","params","path","errorMaps","issueData","fullPath","fullIssue","errorMessage","maps","map","addIssueToContext","ctx","overrideMap","ParseStatus","status","results","arrayValue","s","INVALID","pairs","syncPairs","pair","finalObject","DIRTY","OK","isAborted","isDirty","isValid","isAsync","errorUtil","ParseInputLazyPath","parent","handleResult","processCreateParams","invalid_type_error","required_error","description","iss","ZodType","input","err","maybeAsyncResult","check","getIssueProperties","setError","refinementData","refinement","ZodEffects","ZodFirstPartyTypeKind","def","ZodOptional","ZodNullable","ZodArray","ZodPromise","option","ZodUnion","incoming","ZodIntersection","transform","defaultValueFunc","ZodDefault","ZodBranded","catchValueFunc","ZodCatch","This","target","ZodPipeline","ZodReadonly","cuidRegex","cuid2Regex","ulidRegex","uuidRegex","nanoidRegex","jwtRegex","durationRegex","emailRegex","_emojiRegex","emojiRegex","ipv4Regex","ipv4CidrRegex","ipv6Regex","ipv6CidrRegex","base64Regex","base64urlRegex","dateRegexSource","dateRegex","timeRegexSource","args","secondsRegexSource","secondsQuantifier","timeRegex","datetimeRegex","regex","opts","isValidIP","ip","version","isValidJWT","jwt","alg","header","base64","decoded","isValidCidr","ZodString","tooBig","tooSmall","validation","minLength","maxLength","len","ch","min","max","floatSafeRemainder","step","valDecCount","stepDecCount","decCount","valInt","stepInt","ZodNumber","kind","inclusive","ZodBigInt","ZodBoolean","ZodDate","minDate","maxDate","ZodSymbol","ZodUndefined","ZodNull","ZodAny","ZodUnknown","ZodNever","ZodVoid","schema","deepPartialify","ZodObject","newShape","fieldSchema","ZodTuple","shape","shapeKeys","extraKeys","keyValidator","unknownKeys","catchall","defaultError","augmentation","merging","mask","newField","createZodEnum","handleResults","unionErrors","childCtx","dirty","types","mergeValues","a","b","aType","bType","bKeys","sharedKeys","newObj","sharedValue","newArray","itemA","itemB","handleParsed","parsedLeft","parsedRight","merged","left","right","itemIndex","rest","schemas","ZodMap","keyType","valueType","finalMap","ZodSet","finalizeSet","elements","parsedSet","element","minSize","maxSize","size","ZodLazy","getter","ZodLiteral","values","ZodEnum","expectedValues","enumValues","newDef","opt","ZodNativeEnum","nativeEnumValues","promisified","effect","checkCtx","arg","processed","executeRefinement","acc","inner","base","preprocess","type","newCtx","ZodNaN","inResult","freeze","stringType","objectType","enumType","BuildStatusSchema","z.object","z.string","z.enum","BuildCheck","buildId","endpoint","buildStatusQuery","useQuery","res","isCompleted","jsxs","CircleFadingArrowUpIcon","LoaderCircleIcon","Button","useScrollToTop","location","useLocation","previousPath","useRef","useEffect","isNewPage","hasAnchor","SocialIcon","icon","isExternalUrl","href","Footer","useZudoku","footer","cn","Slot","column","link","className","ExternalLinkIcon","AnchorLink","Fragment","social","Skeleton","COLOR_MAP","Banner","isBannerOpen","setIsBannerOpen","useState","mappedColor","style","CircleXIcon","ZudokuLogo","PoweredByZudoku","ChevronRightIcon","detectOS","userAgent","Search","isOpen","setIsOpen","onClose","useCallback","onKeyDown","searchPlugin","isSearchPlugin","SearchIcon","ClientOnly","KbdShortcut","Suspense","os","ThemeSwitch","resolvedTheme","setTheme","useTheme","SunIcon","MoonIcon","PageProgress","isNavigating","useNavigation","isAnimating","setIsAnimating","timer","isFinished","progress","useNProgress","TopNavigation","topNavigation","isAuthenticated","useAuth","filteredItems","isHiddenItem","TopNavItem","id","label","defaultLink","sidebars","currentSidebar","currentNav","useCurrentNavigation","isActive","traverseSidebar","joinUrl","NavLink","isPending","cx","MobileTopNavigation","drawerOpen","setDrawerOpen","Drawer","open","DrawerTrigger","MenuIcon","DrawerContent","VisuallyHidden","DrawerTitle","RecursiveMenu","DropdownMenuSub","DropdownMenuSubTrigger","DropdownMenuPortal","DropdownMenuSubContent","Link","DropdownMenuItem","Header","memo","auth","profile","isAuthEnabled","plugins","accountItems","isProfileMenuPlugin","logoLightSrc","logoDarkSrc","borderBottom","DropdownMenu","DropdownMenuTrigger","DropdownMenuContent","DropdownMenuLabel","DropdownMenuSeparator","shouldScaleBackground","DrawerPrimitive","DrawerPortal","DrawerOverlay","ref","hideBar","DrawerDescription","SidebarWrapper","navRef","active","scrollIntoViewIfNeeded","Sidebar","onRequestClose","sidebar","SidebarItem","Main","isDrawerOpen","hasSidebar","PanelLeftIcon","LoadingFallback","Spinner","Layout","authentication","useScrollToAnchor","Helmet","Outlet","ErrorPage","title","category","ProseClasses","CategoryHeading","Heading","getDefaultContent","statusCode","StatusPage","defaultContent","ErrorBoundaryContext","initialState","ErrorBoundary","Component","_this$props$onReset","_this$props","_len","_key","info","_this$props$onError","_this$props2","prevProps","prevState","didCatch","resetKeys","hasArrayChanged","_this$props$onReset2","_this$props3","fallbackRender","FallbackComponent","fallback","childToRender","createElement","createNanoEvents","callbacks","length","cb","ZudokuContext","protectedRoutes","plugin","isNavigationPlugin","isAuthenticationPlugin","isEventConsumerPlugin","objectEntries","handler","useAuthState","needsInitialization","isApiIdentityPlugin","callback","joinPath","nav","request","TopLevelError","resetErrorBoundary","root","DEFAULT_COMPONENTS","ComponentsContext","ComponentsProvider","RouterEventsEmitter","zudoku","previousLocation","ZudokuProvider","useSuspenseQuery","NO_DEHYDRATE","ZudokuReactContext","zudokuContext","ZudokoInner","components","useMemo","mdxComponents","isMdxProviderPlugin","MdxComponents","stagger","useContext","didNavigate","setDidNavigate","staggeredValue","navigation","heads","hasHead","entry","SlotProvider","MDXProvider","ThemeProvider","ViewportAnchorProvider","Zudoku","LayoutImport","RouterError","RouterErrorImport","ServerErrorImport","BootstrapImport","BootstrapStaticImport","RouteGuard","RouteGuardImport","Head","StatusPageImport","Callout","CalloutImport","Markdown","MarkdownImport","SpinnerImport","ClientOnlyImport","ButtonImport","LinkImport","BuildCheckImport","ZudokuImport","useMDXComponents","useMDXComponentsImport","useZudokuImport","useAuthImport","useCache","useCacheImport","CACHE_KEYS","CACHE_KEYS_IMPORT","useThemeImport"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,7,10,11,12,13,14,15,16,37,38]}
1
+ {"version":3,"file":"zudoku.components.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/queryCache.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/queryClient.js","../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/hydration.js","../../../node_modules/.pnpm/@tanstack+react-query@5.74.3_react@19.1.0/node_modules/@tanstack/react-query/build/modern/HydrationBoundary.js","../src/lib/errors/ServerError.tsx","../../../node_modules/.pnpm/react-router@7.6.1_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/react-router/dist/development/dom-export.mjs","../src/lib/plugins/openapi/StaggeredRender.tsx","../src/lib/components/Bootstrap.tsx","../../../node_modules/.pnpm/zod@3.25.56/node_modules/zod/dist/esm/v4/core/core.js","../../../node_modules/.pnpm/zod@3.25.56/node_modules/zod/dist/esm/v4/core/util.js","../../../node_modules/.pnpm/zod@3.25.56/node_modules/zod/dist/esm/v4/core/errors.js","../../../node_modules/.pnpm/zod@3.25.56/node_modules/zod/dist/esm/v4/core/parse.js","../../../node_modules/.pnpm/zod@3.25.56/node_modules/zod/dist/esm/v4/core/regexes.js","../../../node_modules/.pnpm/zod@3.25.56/node_modules/zod/dist/esm/v4/core/checks.js","../../../node_modules/.pnpm/zod@3.25.56/node_modules/zod/dist/esm/v4/core/doc.js","../../../node_modules/.pnpm/zod@3.25.56/node_modules/zod/dist/esm/v4/core/versions.js","../../../node_modules/.pnpm/zod@3.25.56/node_modules/zod/dist/esm/v4/core/schemas.js","../../../node_modules/.pnpm/zod@3.25.56/node_modules/zod/dist/esm/v4/core/registries.js","../../../node_modules/.pnpm/zod@3.25.56/node_modules/zod/dist/esm/v4/core/api.js","../../../node_modules/.pnpm/zod@3.25.56/node_modules/zod/dist/esm/v4/classic/iso.js","../../../node_modules/.pnpm/zod@3.25.56/node_modules/zod/dist/esm/v4/classic/errors.js","../../../node_modules/.pnpm/zod@3.25.56/node_modules/zod/dist/esm/v4/classic/parse.js","../../../node_modules/.pnpm/zod@3.25.56/node_modules/zod/dist/esm/v4/classic/schemas.js","../src/lib/components/BuildCheck.tsx","../src/lib/util/useScrollToTop.ts","../src/lib/components/Footer.tsx","../src/lib/ui/Skeleton.tsx","../src/lib/components/Banner.tsx","../src/lib/components/navigation/ZudokuLogo.tsx","../src/lib/components/navigation/PoweredByZudoku.tsx","../src/lib/components/PageProgress.tsx","../src/lib/util/detectOS.ts","../src/lib/components/Search.tsx","../src/lib/components/ThemeSwitch.tsx","../src/lib/components/TopNavigation.tsx","../src/lib/components/MobileTopNavigation.tsx","../src/lib/components/Header.tsx","../src/lib/ui/Drawer.tsx","../src/lib/components/navigation/NavigationWrapper.tsx","../src/lib/components/navigation/Navigation.tsx","../src/lib/components/Main.tsx","../src/lib/components/Layout.tsx","../src/lib/components/ErrorPage.tsx","../src/lib/components/StatusPage.tsx","../../../node_modules/.pnpm/react-error-boundary@5.0.0_react@19.1.0/node_modules/react-error-boundary/dist/react-error-boundary.esm.js","../../../node_modules/.pnpm/nanoevents@9.1.0/node_modules/nanoevents/index.js","../src/lib/core/ZudokuContext.ts","../src/lib/errors/TopLevelError.tsx","../src/lib/util/requestIdleCallbackPolyfill.ts","../src/lib/components/context/ComponentsContext.tsx","../src/lib/components/context/RouterEventsEmitter.tsx","../src/lib/components/context/ZudokuProvider.tsx","../src/lib/components/Zudoku.tsx","../src/lib/components/index.ts"],"sourcesContent":["// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n client,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Set();\n this.#scopes = /* @__PURE__ */ new Map();\n this.#mutationId = 0;\n }\n #mutations;\n #scopes;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n this.#mutations.add(mutation);\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n scopedMutations.push(mutation);\n } else {\n this.#scopes.set(scope, [mutation]);\n }\n }\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n if (scopedMutations.length > 1) {\n const index = scopedMutations.indexOf(mutation);\n if (index !== -1) {\n scopedMutations.splice(index, 1);\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope);\n }\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const mutationsWithSameScope = this.#scopes.get(scope);\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) => m.state.status === \"pending\"\n );\n return !firstPendingMutation || firstPendingMutation === mutation;\n } else {\n return true;\n }\n }\n runNext(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const foundMutation = this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.notify({ type: \"removed\", mutation });\n });\n this.#mutations.clear();\n this.#scopes.clear();\n });\n }\n getAll() {\n return Array.from(this.#mutations);\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id;\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/infiniteQueryBehavior.ts\nimport { addToEnd, addToStart, ensureQueryFn } from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n let result = { pages: [], pageParams: [] };\n let currentPage = 0;\n const fetchFn = async () => {\n let cancelled = false;\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true;\n } else {\n context.signal.addEventListener(\"abort\", () => {\n cancelled = true;\n });\n }\n return context.signal;\n }\n });\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const queryFnContext = {\n client: context.client,\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const page = await queryFn(\n queryFnContext\n );\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n const remainingPages = pages ?? oldPages.length;\n do {\n const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n if (currentPage > 0 && param == null) {\n break;\n }\n result = await fetchPage(result, param);\n currentPage++;\n } while (currentPage < remainingPages);\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n client: context.client,\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return pages.length > 0 ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n ) : void 0;\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n}\nfunction hasNextPage(options, data) {\n if (!data) return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam) return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1) return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0) return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n /**\n * Imperative (non-reactive) way to retrieve data for a QueryKey.\n * Should only be used in callbacks or functions where reading the latest data is necessary, e.g. for optimistic updates.\n *\n * Hint: Do not use this function inside a component, because it won't receive updates.\n * Use `useQuery` to create a `QueryObserver` that subscribes to changes.\n */\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n const cachedData = query.state.data;\n if (cachedData === void 0) {\n return this.fetchQuery(options);\n }\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(\n options.queryHash\n )?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(\n {\n type: \"active\",\n ...filters\n },\n options\n );\n });\n }\n cancelQueries(filters, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters?.refetchType === \"none\") {\n return Promise.resolve();\n }\n return this.refetchQueries(\n {\n ...filters,\n type: filters?.refetchType ?? filters?.type ?? \"active\"\n },\n options\n );\n });\n }\n refetchQueries(filters, options = {}) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","// src/hydration.ts\nfunction defaultTransformerFn(data) {\n return data;\n}\nfunction dehydrateMutation(mutation) {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n ...mutation.options.scope && { scope: mutation.options.scope },\n ...mutation.meta && { meta: mutation.meta }\n };\n}\nfunction dehydrateQuery(query, serializeData, shouldRedactErrors) {\n return {\n state: {\n ...query.state,\n ...query.state.data !== void 0 && {\n data: serializeData(query.state.data)\n }\n },\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n ...query.state.status === \"pending\" && {\n promise: query.promise?.then(serializeData).catch((error) => {\n if (!shouldRedactErrors(error)) {\n return Promise.reject(error);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `A query that was dehydrated as pending ended up rejecting. [${query.queryHash}]: ${error}; The error will be redacted in production builds`\n );\n }\n return Promise.reject(new Error(\"redacted\"));\n })\n },\n ...query.meta && { meta: query.meta }\n };\n}\nfunction defaultShouldDehydrateMutation(mutation) {\n return mutation.state.isPaused;\n}\nfunction defaultShouldDehydrateQuery(query) {\n return query.state.status === \"success\";\n}\nfunction defaultShouldRedactErrors(_) {\n return true;\n}\nfunction dehydrate(client, options = {}) {\n const filterMutation = options.shouldDehydrateMutation ?? client.getDefaultOptions().dehydrate?.shouldDehydrateMutation ?? defaultShouldDehydrateMutation;\n const mutations = client.getMutationCache().getAll().flatMap(\n (mutation) => filterMutation(mutation) ? [dehydrateMutation(mutation)] : []\n );\n const filterQuery = options.shouldDehydrateQuery ?? client.getDefaultOptions().dehydrate?.shouldDehydrateQuery ?? defaultShouldDehydrateQuery;\n const shouldRedactErrors = options.shouldRedactErrors ?? client.getDefaultOptions().dehydrate?.shouldRedactErrors ?? defaultShouldRedactErrors;\n const serializeData = options.serializeData ?? client.getDefaultOptions().dehydrate?.serializeData ?? defaultTransformerFn;\n const queries = client.getQueryCache().getAll().flatMap(\n (query) => filterQuery(query) ? [dehydrateQuery(query, serializeData, shouldRedactErrors)] : []\n );\n return { mutations, queries };\n}\nfunction hydrate(client, dehydratedState, options) {\n if (typeof dehydratedState !== \"object\" || dehydratedState === null) {\n return;\n }\n const mutationCache = client.getMutationCache();\n const queryCache = client.getQueryCache();\n const deserializeData = options?.defaultOptions?.deserializeData ?? client.getDefaultOptions().hydrate?.deserializeData ?? defaultTransformerFn;\n const mutations = dehydratedState.mutations || [];\n const queries = dehydratedState.queries || [];\n mutations.forEach(({ state, ...mutationOptions }) => {\n mutationCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.mutations,\n ...options?.defaultOptions?.mutations,\n ...mutationOptions\n },\n state\n );\n });\n queries.forEach(({ queryKey, state, queryHash, meta, promise }) => {\n let query = queryCache.get(queryHash);\n const data = state.data === void 0 ? state.data : deserializeData(state.data);\n if (query) {\n if (query.state.dataUpdatedAt < state.dataUpdatedAt) {\n const { fetchStatus: _ignored, ...serializedState } = state;\n query.setState({\n ...serializedState,\n data\n });\n }\n } else {\n query = queryCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.queries,\n ...options?.defaultOptions?.queries,\n queryKey,\n queryHash,\n meta\n },\n // Reset fetch status to idle to avoid\n // query being stuck in fetching state upon hydration\n {\n ...state,\n data,\n fetchStatus: \"idle\"\n }\n );\n }\n if (promise) {\n const initialPromise = Promise.resolve(promise).then(deserializeData);\n void query.fetch(void 0, { initialPromise });\n }\n });\n}\nexport {\n defaultShouldDehydrateMutation,\n defaultShouldDehydrateQuery,\n dehydrate,\n hydrate\n};\n//# sourceMappingURL=hydration.js.map","\"use client\";\n\n// src/HydrationBoundary.tsx\nimport * as React from \"react\";\nimport { hydrate } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nvar hasProperty = (obj, key) => {\n return typeof obj === \"object\" && obj !== null && key in obj;\n};\nvar HydrationBoundary = ({\n children,\n options = {},\n state,\n queryClient\n}) => {\n const client = useQueryClient(queryClient);\n const [hydrationQueue, setHydrationQueue] = React.useState();\n const optionsRef = React.useRef(options);\n optionsRef.current = options;\n React.useMemo(() => {\n if (state) {\n if (typeof state !== \"object\") {\n return;\n }\n const queryCache = client.getQueryCache();\n const queries = state.queries || [];\n const newQueries = [];\n const existingQueries = [];\n for (const dehydratedQuery of queries) {\n const existingQuery = queryCache.get(dehydratedQuery.queryHash);\n if (!existingQuery) {\n newQueries.push(dehydratedQuery);\n } else {\n const hydrationIsNewer = dehydratedQuery.state.dataUpdatedAt > existingQuery.state.dataUpdatedAt || // RSC special serialized then-able chunks\n hasProperty(dehydratedQuery.promise, \"status\") && hasProperty(existingQuery.promise, \"status\") && dehydratedQuery.promise.status !== existingQuery.promise.status;\n const queryAlreadyQueued = hydrationQueue?.find(\n (query) => query.queryHash === dehydratedQuery.queryHash\n );\n if (hydrationIsNewer && (!queryAlreadyQueued || dehydratedQuery.state.dataUpdatedAt > queryAlreadyQueued.state.dataUpdatedAt)) {\n existingQueries.push(dehydratedQuery);\n }\n }\n }\n if (newQueries.length > 0) {\n hydrate(client, { queries: newQueries }, optionsRef.current);\n }\n if (existingQueries.length > 0) {\n setHydrationQueue(\n (prev) => prev ? [...prev, ...existingQueries] : existingQueries\n );\n }\n }\n }, [client, hydrationQueue, state]);\n React.useEffect(() => {\n if (hydrationQueue) {\n hydrate(client, { queries: hydrationQueue }, optionsRef.current);\n setHydrationQueue(void 0);\n }\n }, [client, hydrationQueue]);\n return children;\n};\nexport {\n HydrationBoundary\n};\n//# sourceMappingURL=HydrationBoundary.js.map","import { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function ServerError({ error }: { error: unknown }) {\n return <ErrorAlert error={error} />;\n}\n","/**\n * react-router v7.6.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport {\n FrameworkContext,\n RemixErrorBoundary,\n RouterProvider,\n createBrowserHistory,\n createClientRoutes,\n createClientRoutesWithHMRRevalidationOptOut,\n createRouter,\n decodeViaTurboStream,\n deserializeErrors,\n getHydrationData,\n getPatchRoutesOnNavigationFunction,\n getTurboStreamSingleFetchDataStrategy,\n hydrationRouteProperties,\n invariant,\n mapRouteProperties,\n useFogOFWarDiscovery\n} from \"./chunk-DQRVZFIR.mjs\";\n\n// lib/dom-export/dom-router-provider.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nfunction RouterProvider2(props) {\n return /* @__PURE__ */ React.createElement(RouterProvider, { flushSync: ReactDOM.flushSync, ...props });\n}\n\n// lib/dom-export/hydrated-router.tsx\nimport * as React2 from \"react\";\nvar ssrInfo = null;\nvar router = null;\nfunction initSsrInfo() {\n if (!ssrInfo && window.__reactRouterContext && window.__reactRouterManifest && window.__reactRouterRouteModules) {\n if (window.__reactRouterManifest.sri === true) {\n const importMap = document.querySelector(\"script[rr-importmap]\");\n if (importMap?.textContent) {\n try {\n window.__reactRouterManifest.sri = JSON.parse(\n importMap.textContent\n ).integrity;\n } catch (err) {\n console.error(\"Failed to parse import map\", err);\n }\n }\n }\n ssrInfo = {\n context: window.__reactRouterContext,\n manifest: window.__reactRouterManifest,\n routeModules: window.__reactRouterRouteModules,\n stateDecodingPromise: void 0,\n router: void 0,\n routerInitialized: false\n };\n }\n}\nfunction createHydratedRouter({\n unstable_getContext\n}) {\n initSsrInfo();\n if (!ssrInfo) {\n throw new Error(\n \"You must be using the SSR features of React Router in order to skip passing a `router` prop to `<RouterProvider>`\"\n );\n }\n let localSsrInfo = ssrInfo;\n if (!ssrInfo.stateDecodingPromise) {\n let stream = ssrInfo.context.stream;\n invariant(stream, \"No stream found for single fetch decoding\");\n ssrInfo.context.stream = void 0;\n ssrInfo.stateDecodingPromise = decodeViaTurboStream(stream, window).then((value) => {\n ssrInfo.context.state = value.value;\n localSsrInfo.stateDecodingPromise.value = true;\n }).catch((e) => {\n localSsrInfo.stateDecodingPromise.error = e;\n });\n }\n if (ssrInfo.stateDecodingPromise.error) {\n throw ssrInfo.stateDecodingPromise.error;\n }\n if (!ssrInfo.stateDecodingPromise.value) {\n throw ssrInfo.stateDecodingPromise;\n }\n let routes = createClientRoutes(\n ssrInfo.manifest.routes,\n ssrInfo.routeModules,\n ssrInfo.context.state,\n ssrInfo.context.ssr,\n ssrInfo.context.isSpaMode\n );\n let hydrationData = void 0;\n if (ssrInfo.context.isSpaMode) {\n let { loaderData } = ssrInfo.context.state;\n if (ssrInfo.manifest.routes.root?.hasLoader && loaderData && \"root\" in loaderData) {\n hydrationData = {\n loaderData: {\n root: loaderData.root\n }\n };\n }\n } else {\n hydrationData = getHydrationData(\n ssrInfo.context.state,\n routes,\n (routeId) => ({\n clientLoader: ssrInfo.routeModules[routeId]?.clientLoader,\n hasLoader: ssrInfo.manifest.routes[routeId]?.hasLoader === true,\n hasHydrateFallback: ssrInfo.routeModules[routeId]?.HydrateFallback != null\n }),\n window.location,\n window.__reactRouterContext?.basename,\n ssrInfo.context.isSpaMode\n );\n if (hydrationData && hydrationData.errors) {\n hydrationData.errors = deserializeErrors(hydrationData.errors);\n }\n }\n let router2 = createRouter({\n routes,\n history: createBrowserHistory(),\n basename: ssrInfo.context.basename,\n unstable_getContext,\n hydrationData,\n hydrationRouteProperties,\n mapRouteProperties,\n future: {\n unstable_middleware: ssrInfo.context.future.unstable_middleware\n },\n dataStrategy: getTurboStreamSingleFetchDataStrategy(\n () => router2,\n ssrInfo.manifest,\n ssrInfo.routeModules,\n ssrInfo.context.ssr,\n ssrInfo.context.basename\n ),\n patchRoutesOnNavigation: getPatchRoutesOnNavigationFunction(\n ssrInfo.manifest,\n ssrInfo.routeModules,\n ssrInfo.context.ssr,\n ssrInfo.context.routeDiscovery,\n ssrInfo.context.isSpaMode,\n ssrInfo.context.basename\n )\n });\n ssrInfo.router = router2;\n if (router2.state.initialized) {\n ssrInfo.routerInitialized = true;\n router2.initialize();\n }\n router2.createRoutesForHMR = /* spacer so ts-ignore does not affect the right hand of the assignment */\n createClientRoutesWithHMRRevalidationOptOut;\n window.__reactRouterDataRouter = router2;\n return router2;\n}\nfunction HydratedRouter(props) {\n if (!router) {\n router = createHydratedRouter({\n unstable_getContext: props.unstable_getContext\n });\n }\n let [criticalCss, setCriticalCss] = React2.useState(\n process.env.NODE_ENV === \"development\" ? ssrInfo?.context.criticalCss : void 0\n );\n if (process.env.NODE_ENV === \"development\") {\n if (ssrInfo) {\n window.__reactRouterClearCriticalCss = () => setCriticalCss(void 0);\n }\n }\n let [location, setLocation] = React2.useState(router.state.location);\n React2.useLayoutEffect(() => {\n if (ssrInfo && ssrInfo.router && !ssrInfo.routerInitialized) {\n ssrInfo.routerInitialized = true;\n ssrInfo.router.initialize();\n }\n }, []);\n React2.useLayoutEffect(() => {\n if (ssrInfo && ssrInfo.router) {\n return ssrInfo.router.subscribe((newState) => {\n if (newState.location !== location) {\n setLocation(newState.location);\n }\n });\n }\n }, [location]);\n invariant(ssrInfo, \"ssrInfo unavailable for HydratedRouter\");\n useFogOFWarDiscovery(\n router,\n ssrInfo.manifest,\n ssrInfo.routeModules,\n ssrInfo.context.ssr,\n ssrInfo.context.routeDiscovery,\n ssrInfo.context.isSpaMode\n );\n return (\n // This fragment is important to ensure we match the <ServerRouter> JSX\n // structure so that useId values hydrate correctly\n /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(\n FrameworkContext.Provider,\n {\n value: {\n manifest: ssrInfo.manifest,\n routeModules: ssrInfo.routeModules,\n future: ssrInfo.context.future,\n criticalCss,\n ssr: ssrInfo.context.ssr,\n isSpaMode: ssrInfo.context.isSpaMode,\n routeDiscovery: ssrInfo.context.routeDiscovery\n }\n },\n /* @__PURE__ */ React2.createElement(RemixErrorBoundary, { location }, /* @__PURE__ */ React2.createElement(RouterProvider2, { router }))\n ), /* @__PURE__ */ React2.createElement(React2.Fragment, null))\n );\n}\nexport {\n HydratedRouter,\n RouterProvider2 as RouterProvider\n};\n","import {\n Children,\n createContext,\n ReactNode,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\nexport const StaggeredRenderContext = createContext({ stagger: false });\n\nconst StaggeredRender = ({ children }: { children: ReactNode[] }) => {\n const { stagger } = useContext(StaggeredRenderContext);\n const [renderAll, setRenderAll] = useState(!stagger);\n\n useEffect(() => {\n if (renderAll) {\n return;\n }\n\n const idle = requestIdleCallback(() => {\n setRenderAll(true);\n });\n\n return () => cancelIdleCallback(idle);\n }, [renderAll]);\n\n return !renderAll ? Children.toArray(children).slice(0, 3) : children;\n};\n\nexport default StaggeredRender;\n","import {\n HydrationBoundary,\n QueryClient,\n QueryClientProvider,\n} from \"@tanstack/react-query\";\nimport { type HelmetData, HelmetProvider } from \"@zudoku/react-helmet-async\";\nimport { StrictMode } from \"react\";\nimport {\n type createBrowserRouter,\n type createStaticRouter,\n type StaticHandlerContext,\n StaticRouterProvider,\n} from \"react-router\";\nimport { RouterProvider } from \"react-router/dom\";\nimport { StaggeredRenderContext } from \"../plugins/openapi/StaggeredRender.js\";\nimport { BypassProtectedRoutesContext } from \"./context/BypassProtectedRoutesContext.js\";\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 1000 * 60 * 5,\n },\n },\n});\n\nconst Bootstrap = ({\n router,\n hydrate = false,\n}: {\n hydrate?: boolean;\n router: ReturnType<typeof createBrowserRouter>;\n}) => (\n <StrictMode>\n <QueryClientProvider client={queryClient}>\n <HydrationBoundary state={hydrate ? (window as any).DATA : undefined}>\n <BypassProtectedRoutesContext value={false}>\n <HelmetProvider>\n <StaggeredRenderContext.Provider value={{ stagger: !hydrate }}>\n <RouterProvider router={router} />\n </StaggeredRenderContext.Provider>\n </HelmetProvider>\n </BypassProtectedRoutesContext>\n </HydrationBoundary>\n </QueryClientProvider>\n </StrictMode>\n);\n\nconst BootstrapStatic = ({\n router,\n context,\n queryClient,\n helmetContext,\n bypassProtection = false,\n}: {\n helmetContext: HelmetData[\"context\"];\n context: StaticHandlerContext;\n queryClient: QueryClient;\n router: ReturnType<typeof createStaticRouter>;\n bypassProtection?: boolean;\n}) => (\n <StrictMode>\n <QueryClientProvider client={queryClient}>\n <HelmetProvider context={helmetContext}>\n <BypassProtectedRoutesContext value={bypassProtection}>\n <StaticRouterProvider router={router} context={context} />\n </BypassProtectedRoutesContext>\n </HelmetProvider>\n </QueryClientProvider>\n </StrictMode>\n);\n\nexport { Bootstrap, BootstrapStatic };\n","export /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n function init(inst, def) {\n var _a;\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod ?? {},\n enumerable: false,\n });\n (_a = inst._zod).traits ?? (_a.traits = new Set());\n inst._zod.traits.add(name);\n initializer(inst, def);\n // support prototype modifications\n for (const k in _.prototype) {\n if (!(k in inst))\n Object.defineProperty(inst, k, { value: _.prototype[k].bind(inst) });\n }\n inst._zod.constr = _;\n inst._zod.def = def;\n }\n // doesn't work if Parent has a constructor with arguments\n const Parent = params?.Parent ?? Object;\n class Definition extends Parent {\n }\n Object.defineProperty(Definition, \"name\", { value: name });\n function _(def) {\n var _a;\n const inst = params?.Parent ? new Definition() : this;\n init(inst, def);\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n for (const fn of inst._zod.deferred) {\n fn();\n }\n return inst;\n }\n Object.defineProperty(_, \"init\", { value: init });\n Object.defineProperty(_, Symbol.hasInstance, {\n value: (inst) => {\n if (params?.Parent && inst instanceof params.Parent)\n return true;\n return inst?._zod?.traits?.has(name);\n },\n });\n Object.defineProperty(_, \"name\", { value: name });\n return _;\n}\n////////////////////////////// UTILITIES ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n constructor() {\n super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n if (newConfig)\n Object.assign(globalConfig, newConfig);\n return globalConfig;\n}\n","// functions\nexport function assertEqual(val) {\n return val;\n}\nexport function assertNotEqual(val) {\n return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n throw new Error();\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n const values = Object.entries(entries)\n .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n .map(([_, v]) => v);\n return values;\n}\nexport function joinValues(array, separator = \"|\") {\n return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n if (typeof value === \"bigint\")\n return value.toString();\n return value;\n}\nexport function cached(getter) {\n const set = false;\n return {\n get value() {\n if (!set) {\n const value = getter();\n Object.defineProperty(this, \"value\", { value });\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n };\n}\nexport function nullish(input) {\n return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport function defineLazy(object, key, getter) {\n const set = false;\n Object.defineProperty(object, key, {\n get() {\n if (!set) {\n const value = getter();\n object[key] = value;\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n set(v) {\n Object.defineProperty(object, key, {\n value: v,\n // configurable: true,\n });\n // object[key] = v;\n },\n configurable: true,\n });\n}\nexport function assignProp(target, prop, value) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n}\nexport function getElementAtPath(obj, path) {\n if (!path)\n return obj;\n return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n const keys = Object.keys(promisesObj);\n const promises = keys.map((key) => promisesObj[key]);\n return Promise.all(promises).then((results) => {\n const resolvedObj = {};\n for (let i = 0; i < keys.length; i++) {\n resolvedObj[keys[i]] = results[i];\n }\n return resolvedObj;\n });\n}\nexport function randomString(length = 10) {\n const chars = \"abcdefghijklmnopqrstuvwxyz\";\n let str = \"\";\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * chars.length)];\n }\n return str;\n}\nexport function esc(str) {\n return JSON.stringify(str);\n}\nexport function isObject(data) {\n return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n try {\n const F = Function;\n new F(\"\");\n return true;\n }\n catch (_) {\n return false;\n }\n});\nfunction _isObject(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nexport function isPlainObject(o) {\n if (isObject(o) === false)\n return false;\n // modified constructor\n const ctor = o.constructor;\n if (ctor === undefined)\n return true;\n // modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false)\n return false;\n // ctor doesn't have static `isPrototypeOf`\n if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nexport function numKeys(data) {\n let keyCount = 0;\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n keyCount++;\n }\n }\n return keyCount;\n}\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isNaN(data) ? \"nan\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"function\":\n return \"function\";\n case \"bigint\":\n return \"bigint\";\n case \"symbol\":\n return \"symbol\";\n case \"object\":\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return \"promise\";\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return \"map\";\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return \"set\";\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return \"date\";\n }\n if (typeof File !== \"undefined\" && data instanceof File) {\n return \"file\";\n }\n return \"object\";\n default:\n throw new Error(`Unknown data type: ${t}`);\n }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n const cl = new inst._zod.constr(def ?? inst._zod.def);\n if (!def || params?.parent)\n cl._zod.parent = inst;\n return cl;\n}\nexport function normalizeParams(_params) {\n const params = _params;\n if (!params)\n return {};\n if (typeof params === \"string\")\n return { error: () => params };\n if (params?.message !== undefined) {\n if (params?.error !== undefined)\n throw new Error(\"Cannot specify both `message` and `error` params\");\n params.error = params.message;\n }\n delete params.message;\n if (typeof params.error === \"string\")\n return { ...params, error: () => params.error };\n return params;\n}\nexport function createTransparentProxy(getter) {\n let target;\n return new Proxy({}, {\n get(_, prop, receiver) {\n target ?? (target = getter());\n return Reflect.get(target, prop, receiver);\n },\n set(_, prop, value, receiver) {\n target ?? (target = getter());\n return Reflect.set(target, prop, value, receiver);\n },\n has(_, prop) {\n target ?? (target = getter());\n return Reflect.has(target, prop);\n },\n deleteProperty(_, prop) {\n target ?? (target = getter());\n return Reflect.deleteProperty(target, prop);\n },\n ownKeys(_) {\n target ?? (target = getter());\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(_, prop) {\n target ?? (target = getter());\n return Reflect.getOwnPropertyDescriptor(target, prop);\n },\n defineProperty(_, prop, descriptor) {\n target ?? (target = getter());\n return Reflect.defineProperty(target, prop, descriptor);\n },\n });\n}\nexport function stringifyPrimitive(value) {\n if (typeof value === \"bigint\")\n return value.toString() + \"n\";\n if (typeof value === \"string\")\n return `\"${value}\"`;\n return `${value}`;\n}\nexport function optionalKeys(shape) {\n return Object.keys(shape).filter((k) => {\n return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n });\n}\nexport const NUMBER_FORMAT_RANGES = {\n safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n int32: [-2147483648, 2147483647],\n uint32: [0, 4294967295],\n float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n const newShape = {};\n const currDef = schema._zod.def; //.shape;\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // pick key\n newShape[key] = currDef.shape[key];\n }\n return clone(schema, {\n ...schema._zod.def,\n shape: newShape,\n checks: [],\n });\n}\nexport function omit(schema, mask) {\n const newShape = { ...schema._zod.def.shape };\n const currDef = schema._zod.def; //.shape;\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n delete newShape[key];\n }\n return clone(schema, {\n ...schema._zod.def,\n shape: newShape,\n checks: [],\n });\n}\nexport function extend(schema, shape) {\n const def = {\n ...schema._zod.def,\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n checks: [], // delete existing checks\n };\n return clone(schema, def);\n}\nexport function merge(a, b) {\n return clone(a, {\n ...a._zod.def,\n get shape() {\n const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n catchall: b._zod.def.catchall,\n checks: [], // delete existing checks\n });\n}\nexport function partial(Class, schema, mask) {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in oldShape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n else {\n for (const key in oldShape) {\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n return clone(schema, {\n ...schema._zod.def,\n shape,\n checks: [],\n });\n}\nexport function required(Class, schema, mask) {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n else {\n for (const key in oldShape) {\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n return clone(schema, {\n ...schema._zod.def,\n shape,\n // optional: [],\n checks: [],\n });\n}\nexport function aborted(x, startIndex = 0) {\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i].continue !== true)\n return true;\n }\n return false;\n}\nexport function prefixIssues(path, issues) {\n return issues.map((iss) => {\n var _a;\n (_a = iss).path ?? (_a.path = []);\n iss.path.unshift(path);\n return iss;\n });\n}\nexport function unwrapMessage(message) {\n return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n const full = { ...iss, path: iss.path ?? [] };\n // for backwards compatibility\n if (!iss.message) {\n const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n unwrapMessage(ctx?.error?.(iss)) ??\n unwrapMessage(config.customError?.(iss)) ??\n unwrapMessage(config.localeError?.(iss)) ??\n \"Invalid input\";\n full.message = message;\n }\n // delete (full as any).def;\n delete full.inst;\n delete full.continue;\n if (!ctx?.reportInput) {\n delete full.input;\n }\n return full;\n}\nexport function getSizableOrigin(input) {\n if (input instanceof Set)\n return \"set\";\n if (input instanceof Map)\n return \"map\";\n if (input instanceof File)\n return \"file\";\n return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n if (Array.isArray(input))\n return \"array\";\n if (typeof input === \"string\")\n return \"string\";\n return \"unknown\";\n}\nexport function issue(...args) {\n const [iss, input, inst] = args;\n if (typeof iss === \"string\") {\n return {\n message: iss,\n code: \"custom\",\n input,\n inst,\n };\n }\n return { ...iss };\n}\nexport function cleanEnum(obj) {\n return Object.entries(obj)\n .filter(([k, _]) => {\n // return true if NaN, meaning it's not a number, thus a string key\n return Number.isNaN(Number.parseInt(k, 10));\n })\n .map((el) => el[1]);\n}\n// instanceof\nexport class Class {\n constructor(..._args) { }\n}\n","import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n inst.name = \"$ZodError\";\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod,\n enumerable: false,\n });\n Object.defineProperty(inst, \"issues\", {\n value: def,\n enumerable: false,\n });\n Object.defineProperty(inst, \"message\", {\n get() {\n return JSON.stringify(def, util.jsonStringifyReplacer, 2);\n },\n enumerable: true,\n // configurable: false,\n });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of error.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n}\nexport function formatError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n issue.errors.map((issues) => processError({ issues }));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues });\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues });\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(error);\n return fieldErrors;\n}\nexport function treeifyError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const result = { errors: [] };\n const processError = (error, path = []) => {\n var _a, _b;\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n // regular union error\n issue.errors.map((issues) => processError({ issues }, issue.path));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n result.errors.push(mapper(issue));\n continue;\n }\n let curr = result;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n if (typeof el === \"string\") {\n curr.properties ?? (curr.properties = {});\n (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n curr = curr.properties[el];\n }\n else {\n curr.items ?? (curr.items = []);\n (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n curr = curr.items[el];\n }\n if (terminal) {\n curr.errors.push(mapper(issue));\n }\n i++;\n }\n }\n }\n };\n processError(error);\n return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n * issues: [\n * {\n * expected: 'string',\n * code: 'invalid_type',\n * path: [ 'username' ],\n * message: 'Invalid input: expected string'\n * },\n * {\n * expected: 'number',\n * code: 'invalid_type',\n * path: [ 'favoriteNumbers', 1 ],\n * message: 'Invalid input: expected number'\n * }\n * ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n * ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n * ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(path) {\n const segs = [];\n for (const seg of path) {\n if (typeof seg === \"number\")\n segs.push(`[${seg}]`);\n else if (typeof seg === \"symbol\")\n segs.push(`[${JSON.stringify(String(seg))}]`);\n else if (/[^\\w$]/.test(seg))\n segs.push(`[${JSON.stringify(seg)}]`);\n else {\n if (segs.length)\n segs.push(\".\");\n segs.push(seg);\n }\n }\n return segs.join(\"\");\n}\nexport function prettifyError(error) {\n const lines = [];\n // sort by path length\n const issues = [...error.issues].sort((a, b) => a.path.length - b.path.length);\n // Process each issue\n for (const issue of issues) {\n lines.push(`✖ ${issue.message}`);\n if (issue.path?.length)\n lines.push(` → at ${toDotPath(issue.path)}`);\n }\n // Convert Map to formatted string\n return lines.join(\"\\n\");\n}\n","import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n if (result.issues.length) {\n const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n Error.captureStackTrace(e, _params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n if (result.issues.length) {\n const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n Error.captureStackTrace(e, params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n return result.issues.length\n ? {\n success: false,\n error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n return result.issues.length\n ? {\n success: false,\n error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\n","export const cuid = /^[cC][^\\s-]{8,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;\n/** Returns a regex for validating an RFC 4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n if (!version)\n return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/;\n return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const email = /^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const rfc5322Email = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nexport const _emoji = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nexport function emoji() {\n return new RegExp(_emoji, \"u\");\n}\nexport const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nexport const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/;\nexport const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^[A-Za-z0-9_-]*$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp =\n// /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)+([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])$/;\nexport const hostname = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces)\nexport const e164 = /^\\+(?:[0-9]){6,14}[0-9]$/;\nconst dateSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nexport const date = /*@__PURE__*/ new RegExp(`^${dateSource}$`);\nfunction timeSource(args) {\n // let regex = `\\\\d{2}:\\\\d{2}:\\\\d{2}`;\n let regex = `([01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d`;\n if (args.precision) {\n regex = `${regex}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n regex = `${regex}(\\\\.\\\\d+)?`;\n }\n return regex;\n}\nexport function time(args) {\n return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n let regex = `${dateSource}T${timeSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nexport const string = (params) => {\n const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^\\d+n?$/;\nexport const integer = /^\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?/i;\nexport const boolean = /true|false/i;\nconst _null = /null/i;\nexport { _null as null };\nconst _undefined = /undefined/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n","// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n var _a;\n inst._zod ?? (inst._zod = {});\n inst._zod.def = def;\n (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n number: \"number\",\n bigint: \"bigint\",\n object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n if (def.value < curr) {\n if (def.inclusive)\n bag.maximum = def.value;\n else\n bag.exclusiveMaximum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n if (def.value > curr) {\n if (def.inclusive)\n bag.minimum = def.value;\n else\n bag.exclusiveMinimum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n return;\n }\n payload.issues.push({\n origin: origin,\n code: \"too_small\",\n minimum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n var _a;\n (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n });\n inst._zod.check = (payload) => {\n if (typeof payload.value !== typeof def.value)\n throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n const isMultiple = typeof payload.value === \"bigint\"\n ? payload.value % def.value === BigInt(0)\n : util.floatSafeRemainder(payload.value, def.value) === 0;\n if (isMultiple)\n return;\n payload.issues.push({\n origin: typeof payload.value,\n code: \"not_multiple_of\",\n divisor: def.value,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n def.format = def.format || \"float64\";\n const isInt = def.format?.includes(\"int\");\n const origin = isInt ? \"int\" : \"number\";\n const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n if (isInt)\n bag.pattern = regexes.integer;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (isInt) {\n if (!Number.isInteger(input)) {\n // invalid_format issue\n // payload.issues.push({\n // expected: def.format,\n // format: def.format,\n // code: \"invalid_format\",\n // input,\n // inst,\n // });\n // invalid_type issue\n payload.issues.push({\n expected: origin,\n format: def.format,\n code: \"invalid_type\",\n input,\n inst,\n });\n return;\n // not_multiple_of issue\n // payload.issues.push({\n // code: \"not_multiple_of\",\n // origin: \"number\",\n // input,\n // inst,\n // divisor: 1,\n // });\n }\n if (!Number.isSafeInteger(input)) {\n if (input > 0) {\n // too_big\n payload.issues.push({\n input,\n code: \"too_big\",\n maximum: Number.MAX_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n else {\n // too_small\n payload.issues.push({\n input,\n code: \"too_small\",\n minimum: Number.MIN_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n return;\n }\n }\n if (input < minimum) {\n payload.issues.push({\n origin: \"number\",\n input: input,\n code: \"too_small\",\n minimum: minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (input < minimum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_small\",\n minimum: minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n };\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size <= def.maximum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_big\",\n maximum: def.maximum,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n };\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size >= def.minimum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_small\",\n minimum: def.minimum,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n };\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.size;\n bag.maximum = def.size;\n bag.size = def.size;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size === def.size)\n return;\n const tooBig = size > def.size;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n };\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length <= def.maximum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n };\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length >= def.minimum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n };\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.length;\n bag.maximum = def.length;\n bag.length = def.length;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length === def.length)\n return;\n const origin = util.getLengthableOrigin(input);\n const tooBig = length > def.length;\n payload.issues.push({\n origin,\n ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n if (def.pattern) {\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(def.pattern);\n }\n });\n (_a = inst._zod).check ?? (_a.check = (payload) => {\n if (!def.pattern)\n throw new Error(\"Not implemented.\");\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n inst,\n continue: !def.abort,\n });\n });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n $ZodCheckStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"regex\",\n input: payload.value,\n pattern: def.pattern.toString(),\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.lowercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.uppercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const escapedRegex = util.escapeRegex(def.includes);\n const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n def.pattern = pattern;\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.includes(def.includes, def.position))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"includes\",\n includes: def.includes,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.startsWith(def.prefix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"starts_with\",\n prefix: def.prefix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.endsWith(def.suffix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"ends_with\",\n suffix: def.suffix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n///////////////////////////////////\n///// $ZodCheckProperty /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(property, result.issues));\n }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n const result = def.schema._zod.run({\n value: payload.value[def.property],\n issues: [],\n }, {});\n if (result instanceof Promise) {\n return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n }\n handleCheckPropertyResult(result, payload, def.property);\n return;\n };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const mimeSet = new Set(def.mime);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.mime = def.mime;\n });\n inst._zod.check = (payload) => {\n if (mimeSet.has(payload.value.type))\n return;\n payload.issues.push({\n code: \"invalid_value\",\n values: def.mime,\n input: payload.value.type,\n path: [\"type\"],\n inst,\n });\n };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n payload.value = def.tx(payload.value);\n };\n});\n","export class Doc {\n constructor(args = []) {\n this.content = [];\n this.indent = 0;\n if (this)\n this.args = args;\n }\n indented(fn) {\n this.indent += 1;\n fn(this);\n this.indent -= 1;\n }\n write(arg) {\n if (typeof arg === \"function\") {\n arg(this, { execution: \"sync\" });\n arg(this, { execution: \"async\" });\n return;\n }\n const content = arg;\n const lines = content.split(\"\\n\").filter((x) => x);\n const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n for (const line of dedented) {\n this.content.push(line);\n }\n }\n compile() {\n const F = Function;\n const args = this?.args;\n const content = this?.content ?? [``];\n const lines = [...content.map((x) => ` ${x}`)];\n // console.log(lines.join(\"\\n\"));\n return new F(...args, lines.join(\"\\n\"));\n }\n}\n","export const version = {\n major: 4,\n minor: 0,\n patch: 0,\n};\n","import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n var _a;\n inst ?? (inst = {});\n inst._zod.id = def.type + \"_\" + util.randomString(10);\n inst._zod.def = def; // set _def property\n inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n inst._zod.version = version;\n const checks = [...(inst._zod.def.checks ?? [])];\n // if inst is itself a checks.$ZodCheck, run it as a check\n if (inst._zod.traits.has(\"$ZodCheck\")) {\n checks.unshift(inst);\n }\n //\n for (const ch of checks) {\n for (const fn of ch._zod.onattach) {\n fn(inst);\n }\n }\n if (checks.length === 0) {\n // deferred initializer\n // inst._zod.parse is not yet defined\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n inst._zod.deferred?.push(() => {\n inst._zod.run = inst._zod.parse;\n });\n }\n else {\n const runChecks = (payload, checks, ctx) => {\n let isAborted = util.aborted(payload);\n let asyncResult;\n for (const ch of checks) {\n if (ch._zod.when) {\n const shouldRun = ch._zod.when(payload);\n if (!shouldRun)\n continue;\n }\n else {\n if (isAborted) {\n continue;\n }\n }\n const currLen = payload.issues.length;\n const _ = ch._zod.check(payload);\n if (_ instanceof Promise && ctx?.async === false) {\n throw new core.$ZodAsyncError();\n }\n if (asyncResult || _ instanceof Promise) {\n asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n await _;\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n return;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n });\n }\n else {\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n continue;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n }\n }\n if (asyncResult) {\n return asyncResult.then(() => {\n return payload;\n });\n }\n return payload;\n };\n inst._zod.run = (payload, ctx) => {\n const result = inst._zod.parse(payload, ctx);\n if (result instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return result.then((result) => runChecks(result, checks, ctx));\n }\n return runChecks(result, checks, ctx);\n };\n }\n inst[\"~standard\"] = {\n validate: (value) => {\n try {\n const r = safeParse(inst, value);\n return r.success ? { value: r.data } : { issues: r.error?.issues };\n }\n catch (_) {\n return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n }\n },\n vendor: \"zod\",\n version: 1,\n };\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n inst._zod.parse = (payload, _) => {\n if (def.coerce)\n try {\n payload.value = String(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"string\")\n return payload;\n payload.issues.push({\n expected: \"string\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n // check initialization must come first\n checks.$ZodCheckStringFormat.init(inst, def);\n $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.guid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n if (def.version) {\n const versionMap = {\n v1: 1,\n v2: 2,\n v3: 3,\n v4: 4,\n v5: 5,\n v6: 6,\n v7: 7,\n v8: 8,\n };\n const v = versionMap[def.version];\n if (v === undefined)\n throw new Error(`Invalid UUID version: \"${def.version}\"`);\n def.pattern ?? (def.pattern = regexes.uuid(v));\n }\n else\n def.pattern ?? (def.pattern = regexes.uuid());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.email);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n try {\n const url = new URL(payload.value);\n if (def.hostname) {\n def.hostname.lastIndex = 0;\n if (!def.hostname.test(url.hostname)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid hostname\",\n pattern: regexes.hostname.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n if (def.protocol) {\n def.protocol.lastIndex = 0;\n if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid protocol\",\n pattern: def.protocol.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n return;\n }\n catch (_) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.emoji());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.nanoid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid2);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ulid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.xid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ksuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.datetime(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.date);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.time(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.duration);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv4);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv4`;\n });\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv6);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv6`;\n });\n inst._zod.check = (payload) => {\n try {\n new URL(`http://[${payload.value}]`);\n // return;\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"ipv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv4);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n const [address, prefix] = payload.value.split(\"/\");\n try {\n if (!prefix)\n throw new Error();\n const prefixNum = Number(prefix);\n if (`${prefixNum}` !== prefix)\n throw new Error();\n if (prefixNum < 0 || prefixNum > 128)\n throw new Error();\n new URL(`http://[${address}]`);\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"cidrv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64(data) {\n if (data === \"\")\n return true;\n if (data.length % 4 !== 0)\n return false;\n try {\n atob(data);\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64URL(data) {\n if (!regexes.base64url.test(data))\n return false;\n const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64url);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64url\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64URL(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.e164);\n $ZodStringFormat.init(inst, def);\n});\n////////////////////////////// ZodJWT //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n try {\n const tokensParts = token.split(\".\");\n if (tokensParts.length !== 3)\n return false;\n const [header] = tokensParts;\n const parsedHeader = JSON.parse(atob(header));\n if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n return false;\n if (!parsedHeader.alg)\n return false;\n if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidJWT(payload.value, def.alg))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"jwt\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Number(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n return payload;\n }\n const received = typeof input === \"number\"\n ? Number.isNaN(input)\n ? \"NaN\"\n : !Number.isFinite(input)\n ? \"Infinity\"\n : undefined\n : undefined;\n payload.issues.push({\n expected: \"number\",\n code: \"invalid_type\",\n input,\n inst,\n ...(received ? { received } : {}),\n });\n return payload;\n };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n checks.$ZodCheckNumberFormat.init(inst, def);\n $ZodNumber.init(inst, def); // no format checksp\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.boolean;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Boolean(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"boolean\")\n return payload;\n payload.issues.push({\n expected: \"boolean\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.bigint;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = BigInt(payload.value);\n }\n catch (_) { }\n const { value: input } = payload;\n if (typeof input === \"bigint\")\n return payload;\n payload.issues.push({\n expected: \"bigint\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n checks.$ZodCheckBigIntFormat.init(inst, def);\n $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const { value: input } = payload;\n if (typeof input === \"symbol\")\n return payload;\n payload.issues.push({\n expected: \"symbol\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.undefined;\n inst._zod.values = new Set([undefined]);\n inst._zod.parse = (payload, _ctx) => {\n const { value: input } = payload;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"undefined\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.null;\n inst._zod.values = new Set([null]);\n inst._zod.parse = (payload, _ctx) => {\n const { value: input } = payload;\n if (input === null)\n return payload;\n payload.issues.push({\n expected: \"null\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.issues.push({\n expected: \"never\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const { value: input } = payload;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"void\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce) {\n try {\n payload.value = new Date(payload.value);\n }\n catch (_err) { }\n }\n const input = payload.value;\n const isDate = input instanceof Date;\n const isValidDate = isDate && !Number.isNaN(input.getTime());\n if (isValidDate)\n return payload;\n payload.issues.push({\n expected: \"date\",\n code: \"invalid_type\",\n input,\n ...(isDate ? { received: \"Invalid Date\" } : {}),\n inst,\n });\n return payload;\n };\n});\nfunction handleArrayResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n expected: \"array\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = Array(input.length);\n const proms = [];\n for (let i = 0; i < input.length; i++) {\n const item = input[i];\n const result = def.element._zod.run({\n value: item,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n }\n else {\n handleArrayResult(result, payload, i);\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload; //handleArrayResultsAsync(parseResults, final);\n };\n});\nfunction handleObjectResult(result, final, key) {\n // if(isOptional)\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n final.value[key] = result.value;\n}\nfunction handleOptionalObjectResult(result, final, key, input) {\n if (result.issues.length) {\n // validation failed against value schema\n if (input[key] === undefined) {\n // if input was undefined, ignore the error\n if (key in input) {\n final.value[key] = undefined;\n }\n else {\n final.value[key] = result.value;\n }\n }\n else {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n }\n else if (result.value === undefined) {\n // validation returned `undefined`\n if (key in input)\n final.value[key] = undefined;\n }\n else {\n // non-undefined value\n final.value[key] = result.value;\n }\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodType.init(inst, def);\n const _normalized = util.cached(() => {\n const keys = Object.keys(def.shape);\n for (const k of keys) {\n if (!(def.shape[k] instanceof $ZodType)) {\n throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n }\n }\n const okeys = util.optionalKeys(def.shape);\n return {\n shape: def.shape,\n keys,\n keySet: new Set(keys),\n numKeys: keys.length,\n optionalKeys: new Set(okeys),\n };\n });\n util.defineLazy(inst._zod, \"propValues\", () => {\n const shape = def.shape;\n const propValues = {};\n for (const key in shape) {\n const field = shape[key]._zod;\n if (field.values) {\n propValues[key] ?? (propValues[key] = new Set());\n for (const v of field.values)\n propValues[key].add(v);\n }\n }\n return propValues;\n });\n const generateFastpass = (shape) => {\n const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n const { keys, optionalKeys } = _normalized.value;\n const parseStr = (key) => {\n const k = util.esc(key);\n return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n };\n doc.write(`const input = payload.value;`);\n const ids = Object.create(null);\n for (const key of keys) {\n ids[key] = util.randomString(15);\n }\n // A: preserve key order {\n doc.write(`const newResult = {}`);\n for (const key of keys) {\n if (optionalKeys.has(key)) {\n const id = ids[key];\n doc.write(`const ${id} = ${parseStr(key)};`);\n const k = util.esc(key);\n doc.write(`\n if (${id}.issues.length) {\n if (input[${k}] === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n payload.issues = payload.issues.concat(\n ${id}.issues.map((iss) => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}],\n }))\n );\n }\n } else if (${id}.value === undefined) {\n if (${k} in input) newResult[${k}] = undefined;\n } else {\n newResult[${k}] = ${id}.value;\n }\n `);\n }\n else {\n const id = ids[key];\n // const id = ids[key];\n doc.write(`const ${id} = ${parseStr(key)};`);\n doc.write(`\n if (${id}.issues.length) payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${util.esc(key)}, ...iss.path] : [${util.esc(key)}]\n })));`);\n doc.write(`newResult[${util.esc(key)}] = ${id}.value`);\n }\n }\n doc.write(`payload.value = newResult;`);\n doc.write(`return payload;`);\n const fn = doc.compile();\n return (payload, ctx) => fn(shape, payload, ctx);\n };\n let fastpass;\n const isObject = util.isObject;\n const jit = !core.globalConfig.jitless;\n const allowsEval = util.allowsEval;\n const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n const { catchall } = def;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n // always synchronous\n if (!fastpass)\n fastpass = generateFastpass(def.shape);\n payload = fastpass(payload, ctx);\n }\n else {\n payload.value = {};\n const shape = value.shape;\n for (const key of value.keys) {\n const el = shape[key];\n // do not add omitted optional keys\n // if (!(key in input)) {\n // if (optionalKeys.has(key)) continue;\n // payload.issues.push({\n // code: \"invalid_type\",\n // path: [key],\n // expected: \"nonoptional\",\n // note: `Missing required key: \"${key}\"`,\n // input,\n // inst,\n // });\n // }\n const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n const isOptional = el._zod.optin === \"optional\" && el._zod.optout === \"optional\";\n if (r instanceof Promise) {\n proms.push(r.then((r) => isOptional ? handleOptionalObjectResult(r, payload, key, input) : handleObjectResult(r, payload, key)));\n }\n else {\n if (isOptional) {\n handleOptionalObjectResult(r, payload, key, input);\n }\n else {\n handleObjectResult(r, payload, key);\n }\n }\n }\n }\n if (!catchall) {\n // return payload;\n return proms.length ? Promise.all(proms).then(() => payload) : payload;\n }\n const unrecognized = [];\n // iterate over input keys\n const keySet = value.keySet;\n const _catchall = catchall._zod;\n const t = _catchall.def.type;\n for (const key of Object.keys(input)) {\n if (keySet.has(key))\n continue;\n if (t === \"never\") {\n unrecognized.push(key);\n continue;\n }\n const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handleObjectResult(r, payload, key)));\n }\n else {\n handleObjectResult(r, payload, key);\n }\n }\n if (unrecognized.length) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n keys: unrecognized,\n input,\n inst,\n });\n }\n if (!proms.length)\n return payload;\n return Promise.all(proms).then(() => {\n return payload;\n });\n };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n for (const result of results) {\n if (result.issues.length === 0) {\n final.value = result.value;\n return final;\n }\n }\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => {\n if (def.options.every((o) => o._zod.values)) {\n return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n }\n return undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n if (def.options.every((o) => o._zod.pattern)) {\n const patterns = def.options.map((o) => o._zod.pattern);\n return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n }\n return undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n if (result.issues.length === 0)\n return result;\n results.push(result);\n }\n }\n if (!async)\n return handleUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleUnionResults(results, payload, inst, ctx);\n });\n };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n $ZodUnion.init(inst, def);\n const _super = inst._zod.parse;\n util.defineLazy(inst._zod, \"propValues\", () => {\n const propValues = {};\n for (const option of def.options) {\n const pv = option._zod.propValues;\n if (!pv || Object.keys(pv).length === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n for (const [k, v] of Object.entries(pv)) {\n if (!propValues[k])\n propValues[k] = new Set();\n for (const val of v) {\n propValues[k].add(val);\n }\n }\n }\n return propValues;\n });\n const disc = util.cached(() => {\n const opts = def.options;\n const map = new Map();\n for (const o of opts) {\n const values = o._zod.propValues[def.discriminator];\n if (!values || values.size === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n for (const v of values) {\n if (map.has(v)) {\n throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n }\n map.set(v, o);\n }\n }\n return map;\n });\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isObject(input)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"object\",\n input,\n inst,\n });\n return payload;\n }\n const opt = disc.value.get(input?.[def.discriminator]);\n if (opt) {\n return opt._zod.run(payload, ctx);\n }\n if (def.unionFallback) {\n return _super(payload, ctx);\n }\n // no matching discriminator\n payload.issues.push({\n code: \"invalid_union\",\n errors: [],\n note: \"No matching discriminator\",\n input,\n path: [def.discriminator],\n inst,\n });\n return payload;\n };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const { value: input } = payload;\n const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n const async = left instanceof Promise || right instanceof Promise;\n if (async) {\n return Promise.all([left, right]).then(([left, right]) => {\n return handleIntersectionResults(payload, left, right);\n });\n }\n return handleIntersectionResults(payload, left, right);\n };\n});\nfunction mergeValues(a, b) {\n // const aType = parse.t(a);\n // const bType = parse.t(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n if (a instanceof Date && b instanceof Date && +a === +b) {\n return { valid: true, data: a };\n }\n if (util.isPlainObject(a) && util.isPlainObject(b)) {\n const bKeys = Object.keys(b);\n const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return { valid: false, mergeErrorPath: [] };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n if (left.issues.length) {\n result.issues.push(...left.issues);\n }\n if (right.issues.length) {\n result.issues.push(...right.issues);\n }\n if (util.aborted(result))\n return result;\n const merged = mergeValues(left.value, right.value);\n if (!merged.valid) {\n throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n }\n result.value = merged.data;\n return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n $ZodType.init(inst, def);\n const items = def.items;\n const optStart = items.length - [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n input,\n inst,\n expected: \"tuple\",\n code: \"invalid_type\",\n });\n return payload;\n }\n payload.value = [];\n const proms = [];\n if (!def.rest) {\n const tooBig = input.length > items.length;\n const tooSmall = input.length < optStart - 1;\n if (tooBig || tooSmall) {\n payload.issues.push({\n input,\n inst,\n origin: \"array\",\n ...(tooBig ? { code: \"too_big\", maximum: items.length } : { code: \"too_small\", minimum: items.length }),\n });\n return payload;\n }\n }\n let i = -1;\n for (const item of items) {\n i++;\n if (i >= input.length)\n if (i >= optStart)\n continue;\n const result = item._zod.run({\n value: input[i],\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n if (def.rest) {\n const rest = input.slice(items.length);\n for (const el of rest) {\n i++;\n const result = def.rest._zod.run({\n value: el,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleTupleResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isPlainObject(input)) {\n payload.issues.push({\n expected: \"record\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (def.keyType._zod.values) {\n const values = def.keyType._zod.values;\n payload.value = {};\n for (const key of values) {\n if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }\n }\n }\n let unrecognized;\n for (const key in input) {\n if (!values.has(key)) {\n unrecognized = unrecognized ?? [];\n unrecognized.push(key);\n }\n }\n if (unrecognized && unrecognized.length > 0) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n input,\n inst,\n keys: unrecognized,\n });\n }\n }\n else {\n payload.value = {};\n for (const key of Reflect.ownKeys(input)) {\n if (key === \"__proto__\")\n continue;\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (keyResult.issues.length) {\n payload.issues.push({\n origin: \"record\",\n code: \"invalid_key\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n payload.value[keyResult.value] = keyResult.value;\n continue;\n }\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload;\n };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Map)) {\n payload.issues.push({\n expected: \"map\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n payload.value = new Map();\n for (const [key, value] of input) {\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n if (keyResult instanceof Promise || valueResult instanceof Promise) {\n proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }));\n }\n else {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n if (keyResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, keyResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_key\",\n input,\n inst,\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n if (valueResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, valueResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_element\",\n input,\n inst,\n key: key,\n issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Set)) {\n payload.issues.push({\n input,\n inst,\n expected: \"set\",\n code: \"invalid_type\",\n });\n return payload;\n }\n const proms = [];\n payload.value = new Set();\n for (const item of input) {\n const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleSetResult(result, payload)));\n }\n else\n handleSetResult(result, payload);\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleSetResult(result, final) {\n if (result.issues.length) {\n final.issues.push(...result.issues);\n }\n final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n $ZodType.init(inst, def);\n const values = util.getEnumValues(def.entries);\n inst._zod.values = new Set(values);\n inst._zod.pattern = new RegExp(`^(${values\n .filter((k) => util.propertyKeyTypes.has(typeof k))\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.values = new Set(def.values);\n inst._zod.pattern = new RegExp(`^(${def.values\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? o.toString() : String(o)))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values: def.values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input instanceof File)\n return payload;\n payload.issues.push({\n expected: \"file\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const _out = def.transform(payload.value, payload);\n if (_ctx.async) {\n const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n if (_out instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n payload.value = _out;\n return payload;\n };\n});\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === undefined) {\n return payload;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n });\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === null)\n return payload;\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n $ZodType.init(inst, def);\n // inst._zod.qin = \"true\";\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n /**\n * $ZodDefault always returns the default value immediately.\n * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe. */\n return payload;\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleDefaultResult(result, def));\n }\n return handleDefaultResult(result, def);\n };\n});\nfunction handleDefaultResult(payload, def) {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => {\n const v = def.innerType._zod.values;\n return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleNonOptionalResult(result, inst));\n }\n return handleNonOptionalResult(result, inst);\n };\n});\nfunction handleNonOptionalResult(payload, inst) {\n if (!payload.issues.length && payload.value === undefined) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: payload.value,\n inst,\n });\n }\n return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.issues.length === 0;\n return payload;\n });\n }\n payload.value = result.issues.length === 0;\n return payload;\n };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n });\n }\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"nan\",\n code: \"invalid_type\",\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handlePipeResult(left, def, ctx));\n }\n return handlePipeResult(left, def, ctx);\n };\n});\nfunction handlePipeResult(left, def, ctx) {\n if (util.aborted(left)) {\n return left;\n }\n return def.out._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then(handleReadonlyResult);\n }\n return handleReadonlyResult(result);\n };\n});\nfunction handleReadonlyResult(payload) {\n payload.value = Object.freeze(payload.value);\n return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n const regexParts = [];\n for (const part of def.parts) {\n if (part instanceof $ZodType) {\n if (!part._zod.pattern) {\n // if (!source)\n throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n }\n const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n if (!source)\n throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n regexParts.push(source.slice(start, end));\n }\n else if (part === null || util.primitiveTypes.has(typeof part)) {\n regexParts.push(util.escapeRegex(`${part}`));\n }\n else {\n throw new Error(`Invalid template literal part: ${part}`);\n }\n }\n inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"string\") {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"template_literal\",\n code: \"invalid_type\",\n });\n return payload;\n }\n inst._zod.pattern.lastIndex = 0;\n if (!inst._zod.pattern.test(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n code: \"invalid_format\",\n format: \"template_literal\",\n pattern: inst._zod.pattern.source,\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"innerType\", () => def.getter());\n util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType._zod.pattern);\n util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const inner = inst._zod.innerType;\n return inner._zod.run(payload, ctx);\n };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n checks.$ZodCheck.init(inst, def);\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _) => {\n return payload;\n };\n inst._zod.check = (payload) => {\n const input = payload.value;\n const r = def.fn(input);\n if (r instanceof Promise) {\n return r.then((r) => handleRefineResult(r, payload, input, inst));\n }\n handleRefineResult(r, payload, input, inst);\n return;\n };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n if (!result) {\n const _iss = {\n code: \"custom\",\n input,\n inst, // incorporates params.error into issue reporting\n path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n continue: !inst._zod.def.abort,\n // params: inst._zod.def.params,\n };\n if (inst._zod.def.params)\n _iss.params = inst._zod.def.params;\n payload.issues.push(util.issue(_iss));\n }\n}\n","export const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n constructor() {\n this._map = new WeakMap();\n this._idmap = new Map();\n }\n add(schema, ..._meta) {\n const meta = _meta[0];\n this._map.set(schema, meta);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n if (this._idmap.has(meta.id)) {\n throw new Error(`ID ${meta.id} already exists in the registry`);\n }\n this._idmap.set(meta.id, schema);\n }\n return this;\n }\n remove(schema) {\n this._map.delete(schema);\n return this;\n }\n get(schema) {\n // return this._map.get(schema) as any;\n // inherit metadata\n const p = schema._zod.parent;\n if (p) {\n const pm = { ...(this.get(p) ?? {}) };\n delete pm.id; // do not inherit id\n return { ...pm, ...this._map.get(schema) };\n }\n return this._map.get(schema);\n }\n has(schema) {\n return this._map.has(schema);\n }\n}\n// registries\nexport function registry() {\n return new $ZodRegistry();\n}\nexport const globalRegistry = /*@__PURE__*/ registry();\n","import * as checks from \"./checks.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\nexport function _string(Class, params) {\n return new Class({\n type: \"string\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedString(Class, params) {\n return new Class({\n type: \"string\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _email(Class, params) {\n return new Class({\n type: \"string\",\n format: \"email\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _guid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"guid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v4\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v6\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv7(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v7\",\n ...util.normalizeParams(params),\n });\n}\nexport function _url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _emoji(Class, params) {\n return new Class({\n type: \"string\",\n format: \"emoji\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _nanoid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"nanoid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid2(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid2\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ulid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ulid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _xid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"xid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ksuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ksuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _e164(Class, params) {\n return new Class({\n type: \"string\",\n format: \"e164\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _jwt(Class, params) {\n return new Class({\n type: \"string\",\n format: \"jwt\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDateTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"datetime\",\n check: \"string_format\",\n offset: false,\n local: false,\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDate(Class, params) {\n return new Class({\n type: \"string\",\n format: \"date\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _isoTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"time\",\n check: \"string_format\",\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDuration(Class, params) {\n return new Class({\n type: \"string\",\n format: \"duration\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _number(Class, params) {\n return new Class({\n type: \"number\",\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedNumber(Class, params) {\n return new Class({\n type: \"number\",\n coerce: true,\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _int(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"safeint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float64(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _int32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"int32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"uint32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _boolean(Class, params) {\n return new Class({\n type: \"boolean\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBoolean(Class, params) {\n return new Class({\n type: \"boolean\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _bigint(Class, params) {\n return new Class({\n type: \"bigint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBigint(Class, params) {\n return new Class({\n type: \"bigint\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _int64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"int64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"uint64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _symbol(Class, params) {\n return new Class({\n type: \"symbol\",\n ...util.normalizeParams(params),\n });\n}\nexport function _undefined(Class, params) {\n return new Class({\n type: \"undefined\",\n ...util.normalizeParams(params),\n });\n}\nexport function _null(Class, params) {\n return new Class({\n type: \"null\",\n ...util.normalizeParams(params),\n });\n}\nexport function _any(Class) {\n return new Class({\n type: \"any\",\n });\n}\nexport function _unknown(Class) {\n return new Class({\n type: \"unknown\",\n });\n}\nexport function _never(Class, params) {\n return new Class({\n type: \"never\",\n ...util.normalizeParams(params),\n });\n}\nexport function _void(Class, params) {\n return new Class({\n type: \"void\",\n ...util.normalizeParams(params),\n });\n}\nexport function _date(Class, params) {\n return new Class({\n type: \"date\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedDate(Class, params) {\n return new Class({\n type: \"date\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _nan(Class, params) {\n return new Class({\n type: \"nan\",\n ...util.normalizeParams(params),\n });\n}\nexport function _lt(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _lte(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\nexport function _gt(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _gte(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\nexport function _positive(params) {\n return _gt(0, params);\n}\n// negative\nexport function _negative(params) {\n return _lt(0, params);\n}\n// nonpositive\nexport function _nonpositive(params) {\n return _lte(0, params);\n}\n// nonnegative\nexport function _nonnegative(params) {\n return _gte(0, params);\n}\nexport function _multipleOf(value, params) {\n return new checks.$ZodCheckMultipleOf({\n check: \"multiple_of\",\n ...util.normalizeParams(params),\n value,\n });\n}\nexport function _maxSize(maximum, params) {\n return new checks.$ZodCheckMaxSize({\n check: \"max_size\",\n ...util.normalizeParams(params),\n maximum,\n });\n}\nexport function _minSize(minimum, params) {\n return new checks.$ZodCheckMinSize({\n check: \"min_size\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _size(size, params) {\n return new checks.$ZodCheckSizeEquals({\n check: \"size_equals\",\n ...util.normalizeParams(params),\n size,\n });\n}\nexport function _maxLength(maximum, params) {\n const ch = new checks.$ZodCheckMaxLength({\n check: \"max_length\",\n ...util.normalizeParams(params),\n maximum,\n });\n return ch;\n}\nexport function _minLength(minimum, params) {\n return new checks.$ZodCheckMinLength({\n check: \"min_length\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _length(length, params) {\n return new checks.$ZodCheckLengthEquals({\n check: \"length_equals\",\n ...util.normalizeParams(params),\n length,\n });\n}\nexport function _regex(pattern, params) {\n return new checks.$ZodCheckRegex({\n check: \"string_format\",\n format: \"regex\",\n ...util.normalizeParams(params),\n pattern,\n });\n}\nexport function _lowercase(params) {\n return new checks.$ZodCheckLowerCase({\n check: \"string_format\",\n format: \"lowercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uppercase(params) {\n return new checks.$ZodCheckUpperCase({\n check: \"string_format\",\n format: \"uppercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _includes(includes, params) {\n return new checks.$ZodCheckIncludes({\n check: \"string_format\",\n format: \"includes\",\n ...util.normalizeParams(params),\n includes,\n });\n}\nexport function _startsWith(prefix, params) {\n return new checks.$ZodCheckStartsWith({\n check: \"string_format\",\n format: \"starts_with\",\n ...util.normalizeParams(params),\n prefix,\n });\n}\nexport function _endsWith(suffix, params) {\n return new checks.$ZodCheckEndsWith({\n check: \"string_format\",\n format: \"ends_with\",\n ...util.normalizeParams(params),\n suffix,\n });\n}\nexport function _property(property, schema, params) {\n return new checks.$ZodCheckProperty({\n check: \"property\",\n property,\n schema,\n ...util.normalizeParams(params),\n });\n}\nexport function _mime(types, params) {\n return new checks.$ZodCheckMimeType({\n check: \"mime_type\",\n mime: types,\n ...util.normalizeParams(params),\n });\n}\nexport function _overwrite(tx) {\n return new checks.$ZodCheckOverwrite({\n check: \"overwrite\",\n tx,\n });\n}\n// normalize\nexport function _normalize(form) {\n return _overwrite((input) => input.normalize(form));\n}\n// trim\nexport function _trim() {\n return _overwrite((input) => input.trim());\n}\n// toLowerCase\nexport function _toLowerCase() {\n return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\nexport function _toUpperCase() {\n return _overwrite((input) => input.toUpperCase());\n}\nexport function _array(Class, element, params) {\n return new Class({\n type: \"array\",\n element,\n // get element() {\n // return element;\n // },\n ...util.normalizeParams(params),\n });\n}\nexport function _union(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n ...util.normalizeParams(params),\n });\n}\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n return new Class({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport function _intersection(Class, left, right) {\n return new Class({\n type: \"intersection\",\n left,\n right,\n });\n}\n// export function _tuple(\n// Class: util.SchemaClass<schemas.$ZodTuple>,\n// items: [],\n// params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new Class({\n type: \"tuple\",\n items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport function _record(Class, keyType, valueType, params) {\n return new Class({\n type: \"record\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _map(Class, keyType, valueType, params) {\n return new Class({\n type: \"map\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _set(Class, valueType, params) {\n return new Class({\n type: \"set\",\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _enum(Class, values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n // if (Array.isArray(values)) {\n // for (const value of values) {\n // entries[value] = value;\n // }\n // } else {\n // Object.assign(entries, values);\n // }\n // const entries: util.EnumLike = {};\n // for (const val of values) {\n // entries[val] = val;\n // }\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport function _literal(Class, value, params) {\n return new Class({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport function _file(Class, params) {\n return new Class({\n type: \"file\",\n ...util.normalizeParams(params),\n });\n}\nexport function _transform(Class, fn) {\n return new Class({\n type: \"transform\",\n transform: fn,\n });\n}\nexport function _optional(Class, innerType) {\n return new Class({\n type: \"optional\",\n innerType,\n });\n}\nexport function _nullable(Class, innerType) {\n return new Class({\n type: \"nullable\",\n innerType,\n });\n}\nexport function _default(Class, innerType, defaultValue) {\n return new Class({\n type: \"default\",\n innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport function _nonoptional(Class, innerType, params) {\n return new Class({\n type: \"nonoptional\",\n innerType,\n ...util.normalizeParams(params),\n });\n}\nexport function _success(Class, innerType) {\n return new Class({\n type: \"success\",\n innerType,\n });\n}\nexport function _catch(Class, innerType, catchValue) {\n return new Class({\n type: \"catch\",\n innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport function _pipe(Class, in_, out) {\n return new Class({\n type: \"pipe\",\n in: in_,\n out,\n });\n}\nexport function _readonly(Class, innerType) {\n return new Class({\n type: \"readonly\",\n innerType,\n });\n}\nexport function _templateLiteral(Class, parts, params) {\n return new Class({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport function _lazy(Class, getter) {\n return new Class({\n type: \"lazy\",\n getter,\n });\n}\nexport function _promise(Class, innerType) {\n return new Class({\n type: \"promise\",\n innerType,\n });\n}\nexport function _custom(Class, fn, _params) {\n const norm = util.normalizeParams(_params);\n norm.abort ?? (norm.abort = true); // default to abort:false\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...norm,\n });\n return schema;\n}\n// export function _refine<T>(\n// Class: util.SchemaClass<schemas.$ZodCustom>,\n// fn: (arg: NoInfer<T>) => util.MaybeAsync<unknown>,\n// _params: string | $ZodCustomParams = {}\n// ): checks.$ZodCheck<T> {\n// return _custom(Class, fn, _params);\n// }\n// same as _custom but deafults to abort:false\nexport function _refine(Class, fn, _params) {\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...util.normalizeParams(_params),\n });\n return schema;\n}\nexport function _stringbool(Classes, _params) {\n const { case: _case, error, truthy, falsy } = util.normalizeParams(_params);\n const trueValues = new Set(truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"]);\n const falseValues = new Set(falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"]);\n const _Pipe = Classes.Pipe ?? schemas.$ZodPipe;\n const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n const _Unknown = Classes.Unknown ?? schemas.$ZodUnknown;\n const inst = new _Unknown({\n type: \"unknown\",\n checks: [\n {\n _zod: {\n check: (ctx) => {\n if (typeof ctx.value === \"string\") {\n let data = ctx.value;\n if (_case !== \"sensitive\")\n data = data.toLowerCase();\n if (trueValues.has(data)) {\n ctx.value = true;\n }\n else if (falseValues.has(data)) {\n ctx.value = false;\n }\n else {\n ctx.issues.push({\n code: \"invalid_value\",\n expected: \"stringbool\",\n values: [...trueValues, ...falseValues],\n input: ctx.value,\n inst,\n });\n }\n }\n else {\n ctx.issues.push({\n code: \"invalid_type\",\n expected: \"string\",\n input: ctx.value,\n });\n }\n },\n def: {\n check: \"custom\",\n },\n onattach: [],\n },\n },\n ],\n error,\n });\n return new _Pipe({\n type: \"pipe\",\n in: inst,\n out: new _Boolean({\n type: \"boolean\",\n error,\n }),\n error,\n });\n}\n","import * as core from \"zod/v4/core\";\nimport * as schemas from \"./schemas.js\";\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n core.$ZodISODateTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function datetime(params) {\n return core._isoDateTime(ZodISODateTime, params);\n}\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n core.$ZodISODate.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function date(params) {\n return core._isoDate(ZodISODate, params);\n}\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n core.$ZodISOTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function time(params) {\n return core._isoTime(ZodISOTime, params);\n}\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n core.$ZodISODuration.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function duration(params) {\n return core._isoDuration(ZodISODuration, params);\n}\n","import * as core from \"zod/v4/core\";\nimport { $ZodError } from \"zod/v4/core\";\nconst initializer = (inst, issues) => {\n $ZodError.init(inst, issues);\n inst.name = \"ZodError\";\n Object.defineProperties(inst, {\n format: {\n value: (mapper) => core.formatError(inst, mapper),\n // enumerable: false,\n },\n flatten: {\n value: (mapper) => core.flattenError(inst, mapper),\n // enumerable: false,\n },\n addIssue: {\n value: (issue) => inst.issues.push(issue),\n // enumerable: false,\n },\n addIssues: {\n value: (issues) => inst.issues.push(...issues),\n // enumerable: false,\n },\n isEmpty: {\n get() {\n return inst.issues.length === 0;\n },\n // enumerable: false,\n },\n });\n // Object.defineProperty(inst, \"isEmpty\", {\n // get() {\n // return inst.issues.length === 0;\n // },\n // });\n};\nexport const ZodError = core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = core.$constructor(\"ZodError\", initializer, {\n Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n","import * as core from \"zod/v4/core\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\n","import * as core from \"zod/v4/core\";\nimport { util } from \"zod/v4/core\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n core.$ZodType.init(inst, def);\n inst.def = def;\n Object.defineProperty(inst, \"_def\", { value: def });\n // base methods\n inst.check = (...checks) => {\n return inst.clone({\n ...def,\n checks: [\n ...(def.checks ?? []),\n ...checks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n ],\n }\n // { parent: true }\n );\n };\n inst.clone = (def, params) => core.clone(inst, def, params);\n inst.brand = () => inst;\n inst.register = ((reg, meta) => {\n reg.add(inst, meta);\n return inst;\n });\n // parsing\n inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n inst.spa = inst.safeParseAsync;\n // refinements\n inst.refine = (check, params) => inst.check(refine(check, params));\n inst.superRefine = (refinement) => inst.check(superRefine(refinement));\n inst.overwrite = (fn) => inst.check(checks.overwrite(fn));\n // wrappers\n inst.optional = () => optional(inst);\n inst.nullable = () => nullable(inst);\n inst.nullish = () => optional(nullable(inst));\n inst.nonoptional = (params) => nonoptional(inst, params);\n inst.array = () => array(inst);\n inst.or = (arg) => union([inst, arg]);\n inst.and = (arg) => intersection(inst, arg);\n inst.transform = (tx) => pipe(inst, transform(tx));\n inst.default = (def) => _default(inst, def);\n inst.prefault = (def) => prefault(inst, def);\n // inst.coalesce = (def, params) => coalesce(inst, def, params);\n inst.catch = (params) => _catch(inst, params);\n inst.pipe = (target) => pipe(inst, target);\n inst.readonly = () => readonly(inst);\n // meta\n inst.describe = (description) => {\n const cl = inst.clone();\n core.globalRegistry.add(cl, { description });\n return cl;\n };\n Object.defineProperty(inst, \"description\", {\n get() {\n return core.globalRegistry.get(inst)?.description;\n },\n configurable: true,\n });\n inst.meta = (...args) => {\n if (args.length === 0) {\n return core.globalRegistry.get(inst);\n }\n const cl = inst.clone();\n core.globalRegistry.add(cl, args[0]);\n return cl;\n };\n // helpers\n inst.isOptional = () => inst.safeParse(undefined).success;\n inst.isNullable = () => inst.safeParse(null).success;\n return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n ZodType.init(inst, def);\n const bag = inst._zod.bag;\n inst.format = bag.format ?? null;\n inst.minLength = bag.minimum ?? null;\n inst.maxLength = bag.maximum ?? null;\n // validations\n inst.regex = (...args) => inst.check(checks.regex(...args));\n inst.includes = (...args) => inst.check(checks.includes(...args));\n inst.startsWith = (...args) => inst.check(checks.startsWith(...args));\n inst.endsWith = (...args) => inst.check(checks.endsWith(...args));\n inst.min = (...args) => inst.check(checks.minLength(...args));\n inst.max = (...args) => inst.check(checks.maxLength(...args));\n inst.length = (...args) => inst.check(checks.length(...args));\n inst.nonempty = (...args) => inst.check(checks.minLength(1, ...args));\n inst.lowercase = (params) => inst.check(checks.lowercase(params));\n inst.uppercase = (params) => inst.check(checks.uppercase(params));\n // transforms\n inst.trim = () => inst.check(checks.trim());\n inst.normalize = (...args) => inst.check(checks.normalize(...args));\n inst.toLowerCase = () => inst.check(checks.toLowerCase());\n inst.toUpperCase = () => inst.check(checks.toUpperCase());\n});\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n _ZodString.init(inst, def);\n inst.email = (params) => inst.check(core._email(ZodEmail, params));\n inst.url = (params) => inst.check(core._url(ZodURL, params));\n inst.jwt = (params) => inst.check(core._jwt(ZodJWT, params));\n inst.emoji = (params) => inst.check(core._emoji(ZodEmoji, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.uuid = (params) => inst.check(core._uuid(ZodUUID, params));\n inst.uuidv4 = (params) => inst.check(core._uuidv4(ZodUUID, params));\n inst.uuidv6 = (params) => inst.check(core._uuidv6(ZodUUID, params));\n inst.uuidv7 = (params) => inst.check(core._uuidv7(ZodUUID, params));\n inst.nanoid = (params) => inst.check(core._nanoid(ZodNanoID, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.cuid = (params) => inst.check(core._cuid(ZodCUID, params));\n inst.cuid2 = (params) => inst.check(core._cuid2(ZodCUID2, params));\n inst.ulid = (params) => inst.check(core._ulid(ZodULID, params));\n inst.base64 = (params) => inst.check(core._base64(ZodBase64, params));\n inst.base64url = (params) => inst.check(core._base64url(ZodBase64URL, params));\n inst.xid = (params) => inst.check(core._xid(ZodXID, params));\n inst.ksuid = (params) => inst.check(core._ksuid(ZodKSUID, params));\n inst.ipv4 = (params) => inst.check(core._ipv4(ZodIPv4, params));\n inst.ipv6 = (params) => inst.check(core._ipv6(ZodIPv6, params));\n inst.cidrv4 = (params) => inst.check(core._cidrv4(ZodCIDRv4, params));\n inst.cidrv6 = (params) => inst.check(core._cidrv6(ZodCIDRv6, params));\n inst.e164 = (params) => inst.check(core._e164(ZodE164, params));\n // iso\n inst.datetime = (params) => inst.check(iso.datetime(params));\n inst.date = (params) => inst.check(iso.date(params));\n inst.time = (params) => inst.check(iso.time(params));\n inst.duration = (params) => inst.check(iso.duration(params));\n});\nexport function string(params) {\n return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n core.$ZodStringFormat.init(inst, def);\n _ZodString.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmail.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodGUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodUUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodURL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n return core._url(ZodURL, params);\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmoji.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodNanoID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n return core._nanoid(ZodNanoID, params);\n}\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid(params) {\n return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID2.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodULID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodXID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodKSUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n return core._ipv4(ZodIPv4, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n core.$ZodCIDRv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n core.$ZodCIDRv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64URL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodE164.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodJWT.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n return core._jwt(ZodJWT, params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n core.$ZodNumber.init(inst, def);\n ZodType.init(inst, def);\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.int = (params) => inst.check(int(params));\n inst.safe = (params) => inst.check(int(params));\n inst.positive = (params) => inst.check(checks.gt(0, params));\n inst.nonnegative = (params) => inst.check(checks.gte(0, params));\n inst.negative = (params) => inst.check(checks.lt(0, params));\n inst.nonpositive = (params) => inst.check(checks.lte(0, params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n inst.step = (value, params) => inst.check(checks.multipleOf(value, params));\n // inst.finite = (params) => inst.check(core.finite(params));\n inst.finite = () => inst;\n const bag = inst._zod.bag;\n inst.minValue =\n Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;\n inst.maxValue =\n Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;\n inst.isInt = (bag.format ?? \"\").includes(\"int\") || Number.isSafeInteger(bag.multipleOf ?? 0.5);\n inst.isFinite = true;\n inst.format = bag.format ?? null;\n});\nexport function number(params) {\n return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n core.$ZodNumberFormat.init(inst, def);\n ZodNumber.init(inst, def);\n});\nexport function int(params) {\n return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n core.$ZodBoolean.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function boolean(params) {\n return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n core.$ZodBigInt.init(inst, def);\n ZodType.init(inst, def);\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n const bag = inst._zod.bag;\n inst.minValue = bag.minimum ?? null;\n inst.maxValue = bag.maximum ?? null;\n inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n core.$ZodBigIntFormat.init(inst, def);\n ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n core.$ZodSymbol.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function symbol(params) {\n return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n core.$ZodUndefined.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _undefined(params) {\n return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n core.$ZodNull.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _null(params) {\n return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n core.$ZodAny.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function any() {\n return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n core.$ZodUnknown.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function unknown() {\n return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n core.$ZodNever.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function never(params) {\n return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n core.$ZodVoid.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _void(params) {\n return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n core.$ZodDate.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n const c = inst._zod.bag;\n inst.minDate = c.minimum ? new Date(c.minimum) : null;\n inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n core.$ZodArray.init(inst, def);\n ZodType.init(inst, def);\n inst.element = def.element;\n inst.min = (minLength, params) => inst.check(checks.minLength(minLength, params));\n inst.nonempty = (params) => inst.check(checks.minLength(1, params));\n inst.max = (maxLength, params) => inst.check(checks.maxLength(maxLength, params));\n inst.length = (len, params) => inst.check(checks.length(len, params));\n inst.unwrap = () => inst.element;\n});\nexport function array(element, params) {\n return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n const shape = schema._zod.def.shape;\n return literal(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n core.$ZodObject.init(inst, def);\n ZodType.init(inst, def);\n util.defineLazy(inst, \"shape\", () => {\n return Object.fromEntries(Object.entries(inst._zod.def.shape));\n });\n inst.keyof = () => _enum(Object.keys(inst._zod.def.shape));\n inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall: catchall });\n inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n // inst.nonstrict = () => inst.clone({ ...inst._zod.def, catchall: api.unknown() });\n inst.loose = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });\n inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined });\n inst.extend = (incoming) => {\n return util.extend(inst, incoming);\n };\n inst.merge = (other) => util.merge(inst, other);\n inst.pick = (mask) => util.pick(inst, mask);\n inst.omit = (mask) => util.omit(inst, mask);\n inst.partial = (...args) => util.partial(ZodOptional, inst, args[0]);\n inst.required = (...args) => util.required(ZodNonOptional, inst, args[0]);\n});\nexport function object(shape, params) {\n const def = {\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n ...util.normalizeParams(params),\n };\n return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n catchall: never(),\n ...util.normalizeParams(params),\n });\n}\n// looseObject\nexport function looseObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n catchall: unknown(),\n ...util.normalizeParams(params),\n });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n core.$ZodUnion.init(inst, def);\n ZodType.init(inst, def);\n inst.options = def.options;\n});\nexport function union(options, params) {\n return new ZodUnion({\n type: \"union\",\n options: options,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n // const [options, params] = args;\n return new ZodDiscriminatedUnion({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n core.$ZodIntersection.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function intersection(left, right) {\n return new ZodIntersection({\n type: \"intersection\",\n left: left,\n right: right,\n });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n core.$ZodTuple.init(inst, def);\n ZodType.init(inst, def);\n inst.rest = (rest) => inst.clone({\n ...inst._zod.def,\n rest: rest,\n });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof core.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new ZodTuple({\n type: \"tuple\",\n items: items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n core.$ZodRecord.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\n// type alksjf = core.output<core.$ZodRecordKey>;\nexport function partialRecord(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType: union([keyType, never()]),\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n core.$ZodMap.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function map(keyType, valueType, params) {\n return new ZodMap({\n type: \"map\",\n keyType: keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n core.$ZodSet.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n return new ZodSet({\n type: \"set\",\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n core.$ZodEnum.init(inst, def);\n ZodType.init(inst, def);\n inst.enum = def.entries;\n inst.options = Object.values(def.entries);\n const keys = new Set(Object.keys(def.entries));\n inst.extract = (values, params) => {\n const newEntries = {};\n for (const value of values) {\n if (keys.has(value)) {\n newEntries[value] = def.entries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n inst.exclude = (values, params) => {\n const newEntries = { ...def.entries };\n for (const value of values) {\n if (keys.has(value)) {\n delete newEntries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n});\nfunction _enum(values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n core.$ZodLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst.values = new Set(def.values);\n Object.defineProperty(inst, \"value\", {\n get() {\n if (def.values.length > 1) {\n throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n }\n return def.values[0];\n },\n });\n});\nexport function literal(value, params) {\n return new ZodLiteral({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n core.$ZodFile.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (size, params) => inst.check(core._minSize(size, params));\n inst.max = (size, params) => inst.check(core._maxSize(size, params));\n inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n core.$ZodTransform.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = inst);\n _issue.continue ?? (_issue.continue = true);\n payload.issues.push(util.issue(_issue));\n }\n };\n const output = def.transform(payload.value, payload);\n if (output instanceof Promise) {\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n payload.value = output;\n return payload;\n };\n});\nexport function transform(fn) {\n return new ZodTransform({\n type: \"transform\",\n transform: fn,\n });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n core.$ZodOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n return new ZodOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n core.$ZodNullable.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n return new ZodNullable({\n type: \"nullable\",\n innerType: innerType,\n });\n}\n// nullish\nexport function nullish(innerType) {\n return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n core.$ZodDefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n return new ZodDefault({\n type: \"default\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n core.$ZodPrefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n return new ZodPrefault({\n type: \"prefault\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n core.$ZodNonOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n return new ZodNonOptional({\n type: \"nonoptional\",\n innerType: innerType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n core.$ZodSuccess.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n return new ZodSuccess({\n type: \"success\",\n innerType: innerType,\n });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n core.$ZodCatch.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n return new ZodCatch({\n type: \"catch\",\n innerType: innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n core.$ZodNaN.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function nan(params) {\n return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n core.$ZodPipe.init(inst, def);\n ZodType.init(inst, def);\n inst.in = def.in;\n inst.out = def.out;\n});\nexport function pipe(in_, out) {\n return new ZodPipe({\n type: \"pipe\",\n in: in_,\n out: out,\n // ...util.normalizeParams(params),\n });\n}\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n core.$ZodReadonly.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function readonly(innerType) {\n return new ZodReadonly({\n type: \"readonly\",\n innerType: innerType,\n });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n core.$ZodTemplateLiteral.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function templateLiteral(parts, params) {\n return new ZodTemplateLiteral({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n core.$ZodLazy.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n return new ZodLazy({\n type: \"lazy\",\n getter: getter,\n });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n core.$ZodPromise.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n return new ZodPromise({\n type: \"promise\",\n innerType: innerType,\n });\n}\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n core.$ZodCustom.init(inst, def);\n ZodType.init(inst, def);\n});\n// custom checks\nexport function check(fn, params) {\n const ch = new core.$ZodCheck({\n check: \"custom\",\n ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function custom(fn, _params) {\n return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn, params) {\n const ch = check((payload) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = ch);\n _issue.continue ?? (_issue.continue = !ch._zod.def.abort);\n payload.issues.push(util.issue(_issue));\n }\n };\n return fn(payload.value, payload);\n }, params);\n return ch;\n}\nfunction _instanceof(cls, params = {\n error: `Input not instance of ${cls.name}`,\n}) {\n const inst = new ZodCustom({\n type: \"custom\",\n check: \"custom\",\n fn: (data) => data instanceof cls,\n abort: true,\n ...util.normalizeParams(params),\n });\n inst._zod.bag.Class = cls;\n return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n Pipe: ZodPipe,\n Boolean: ZodBoolean,\n Unknown: ZodUnknown,\n}, ...args);\nexport function json(params) {\n const jsonSchema = lazy(() => {\n return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n });\n return jsonSchema;\n}\n// preprocess\n// /** @deprecated Use `z.pipe()` and `z.transform()` instead. */\nexport function preprocess(fn, schema) {\n return pipe(transform(fn), schema);\n}\n","import { useQuery } from \"@tanstack/react-query\";\nimport { CircleFadingArrowUpIcon, LoaderCircleIcon } from \"lucide-react\";\nimport { z } from \"zod/v4\";\nimport { Button } from \"../ui/Button.js\";\n\nconst BuildStatusSchema = z.object({\n buildId: z.string(),\n timestamp: z.string(),\n status: z.enum([\"in-progress\", \"success\", \"failed\"]),\n});\n\nexport const BuildCheck = ({\n buildId,\n endpoint = \"/__zuplo/docs\",\n}: {\n buildId?: string;\n endpoint?: string;\n}) => {\n const buildStatusQuery = useQuery({\n queryKey: [\"zuplo-build-check\", buildId, endpoint],\n refetchInterval: 3000,\n enabled:\n typeof buildId !== \"undefined\" &&\n import.meta.env.ZUPLO_ENVIRONMENT_TYPE === \"WORKING_COPY\",\n retry: false,\n queryFn: () =>\n fetch(endpoint, { signal: AbortSignal.timeout(2000) })\n .then((res) => {\n if (!res.ok) throw new Error(\"Failed to fetch build status\");\n return res.json();\n })\n .then((data) => BuildStatusSchema.parse(data)),\n });\n\n if (\n buildStatusQuery.isError ||\n !buildStatusQuery.data ||\n buildStatusQuery.data.buildId === buildId\n ) {\n return null;\n }\n\n const isCompleted = buildStatusQuery.data.status === \"success\";\n\n return (\n <div className=\"fixed flex flex-col gap-3 p-4 rounded-xl w-96 border z-20 bg-background left-0 right-0 top-4 mx-auto shadow-lg\">\n {isCompleted ? (\n <div className=\"flex flex-row items-center gap-2\">\n <CircleFadingArrowUpIcon size={16} />\n <span className=\"text-sm\">New version available</span>\n </div>\n ) : (\n <div className=\"flex flex-row items-center gap-2\">\n <LoaderCircleIcon size={16} className=\"animate-spin\" />\n <span className=\"text-sm\">Building new version...</span>\n </div>\n )}\n <span className=\"text-xs\">\n {!isCompleted\n ? \"A new version of the developer portal will be available soon.\"\n : \"To see the new version, reload the page now.\"}\n </span>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"w-full\"\n onClick={() => {\n window.location.reload();\n }}\n >\n Reload\n </Button>\n </div>\n );\n};\n","import { useEffect, useRef } from \"react\";\nimport { useLocation } from \"react-router\";\n\nexport const useScrollToTop = () => {\n const location = useLocation();\n const previousPath = useRef(location.pathname);\n\n useEffect(() => {\n const isNewPage = previousPath.current !== location.pathname;\n const hasAnchor = location.hash !== \"\";\n\n if (isNewPage && !hasAnchor) {\n window.scrollTo(0, 0);\n }\n\n previousPath.current = location.pathname;\n }, [location.pathname, location.hash]);\n};\n","import { ExternalLink as ExternalLinkIcon } from \"lucide-react\";\nimport type { CSSProperties, ReactNode } from \"react\";\nimport type { FooterSocialIcons } from \"../../config/validators/validate.js\";\nimport { cn } from \"../util/cn.js\";\nimport { AnchorLink } from \"./AnchorLink.js\";\nimport { useZudoku } from \"./index.js\";\nimport { Slot } from \"./Slot.js\";\n\nconst SocialIcon = ({\n icon,\n}: {\n icon: (typeof FooterSocialIcons)[number] | ReactNode;\n}) => {\n if (typeof icon === \"string\") {\n return (\n <img\n src={`https://cdn.simpleicons.org/${icon}/000000/ffffff`}\n className=\"size-5\"\n alt={icon}\n />\n );\n }\n return icon;\n};\n\nconst isExternalUrl = (href: string) => /^https?:/.test(href);\n\nexport const Footer = () => {\n const { page } = useZudoku();\n const footer = page?.footer;\n\n if (!footer) return null;\n\n return (\n <footer className=\"border-t bg-background\">\n <div className=\"mx-auto max-w-screen-2xl px-4 lg:px-8 py-8 pt-20\">\n <div\n className={cn(\"flex flex-row gap-8\", {\n \"justify-center\": !footer.position || footer.position === \"center\",\n \"justify-start\": footer.position === \"start\",\n \"justify-end\": footer.position === \"end\",\n })}\n >\n <Slot.Target name=\"footer-before\" />\n {footer.columns && (\n <div\n className=\"w-full md:max-w-screen-md grid grid-cols-[1fr_1fr] gap-8 md:grid-cols-[repeat(var(--columns),minmax(0,1fr))]\"\n style={{ \"--columns\": footer.columns.length } as CSSProperties}\n >\n {footer.columns.map((column) => (\n <div\n className={cn({\n \"justify-self-center\":\n !column.position || column.position === \"center\",\n \"justify-self-start\": column.position === \"start\",\n \"justify-self-end\": column.position === \"end\",\n })}\n key={column.title}\n >\n <span className=\"text-sm font-semibold\">{column.title}</span>\n <ul className=\"mt-4 space-y-2\">\n {column.links.map((link) => {\n const className =\n \"flex flex-row gap-1 items-center text-sm text-muted-foreground hover:text-accent-foreground\";\n\n return (\n <li key={link.href + link.label}>\n {isExternalUrl(link.href) ? (\n <a\n href={link.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={className}\n >\n <span>{link.label}</span>\n <ExternalLinkIcon size={12} />\n </a>\n ) : (\n <AnchorLink to={link.href} className={className}>\n <span>{link.label}</span>\n </AnchorLink>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n ))}\n </div>\n )}\n <Slot.Target name=\"footer-after\" />\n </div>\n <div\n className={cn(\n \"flex items-center justify-between\",\n footer.columns && \"border-t mt-8 pt-8\",\n )}\n >\n {footer.logo && (\n <>\n <img\n src={footer.logo.src.light}\n alt={footer.logo.alt}\n className=\"w-8 dark:hidden\"\n style={{ width: footer.logo.width }}\n />\n <img\n src={footer.logo.src.dark}\n alt={footer.logo.alt}\n className=\"w-8 hidden dark:block\"\n style={{ width: footer.logo.width }}\n />\n </>\n )}\n {footer.copyright && (\n <p className=\"text-sm text-muted-foreground\">{footer.copyright}</p>\n )}\n <div className=\"flex items-center gap-2\">\n {footer.social?.map((social) => (\n <a\n key={social.href}\n href={social.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"w-auto gap-2 flex text-muted-foreground hover:text-accent-foreground\"\n >\n <SocialIcon icon={social.icon} />\n {social.label}\n </a>\n ))}\n </div>\n </div>\n </div>\n </footer>\n );\n};\n","import { cn } from \"../util/cn.js\";\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","import { CircleXIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { cn } from \"../util/cn.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\n\nconst COLOR_MAP = {\n info: \"bg-blue-500\",\n note: \"bg-gray-500\",\n tip: \"bg-green-600\",\n caution: \"bg-orange-500\",\n danger: \"bg-rose-500\",\n} as const;\n\nexport const Banner = () => {\n const { page } = useZudoku();\n const [isBannerOpen, setIsBannerOpen] = useState(true);\n\n if (!page?.banner || !isBannerOpen) {\n return <style>{`:root { --banner-height: 0px; }`}</style>;\n }\n\n const mappedColor =\n page.banner.color && page.banner.color in COLOR_MAP\n ? COLOR_MAP[page.banner.color as keyof typeof COLOR_MAP]\n : !page.banner.color\n ? \"bg-primary\"\n : undefined;\n\n const style = !mappedColor ? { backgroundColor: page.banner.color } : {};\n\n return (\n <div\n className={cn(\n \"relative text-primary-foreground text-sm font-medium px-4 py-2 flex gap-2 items-center lg:h-(--banner-height)\",\n mappedColor,\n )}\n data-pagefind-ignore=\"all\"\n style={style}\n >\n <div className=\"w-full\">{page.banner.message}</div>\n {page.banner.dismissible && (\n <button\n type=\"button\"\n className=\"md:absolute md:end-4 -m-1.5 p-1.5 hover:bg-accent-foreground/10 rounded-md\"\n onClick={() => setIsBannerOpen(false)}\n >\n <CircleXIcon size={16} />\n </button>\n )}\n </div>\n );\n};\n","import * as React from \"react\";\n\nconst ZudokuLogo = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 132 100\"\n fill=\"none\"\n {...props}\n >\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M80.092 2.963A4.66 4.66 0 0 1 84.449 0h34.049c6.325 0 10.835 6.135 8.948 12.172L116.653 46.71a4.688 4.688 0 0 1-4.474 3.29H75c-5.178 0-7.813 4.687-9.375 9.374-1.288 3.864-11.07 28.963-14.467 37.662A4.66 4.66 0 0 1 46.801 100H12.75c-6.324 0-10.834-6.134-8.947-12.171l10.793-34.54A4.688 4.688 0 0 1 19.071 50H56.25c5.178 0 7.813-4.687 9.375-9.375 1.288-3.864 11.07-28.962 14.467-37.662Z\"\n clipRule=\"evenodd\"\n />\n <path\n fill=\"currentColor\"\n d=\"M83.54 57.813a7.813 7.813 0 0 0-7.316 5.07L63.888 95.777c-.766 2.043.744 4.222 2.926 4.222h36.828c5.211 0 9.875-3.232 11.704-8.11l8.821-23.522c1.915-5.107-1.861-10.555-7.315-10.555H83.539ZM29.17 0a12.5 12.5 0 0 0-11.704 8.111l-8.82 23.521c-1.915 5.107 1.86 10.556 7.315 10.556h33.312a7.813 7.813 0 0 0 7.316-5.07L68.924 4.223C69.691 2.18 68.18 0 65.998 0H29.17Z\"\n />\n </svg>\n);\n\nZudokuLogo.displayName = \"ZudokuLogo\";\n\nexport default ZudokuLogo;\n","import { ChevronRightIcon } from \"lucide-react\";\nimport { cn } from \"../../util/cn.js\";\nimport ZudokuLogo from \"./ZudokuLogo.js\";\nimport ZuploLogo from \"./ZuploLogo.js\";\n\nexport const PoweredByZudoku = ({ className }: { className?: string }) => (\n <a\n href={import.meta.env.IS_ZUPLO ? \"https://zuplo.com\" : \"https://zudoku.dev\"}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n \"flex justify-between items-center w-full border border-transparent hover:border-border rounded-full hover:shadow-xs h-7 px-3 text-nowrap hover:bg-muted/80 transition-all\",\n className,\n )}\n >\n <div className=\"opacity-70 hover:opacity-100 transition-opacity gap-1.5 text-[11px] font-medium rounded-full h-7 flex items-center text-nowrap\">\n {import.meta.env.IS_ZUPLO ? (\n <ZuploLogo className=\"w-3.5 h-3.5 dark:fill-white\" />\n ) : (\n <ZudokuLogo className=\"w-3.5 h-3.5 dark:fill-white\" />\n )}\n powered by {import.meta.env.IS_ZUPLO ? \"Zuplo\" : \"Zudoku\"}\n </div>\n <div className=\"text-xs font-medium opacity-70 hover:text-foreground transition-colors cursor-pointer\">\n <ChevronRightIcon\n size={12}\n absoluteStrokeWidth\n strokeWidth={1.5}\n className=\"rtl:rotate-180\"\n />\n </div>\n </a>\n);\n","import { useNProgress } from \"@tanem/react-nprogress\";\nimport { useEffect, useState } from \"react\";\nimport { useNavigation } from \"react-router\";\n\nexport const PageProgress = () => {\n const navigation = useNavigation();\n const isNavigating = navigation.state === \"loading\";\n // delay the animation to avoid flickering\n const [isAnimating, setIsAnimating] = useState(false);\n\n useEffect(() => {\n const timer = setTimeout(() => setIsAnimating(isNavigating), 200);\n\n return () => clearTimeout(timer);\n }, [isNavigating]);\n\n const { isFinished, progress } = useNProgress({ isAnimating });\n\n return (\n <div\n className=\"absolute w-0 left-0 right-0 bottom-[-1px] h-[2px] bg-primary transition-all duration-300 ease-in-out\"\n style={{\n opacity: isFinished ? 0 : 1,\n width: isFinished ? 0 : `${progress * 100}%`,\n }}\n />\n );\n};\n","export function detectOS() {\n const userAgent = navigator.userAgent.toLowerCase();\n\n if (userAgent.includes(\"win\")) return \"Windows\";\n if (userAgent.includes(\"mac\")) return \"macOS\";\n if (userAgent.includes(\"linux\")) return \"Linux\";\n\n return undefined;\n}\n","import { SearchIcon } from \"lucide-react\";\nimport { Suspense, useCallback, useEffect, useState } from \"react\";\nimport { isSearchPlugin } from \"../core/plugins.js\";\nimport { detectOS } from \"../util/detectOS.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\n\nexport const Search = ({ className }: { className?: string }) => {\n const ctx = useZudoku();\n const [isOpen, setIsOpen] = useState(false);\n\n const onClose = useCallback(() => setIsOpen(false), []);\n\n useEffect(() => {\n if (isOpen) {\n return;\n }\n\n function onKeyDown(event: KeyboardEvent) {\n if (event.key === \"k\" && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n setIsOpen(true);\n }\n }\n\n window.addEventListener(\"keydown\", onKeyDown);\n\n return () => {\n window.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [isOpen, setIsOpen]);\n\n const searchPlugin = ctx.plugins.find(isSearchPlugin);\n\n if (!searchPlugin) {\n return null;\n }\n\n return (\n <div className={className}>\n <button\n type=\"button\"\n onClick={() => setIsOpen(true)}\n className=\"flex items-center border border-input hover:bg-accent hover:text-accent-foreground p-4 relative h-8 justify-start rounded-lg bg-background text-sm text-muted-foreground shadow-none w-full sm:w-72\"\n >\n <div className=\"flex items-center gap-2 grow\">\n <SearchIcon size={14} />\n Search\n </div>\n <ClientOnly>\n <KbdShortcut />\n </ClientOnly>\n </button>\n <Suspense fallback={null}>\n {searchPlugin.renderSearch({\n isOpen,\n onClose,\n })}\n </Suspense>\n </div>\n );\n};\n\nconst KbdShortcut = () => {\n const os = detectOS();\n return (\n <kbd className=\"absolute end-1.5 hidden h-5 select-none items-center gap-1 rounded-sm border bg-muted px-1.5 font-mono text-[11px] font-medium opacity-100 sm:flex\">\n {os === \"macOS\" ? \"⌘\" : \"Ctrl\"}+K\n </kbd>\n );\n};\n","import { MoonIcon, SunIcon } from \"lucide-react\";\nimport { useTheme } from \"next-themes\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { cn } from \"../util/cn.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\n\nexport const ThemeSwitch = () => {\n const { resolvedTheme, setTheme } = useTheme();\n\n return (\n <ClientOnly fallback={<Button variant=\"ghost\" size=\"icon\" />}>\n <button\n type=\"button\"\n className=\"flex rounded-full border p-0.5 gap-0.5 group\"\n onClick={() => setTheme(resolvedTheme === \"dark\" ? \"light\" : \"dark\")}\n aria-label={\n resolvedTheme === \"dark\"\n ? \"Switch to light mode\"\n : \"Switch to dark mode\"\n }\n >\n <div\n className={cn(\n \"border border-transparent rounded-full p-0.5 [&>svg>circle]:transition-colors [&>svg>path]:transition-transform transition-all [&>svg>path]:duration-200 [&>svg>circle]:duration-500 [&>svg>circle]:fill-transparent\",\n resolvedTheme === \"light\" && \"border-border bg-muted\",\n resolvedTheme === \"dark\" &&\n \"group-hover:[&>svg>path]:scale-110 group-hover:[&>svg>path]:-translate-x-[1px] group-hover:[&>svg>path]:-translate-y-[1px] group-hover:rotate-[15deg] \",\n )}\n >\n <SunIcon size={16} />\n </div>\n <div\n className={cn(\n \"border border-transparent rounded-full p-0.5 transition-transform transform-gpu duration-500\",\n resolvedTheme === \"dark\" &&\n \"border-border bg-muted [&>svg>path]:fill-white [&>svg>path]:stroke-transparent\",\n resolvedTheme === \"light\" &&\n \"group-hover:rotate-[-10deg] [&>svg>path]:stroke-currentColor\",\n )}\n >\n <MoonIcon size={16} />\n </div>\n </button>\n </ClientOnly>\n );\n};\n","import { cx } from \"class-variance-authority\";\nimport { deepEqual } from \"fast-equals\";\nimport { Suspense } from \"react\";\nimport { NavLink } from \"react-router\";\nimport { type NavigationItem } from \"../../config/validators/NavigationSchema.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport { joinUrl } from \"../util/joinUrl.js\";\nimport { useCurrentNavigation, useZudoku } from \"./context/ZudokuContext.js\";\nimport { isHiddenItem, traverseNavigationItem } from \"./navigation/utils.js\";\nimport { Slot } from \"./Slot.js\";\n\nexport const TopNavigation = () => {\n const { navigation } = useZudoku();\n const { isAuthenticated } = useAuth();\n\n const filteredItems = navigation.filter(isHiddenItem(isAuthenticated));\n\n if (filteredItems.length === 0 || import.meta.env.MODE === \"standalone\") {\n return <style>{`:root { --top-nav-height: 0px; }`}</style>;\n }\n\n return (\n <Suspense>\n <div className=\"items-center justify-between px-8 h-(--top-nav-height) hidden lg:flex text-sm relative\">\n <nav className=\"text-sm\">\n <ul className=\"flex flex-row items-center gap-8\">\n {filteredItems.map((item) => (\n <li key={item.label + item.type}>\n <TopNavItem {...item} />\n </li>\n ))}\n </ul>\n </nav>\n <Slot.Target name=\"top-navigation-side\" />\n </div>\n {/* <PageProgress /> */}\n </Suspense>\n );\n};\n\nconst getPathForItem = (item: NavigationItem): string => {\n switch (item.type) {\n case \"doc\":\n return joinUrl(item.path);\n case \"link\":\n return item.to;\n case \"category\": {\n if (item.link?.path) {\n return joinUrl(item.link.path);\n }\n\n return (\n traverseNavigationItem(item, (child) => {\n if (child.type !== \"category\") {\n return getPathForItem(child);\n }\n }) ?? \"\"\n );\n }\n case \"custom-page\":\n return item.path;\n }\n};\n\nexport const TopNavItem = (item: NavigationItem) => {\n const currentNav = useCurrentNavigation();\n const isActiveTopNavItem = deepEqual(currentNav.topNavItem, item);\n\n const path = getPathForItem(item);\n\n return (\n // We don't use isActive here because it has to be inside the navigation,\n // the top nav id doesn't necessarily start with the navigation id\n <NavLink\n viewTransition\n to={path}\n className={({ isActive: isActiveNavLink, isPending }) => {\n const isActive = isActiveNavLink || isActiveTopNavItem;\n return cx(\n \"flex items-center gap-2 lg:py-3.5 font-medium -mb-px transition duration-150 delay-75 relative\",\n isActive || isPending\n ? [\n \"text-foreground\",\n // underline with view transition animation\n \"after:content-[''] after:absolute after:bottom-0 after:left-0 after:right-0\",\n \"after:h-0.5 after:bg-primary\",\n isActive && \"after:[view-transition-name:top-nav-underline]\",\n isPending && \"after:bg-primary/25\",\n ]\n : \"text-foreground/75 hover:text-foreground\",\n );\n }}\n >\n {item.icon && <item.icon size={16} className=\"align-[-0.125em]\" />}\n {item.label}\n </NavLink>\n );\n};\n","import { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { MenuIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport {\n Drawer,\n DrawerContent,\n DrawerTitle,\n DrawerTrigger,\n} from \"../ui/Drawer.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { PoweredByZudoku } from \"./navigation/PoweredByZudoku.js\";\nimport { isHiddenItem } from \"./navigation/utils.js\";\nimport { PageProgress } from \"./PageProgress.js\";\nimport { Search } from \"./Search.js\";\nimport { Slot } from \"./Slot.js\";\nimport { ThemeSwitch } from \"./ThemeSwitch.js\";\nimport { TopNavItem } from \"./TopNavigation.js\";\n\nexport const MobileTopNavigation = () => {\n const { navigation, options } = useZudoku();\n const { isAuthenticated } = useAuth();\n const [drawerOpen, setDrawerOpen] = useState(false);\n\n const filteredItems = navigation.filter(isHiddenItem(isAuthenticated));\n\n return (\n <Drawer\n direction={options.page?.dir === \"rtl\" ? \"left\" : \"right\"}\n open={drawerOpen}\n onOpenChange={(open) => setDrawerOpen(open)}\n >\n <div className=\"flex lg:hidden justify-self-end\">\n <DrawerTrigger className=\"lg:hidden\">\n <MenuIcon size={22} />\n </DrawerTrigger>\n <PageProgress />\n </div>\n <DrawerContent\n className=\"lg:hidden h-[100dvh] end-0 start-auto w-[320px] rounded-none\"\n aria-describedby={undefined}\n >\n <div className=\"p-4 overflow-y-auto overscroll-none h-full flex flex-col justify-between\">\n <div>\n <VisuallyHidden>\n <DrawerTitle>Navigation</DrawerTitle>\n </VisuallyHidden>\n <Search className=\"flex p-4\" />\n <ul className=\"flex flex-col items-center gap-4 p-4\">\n <li className=\"empty:hidden\">\n <Slot.Target name=\"top-navigation-side\" />\n </li>\n <li>\n <ThemeSwitch />\n </li>\n {filteredItems.map((item) => (\n <li key={item.label}>\n <button type=\"button\" onClick={() => setDrawerOpen(false)}>\n <TopNavItem {...item} />\n </button>\n </li>\n ))}\n </ul>\n </div>\n {options.page?.showPoweredBy !== false && (\n <PoweredByZudoku className=\"grow-0 justify-center gap-1\" />\n )}\n </div>\n </DrawerContent>\n </Drawer>\n );\n};\n","import { memo } from \"react\";\nimport { Link } from \"react-router\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { Skeleton } from \"zudoku/ui/Skeleton.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport {\n isProfileMenuPlugin,\n type ProfileNavigationItem,\n} from \"../core/plugins.js\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"../ui/DropdownMenu.js\";\nimport { cn } from \"../util/cn.js\";\nimport { joinUrl } from \"../util/joinUrl.js\";\nimport { Banner } from \"./Banner.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { MobileTopNavigation } from \"./MobileTopNavigation.js\";\nimport { PageProgress } from \"./PageProgress.js\";\nimport { Search } from \"./Search.js\";\nimport { Slot } from \"./Slot.js\";\nimport { ThemeSwitch } from \"./ThemeSwitch.js\";\nimport { TopNavigation } from \"./TopNavigation.js\";\n\nconst RecursiveMenu = ({ item }: { item: ProfileNavigationItem }) => {\n return item.children ? (\n <DropdownMenuSub key={item.label}>\n <DropdownMenuSubTrigger>{item.label}</DropdownMenuSubTrigger>\n <DropdownMenuPortal>\n <DropdownMenuSubContent>\n {item.children.map((item, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <RecursiveMenu key={i} item={item} />\n ))}\n </DropdownMenuSubContent>\n </DropdownMenuPortal>\n </DropdownMenuSub>\n ) : (\n <Link to={item.path ?? \"\"}>\n <DropdownMenuItem key={item.label} className=\"flex gap-2\">\n {item.icon && (\n <item.icon size={16} strokeWidth={1} absoluteStrokeWidth />\n )}\n {item.label}\n </DropdownMenuItem>\n </Link>\n );\n};\n\nexport const Header = memo(function HeaderInner() {\n const auth = useAuth();\n const { isAuthenticated, profile, isAuthEnabled } = useAuth();\n const context = useZudoku();\n const { page, plugins, options } = context;\n\n const accountItems = plugins\n .filter((p) => isProfileMenuPlugin(p))\n .flatMap((p) => p.getProfileMenuItems(context))\n .sort((i) => i.weight ?? 0);\n\n const logoLightSrc = page?.logo\n ? /https?:\\/\\//.test(page.logo.src.light)\n ? page.logo.src.light\n : joinUrl(options.basePath, page.logo.src.light)\n : undefined;\n const logoDarkSrc = page?.logo\n ? /https?:\\/\\//.test(page.logo.src.dark)\n ? page.logo.src.dark\n : joinUrl(options.basePath, page.logo.src.dark)\n : undefined;\n\n const borderBottom = \"inset-shadow-[0_-1px_0_0_var(--border)]\";\n\n return (\n <header className=\"sticky lg:top-0 z-10 bg-background/80 backdrop-blur w-full\">\n <Banner />\n <div className={cn(borderBottom, \"relative\")}>\n <PageProgress />\n <div className=\"max-w-screen-2xl mx-auto flex items-center justify-between h-(--top-header-height) px-4 lg:px-8 border-transparent\">\n <div className=\"flex\">\n <Link to=\"/\">\n <div className=\"flex items-center gap-3.5\">\n {page?.logo && (\n <>\n <img\n src={logoLightSrc}\n alt={page.logo.alt ?? page.pageTitle}\n style={{ width: page.logo.width }}\n className=\"max-h-(--top-header-height) dark:hidden\"\n loading=\"lazy\"\n />\n <img\n src={logoDarkSrc}\n alt={page.logo.alt ?? page.pageTitle}\n style={{ width: page.logo.width }}\n className=\"max-h-(--top-header-height) hidden dark:block\"\n loading=\"lazy\"\n />\n </>\n )}\n <span className=\"font-semibold text-2xl\">\n {page?.pageTitle}\n </span>\n </div>\n </Link>\n </div>\n\n <div className=\"absolute inset-x-0 justify-center items-center hidden lg:flex w-full pointer-events-none\">\n <Search className=\"pointer-events-auto\" />\n </div>\n\n <div className=\"flex items-center gap-8\">\n <MobileTopNavigation />\n <div className=\"hidden lg:flex items-center justify-self-end text-sm gap-2\">\n <Slot.Target name=\"head-navigation-start\" />\n {isAuthEnabled && (\n <ClientOnly\n fallback={<Skeleton className=\"rounded-sm h-5 w-24 mr-4\" />}\n >\n {!isAuthenticated ? (\n <Button variant=\"ghost\" onClick={() => auth.login()}>\n Login\n </Button>\n ) : (\n Object.values(accountItems).length > 0 && (\n <DropdownMenu modal={false}>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\">\n {profile?.name ?? \"My Account\"}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"w-56\">\n <DropdownMenuLabel>\n {profile?.name ? `${profile.name}` : \"My Account\"}\n {profile?.email && (\n <div className=\"font-normal text-muted-foreground\">\n {profile.email}\n </div>\n )}\n </DropdownMenuLabel>\n {accountItems.filter((i) => i.category === \"top\")\n .length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter((i) => i.category === \"top\")\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n {accountItems.filter(\n (i) => !i.category || i.category === \"middle\",\n ).length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter(\n (i) => !i.category || i.category === \"middle\",\n )\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n {accountItems.filter((i) => i.category === \"bottom\")\n .length > 0 && <DropdownMenuSeparator />}\n {accountItems\n .filter((i) => i.category === \"bottom\")\n .map((i) => (\n <RecursiveMenu key={i.label} item={i} />\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n )}\n </ClientOnly>\n )}\n <Slot.Target name=\"head-navigation-end\" />\n <ThemeSwitch />\n </div>\n </div>\n </div>\n </div>\n <div className={cn(\"hidden lg:block\", borderBottom)}>\n <div className=\"max-w-screen-2xl mx-auto border-transparent relative\">\n <Slot.Target name=\"top-navigation-before\" />\n <TopNavigation />\n <Slot.Target name=\"top-navigation-after\" />\n </div>\n </div>\n </header>\n );\n});\n","import * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport { cn } from \"../util/cn.js\";\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n <DrawerPrimitive.Root\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n);\nDrawer.displayName = \"Drawer\";\n\nconst DrawerTrigger: typeof DrawerPrimitive.Trigger = DrawerPrimitive.Trigger;\n\nconst DrawerPortal: typeof DrawerPrimitive.Portal = DrawerPrimitive.Portal;\n\nconst DrawerClose: typeof DrawerPrimitive.Close = DrawerPrimitive.Close;\n\nconst DrawerOverlay: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay> &\n React.RefAttributes<React.ElementRef<typeof DrawerPrimitive.Overlay>>\n> = React.forwardRef(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n {...props}\n />\n));\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerContent: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content> & {\n hideBar?: boolean;\n } & React.RefAttributes<React.ElementRef<typeof DrawerPrimitive.Content>>\n> = React.forwardRef(\n ({ className, children, hideBar = true, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background\",\n className,\n )}\n {...props}\n >\n {!hideBar && (\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n )}\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n ),\n);\n\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className)}\n {...props}\n />\n);\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n);\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title> &\n React.RefAttributes<React.ElementRef<typeof DrawerPrimitive.Title>>\n> = React.forwardRef(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description> &\n React.RefAttributes<React.ElementRef<typeof DrawerPrimitive.Description>>\n> = React.forwardRef(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerOverlay,\n DrawerPortal,\n DrawerTitle,\n DrawerTrigger,\n};\n","import { useEffect, useRef, type PropsWithChildren } from \"react\";\nimport { cn } from \"../../util/cn.js\";\nimport { scrollIntoViewIfNeeded } from \"../../util/scrollIntoViewIfNeeded.js\";\nimport { useZudoku } from \"../context/ZudokuContext.js\";\nimport { PoweredByZudoku } from \"./PoweredByZudoku.js\";\n\nexport const NavigationWrapper = ({\n children,\n className,\n}: PropsWithChildren<{\n className?: string;\n}>) => {\n const { options } = useZudoku();\n const navRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const active = navRef.current?.querySelector('[aria-current=\"page\"]');\n scrollIntoViewIfNeeded(active ?? null);\n }, []);\n\n return (\n <div className=\"grid sticky top-(--header-height) lg:h-[calc(100vh-var(--header-height))] grid-rows-[1fr_min-content] border-r\">\n <nav\n ref={navRef}\n className={cn(\n \"hidden max-w-[calc(var(--side-nav-width)+var(--padding-nav-item))] lg:flex scrollbar flex-col overflow-y-auto shrink-0 text-sm pe-3 ps-4 lg:ps-8\",\n \"-mx-(--padding-nav-item) pb-[8vh] pt-(--padding-content-top) scroll-pt-2 gap-1\",\n // Revert the padding/margin on the first child\n \"-mt-2.5\",\n className,\n )}\n style={{\n maskImage: `linear-gradient(180deg, transparent 1%, rgba(0, 0, 0, 1) 20px, rgba(0, 0, 0, 1) 90%, transparent 99%)`,\n }}\n >\n {children}\n </nav>\n\n <div className=\"bg-background border-t p-2 mx-5 gap-2 items-center mt-2 drop-shadow-[0_-3px_1px_rgba(0,0,0,0.015)] hidden lg:[&:has(>_:nth-child(1):last-child)]:flex\">\n {options.page?.showPoweredBy !== false && <PoweredByZudoku />}\n </div>\n </div>\n );\n};\n\nNavigationWrapper.displayName = \"NavigationWrapper\";\n","import { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport type { NavigationItem as NavigationItemType } from \"../../../config/validators/NavigationSchema.js\";\nimport { DrawerContent, DrawerTitle } from \"../../ui/Drawer.js\";\nimport { Slot } from \"../Slot.js\";\nimport { NavigationItem } from \"./NavigationItem.js\";\nimport { NavigationWrapper } from \"./NavigationWrapper.js\";\n\nexport const Navigation = ({\n onRequestClose,\n navigation,\n}: {\n onRequestClose?: () => void;\n navigation: NavigationItemType[];\n}) => (\n <>\n <NavigationWrapper>\n <Slot.Target name=\"navigation-before\" />\n {navigation.map((item) => (\n <NavigationItem\n key={\n item.type +\n (item.label ?? \"\") +\n (\"path\" in item ? item.path : \"\") +\n (\"file\" in item ? item.file : \"\") +\n (\"to\" in item ? item.to : \"\")\n }\n item={item}\n />\n ))}\n <Slot.Target name=\"navigation-after\" />\n </NavigationWrapper>\n <DrawerContent\n className=\"lg:hidden h-[100dvh] start-0 w-[320px] rounded-none\"\n aria-describedby={undefined}\n >\n <div className=\"p-4 overflow-y-auto overscroll-none\">\n <VisuallyHidden>\n <DrawerTitle>Navigation</DrawerTitle>\n </VisuallyHidden>\n {navigation.map((item) => (\n <NavigationItem\n key={item.label}\n item={item}\n onRequestClose={onRequestClose}\n />\n ))}\n </div>\n </DrawerContent>\n </>\n);\n","import { PanelLeftIcon } from \"lucide-react\";\nimport { type PropsWithChildren, useState } from \"react\";\nimport { useNavigation } from \"react-router\";\nimport { Drawer, DrawerTrigger } from \"zudoku/ui/Drawer.js\";\nimport { cn } from \"../util/cn.js\";\nimport { useCurrentNavigation, useZudoku } from \"./context/ZudokuContext.js\";\nimport { Navigation } from \"./navigation/Navigation.js\";\nimport { Slot } from \"./Slot.js\";\n\nexport const Main = ({ children }: PropsWithChildren) => {\n const [isDrawerOpen, setDrawerOpen] = useState(false);\n const { navigation } = useCurrentNavigation();\n const hasNavigation = navigation.length > 0;\n const isNavigating = useNavigation().state === \"loading\";\n const { options } = useZudoku();\n\n return (\n <Drawer\n direction={options.page?.dir === \"rtl\" ? \"right\" : \"left\"}\n open={isDrawerOpen}\n onOpenChange={(open) => setDrawerOpen(open)}\n >\n {hasNavigation && (\n <Navigation\n onRequestClose={() => setDrawerOpen(false)}\n navigation={navigation}\n />\n )}\n {hasNavigation && (\n <div className=\"lg:hidden -mx-4 px-4 py-2 sticky bg-background/80 backdrop-blur-xs z-10 top-0 start-0 end-0 border-b\">\n <DrawerTrigger className=\"flex items-center gap-2 px-4\">\n <PanelLeftIcon size={16} strokeWidth={1.5} />\n <span className=\"text-sm\">Menu</span>\n </DrawerTrigger>\n </div>\n )}\n <main\n data-pagefind-body\n className={cn(\n \"px-4 lg:pe-8 lg:px-8\",\n !hasNavigation && \"col-span-full\",\n isNavigating && \"animate-pulse\",\n )}\n >\n <Slot.Target name=\"content-before\" />\n {children}\n <Slot.Target name=\"content-after\" />\n </main>\n </Drawer>\n );\n};\n","import { Helmet } from \"@zudoku/react-helmet-async\";\nimport { Suspense, useEffect, type ReactNode } from \"react\";\nimport { Outlet, useLocation } from \"react-router\";\nimport { cn } from \"../util/cn.js\";\nimport { joinUrl } from \"../util/joinUrl.js\";\nimport { useScrollToAnchor } from \"../util/useScrollToAnchor.js\";\nimport { useScrollToTop } from \"../util/useScrollToTop.js\";\nimport { useZudoku } from \"./context/ZudokuContext.js\";\nimport { Footer } from \"./Footer.js\";\nimport { Header } from \"./Header.js\";\nimport { Main } from \"./Main.js\";\nimport { Slot } from \"./Slot.js\";\nimport { Spinner } from \"./Spinner.js\";\n\nconst LoadingFallback = () => (\n <main className=\"col-span-full row-span-full grid place-items-center\">\n <Spinner />\n </main>\n);\n\nexport const Layout = ({ children }: { children?: ReactNode }) => {\n const { meta, authentication, options } = useZudoku();\n const location = useLocation();\n\n useScrollToAnchor();\n useScrollToTop();\n\n useEffect(() => {\n // Initialize the authentication plugin\n authentication?.onPageLoad?.();\n }, [authentication]);\n\n return (\n <>\n <Helmet titleTemplate={meta?.title}>\n {options.canonicalUrlOrigin && (\n <link\n rel=\"canonical\"\n href={joinUrl(\n options.canonicalUrlOrigin,\n options.basePath,\n location.pathname,\n )}\n />\n )}\n {meta?.description && (\n <meta name=\"description\" content={meta.description} />\n )}\n {meta?.favicon && <link rel=\"icon\" href={meta.favicon} />}\n </Helmet>\n <Slot.Target name=\"layout-before-head\" />\n <Header />\n <Slot.Target name=\"layout-after-head\" />\n\n <div\n className={cn(\n \"grid max-w-screen-2xl w-full lg:mx-auto\",\n \"[&:has(>:only-child)]:grid-rows-1 grid-rows-[0_min-content_1fr] lg:grid-rows-[min-content_1fr]\",\n \"grid-cols-1 lg:grid-cols-[var(--side-nav-width)_1fr]\",\n )}\n >\n <Suspense fallback={<LoadingFallback />}>\n <Main>{children ?? <Outlet />}</Main>\n </Suspense>\n </div>\n <Footer />\n </>\n );\n};\n","import type { ReactNode } from \"react\";\nimport { CategoryHeading } from \"./CategoryHeading.js\";\nimport { Heading } from \"./Heading.js\";\nimport { ProseClasses } from \"./Markdown.js\";\n\nexport const ErrorPage = ({\n title = \"An error occurred\",\n message,\n category,\n}: {\n title?: ReactNode;\n message?: ReactNode;\n category?: ReactNode;\n}) => {\n return (\n <div className={ProseClasses + \" h-full pt-(--padding-content-top)\"}>\n {category && <CategoryHeading>{category}</CategoryHeading>}\n {title && (\n <Heading level={1} className=\"flex gap-3.5 items-center\">\n {title}\n </Heading>\n )}\n <p>{message}</p>\n </div>\n );\n};\n","import type { ReactNode } from \"react\";\nimport { ErrorPage } from \"./ErrorPage.js\";\n\ntype StatusPageProps = {\n statusCode: number;\n message?: ReactNode;\n};\n\nconst getDefaultContent = (\n statusCode: number,\n): { title: string; message: string } => {\n switch (statusCode) {\n case 400:\n return {\n title: \"Bad Request\",\n message:\n \"The request could not be understood by the server due to malformed syntax.\",\n };\n case 403:\n return {\n title: \"Forbidden\",\n message: \"You don't have permission to access this resource.\",\n };\n case 404:\n return {\n title: \"Not Found\",\n message: \"The requested resource could not be found.\",\n };\n case 405:\n return {\n title: \"Method Not Allowed\",\n message:\n \"The request method is not supported for the requested resource.\",\n };\n case 414:\n return {\n title: \"Request URI Too Large\",\n message: \"The request URI is too large.\",\n };\n case 416:\n return {\n title: \"Range Not Satisfiable\",\n message: \"The server cannot satisfy the request range.\",\n };\n case 500:\n return {\n title: \"Internal Server Error\",\n message: \"An unexpected error occurred while processing your request.\",\n };\n case 501:\n return {\n title: \"Not Implemented\",\n message:\n \"The server does not support the functionality required to fulfill the request.\",\n };\n case 502:\n return {\n title: \"Bad Gateway\",\n message:\n \"The server received an invalid response from the upstream server.\",\n };\n case 503:\n return {\n title: \"Service Unavailable\",\n message: \"The server is temporarily unable to handle the request.\",\n };\n case 504:\n return {\n title: \"Gateway Timeout\",\n message:\n \"The server did not receive a timely response from the upstream server.\",\n };\n default:\n return {\n title: \"An error occurred\",\n message: \"Something went wrong while processing your request.\",\n };\n }\n};\n\nexport const StatusPage = ({ statusCode, message }: StatusPageProps) => {\n const defaultContent = getDefaultContent(statusCode);\n\n return (\n <ErrorPage\n title={defaultContent.title}\n message={message ?? defaultContent.message}\n category={statusCode}\n />\n );\n};\n","'use client';\nimport { createContext, Component, createElement, useContext, useState, useMemo, forwardRef } from 'react';\n\nconst ErrorBoundaryContext = createContext(null);\n\nconst initialState = {\n didCatch: false,\n error: null\n};\nclass ErrorBoundary extends Component {\n constructor(props) {\n super(props);\n this.resetErrorBoundary = this.resetErrorBoundary.bind(this);\n this.state = initialState;\n }\n static getDerivedStateFromError(error) {\n return {\n didCatch: true,\n error\n };\n }\n resetErrorBoundary() {\n const {\n error\n } = this.state;\n if (error !== null) {\n var _this$props$onReset, _this$props;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_this$props$onReset = (_this$props = this.props).onReset) === null || _this$props$onReset === void 0 ? void 0 : _this$props$onReset.call(_this$props, {\n args,\n reason: \"imperative-api\"\n });\n this.setState(initialState);\n }\n }\n componentDidCatch(error, info) {\n var _this$props$onError, _this$props2;\n (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 ? void 0 : _this$props$onError.call(_this$props2, error, info);\n }\n componentDidUpdate(prevProps, prevState) {\n const {\n didCatch\n } = this.state;\n const {\n resetKeys\n } = this.props;\n\n // There's an edge case where if the thing that triggered the error happens to *also* be in the resetKeys array,\n // we'd end up resetting the error boundary immediately.\n // This would likely trigger a second error to be thrown.\n // So we make sure that we don't check the resetKeys on the first call of cDU after the error is set.\n\n if (didCatch && prevState.error !== null && hasArrayChanged(prevProps.resetKeys, resetKeys)) {\n var _this$props$onReset2, _this$props3;\n (_this$props$onReset2 = (_this$props3 = this.props).onReset) === null || _this$props$onReset2 === void 0 ? void 0 : _this$props$onReset2.call(_this$props3, {\n next: resetKeys,\n prev: prevProps.resetKeys,\n reason: \"keys\"\n });\n this.setState(initialState);\n }\n }\n render() {\n const {\n children,\n fallbackRender,\n FallbackComponent,\n fallback\n } = this.props;\n const {\n didCatch,\n error\n } = this.state;\n let childToRender = children;\n if (didCatch) {\n const props = {\n error,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if (typeof fallbackRender === \"function\") {\n childToRender = fallbackRender(props);\n } else if (FallbackComponent) {\n childToRender = createElement(FallbackComponent, props);\n } else if (fallback !== undefined) {\n childToRender = fallback;\n } else {\n throw error;\n }\n }\n return createElement(ErrorBoundaryContext.Provider, {\n value: {\n didCatch,\n error,\n resetErrorBoundary: this.resetErrorBoundary\n }\n }, childToRender);\n }\n}\nfunction hasArrayChanged() {\n let a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return a.length !== b.length || a.some((item, index) => !Object.is(item, b[index]));\n}\n\nfunction assertErrorBoundaryContext(value) {\n if (value == null || typeof value.didCatch !== \"boolean\" || typeof value.resetErrorBoundary !== \"function\") {\n throw new Error(\"ErrorBoundaryContext not found\");\n }\n}\n\nfunction useErrorBoundary() {\n const context = useContext(ErrorBoundaryContext);\n assertErrorBoundaryContext(context);\n const [state, setState] = useState({\n error: null,\n hasError: false\n });\n const memoized = useMemo(() => ({\n resetBoundary: () => {\n context.resetErrorBoundary();\n setState({\n error: null,\n hasError: false\n });\n },\n showBoundary: error => setState({\n error,\n hasError: true\n })\n }), [context.resetErrorBoundary]);\n if (state.hasError) {\n throw state.error;\n }\n return memoized;\n}\n\nfunction withErrorBoundary(component, errorBoundaryProps) {\n const Wrapped = forwardRef((props, ref) => createElement(ErrorBoundary, errorBoundaryProps, createElement(component, {\n ...props,\n ref\n })));\n\n // Format for display in DevTools\n const name = component.displayName || component.name || \"Unknown\";\n Wrapped.displayName = \"withErrorBoundary(\".concat(name, \")\");\n return Wrapped;\n}\n\nexport { ErrorBoundary, ErrorBoundaryContext, useErrorBoundary, withErrorBoundary };\n","export let createNanoEvents = () => ({\n emit(event, ...args) {\n for (\n let callbacks = this.events[event] || [],\n i = 0,\n length = callbacks.length;\n i < length;\n i++\n ) {\n callbacks[i](...args)\n }\n },\n events: {},\n on(event, cb) {\n ;(this.events[event] ||= []).push(cb)\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i)\n }\n }\n})\n","import type { QueryClient } from \"@tanstack/react-query\";\nimport { createNanoEvents } from \"nanoevents\";\nimport type { ReactNode } from \"react\";\nimport type { Location } from \"react-router\";\nimport type { BundledTheme, HighlighterCore } from \"shiki\";\nimport type { z } from \"zod/v4\";\nimport type { Navigation } from \"../../config/validators/NavigationSchema.js\";\nimport type { FooterSchema } from \"../../config/validators/validate.js\";\nimport type { AuthenticationPlugin } from \"../authentication/authentication.js\";\nimport { type AuthState, useAuthState } from \"../authentication/state.js\";\nimport type { ComponentsContextType } from \"../components/context/ComponentsContext.js\";\nimport type { SlotType } from \"../components/context/SlotProvider.js\";\nimport { joinUrl } from \"../util/joinUrl.js\";\nimport type { MdxComponentsType } from \"../util/MdxComponents.js\";\nimport { objectEntries } from \"../util/objectEntries.js\";\nimport {\n isApiIdentityPlugin,\n isAuthenticationPlugin,\n isEventConsumerPlugin,\n isNavigationPlugin,\n type NavigationPlugin,\n needsInitialization,\n type ZudokuPlugin,\n} from \"./plugins.js\";\n\nexport interface ZudokuEvents {\n location: (event: { from?: Location; to: Location }) => void;\n auth: (auth: { prev: AuthState; next: AuthState }) => void;\n}\n\nexport interface ApiIdentity {\n authorizeRequest: (request: Request) => Promise<Request> | Request;\n authorizationFields?: {\n headers?: string[];\n queryParams?: string[];\n };\n label: string;\n id: string;\n}\n\nexport type ApiKeyCache = \"api-keys\";\n\ntype Metadata = Partial<{\n title: string;\n description: string;\n logo: string;\n favicon: string;\n generator: string;\n applicationName: string;\n referrer: string;\n keywords: string[];\n authors: string[];\n creator: string;\n publisher: string;\n}>;\n\ntype Page = Partial<{\n dir?: \"ltr\" | \"rtl\";\n showPoweredBy?: boolean;\n pageTitle?: string;\n logo?: {\n src: {\n light: string;\n dark: string;\n };\n width?: string | number;\n alt?: string;\n };\n banner?: {\n message: ReactNode;\n color?: \"note\" | \"tip\" | \"info\" | \"caution\" | \"danger\" | (string & {});\n dismissible?: boolean;\n };\n footer?: z.infer<typeof FooterSchema>;\n}>;\n\nexport type ZudokuContextOptions = {\n basePath?: string;\n canonicalUrlOrigin?: string;\n metadata?: Metadata;\n page?: Page;\n authentication?: AuthenticationPlugin;\n navigation?: Navigation;\n plugins?: ZudokuPlugin[];\n slots?: Record<string, SlotType>;\n /**\n * @deprecated Use `slots` instead\n */\n UNSAFE_slotlets?: Record<string, SlotType>;\n mdx?: {\n components?: MdxComponentsType;\n };\n overrides?: ComponentsContextType;\n protectedRoutes?: string[];\n syntaxHighlighting?: {\n highlighter: HighlighterCore;\n themes?: { light: BundledTheme; dark: BundledTheme };\n };\n};\n\nexport class ZudokuContext {\n public plugins: NonNullable<ZudokuContextOptions[\"plugins\"]>;\n public navigation: Navigation;\n public meta: ZudokuContextOptions[\"metadata\"];\n public page: ZudokuContextOptions[\"page\"];\n public readonly authentication?: ZudokuContextOptions[\"authentication\"];\n public readonly queryClient: QueryClient;\n public readonly options: ZudokuContextOptions;\n private readonly navigationPlugins: NavigationPlugin[];\n private emitter = createNanoEvents<ZudokuEvents>();\n\n constructor(options: ZudokuContextOptions, queryClient: QueryClient) {\n const protectedRoutes = (options.protectedRoutes ?? []).concat(\n options.plugins?.flatMap((plugin) =>\n isNavigationPlugin(plugin) ? (plugin.getProtectedRoutes?.() ?? []) : [],\n ) ?? [],\n );\n\n this.queryClient = queryClient;\n this.options = { ...options, protectedRoutes };\n this.plugins = options.plugins ?? [];\n this.navigation = options.navigation ?? [];\n this.navigationPlugins = this.plugins.filter(isNavigationPlugin);\n this.authentication = this.plugins.find(isAuthenticationPlugin);\n this.meta = options.metadata;\n this.page = options.page;\n this.plugins.forEach((plugin) => {\n if (!isEventConsumerPlugin(plugin)) return;\n\n objectEntries(plugin.events).forEach(([event, handler]) => {\n this.emitter.on(event, handler!);\n });\n });\n\n useAuthState.subscribe((state, prevState) => {\n this.emitEvent(\"auth\", {\n prev: prevState,\n next: state,\n });\n });\n }\n\n initialize = async (): Promise<void> => {\n await Promise.all(\n this.plugins\n .filter(needsInitialization)\n .map((plugin) => plugin.initialize?.(this)),\n );\n };\n\n getApiIdentities = async () => {\n const keys = await Promise.all(\n this.plugins\n .filter(isApiIdentityPlugin)\n .map((plugin) => plugin.getIdentities(this)),\n );\n\n return keys.flat();\n };\n\n addEventListener<E extends keyof ZudokuEvents>(\n event: E,\n callback: ZudokuEvents[E],\n ) {\n return this.emitter.on(event, callback);\n }\n\n emitEvent = <E extends keyof ZudokuEvents>(\n event: E,\n ...data: Parameters<ZudokuEvents[E]>\n ) => {\n return this.emitter.emit(event, ...data);\n };\n\n getPluginNavigation = async (path: string) => {\n const navigations = await Promise.all(\n this.navigationPlugins.map((plugin) =>\n plugin.getNavigation?.(joinUrl(path), this),\n ),\n );\n\n return navigations.flatMap((nav) => nav ?? []);\n };\n\n signRequest = async (request: Request) => {\n if (!this.authentication) {\n throw new Error(\"No authentication provider configured\");\n }\n\n return await this.authentication.signRequest(request);\n };\n}\n","import { FallbackProps } from \"react-error-boundary\";\nimport { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function TopLevelError({ error, resetErrorBoundary }: FallbackProps) {\n // Call resetErrorBoundary() to reset the error boundary and retry the render.\n\n return <ErrorAlert error={error} />;\n}\n","const root = globalThis;\n\nif (!root.requestIdleCallback || !root.cancelIdleCallback) {\n root.requestIdleCallback = (cb: IdleRequestCallback) => setTimeout(cb, 1);\n root.cancelIdleCallback = clearTimeout;\n}\n","import {\n createContext,\n useContext,\n type ComponentProps,\n type ComponentType,\n} from \"react\";\nimport { Header } from \"../Header.js\";\n\nexport const DEFAULT_COMPONENTS = {\n Header,\n};\n\nexport type ComponentsContextType = {\n Header?: ComponentType<ComponentProps<typeof Header>>;\n};\n\nconst ComponentsContext =\n createContext<Required<ComponentsContextType>>(DEFAULT_COMPONENTS);\n\nexport const ComponentsProvider = ComponentsContext.Provider;\n\nexport const useComponents = () => {\n return useContext(ComponentsContext);\n};\n","import { useEffect, useRef } from \"react\";\nimport { useLocation, type Location } from \"react-router\";\nimport { useZudoku } from \"./ZudokuContext.js\";\n\nexport const RouterEventsEmitter = () => {\n const location = useLocation();\n const zudoku = useZudoku();\n const previousLocation = useRef<Location | undefined>(undefined);\n\n useEffect(() => {\n zudoku.emitEvent(\"location\", {\n from: previousLocation.current,\n to: location,\n });\n previousLocation.current = location;\n }, [zudoku, location]);\n\n return null;\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport type { PropsWithChildren } from \"react\";\nimport { type ZudokuContext } from \"../../core/ZudokuContext.js\";\nimport { NO_DEHYDRATE } from \"../cache.js\";\nimport { ZudokuReactContext } from \"./ZudokuContext.js\";\n\nexport const ZudokuProvider = ({\n children,\n context,\n}: PropsWithChildren<{ context: ZudokuContext }>) => {\n useSuspenseQuery({\n queryFn: async () => {\n await context.initialize();\n return true;\n },\n queryKey: [\"zudoku-initialize\", NO_DEHYDRATE],\n });\n\n return (\n <ZudokuReactContext.Provider value={context}>\n {children}\n </ZudokuReactContext.Provider>\n );\n};\n","import { MDXProvider } from \"@mdx-js/react\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { ThemeProvider } from \"next-themes\";\nimport {\n memo,\n type PropsWithChildren,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport { Outlet, useLocation, useNavigation } from \"react-router\";\nimport { hasHead, isMdxProviderPlugin } from \"../core/plugins.js\";\nimport {\n ZudokuContext,\n type ZudokuContextOptions,\n} from \"../core/ZudokuContext.js\";\nimport { TopLevelError } from \"../errors/TopLevelError.js\";\nimport { StaggeredRenderContext } from \"../plugins/openapi/StaggeredRender.js\";\nimport { MdxComponents } from \"../util/MdxComponents.js\";\nimport \"../util/requestIdleCallbackPolyfill.js\";\nimport {\n ComponentsProvider,\n DEFAULT_COMPONENTS,\n} from \"./context/ComponentsContext.js\";\nimport { RouterEventsEmitter } from \"./context/RouterEventsEmitter.js\";\nimport { SlotProvider } from \"./context/SlotProvider.js\";\nimport { ViewportAnchorProvider } from \"./context/ViewportAnchorContext.js\";\nimport { ZudokuProvider } from \"./context/ZudokuProvider.js\";\n\nlet zudokuContext: ZudokuContext | undefined;\n\nconst ZudokoInner = memo(\n ({ children, ...props }: PropsWithChildren<ZudokuContextOptions>) => {\n const components = useMemo(\n () => ({ ...DEFAULT_COMPONENTS, ...props.overrides }),\n [props.overrides],\n );\n\n const location = useLocation();\n const mdxComponents = useMemo(() => {\n const componentsFromPlugins = (props.plugins ?? [])\n .filter(isMdxProviderPlugin)\n .flatMap((plugin) =>\n plugin.getMdxComponents ? [plugin.getMdxComponents()] : [],\n );\n\n return {\n ...componentsFromPlugins.reduce(\n (acc, curr) => ({ ...acc, ...curr }),\n {},\n ),\n ...MdxComponents,\n ...props.mdx?.components,\n };\n }, [props.mdx?.components, props.plugins]);\n const { stagger } = useContext(StaggeredRenderContext);\n const [didNavigate, setDidNavigate] = useState(false);\n const staggeredValue = useMemo(\n () => (didNavigate ? { stagger: true } : { stagger }),\n [stagger, didNavigate],\n );\n const navigation = useNavigation();\n const queryClient = useQueryClient();\n\n useEffect(() => {\n if (didNavigate) {\n return;\n }\n setDidNavigate(true);\n }, [didNavigate, navigation.location]);\n\n zudokuContext ??= new ZudokuContext(props, queryClient);\n\n const heads = props.plugins\n ?.flatMap((plugin) =>\n hasHead(plugin) ? (plugin.getHead?.({ location }) ?? []) : [],\n )\n // eslint-disable-next-line react/no-array-index-key\n .map((entry, i) => <Helmet key={i}>{entry}</Helmet>);\n\n return (\n <>\n {heads}\n <StaggeredRenderContext.Provider value={staggeredValue}>\n <ZudokuProvider context={zudokuContext}>\n <RouterEventsEmitter />\n <SlotProvider slots={props.slots ?? props.UNSAFE_slotlets}>\n <MDXProvider components={mdxComponents}>\n <ThemeProvider attribute=\"class\" disableTransitionOnChange>\n <ComponentsProvider value={components}>\n <ViewportAnchorProvider>\n {children ?? <Outlet />}\n </ViewportAnchorProvider>\n </ComponentsProvider>\n </ThemeProvider>\n </MDXProvider>\n </SlotProvider>\n </ZudokuProvider>\n </StaggeredRenderContext.Provider>\n </>\n );\n },\n);\n\nZudokoInner.displayName = \"ZudokoInner\";\n\nconst Zudoku = (props: ZudokuContextOptions) => {\n return (\n <ErrorBoundary FallbackComponent={TopLevelError}>\n <ZudokoInner {...props} />\n </ErrorBoundary>\n );\n};\nZudoku.displayName = \"Zudoku\";\n\nexport { Zudoku };\n","import { useMDXComponents as useMDXComponentsImport } from \"@mdx-js/react\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { useTheme as useThemeImport } from \"next-themes\";\nimport { Link as LinkImport } from \"react-router\";\nimport { useAuth as useAuthImport } from \"../authentication/hook.js\";\nimport { RouteGuard as RouteGuardImport } from \"../core/RouteGuard.js\";\nimport { RouterError as RouterErrorImport } from \"../errors/RouterError.js\";\nimport { ServerError as ServerErrorImport } from \"../errors/ServerError.js\";\nimport { Button as ButtonImport } from \"../ui/Button.js\";\nimport { Callout as CalloutImport } from \"../ui/Callout.js\";\nimport {\n Bootstrap as BootstrapImport,\n BootstrapStatic as BootstrapStaticImport,\n} from \"./Bootstrap.js\";\nimport { BuildCheck as BuildCheckImport } from \"./BuildCheck.js\";\nimport {\n CACHE_KEYS as CACHE_KEYS_IMPORT,\n useCache as useCacheImport,\n} from \"./cache.js\";\nimport { ClientOnly as ClientOnlyImport } from \"./ClientOnly.js\";\nimport { useZudoku as useZudokuImport } from \"./context/ZudokuContext.js\";\nimport { Layout as LayoutImport } from \"./Layout.js\";\nimport { Markdown as MarkdownImport } from \"./Markdown.js\";\nimport { Spinner as SpinnerImport } from \"./Spinner.js\";\nimport { StatusPage as StatusPageImport } from \"./StatusPage.js\";\nimport { Zudoku as ZudokuImport } from \"./Zudoku.js\";\n\nexport const Layout = /*@__PURE__*/ LayoutImport;\nexport const RouterError = /*@__PURE__*/ RouterErrorImport;\nexport const ServerError = /*@__PURE__*/ ServerErrorImport;\nexport const Bootstrap = /*@__PURE__*/ BootstrapImport;\nexport const BootstrapStatic = /*@__PURE__*/ BootstrapStaticImport;\nexport const RouteGuard = /*@__PURE__*/ RouteGuardImport;\nexport const Head = /*@__PURE__*/ Helmet;\nexport const StatusPage = /*@__PURE__*/ StatusPageImport;\nexport const Callout = /*@__PURE__*/ CalloutImport;\nexport const Markdown = /*@__PURE__*/ MarkdownImport;\nexport const Spinner = /*@__PURE__*/ SpinnerImport;\nexport const ClientOnly = /*@__PURE__*/ ClientOnlyImport;\nexport const Button = /*@__PURE__*/ ButtonImport;\nexport const Link = /*@__PURE__*/ LinkImport;\nexport const BuildCheck = /*@__PURE__*/ BuildCheckImport;\nexport const Zudoku = /*@__PURE__*/ ZudokuImport;\n\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useMDXComponents = /*@__PURE__*/ useMDXComponentsImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useZudoku = /*@__PURE__*/ useZudokuImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useAuth = /*@__PURE__*/ useAuthImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useCache = /*@__PURE__*/ useCacheImport;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const CACHE_KEYS = /*@__PURE__*/ CACHE_KEYS_IMPORT;\n/** @deprecated Import from `zudoku/hooks` instead */\nexport const useTheme = /*@__PURE__*/ useThemeImport;\n"],"names":["QueryCache","Subscribable","config","#queries","client","options","state","queryKey","queryHash","hashQueryKeyByOptions","query","Query","queryInMap","notifyManager","filters","defaultedFilters","matchQuery","queries","event","listener","MutationCache","#mutations","#scopes","#mutationId","mutation","Mutation","scope","scopeFor","scopedMutations","index","firstPendingMutation","m","matchMutation","pausedMutations","x","noop","infiniteQueryBehavior","pages","context","direction","oldPages","oldPageParams","result","currentPage","fetchFn","cancelled","addSignalProperty","object","queryFn","ensureQueryFn","fetchPage","data","param","previous","queryFnContext","page","maxPages","addTo","addToStart","addToEnd","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pageParams","lastIndex","QueryClient","#queryCache","#mutationCache","#defaultOptions","#queryDefaults","#mutationDefaults","#mountCount","#unsubscribeFocus","#unsubscribeOnline","focusManager","focused","onlineManager","online","defaultedOptions","cachedData","resolveStaleTime","updater","prevData","functionalUpdate","queryCache","cancelOptions","defaultedCancelOptions","promises","fetchOptions","promise","hashKey","defaults","queryDefault","partialMatchKey","mutationKey","skipToken","defaultTransformerFn","hydrate","dehydratedState","mutationCache","deserializeData","mutations","mutationOptions","meta","_ignored","serializedState","initialPromise","hasProperty","obj","key","HydrationBoundary","children","queryClient","useQueryClient","hydrationQueue","setHydrationQueue","React","optionsRef","newQueries","existingQueries","dehydratedQuery","existingQuery","hydrationIsNewer","queryAlreadyQueued","prev","ServerError","error","jsx","ErrorAlert","RouterProvider2","props","RouterProvider","ReactDOM","StaggeredRenderContext","createContext","Bootstrap","router","StrictMode","QueryClientProvider","BypassProtectedRoutesContext","HelmetProvider","BootstrapStatic","helmetContext","bypassProtection","StaticRouterProvider","$constructor","name","initializer","params","init","inst","def","_a","k","_","Parent","Definition","fn","$ZodAsyncError","globalConfig","newConfig","getEnumValues","entries","numericValues","v","jsonStringifyReplacer","value","cached","getter","nullish","input","cleanRegex","source","start","end","defineLazy","assignProp","target","prop","randomString","length","chars","str","i","esc","isObject","allowsEval","F","isPlainObject","o","ctor","prot","propertyKeyTypes","escapeRegex","clone","cl","normalizeParams","_params","optionalKeys","shape","pick","schema","mask","newShape","currDef","omit","extend","_shape","merge","a","b","partial","Class","oldShape","required","aborted","startIndex","prefixIssues","path","issues","iss","unwrapMessage","message","finalizeIssue","ctx","full","getLengthableOrigin","issue","args","util.jsonStringifyReplacer","$ZodError","$ZodRealError","flattenError","mapper","fieldErrors","formErrors","sub","formatError","_mapper","processError","curr","el","_parse","_Err","_ctx","core.$ZodAsyncError","e","util.finalizeIssue","core.config","_parseAsync","_safeParse","errors.$ZodError","safeParse","errors.$ZodRealError","_safeParseAsync","safeParseAsync","cuid","cuid2","ulid","xid","ksuid","nanoid","duration","guid","uuid","version","email","_emoji","emoji","ipv4","ipv6","cidrv4","cidrv6","base64","base64url","hostname","e164","dateSource","date","timeSource","regex","time","datetime","opts","string","lowercase","uppercase","$ZodCheck","core.$constructor","$ZodCheckMaxLength","payload","val","util.nullish","origin","util.getLengthableOrigin","$ZodCheckMinLength","$ZodCheckLengthEquals","bag","tooBig","$ZodCheckStringFormat","$ZodCheckRegex","$ZodCheckLowerCase","regexes.lowercase","$ZodCheckUpperCase","regexes.uppercase","$ZodCheckIncludes","escapedRegex","util.escapeRegex","pattern","$ZodCheckStartsWith","$ZodCheckEndsWith","$ZodCheckOverwrite","Doc","arg","lines","minIndent","dedented","line","$ZodType","util.randomString","checks","ch","runChecks","isAborted","util.aborted","asyncResult","currLen","r","$ZodString","regexes.string","$ZodStringFormat","checks.$ZodCheckStringFormat","$ZodGUID","regexes.guid","$ZodUUID","regexes.uuid","$ZodEmail","regexes.email","$ZodURL","url","regexes.hostname","$ZodEmoji","regexes.emoji","$ZodNanoID","regexes.nanoid","$ZodCUID","regexes.cuid","$ZodCUID2","regexes.cuid2","$ZodULID","regexes.ulid","$ZodXID","regexes.xid","$ZodKSUID","regexes.ksuid","$ZodISODateTime","regexes.datetime","$ZodISODate","regexes.date","$ZodISOTime","regexes.time","$ZodISODuration","regexes.duration","$ZodIPv4","regexes.ipv4","$ZodIPv6","regexes.ipv6","$ZodCIDRv4","regexes.cidrv4","$ZodCIDRv6","regexes.cidrv6","address","prefix","prefixNum","isValidBase64","$ZodBase64","regexes.base64","isValidBase64URL","regexes.base64url","c","padded","$ZodBase64URL","$ZodE164","regexes.e164","isValidJWT","token","algorithm","tokensParts","header","parsedHeader","$ZodJWT","$ZodUnknown","$ZodNever","handleArrayResult","final","util.prefixIssues","$ZodArray","proms","item","handleObjectResult","handleOptionalObjectResult","$ZodObject","_normalized","util.cached","keys","okeys","util.optionalKeys","util.defineLazy","propValues","field","generateFastpass","doc","parseStr","util.esc","ids","id","fastpass","util.isObject","jit","core.globalConfig","fastEnabled","util.allowsEval","catchall","isOptional","unrecognized","keySet","_catchall","t","handleUnionResults","results","$ZodUnion","option","patterns","p","util.cleanRegex","async","$ZodIntersection","left","right","handleIntersectionResults","mergeValues","util.isPlainObject","bKeys","sharedKeys","newObj","sharedValue","newArray","itemA","itemB","merged","$ZodEnum","values","util.getEnumValues","util.propertyKeyTypes","$ZodTransform","_out","output","$ZodOptional","$ZodNullable","$ZodDefault","handleDefaultResult","$ZodPrefault","$ZodNonOptional","handleNonOptionalResult","$ZodCatch","$ZodPipe","handlePipeResult","$ZodReadonly","handleReadonlyResult","$ZodCustom","checks.$ZodCheck","handleRefineResult","_iss","util.issue","$ZodRegistry","_meta","pm","registry","globalRegistry","_string","util.normalizeParams","_email","_guid","_uuid","_uuidv4","_uuidv6","_uuidv7","_url","_nanoid","_cuid","_cuid2","_ulid","_xid","_ksuid","_ipv4","_ipv6","_cidrv4","_cidrv6","_base64","_base64url","_e164","_jwt","_isoDateTime","_isoDate","_isoTime","_isoDuration","_unknown","_never","_maxLength","maximum","checks.$ZodCheckMaxLength","_minLength","minimum","checks.$ZodCheckMinLength","_length","checks.$ZodCheckLengthEquals","_regex","checks.$ZodCheckRegex","_lowercase","checks.$ZodCheckLowerCase","_uppercase","checks.$ZodCheckUpperCase","_includes","includes","checks.$ZodCheckIncludes","_startsWith","checks.$ZodCheckStartsWith","_endsWith","suffix","checks.$ZodCheckEndsWith","_overwrite","tx","checks.$ZodCheckOverwrite","_normalize","form","_trim","_toLowerCase","_toUpperCase","_array","element","_refine","ZodISODateTime","core.$ZodISODateTime","schemas.ZodStringFormat","core._isoDateTime","ZodISODate","core.$ZodISODate","core._isoDate","ZodISOTime","core.$ZodISOTime","core._isoTime","ZodISODuration","core.$ZodISODuration","core._isoDuration","core.formatError","core.flattenError","ZodRealError","parse","core._parse","parseAsync","core._parseAsync","core._safeParse","core._safeParseAsync","ZodType","core.$ZodType","core.clone","reg","parse.parse","parse.safeParse","parse.parseAsync","parse.safeParseAsync","check","refine","refinement","superRefine","checks.overwrite","optional","nullable","nonoptional","array","union","intersection","pipe","transform","_default","prefault","_catch","readonly","description","core.globalRegistry","_ZodString","core.$ZodString","checks.regex","checks.includes","checks.startsWith","checks.endsWith","checks.minLength","checks.maxLength","checks.length","checks.lowercase","checks.uppercase","checks.trim","checks.normalize","checks.toLowerCase","checks.toUpperCase","ZodString","core._email","ZodEmail","core._url","ZodURL","core._jwt","ZodJWT","core._emoji","ZodEmoji","core._guid","ZodGUID","core._uuid","ZodUUID","core._uuidv4","core._uuidv6","core._uuidv7","core._nanoid","ZodNanoID","core._cuid","ZodCUID","core._cuid2","ZodCUID2","core._ulid","ZodULID","core._base64","ZodBase64","core._base64url","ZodBase64URL","core._xid","ZodXID","core._ksuid","ZodKSUID","core._ipv4","ZodIPv4","core._ipv6","ZodIPv6","core._cidrv4","ZodCIDRv4","core._cidrv6","ZodCIDRv6","core._e164","ZodE164","iso.datetime","iso.date","iso.time","iso.duration","core._string","ZodStringFormat","core.$ZodStringFormat","core.$ZodEmail","core.$ZodGUID","core.$ZodUUID","core.$ZodURL","core.$ZodEmoji","core.$ZodNanoID","core.$ZodCUID","core.$ZodCUID2","core.$ZodULID","core.$ZodXID","core.$ZodKSUID","core.$ZodIPv4","core.$ZodIPv6","core.$ZodCIDRv4","core.$ZodCIDRv6","core.$ZodBase64","core.$ZodBase64URL","core.$ZodE164","core.$ZodJWT","ZodUnknown","core.$ZodUnknown","unknown","core._unknown","ZodNever","core.$ZodNever","never","core._never","ZodArray","core.$ZodArray","minLength","maxLength","len","core._array","ZodObject","core.$ZodObject","_enum","incoming","util.extend","other","util.merge","util.pick","util.omit","util.partial","ZodOptional","util.required","ZodNonOptional","util.assignProp","ZodUnion","core.$ZodUnion","ZodIntersection","core.$ZodIntersection","ZodEnum","core.$ZodEnum","newEntries","ZodTransform","core.$ZodTransform","_issue","core.$ZodOptional","innerType","ZodNullable","core.$ZodNullable","ZodDefault","core.$ZodDefault","defaultValue","ZodPrefault","core.$ZodPrefault","core.$ZodNonOptional","ZodCatch","core.$ZodCatch","catchValue","ZodPipe","core.$ZodPipe","in_","out","ZodReadonly","core.$ZodReadonly","ZodCustom","core.$ZodCustom","core.$ZodCheck","core._refine","BuildStatusSchema","z.object","z.string","z.enum","BuildCheck","buildId","endpoint","buildStatusQuery","useQuery","res","isCompleted","jsxs","CircleFadingArrowUpIcon","LoaderCircleIcon","Button","useScrollToTop","location","useLocation","previousPath","useRef","useEffect","isNewPage","hasAnchor","SocialIcon","icon","isExternalUrl","href","Footer","useZudoku","footer","cn","Slot","column","link","className","ExternalLinkIcon","AnchorLink","Fragment","social","Skeleton","COLOR_MAP","Banner","isBannerOpen","setIsBannerOpen","useState","mappedColor","style","CircleXIcon","ZudokuLogo","PoweredByZudoku","ChevronRightIcon","PageProgress","isNavigating","useNavigation","isAnimating","setIsAnimating","timer","isFinished","progress","useNProgress","detectOS","userAgent","Search","isOpen","setIsOpen","onClose","useCallback","onKeyDown","searchPlugin","isSearchPlugin","SearchIcon","ClientOnly","KbdShortcut","Suspense","os","ThemeSwitch","resolvedTheme","setTheme","useTheme","SunIcon","MoonIcon","TopNavigation","navigation","isAuthenticated","useAuth","filteredItems","isHiddenItem","TopNavItem","getPathForItem","joinUrl","traverseNavigationItem","child","currentNav","useCurrentNavigation","isActiveTopNavItem","deepEqual","NavLink","isActiveNavLink","isPending","isActive","cx","MobileTopNavigation","drawerOpen","setDrawerOpen","Drawer","open","DrawerTrigger","MenuIcon","DrawerContent","VisuallyHidden","DrawerTitle","RecursiveMenu","DropdownMenuSub","DropdownMenuSubTrigger","DropdownMenuPortal","DropdownMenuSubContent","Link","DropdownMenuItem","Header","memo","auth","profile","isAuthEnabled","plugins","accountItems","isProfileMenuPlugin","logoLightSrc","logoDarkSrc","borderBottom","DropdownMenu","DropdownMenuTrigger","DropdownMenuContent","DropdownMenuLabel","DropdownMenuSeparator","shouldScaleBackground","DrawerPrimitive","DrawerPortal","DrawerOverlay","ref","hideBar","DrawerDescription","NavigationWrapper","navRef","active","scrollIntoViewIfNeeded","Navigation","onRequestClose","NavigationItem","Main","isDrawerOpen","hasNavigation","PanelLeftIcon","LoadingFallback","Spinner","Layout","authentication","useScrollToAnchor","Helmet","Outlet","ErrorPage","title","category","ProseClasses","CategoryHeading","Heading","getDefaultContent","statusCode","StatusPage","defaultContent","ErrorBoundaryContext","initialState","ErrorBoundary","Component","_this$props$onReset","_this$props","_len","_key","info","_this$props$onError","_this$props2","prevProps","prevState","didCatch","resetKeys","hasArrayChanged","_this$props$onReset2","_this$props3","fallbackRender","FallbackComponent","fallback","childToRender","createElement","createNanoEvents","callbacks","cb","ZudokuContext","protectedRoutes","plugin","isNavigationPlugin","isAuthenticationPlugin","isEventConsumerPlugin","objectEntries","handler","useAuthState","needsInitialization","isApiIdentityPlugin","callback","nav","request","TopLevelError","resetErrorBoundary","root","DEFAULT_COMPONENTS","ComponentsContext","ComponentsProvider","RouterEventsEmitter","zudoku","previousLocation","ZudokuProvider","useSuspenseQuery","NO_DEHYDRATE","ZudokuReactContext","zudokuContext","ZudokoInner","components","useMemo","mdxComponents","isMdxProviderPlugin","acc","MdxComponents","stagger","useContext","didNavigate","setDidNavigate","staggeredValue","heads","hasHead","entry","SlotProvider","MDXProvider","ThemeProvider","ViewportAnchorProvider","Zudoku","LayoutImport","RouterError","RouterErrorImport","ServerErrorImport","BootstrapImport","BootstrapStaticImport","RouteGuard","RouteGuardImport","Head","StatusPageImport","Callout","CalloutImport","Markdown","MarkdownImport","SpinnerImport","ClientOnlyImport","ButtonImport","LinkImport","BuildCheckImport","ZudokuImport","useMDXComponents","useMDXComponentsImport","useZudokuImport","useAuthImport","useCache","useCacheImport","CACHE_KEYS","CACHE_KEYS_IMPORT","useThemeImport"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,7,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,46,47]}