zudoku 0.53.5 → 0.54.0

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 (201) hide show
  1. package/dist/config/config.d.ts +1 -0
  2. package/dist/config/validators/InputNavigationSchema.d.ts +254 -158
  3. package/dist/config/validators/InputNavigationSchema.js +4 -1
  4. package/dist/config/validators/InputNavigationSchema.js.map +1 -1
  5. package/dist/config/validators/ProtectedRoutesSchema.d.ts +12 -0
  6. package/dist/config/validators/ProtectedRoutesSchema.js +19 -0
  7. package/dist/config/validators/ProtectedRoutesSchema.js.map +1 -0
  8. package/dist/config/validators/icon-types.d.ts +1 -1
  9. package/dist/config/validators/icon-types.js +16 -0
  10. package/dist/config/validators/icon-types.js.map +1 -1
  11. package/dist/config/validators/validate.d.ts +32 -19
  12. package/dist/config/validators/validate.js +6 -2
  13. package/dist/config/validators/validate.js.map +1 -1
  14. package/dist/lib/authentication/components/CallbackHandler.js +11 -9
  15. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
  16. package/dist/lib/authentication/components/OAuthErrorPage.d.ts +3 -0
  17. package/dist/lib/authentication/components/OAuthErrorPage.js +99 -0
  18. package/dist/lib/authentication/components/OAuthErrorPage.js.map +1 -0
  19. package/dist/lib/authentication/errors.d.ts +6 -12
  20. package/dist/lib/authentication/errors.js +2 -1
  21. package/dist/lib/authentication/errors.js.map +1 -1
  22. package/dist/lib/authentication/hook.d.ts +1 -0
  23. package/dist/lib/authentication/hook.js.map +1 -1
  24. package/dist/lib/authentication/providers/azureb2c.js +4 -2
  25. package/dist/lib/authentication/providers/azureb2c.js.map +1 -1
  26. package/dist/lib/authentication/providers/clerk.js +4 -2
  27. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  28. package/dist/lib/authentication/providers/openid.js +3 -1
  29. package/dist/lib/authentication/providers/openid.js.map +1 -1
  30. package/dist/lib/components/Heading.js +1 -1
  31. package/dist/lib/components/Heading.js.map +1 -1
  32. package/dist/lib/components/MobileTopNavigation.js +5 -3
  33. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  34. package/dist/lib/components/TopNavigation.js +4 -3
  35. package/dist/lib/components/TopNavigation.js.map +1 -1
  36. package/dist/lib/components/context/ZudokuContext.js +21 -13
  37. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  38. package/dist/lib/components/navigation/NavigationItem.d.ts +1 -1
  39. package/dist/lib/components/navigation/NavigationItem.js +8 -1
  40. package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
  41. package/dist/lib/components/navigation/utils.d.ts +3 -1
  42. package/dist/lib/components/navigation/utils.js +6 -3
  43. package/dist/lib/components/navigation/utils.js.map +1 -1
  44. package/dist/lib/core/RouteGuard.js +9 -9
  45. package/dist/lib/core/RouteGuard.js.map +1 -1
  46. package/dist/lib/core/ZudokuContext.d.ts +2 -1
  47. package/dist/lib/core/ZudokuContext.js +13 -1
  48. package/dist/lib/core/ZudokuContext.js.map +1 -1
  49. package/dist/lib/core/plugins.d.ts +2 -1
  50. package/dist/lib/core/plugins.js.map +1 -1
  51. package/dist/lib/plugins/api-keys/CreateApiKey.js +7 -3
  52. package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
  53. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +3 -1
  54. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  55. package/dist/lib/plugins/api-keys/index.d.ts +1 -0
  56. package/dist/lib/plugins/api-keys/index.js +3 -7
  57. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  58. package/dist/lib/plugins/openapi/graphql/gql.d.ts +1 -1
  59. package/dist/lib/plugins/openapi/graphql/gql.js +1 -1
  60. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  61. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +1 -0
  62. package/dist/lib/plugins/openapi/graphql/graphql.js +1 -0
  63. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  64. package/dist/lib/plugins/openapi/index.js +42 -10
  65. package/dist/lib/plugins/openapi/index.js.map +1 -1
  66. package/dist/lib/ui/ActionButton.js +1 -1
  67. package/dist/lib/ui/ActionButton.js.map +1 -1
  68. package/dist/lib/ui/Badge.d.ts +1 -1
  69. package/dist/lib/ui/Button.d.ts +2 -2
  70. package/dist/lib/ui/Command.d.ts +1 -1
  71. package/dist/lib/util/invariant.d.ts +6 -5
  72. package/dist/lib/util/invariant.js +1 -1
  73. package/dist/lib/util/invariant.js.map +1 -1
  74. package/dist/vite/dev-server.js +1 -1
  75. package/dist/vite/dev-server.js.map +1 -1
  76. package/dist/vite/plugin-docs.js +15 -10
  77. package/dist/vite/plugin-docs.js.map +1 -1
  78. package/dist/vite/prerender/worker.js +5 -1
  79. package/dist/vite/prerender/worker.js.map +1 -1
  80. package/dist/vite/shadcn-registry.d.ts +8 -8
  81. package/lib/{Command-C9AC5cf-.js → Command-BYukybsa.js} +2 -2
  82. package/lib/{Command-C9AC5cf-.js.map → Command-BYukybsa.js.map} +1 -1
  83. package/lib/{Dialog-DMWw1doX.js → Dialog-u9Uz9sTt.js} +4 -4
  84. package/lib/{Dialog-DMWw1doX.js.map → Dialog-u9Uz9sTt.js.map} +1 -1
  85. package/lib/{MdxPage-DVI4iYgW.js → MdxPage-Bsko6_kb.js} +11 -11
  86. package/lib/{MdxPage-DVI4iYgW.js.map → MdxPage-Bsko6_kb.js.map} +1 -1
  87. package/lib/OAuthErrorPage-DJzGiIBt.js +150 -0
  88. package/lib/OAuthErrorPage-DJzGiIBt.js.map +1 -0
  89. package/lib/{OasProvider-CbwsKPNc.js → OasProvider-DQQRt3oS.js} +3 -3
  90. package/lib/{OasProvider-CbwsKPNc.js.map → OasProvider-DQQRt3oS.js.map} +1 -1
  91. package/lib/{OperationList-Bn9ggxw8.js → OperationList-DpmkHf26.js} +45 -43
  92. package/lib/{OperationList-Bn9ggxw8.js.map → OperationList-DpmkHf26.js.map} +1 -1
  93. package/lib/{Pagination-bavPec-z.js → Pagination-kqFNgtnI.js} +3 -3
  94. package/lib/{Pagination-bavPec-z.js.map → Pagination-kqFNgtnI.js.map} +1 -1
  95. package/lib/{RouteGuard-Vnlz_t51.js → RouteGuard-0wPUKdxJ.js} +166 -165
  96. package/lib/{RouteGuard-Vnlz_t51.js.map → RouteGuard-0wPUKdxJ.js.map} +1 -1
  97. package/lib/{SchemaList-DETyCVqu.js → SchemaList-DS-pMd6B.js} +8 -8
  98. package/lib/{SchemaList-DETyCVqu.js.map → SchemaList-DS-pMd6B.js.map} +1 -1
  99. package/lib/{SchemaView-Dvxo2RNe.js → SchemaView-BnN6WHjw.js} +4 -4
  100. package/lib/{SchemaView-Dvxo2RNe.js.map → SchemaView-BnN6WHjw.js.map} +1 -1
  101. package/lib/Select-BmTTKNPp.js +273 -0
  102. package/lib/Select-BmTTKNPp.js.map +1 -0
  103. package/lib/{SignUp-ClYhZq9H.js → SignUp-BwOSCD-6.js} +9 -9
  104. package/lib/{SignUp-ClYhZq9H.js.map → SignUp-BwOSCD-6.js.map} +1 -1
  105. package/lib/{Slot-B31yZlfB.js → Slot-DAyXieeZ.js} +1352 -1349
  106. package/lib/{Slot-B31yZlfB.js.map → Slot-DAyXieeZ.js.map} +1 -1
  107. package/lib/{SyntaxHighlight-bm761HDo.js → SyntaxHighlight-BMKR4pl6.js} +3 -3
  108. package/lib/{SyntaxHighlight-bm761HDo.js.map → SyntaxHighlight-BMKR4pl6.js.map} +1 -1
  109. package/lib/{Toc-D4oBWE8D.js → Toc-BKDRCQzU.js} +2 -2
  110. package/lib/{Toc-D4oBWE8D.js.map → Toc-BKDRCQzU.js.map} +1 -1
  111. package/lib/ZudokuContext-CLl5w57E.js +1278 -0
  112. package/lib/ZudokuContext-CLl5w57E.js.map +1 -0
  113. package/lib/{chunk-DQRVZFIR-DHK7_Ilc.js → chunk-QMGIS6GS-CEOk3lro.js} +3 -3
  114. package/lib/chunk-QMGIS6GS-CEOk3lro.js.map +1 -0
  115. package/lib/{circular-CRbFI6Zl.js → circular-8GWQDvCW.js} +2 -2
  116. package/lib/{circular-CRbFI6Zl.js.map → circular-8GWQDvCW.js.map} +1 -1
  117. package/lib/{createServer-DNyGJJNX.js → createServer-BsezSzvV.js} +5 -5
  118. package/lib/{createServer-DNyGJJNX.js.map → createServer-BsezSzvV.js.map} +1 -1
  119. package/lib/{errors-C1GlNcV3.js → errors-Cs7hKmdL.js} +11 -10
  120. package/lib/errors-Cs7hKmdL.js.map +1 -0
  121. package/lib/hook-DbUCLQNg.js +247 -0
  122. package/lib/hook-DbUCLQNg.js.map +1 -0
  123. package/lib/{index-D09PbNex.js → index-A5Qdwj1B.js} +1521 -1420
  124. package/lib/index-A5Qdwj1B.js.map +1 -0
  125. package/lib/{index-C_PXQ8Bx.js → index-Bg7Js3jB.js} +832 -912
  126. package/lib/index-Bg7Js3jB.js.map +1 -0
  127. package/lib/{index-CZTEgYDd.js → index-BkW9tJ6j.js} +2 -2
  128. package/lib/{index-CZTEgYDd.js.map → index-BkW9tJ6j.js.map} +1 -1
  129. package/lib/index.esm-CdzlRw50.js +1254 -0
  130. package/lib/index.esm-CdzlRw50.js.map +1 -0
  131. package/lib/{invariant-DAFpPywt.js → invariant-Bm-FVUQE.js} +2 -6
  132. package/lib/invariant-Bm-FVUQE.js.map +1 -0
  133. package/lib/ui/ActionButton.js +9 -9
  134. package/lib/ui/ActionButton.js.map +1 -1
  135. package/lib/ui/Command.js +1 -1
  136. package/lib/ui/Form.js +1 -1
  137. package/lib/ui/SyntaxHighlight.js +3 -3
  138. package/lib/{useExposedProps-BIYjecPD.js → useExposedProps-KcgXHKeE.js} +2 -2
  139. package/lib/{useExposedProps-BIYjecPD.js.map → useExposedProps-KcgXHKeE.js.map} +1 -1
  140. package/lib/zudoku.auth-auth0.js +1 -1
  141. package/lib/zudoku.auth-azureb2c.js +25 -17
  142. package/lib/zudoku.auth-azureb2c.js.map +1 -1
  143. package/lib/zudoku.auth-clerk.js +24 -21
  144. package/lib/zudoku.auth-clerk.js.map +1 -1
  145. package/lib/zudoku.auth-openid.js +213 -205
  146. package/lib/zudoku.auth-openid.js.map +1 -1
  147. package/lib/zudoku.auth-supabase.js +2 -2
  148. package/lib/zudoku.components.js +29 -28
  149. package/lib/zudoku.components.js.map +1 -1
  150. package/lib/zudoku.hooks.js +16 -15
  151. package/lib/zudoku.hooks.js.map +1 -1
  152. package/lib/zudoku.plugin-api-catalog.js +26 -25
  153. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  154. package/lib/zudoku.plugin-api-keys.js +404 -289
  155. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  156. package/lib/zudoku.plugin-custom-pages.js +1 -1
  157. package/lib/zudoku.plugin-markdown.js +1 -1
  158. package/lib/zudoku.plugin-openapi.js +7 -6
  159. package/lib/zudoku.plugin-openapi.js.map +1 -1
  160. package/lib/zudoku.plugin-redirect.js +1 -1
  161. package/lib/zudoku.plugin-search-pagefind.js +28 -27
  162. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  163. package/lib/zudoku.plugins.js.map +1 -1
  164. package/package.json +8 -8
  165. package/src/lib/authentication/components/CallbackHandler.tsx +22 -15
  166. package/src/lib/authentication/components/OAuthErrorPage.tsx +171 -0
  167. package/src/lib/authentication/errors.ts +27 -13
  168. package/src/lib/authentication/hook.ts +2 -0
  169. package/src/lib/authentication/providers/azureb2c.tsx +8 -3
  170. package/src/lib/authentication/providers/clerk.tsx +4 -1
  171. package/src/lib/authentication/providers/openid.tsx +7 -1
  172. package/src/lib/components/Heading.tsx +1 -1
  173. package/src/lib/components/MobileTopNavigation.tsx +6 -3
  174. package/src/lib/components/TopNavigation.tsx +4 -4
  175. package/src/lib/components/context/ZudokuContext.ts +25 -18
  176. package/src/lib/components/navigation/NavigationItem.tsx +9 -1
  177. package/src/lib/components/navigation/utils.ts +9 -3
  178. package/src/lib/core/RouteGuard.tsx +13 -13
  179. package/src/lib/core/ZudokuContext.ts +18 -5
  180. package/src/lib/core/plugins.ts +2 -1
  181. package/src/lib/plugins/api-keys/CreateApiKey.tsx +12 -1
  182. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +24 -4
  183. package/src/lib/plugins/api-keys/index.tsx +7 -8
  184. package/src/lib/plugins/openapi/graphql/gql.ts +3 -3
  185. package/src/lib/plugins/openapi/graphql/graphql.ts +2 -0
  186. package/src/lib/plugins/openapi/index.tsx +66 -16
  187. package/src/lib/ui/ActionButton.tsx +3 -1
  188. package/src/lib/util/invariant.ts +7 -5
  189. package/lib/Alert-CWApD0CL.js +0 -161
  190. package/lib/Alert-CWApD0CL.js.map +0 -1
  191. package/lib/CallbackHandler-Dr5Lva9x.js +0 -38
  192. package/lib/CallbackHandler-Dr5Lva9x.js.map +0 -1
  193. package/lib/chunk-DQRVZFIR-DHK7_Ilc.js.map +0 -1
  194. package/lib/errors-C1GlNcV3.js.map +0 -1
  195. package/lib/hook-CZjW2buS.js +0 -1510
  196. package/lib/hook-CZjW2buS.js.map +0 -1
  197. package/lib/index-C_PXQ8Bx.js.map +0 -1
  198. package/lib/index-D09PbNex.js.map +0 -1
  199. package/lib/index.esm-Cp4wkyud.js +0 -1236
  200. package/lib/index.esm-Cp4wkyud.js.map +0 -1
  201. package/lib/invariant-DAFpPywt.js.map +0 -1
@@ -1,161 +0,0 @@
1
- import * as a from "react";
2
- import { g as p } from "./Slot-B31yZlfB.js";
3
- import { S as m, s as f, h, n as l, g as v, i as g, k as b } from "./hook-CZjW2buS.js";
4
- import { j as n } from "./jsx-runtime-C5mzlN2N.js";
5
- import { c as x } from "./index-DI5SPFK9.js";
6
- import { c as u } from "./cn-dYga0KKN.js";
7
- var y = class extends m {
8
- #e;
9
- #r = void 0;
10
- #t;
11
- #s;
12
- constructor(t, s) {
13
- super(), this.#e = t, this.setOptions(s), this.bindMethods(), this.#i();
14
- }
15
- bindMethods() {
16
- this.mutate = this.mutate.bind(this), this.reset = this.reset.bind(this);
17
- }
18
- setOptions(t) {
19
- const s = this.options;
20
- this.options = this.#e.defaultMutationOptions(t), f(this.options, s) || this.#e.getMutationCache().notify({
21
- type: "observerOptionsUpdated",
22
- mutation: this.#t,
23
- observer: this
24
- }), s?.mutationKey && this.options.mutationKey && h(s.mutationKey) !== h(this.options.mutationKey) ? this.reset() : this.#t?.state.status === "pending" && this.#t.setOptions(this.options);
25
- }
26
- onUnsubscribe() {
27
- this.hasListeners() || this.#t?.removeObserver(this);
28
- }
29
- onMutationUpdate(t) {
30
- this.#i(), this.#a(t);
31
- }
32
- getCurrentResult() {
33
- return this.#r;
34
- }
35
- reset() {
36
- this.#t?.removeObserver(this), this.#t = void 0, this.#i(), this.#a();
37
- }
38
- mutate(t, s) {
39
- return this.#s = s, this.#t?.removeObserver(this), this.#t = this.#e.getMutationCache().build(this.#e, this.options), this.#t.addObserver(this), this.#t.execute(t);
40
- }
41
- #i() {
42
- const t = this.#t?.state ?? p();
43
- this.#r = {
44
- ...t,
45
- isPending: t.status === "pending",
46
- isSuccess: t.status === "success",
47
- isError: t.status === "error",
48
- isIdle: t.status === "idle",
49
- mutate: this.mutate,
50
- reset: this.reset
51
- };
52
- }
53
- #a(t) {
54
- l.batch(() => {
55
- if (this.#s && this.hasListeners()) {
56
- const s = this.#r.variables, r = this.#r.context;
57
- t?.type === "success" ? (this.#s.onSuccess?.(t.data, s, r), this.#s.onSettled?.(t.data, null, s, r)) : t?.type === "error" && (this.#s.onError?.(t.error, s, r), this.#s.onSettled?.(
58
- void 0,
59
- t.error,
60
- s,
61
- r
62
- ));
63
- }
64
- this.listeners.forEach((s) => {
65
- s(this.#r);
66
- });
67
- });
68
- }
69
- };
70
- function R(t, s) {
71
- const r = v(s), [e] = a.useState(
72
- () => new y(
73
- r,
74
- t
75
- )
76
- );
77
- a.useEffect(() => {
78
- e.setOptions(t);
79
- }, [e, t]);
80
- const i = a.useSyncExternalStore(
81
- a.useCallback(
82
- (o) => e.subscribe(l.batchCalls(o)),
83
- [e]
84
- ),
85
- () => e.getCurrentResult(),
86
- () => e.getCurrentResult()
87
- ), c = a.useCallback(
88
- (o, d) => {
89
- e.mutate(o, d).catch(g);
90
- },
91
- [e]
92
- );
93
- if (i.error && b(e.options.throwOnError, [i.error]))
94
- throw i.error;
95
- return { ...i, mutate: c, mutateAsync: i.mutate };
96
- }
97
- const O = x(
98
- "relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
99
- {
100
- variants: {
101
- variant: {
102
- default: "bg-card text-card-foreground",
103
- destructive: "text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90"
104
- }
105
- },
106
- defaultVariants: {
107
- variant: "default"
108
- }
109
- }
110
- );
111
- function w({
112
- className: t,
113
- variant: s,
114
- ...r
115
- }) {
116
- return /* @__PURE__ */ n.jsx(
117
- "div",
118
- {
119
- "data-slot": "alert",
120
- role: "alert",
121
- className: u(O({ variant: s }), t),
122
- ...r
123
- }
124
- );
125
- }
126
- function A({ className: t, ...s }) {
127
- return /* @__PURE__ */ n.jsx(
128
- "div",
129
- {
130
- "data-slot": "alert-title",
131
- className: u(
132
- "col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",
133
- t
134
- ),
135
- ...s
136
- }
137
- );
138
- }
139
- function K({
140
- className: t,
141
- ...s
142
- }) {
143
- return /* @__PURE__ */ n.jsx(
144
- "div",
145
- {
146
- "data-slot": "alert-description",
147
- className: u(
148
- "text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",
149
- t
150
- ),
151
- ...s
152
- }
153
- );
154
- }
155
- export {
156
- w as A,
157
- A as a,
158
- K as b,
159
- R as u
160
- };
161
- //# sourceMappingURL=Alert-CWApD0CL.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Alert-CWApD0CL.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.81.5/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../../node_modules/.pnpm/@tanstack+react-query@5.81.5_react@19.1.0/node_modules/@tanstack/react-query/build/modern/useMutation.js","../src/lib/ui/Alert.tsx"],"sourcesContent":["// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const context = this.#currentResult.context;\n if (action?.type === \"success\") {\n this.#mutateOptions.onSuccess?.(action.data, variables, context);\n this.#mutateOptions.onSettled?.(action.data, null, variables, context);\n } else if (action?.type === \"error\") {\n this.#mutateOptions.onError?.(action.error, variables, context);\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n context\n );\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport {\n MutationObserver,\n noop,\n notifyManager,\n shouldThrowError\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n destructive:\n \"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n \"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertDescription, AlertTitle };\n"],"names":["MutationObserver","Subscribable","#client","#currentResult","#currentMutation","#mutateOptions","client","options","#updateResult","prevOptions","shallowEqualObjects","hashKey","action","#notify","variables","state","getDefaultState","notifyManager","context","listener","useMutation","queryClient","useQueryClient","observer","React","result","onStoreChange","mutate","mutateOptions","noop","shouldThrowError","alertVariants","cva","Alert","className","variant","props","jsx","cn","AlertTitle","AlertDescription"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,38 +0,0 @@
1
- import { j as o } from "./jsx-runtime-C5mzlN2N.js";
2
- import { c as n, j as u } from "./hook-CZjW2buS.js";
3
- import { N as s } from "./chunk-DQRVZFIR-DHK7_Ilc.js";
4
- import { u as l } from "./index-D09PbNex.js";
5
- import { Z as i } from "./invariant-DAFpPywt.js";
6
- function c(t, r, e = "/") {
7
- return t.startsWith(r) ? e !== "/" && t.startsWith(r + e) ? t.slice(r.length + e.length) : t.slice(r.length) : t;
8
- }
9
- function d({
10
- handleCallback: t
11
- }) {
12
- const { options: r } = l(), e = n({
13
- retry: !1,
14
- queryKey: ["oauth-callback"],
15
- queryFn: async () => {
16
- try {
17
- return u(
18
- c(
19
- await t(),
20
- window.location.origin,
21
- r.basePath
22
- )
23
- );
24
- } catch (a) {
25
- throw new i("Could not validate user", {
26
- cause: a,
27
- title: "Authentication Error",
28
- developerHint: "Check the configuration of your authorization provider and ensure all settings such as the callback URL are configured correctly."
29
- });
30
- }
31
- }
32
- });
33
- return /* @__PURE__ */ o.jsx(s, { to: e.data, replace: !0 });
34
- }
35
- export {
36
- d as C
37
- };
38
- //# sourceMappingURL=CallbackHandler-Dr5Lva9x.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CallbackHandler-Dr5Lva9x.js","sources":["../src/lib/util/url.ts","../src/lib/authentication/components/CallbackHandler.tsx"],"sourcesContent":["/**\n * Normalizes a redirect URL by removing the origin and optionally the root path\n */\nexport function normalizeRedirectUrl(\n redirectTo: string,\n origin: string,\n basePath: string = \"/\",\n): string {\n if (!redirectTo.startsWith(origin)) {\n return redirectTo;\n }\n\n if (basePath !== \"/\" && redirectTo.startsWith(origin + basePath)) {\n return redirectTo.slice(origin.length + basePath.length);\n }\n\n return redirectTo.slice(origin.length);\n}\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { Navigate } from \"react-router\";\nimport { useZudoku } from \"zudoku/components\";\nimport { ZudokuError } from \"../../util/invariant.js\";\nimport { joinUrl } from \"../../util/joinUrl.js\";\nimport { normalizeRedirectUrl } from \"../../util/url.js\";\n\nexport function CallbackHandler({\n handleCallback,\n}: {\n handleCallback: () => Promise<string>;\n}) {\n const { options } = useZudoku();\n const executeCallback = useSuspenseQuery({\n retry: false,\n queryKey: [\"oauth-callback\"],\n queryFn: async () => {\n try {\n return joinUrl(\n normalizeRedirectUrl(\n await handleCallback(),\n window.location.origin,\n options.basePath,\n ),\n );\n } catch (error) {\n throw new ZudokuError(\"Could not validate user\", {\n cause: error,\n title: \"Authentication Error\",\n developerHint:\n \"Check the configuration of your authorization provider and ensure all settings such as the callback URL are configured correctly.\",\n });\n }\n },\n });\n\n return <Navigate to={executeCallback.data} replace />;\n}\n"],"names":["normalizeRedirectUrl","redirectTo","origin","basePath","CallbackHandler","handleCallback","options","useZudoku","executeCallback","useSuspenseQuery","joinUrl","error","ZudokuError","Navigate"],"mappings":";;;;;AAGO,SAASA,EACdC,GACAC,GACAC,IAAmB,KACX;AACR,SAAKF,EAAW,WAAWC,CAAM,IAI7BC,MAAa,OAAOF,EAAW,WAAWC,IAASC,CAAQ,IACtDF,EAAW,MAAMC,EAAO,SAASC,EAAS,MAAM,IAGlDF,EAAW,MAAMC,EAAO,MAAM,IAP5BD;AAQX;ACVO,SAASG,EAAgB;AAAA,EAC9B,gBAAAC;AACF,GAEG;AACD,QAAM,EAAE,SAAAC,EAAA,IAAYC,EAAA,GACdC,IAAkBC,EAAiB;AAAA,IACvC,OAAO;AAAA,IACP,UAAU,CAAC,gBAAgB;AAAA,IAC3B,SAAS,YAAY;AACnB,UAAI;AACF,eAAOC;AAAA,UACLV;AAAA,YACE,MAAMK,EAAA;AAAA,YACN,OAAO,SAAS;AAAA,YAChBC,EAAQ;AAAA,UAAA;AAAA,QACV;AAAA,MAEJ,SAASK,GAAO;AACd,cAAM,IAAIC,EAAY,2BAA2B;AAAA,UAC/C,OAAOD;AAAA,UACP,OAAO;AAAA,UACP,eACE;AAAA,QAAA,CACH;AAAA,MACH;AAAA,IACF;AAAA,EAAA,CACD;AAED,+BAAQE,GAAA,EAAS,IAAIL,EAAgB,MAAM,SAAO,IAAC;AACrD;"}