zudoku 0.53.6 → 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 (197) hide show
  1. package/dist/config/config.d.ts +1 -0
  2. package/dist/config/validators/InputNavigationSchema.d.ts +190 -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/validate.d.ts +32 -19
  9. package/dist/config/validators/validate.js +6 -2
  10. package/dist/config/validators/validate.js.map +1 -1
  11. package/dist/lib/authentication/components/CallbackHandler.js +11 -9
  12. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
  13. package/dist/lib/authentication/components/OAuthErrorPage.d.ts +3 -0
  14. package/dist/lib/authentication/components/OAuthErrorPage.js +99 -0
  15. package/dist/lib/authentication/components/OAuthErrorPage.js.map +1 -0
  16. package/dist/lib/authentication/errors.d.ts +6 -12
  17. package/dist/lib/authentication/errors.js +2 -1
  18. package/dist/lib/authentication/errors.js.map +1 -1
  19. package/dist/lib/authentication/hook.d.ts +1 -0
  20. package/dist/lib/authentication/hook.js.map +1 -1
  21. package/dist/lib/authentication/providers/azureb2c.js +4 -2
  22. package/dist/lib/authentication/providers/azureb2c.js.map +1 -1
  23. package/dist/lib/authentication/providers/clerk.js +4 -2
  24. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  25. package/dist/lib/authentication/providers/openid.js +3 -1
  26. package/dist/lib/authentication/providers/openid.js.map +1 -1
  27. package/dist/lib/components/Heading.js +1 -1
  28. package/dist/lib/components/Heading.js.map +1 -1
  29. package/dist/lib/components/MobileTopNavigation.js +5 -3
  30. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  31. package/dist/lib/components/TopNavigation.js +4 -3
  32. package/dist/lib/components/TopNavigation.js.map +1 -1
  33. package/dist/lib/components/context/ZudokuContext.js +21 -13
  34. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  35. package/dist/lib/components/navigation/NavigationItem.d.ts +1 -1
  36. package/dist/lib/components/navigation/NavigationItem.js +8 -1
  37. package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
  38. package/dist/lib/components/navigation/utils.d.ts +3 -1
  39. package/dist/lib/components/navigation/utils.js +6 -3
  40. package/dist/lib/components/navigation/utils.js.map +1 -1
  41. package/dist/lib/core/RouteGuard.js +9 -9
  42. package/dist/lib/core/RouteGuard.js.map +1 -1
  43. package/dist/lib/core/ZudokuContext.d.ts +2 -1
  44. package/dist/lib/core/ZudokuContext.js +13 -1
  45. package/dist/lib/core/ZudokuContext.js.map +1 -1
  46. package/dist/lib/core/plugins.d.ts +2 -1
  47. package/dist/lib/core/plugins.js.map +1 -1
  48. package/dist/lib/plugins/api-keys/CreateApiKey.js +7 -3
  49. package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
  50. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +3 -1
  51. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  52. package/dist/lib/plugins/api-keys/index.d.ts +1 -0
  53. package/dist/lib/plugins/api-keys/index.js +3 -7
  54. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  55. package/dist/lib/plugins/openapi/graphql/gql.d.ts +1 -1
  56. package/dist/lib/plugins/openapi/graphql/gql.js +1 -1
  57. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  58. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +1 -0
  59. package/dist/lib/plugins/openapi/graphql/graphql.js +1 -0
  60. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  61. package/dist/lib/plugins/openapi/index.js +42 -10
  62. package/dist/lib/plugins/openapi/index.js.map +1 -1
  63. package/dist/lib/ui/ActionButton.js +1 -1
  64. package/dist/lib/ui/ActionButton.js.map +1 -1
  65. package/dist/lib/ui/Badge.d.ts +1 -1
  66. package/dist/lib/ui/Button.d.ts +2 -2
  67. package/dist/lib/ui/Command.d.ts +1 -1
  68. package/dist/lib/util/invariant.d.ts +6 -5
  69. package/dist/lib/util/invariant.js +1 -1
  70. package/dist/lib/util/invariant.js.map +1 -1
  71. package/dist/vite/dev-server.js +1 -1
  72. package/dist/vite/dev-server.js.map +1 -1
  73. package/dist/vite/prerender/worker.js +5 -1
  74. package/dist/vite/prerender/worker.js.map +1 -1
  75. package/dist/vite/shadcn-registry.d.ts +8 -8
  76. package/lib/{Command-C9AC5cf-.js → Command-BYukybsa.js} +2 -2
  77. package/lib/{Command-C9AC5cf-.js.map → Command-BYukybsa.js.map} +1 -1
  78. package/lib/{Dialog-DMWw1doX.js → Dialog-u9Uz9sTt.js} +4 -4
  79. package/lib/{Dialog-DMWw1doX.js.map → Dialog-u9Uz9sTt.js.map} +1 -1
  80. package/lib/{MdxPage-DVI4iYgW.js → MdxPage-Bsko6_kb.js} +11 -11
  81. package/lib/{MdxPage-DVI4iYgW.js.map → MdxPage-Bsko6_kb.js.map} +1 -1
  82. package/lib/OAuthErrorPage-DJzGiIBt.js +150 -0
  83. package/lib/OAuthErrorPage-DJzGiIBt.js.map +1 -0
  84. package/lib/{OasProvider-CbwsKPNc.js → OasProvider-DQQRt3oS.js} +3 -3
  85. package/lib/{OasProvider-CbwsKPNc.js.map → OasProvider-DQQRt3oS.js.map} +1 -1
  86. package/lib/{OperationList-Bn9ggxw8.js → OperationList-DpmkHf26.js} +45 -43
  87. package/lib/{OperationList-Bn9ggxw8.js.map → OperationList-DpmkHf26.js.map} +1 -1
  88. package/lib/{Pagination-bavPec-z.js → Pagination-kqFNgtnI.js} +3 -3
  89. package/lib/{Pagination-bavPec-z.js.map → Pagination-kqFNgtnI.js.map} +1 -1
  90. package/lib/{RouteGuard-Vnlz_t51.js → RouteGuard-0wPUKdxJ.js} +166 -165
  91. package/lib/{RouteGuard-Vnlz_t51.js.map → RouteGuard-0wPUKdxJ.js.map} +1 -1
  92. package/lib/{SchemaList-DETyCVqu.js → SchemaList-DS-pMd6B.js} +8 -8
  93. package/lib/{SchemaList-DETyCVqu.js.map → SchemaList-DS-pMd6B.js.map} +1 -1
  94. package/lib/{SchemaView-Dvxo2RNe.js → SchemaView-BnN6WHjw.js} +4 -4
  95. package/lib/{SchemaView-Dvxo2RNe.js.map → SchemaView-BnN6WHjw.js.map} +1 -1
  96. package/lib/Select-BmTTKNPp.js +273 -0
  97. package/lib/Select-BmTTKNPp.js.map +1 -0
  98. package/lib/{SignUp-ClYhZq9H.js → SignUp-BwOSCD-6.js} +9 -9
  99. package/lib/{SignUp-ClYhZq9H.js.map → SignUp-BwOSCD-6.js.map} +1 -1
  100. package/lib/{Slot-B31yZlfB.js → Slot-DAyXieeZ.js} +1352 -1349
  101. package/lib/{Slot-B31yZlfB.js.map → Slot-DAyXieeZ.js.map} +1 -1
  102. package/lib/{SyntaxHighlight-bm761HDo.js → SyntaxHighlight-BMKR4pl6.js} +3 -3
  103. package/lib/{SyntaxHighlight-bm761HDo.js.map → SyntaxHighlight-BMKR4pl6.js.map} +1 -1
  104. package/lib/{Toc-D4oBWE8D.js → Toc-BKDRCQzU.js} +2 -2
  105. package/lib/{Toc-D4oBWE8D.js.map → Toc-BKDRCQzU.js.map} +1 -1
  106. package/lib/ZudokuContext-CLl5w57E.js +1278 -0
  107. package/lib/ZudokuContext-CLl5w57E.js.map +1 -0
  108. package/lib/{chunk-DQRVZFIR-DHK7_Ilc.js → chunk-QMGIS6GS-CEOk3lro.js} +3 -3
  109. package/lib/chunk-QMGIS6GS-CEOk3lro.js.map +1 -0
  110. package/lib/{circular-CRbFI6Zl.js → circular-8GWQDvCW.js} +2 -2
  111. package/lib/{circular-CRbFI6Zl.js.map → circular-8GWQDvCW.js.map} +1 -1
  112. package/lib/{createServer-DNyGJJNX.js → createServer-BsezSzvV.js} +5 -5
  113. package/lib/{createServer-DNyGJJNX.js.map → createServer-BsezSzvV.js.map} +1 -1
  114. package/lib/{errors-C1GlNcV3.js → errors-Cs7hKmdL.js} +11 -10
  115. package/lib/errors-Cs7hKmdL.js.map +1 -0
  116. package/lib/hook-DbUCLQNg.js +247 -0
  117. package/lib/hook-DbUCLQNg.js.map +1 -0
  118. package/lib/{index-D09PbNex.js → index-A5Qdwj1B.js} +1521 -1420
  119. package/lib/index-A5Qdwj1B.js.map +1 -0
  120. package/lib/{index-C_PXQ8Bx.js → index-Bg7Js3jB.js} +832 -912
  121. package/lib/index-Bg7Js3jB.js.map +1 -0
  122. package/lib/{index-CZTEgYDd.js → index-BkW9tJ6j.js} +2 -2
  123. package/lib/{index-CZTEgYDd.js.map → index-BkW9tJ6j.js.map} +1 -1
  124. package/lib/index.esm-CdzlRw50.js +1254 -0
  125. package/lib/index.esm-CdzlRw50.js.map +1 -0
  126. package/lib/{invariant-DAFpPywt.js → invariant-Bm-FVUQE.js} +2 -6
  127. package/lib/invariant-Bm-FVUQE.js.map +1 -0
  128. package/lib/ui/ActionButton.js +9 -9
  129. package/lib/ui/ActionButton.js.map +1 -1
  130. package/lib/ui/Command.js +1 -1
  131. package/lib/ui/Form.js +1 -1
  132. package/lib/ui/SyntaxHighlight.js +3 -3
  133. package/lib/{useExposedProps-BIYjecPD.js → useExposedProps-KcgXHKeE.js} +2 -2
  134. package/lib/{useExposedProps-BIYjecPD.js.map → useExposedProps-KcgXHKeE.js.map} +1 -1
  135. package/lib/zudoku.auth-auth0.js +1 -1
  136. package/lib/zudoku.auth-azureb2c.js +25 -17
  137. package/lib/zudoku.auth-azureb2c.js.map +1 -1
  138. package/lib/zudoku.auth-clerk.js +24 -21
  139. package/lib/zudoku.auth-clerk.js.map +1 -1
  140. package/lib/zudoku.auth-openid.js +213 -205
  141. package/lib/zudoku.auth-openid.js.map +1 -1
  142. package/lib/zudoku.auth-supabase.js +2 -2
  143. package/lib/zudoku.components.js +29 -28
  144. package/lib/zudoku.components.js.map +1 -1
  145. package/lib/zudoku.hooks.js +16 -15
  146. package/lib/zudoku.hooks.js.map +1 -1
  147. package/lib/zudoku.plugin-api-catalog.js +26 -25
  148. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  149. package/lib/zudoku.plugin-api-keys.js +409 -297
  150. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  151. package/lib/zudoku.plugin-custom-pages.js +1 -1
  152. package/lib/zudoku.plugin-markdown.js +1 -1
  153. package/lib/zudoku.plugin-openapi.js +7 -6
  154. package/lib/zudoku.plugin-openapi.js.map +1 -1
  155. package/lib/zudoku.plugin-redirect.js +1 -1
  156. package/lib/zudoku.plugin-search-pagefind.js +28 -27
  157. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  158. package/lib/zudoku.plugins.js.map +1 -1
  159. package/package.json +4 -4
  160. package/src/lib/authentication/components/CallbackHandler.tsx +22 -15
  161. package/src/lib/authentication/components/OAuthErrorPage.tsx +171 -0
  162. package/src/lib/authentication/errors.ts +27 -13
  163. package/src/lib/authentication/hook.ts +2 -0
  164. package/src/lib/authentication/providers/azureb2c.tsx +8 -3
  165. package/src/lib/authentication/providers/clerk.tsx +4 -1
  166. package/src/lib/authentication/providers/openid.tsx +7 -1
  167. package/src/lib/components/Heading.tsx +1 -1
  168. package/src/lib/components/MobileTopNavigation.tsx +6 -3
  169. package/src/lib/components/TopNavigation.tsx +4 -4
  170. package/src/lib/components/context/ZudokuContext.ts +25 -18
  171. package/src/lib/components/navigation/NavigationItem.tsx +9 -1
  172. package/src/lib/components/navigation/utils.ts +9 -3
  173. package/src/lib/core/RouteGuard.tsx +13 -13
  174. package/src/lib/core/ZudokuContext.ts +18 -5
  175. package/src/lib/core/plugins.ts +2 -1
  176. package/src/lib/plugins/api-keys/CreateApiKey.tsx +12 -1
  177. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +24 -4
  178. package/src/lib/plugins/api-keys/index.tsx +7 -8
  179. package/src/lib/plugins/openapi/graphql/gql.ts +3 -3
  180. package/src/lib/plugins/openapi/graphql/graphql.ts +2 -0
  181. package/src/lib/plugins/openapi/index.tsx +66 -16
  182. package/src/lib/ui/ActionButton.tsx +3 -1
  183. package/src/lib/util/invariant.ts +7 -5
  184. package/dist/flat-config.d.ts +0 -323
  185. package/lib/Alert-CWApD0CL.js +0 -161
  186. package/lib/Alert-CWApD0CL.js.map +0 -1
  187. package/lib/CallbackHandler-Dr5Lva9x.js +0 -38
  188. package/lib/CallbackHandler-Dr5Lva9x.js.map +0 -1
  189. package/lib/chunk-DQRVZFIR-DHK7_Ilc.js.map +0 -1
  190. package/lib/errors-C1GlNcV3.js.map +0 -1
  191. package/lib/hook-CZjW2buS.js +0 -1510
  192. package/lib/hook-CZjW2buS.js.map +0 -1
  193. package/lib/index-C_PXQ8Bx.js.map +0 -1
  194. package/lib/index-D09PbNex.js.map +0 -1
  195. package/lib/index.esm-Cp4wkyud.js +0 -1236
  196. package/lib/index.esm-Cp4wkyud.js.map +0 -1
  197. package/lib/invariant-DAFpPywt.js.map +0 -1
@@ -1,1510 +0,0 @@
1
- import * as S from "react";
2
- import tt, { createContext as Rt, useContext as Ot } from "react";
3
- import { j as Ct } from "./jsx-runtime-C5mzlN2N.js";
4
- import { u as q, m as j } from "./chunk-DQRVZFIR-DHK7_Ilc.js";
5
- import { c as Et } from "./index-DI5SPFK9.js";
6
- var V = class {
7
- constructor() {
8
- this.listeners = /* @__PURE__ */ new Set(), this.subscribe = this.subscribe.bind(this);
9
- }
10
- subscribe(t) {
11
- return this.listeners.add(t), this.onSubscribe(), () => {
12
- this.listeners.delete(t), this.onUnsubscribe();
13
- };
14
- }
15
- hasListeners() {
16
- return this.listeners.size > 0;
17
- }
18
- onSubscribe() {
19
- }
20
- onUnsubscribe() {
21
- }
22
- }, E = typeof window > "u" || "Deno" in globalThis;
23
- function F() {
24
- }
25
- function me(t, e) {
26
- return typeof t == "function" ? t(e) : t;
27
- }
28
- function N(t) {
29
- return typeof t == "number" && t >= 0 && t !== 1 / 0;
30
- }
31
- function ot(t, e) {
32
- return Math.max(t + (e || 0) - Date.now(), 0);
33
- }
34
- function x(t, e) {
35
- return typeof t == "function" ? t(e) : t;
36
- }
37
- function w(t, e) {
38
- return typeof t == "function" ? t(e) : t;
39
- }
40
- function be(t, e) {
41
- const {
42
- type: s = "all",
43
- exact: r,
44
- fetchStatus: n,
45
- predicate: i,
46
- queryKey: o,
47
- stale: u
48
- } = t;
49
- if (o) {
50
- if (r) {
51
- if (e.queryHash !== Ft(o, e.options))
52
- return !1;
53
- } else if (!$(e.queryKey, o))
54
- return !1;
55
- }
56
- if (s !== "all") {
57
- const a = e.isActive();
58
- if (s === "active" && !a || s === "inactive" && a)
59
- return !1;
60
- }
61
- return !(typeof u == "boolean" && e.isStale() !== u || n && n !== e.state.fetchStatus || i && !i(e));
62
- }
63
- function Se(t, e) {
64
- const { exact: s, status: r, predicate: n, mutationKey: i } = t;
65
- if (i) {
66
- if (!e.options.mutationKey)
67
- return !1;
68
- if (s) {
69
- if (L(e.options.mutationKey) !== L(i))
70
- return !1;
71
- } else if (!$(e.options.mutationKey, i))
72
- return !1;
73
- }
74
- return !(r && e.state.status !== r || n && !n(e));
75
- }
76
- function Ft(t, e) {
77
- return (e?.queryKeyHashFn || L)(t);
78
- }
79
- function L(t) {
80
- return JSON.stringify(
81
- t,
82
- (e, s) => H(s) ? Object.keys(s).sort().reduce((r, n) => (r[n] = s[n], r), {}) : s
83
- );
84
- }
85
- function $(t, e) {
86
- return t === e ? !0 : typeof t != typeof e ? !1 : t && e && typeof t == "object" && typeof e == "object" ? Object.keys(e).every((s) => $(t[s], e[s])) : !1;
87
- }
88
- function M(t, e) {
89
- if (t === e)
90
- return t;
91
- const s = et(t) && et(e);
92
- if (s || H(t) && H(e)) {
93
- const r = s ? t : Object.keys(t), n = r.length, i = s ? e : Object.keys(e), o = i.length, u = s ? [] : {}, a = new Set(r);
94
- let l = 0;
95
- for (let h = 0; h < o; h++) {
96
- const f = s ? h : i[h];
97
- (!s && a.has(f) || s) && t[f] === void 0 && e[f] === void 0 ? (u[f] = void 0, l++) : (u[f] = M(t[f], e[f]), u[f] === t[f] && t[f] !== void 0 && l++);
98
- }
99
- return n === o && l === n ? t : u;
100
- }
101
- return e;
102
- }
103
- function _(t, e) {
104
- if (!e || Object.keys(t).length !== Object.keys(e).length)
105
- return !1;
106
- for (const s in t)
107
- if (t[s] !== e[s])
108
- return !1;
109
- return !0;
110
- }
111
- function et(t) {
112
- return Array.isArray(t) && t.length === Object.keys(t).length;
113
- }
114
- function H(t) {
115
- if (!st(t))
116
- return !1;
117
- const e = t.constructor;
118
- if (e === void 0)
119
- return !0;
120
- const s = e.prototype;
121
- return !(!st(s) || !s.hasOwnProperty("isPrototypeOf") || Object.getPrototypeOf(t) !== Object.prototype);
122
- }
123
- function st(t) {
124
- return Object.prototype.toString.call(t) === "[object Object]";
125
- }
126
- function It(t) {
127
- return new Promise((e) => {
128
- setTimeout(e, t);
129
- });
130
- }
131
- function K(t, e, s) {
132
- if (typeof s.structuralSharing == "function")
133
- return s.structuralSharing(t, e);
134
- if (s.structuralSharing !== !1) {
135
- if (process.env.NODE_ENV !== "production")
136
- try {
137
- return M(t, e);
138
- } catch (r) {
139
- throw console.error(
140
- `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${s.queryHash}]: ${r}`
141
- ), r;
142
- }
143
- return M(t, e);
144
- }
145
- return e;
146
- }
147
- function we(t) {
148
- return t;
149
- }
150
- function Re(t, e, s = 0) {
151
- const r = [...t, e];
152
- return s && r.length > s ? r.slice(1) : r;
153
- }
154
- function Oe(t, e, s = 0) {
155
- const r = [e, ...t];
156
- return s && r.length > s ? r.slice(0, -1) : r;
157
- }
158
- var k = Symbol();
159
- function Pt(t, e) {
160
- return process.env.NODE_ENV !== "production" && t.queryFn === k && console.error(
161
- `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${t.queryHash}'`
162
- ), !t.queryFn && e?.initialPromise ? () => e.initialPromise : !t.queryFn || t.queryFn === k ? () => Promise.reject(new Error(`Missing queryFn: '${t.queryHash}'`)) : t.queryFn;
163
- }
164
- function Tt(t, e) {
165
- return typeof t == "function" ? t(...e) : !!t;
166
- }
167
- var xt = class extends V {
168
- #e;
169
- #t;
170
- #s;
171
- constructor() {
172
- super(), this.#s = (t) => {
173
- if (!E && window.addEventListener) {
174
- const e = () => t();
175
- return window.addEventListener("visibilitychange", e, !1), () => {
176
- window.removeEventListener("visibilitychange", e);
177
- };
178
- }
179
- };
180
- }
181
- onSubscribe() {
182
- this.#t || this.setEventListener(this.#s);
183
- }
184
- onUnsubscribe() {
185
- this.hasListeners() || (this.#t?.(), this.#t = void 0);
186
- }
187
- setEventListener(t) {
188
- this.#s = t, this.#t?.(), this.#t = t((e) => {
189
- typeof e == "boolean" ? this.setFocused(e) : this.onFocus();
190
- });
191
- }
192
- setFocused(t) {
193
- this.#e !== t && (this.#e = t, this.onFocus());
194
- }
195
- onFocus() {
196
- const t = this.isFocused();
197
- this.listeners.forEach((e) => {
198
- e(t);
199
- });
200
- }
201
- isFocused() {
202
- return typeof this.#e == "boolean" ? this.#e : globalThis.document?.visibilityState !== "hidden";
203
- }
204
- }, ut = new xt(), Dt = class extends V {
205
- #e = !0;
206
- #t;
207
- #s;
208
- constructor() {
209
- super(), this.#s = (t) => {
210
- if (!E && window.addEventListener) {
211
- const e = () => t(!0), s = () => t(!1);
212
- return window.addEventListener("online", e, !1), window.addEventListener("offline", s, !1), () => {
213
- window.removeEventListener("online", e), window.removeEventListener("offline", s);
214
- };
215
- }
216
- };
217
- }
218
- onSubscribe() {
219
- this.#t || this.setEventListener(this.#s);
220
- }
221
- onUnsubscribe() {
222
- this.hasListeners() || (this.#t?.(), this.#t = void 0);
223
- }
224
- setEventListener(t) {
225
- this.#s = t, this.#t?.(), this.#t = t(this.setOnline.bind(this));
226
- }
227
- setOnline(t) {
228
- this.#e !== t && (this.#e = t, this.listeners.forEach((s) => {
229
- s(t);
230
- }));
231
- }
232
- isOnline() {
233
- return this.#e;
234
- }
235
- }, ct = new Dt();
236
- function B() {
237
- let t, e;
238
- const s = new Promise((n, i) => {
239
- t = n, e = i;
240
- });
241
- s.status = "pending", s.catch(() => {
242
- });
243
- function r(n) {
244
- Object.assign(s, n), delete s.resolve, delete s.reject;
245
- }
246
- return s.resolve = (n) => {
247
- r({
248
- status: "fulfilled",
249
- value: n
250
- }), t(n);
251
- }, s.reject = (n) => {
252
- r({
253
- status: "rejected",
254
- reason: n
255
- }), e(n);
256
- }, s;
257
- }
258
- function Ce(t) {
259
- let e;
260
- if (t.then((s) => (e = s, s), F)?.catch(F), e !== void 0)
261
- return { data: e };
262
- }
263
- function At(t) {
264
- return Math.min(1e3 * 2 ** t, 3e4);
265
- }
266
- function ht(t) {
267
- return (t ?? "online") === "online" ? ct.isOnline() : !0;
268
- }
269
- var lt = class extends Error {
270
- constructor(t) {
271
- super("CancelledError"), this.revert = t?.revert, this.silent = t?.silent;
272
- }
273
- };
274
- function U(t) {
275
- return t instanceof lt;
276
- }
277
- function kt(t) {
278
- let e = !1, s = 0, r = !1, n;
279
- const i = B(), o = (c) => {
280
- r || (d(new lt(c)), t.abort?.());
281
- }, u = () => {
282
- e = !0;
283
- }, a = () => {
284
- e = !1;
285
- }, l = () => ut.isFocused() && (t.networkMode === "always" || ct.isOnline()) && t.canRun(), h = () => ht(t.networkMode) && t.canRun(), f = (c) => {
286
- r || (r = !0, t.onSuccess?.(c), n?.(), i.resolve(c));
287
- }, d = (c) => {
288
- r || (r = !0, t.onError?.(c), n?.(), i.reject(c));
289
- }, g = () => new Promise((c) => {
290
- n = (m) => {
291
- (r || l()) && c(m);
292
- }, t.onPause?.();
293
- }).then(() => {
294
- n = void 0, r || t.onContinue?.();
295
- }), O = () => {
296
- if (r)
297
- return;
298
- let c;
299
- const m = s === 0 ? t.initialPromise : void 0;
300
- try {
301
- c = m ?? t.fn();
302
- } catch (v) {
303
- c = Promise.reject(v);
304
- }
305
- Promise.resolve(c).then(f).catch((v) => {
306
- if (r)
307
- return;
308
- const p = t.retry ?? (E ? 0 : 3), y = t.retryDelay ?? At, C = typeof y == "function" ? y(s, v) : y, P = p === !0 || typeof p == "number" && s < p || typeof p == "function" && p(s, v);
309
- if (e || !P) {
310
- d(v);
311
- return;
312
- }
313
- s++, t.onFail?.(s, v), It(C).then(() => l() ? void 0 : g()).then(() => {
314
- e ? d(v) : O();
315
- });
316
- });
317
- };
318
- return {
319
- promise: i,
320
- cancel: o,
321
- continue: () => (n?.(), i),
322
- cancelRetry: u,
323
- continueRetry: a,
324
- canStart: h,
325
- start: () => (h() ? O() : g().then(O), i)
326
- };
327
- }
328
- var qt = (t) => setTimeout(t, 0);
329
- function jt() {
330
- let t = [], e = 0, s = (u) => {
331
- u();
332
- }, r = (u) => {
333
- u();
334
- }, n = qt;
335
- const i = (u) => {
336
- e ? t.push(u) : n(() => {
337
- s(u);
338
- });
339
- }, o = () => {
340
- const u = t;
341
- t = [], u.length && n(() => {
342
- r(() => {
343
- u.forEach((a) => {
344
- s(a);
345
- });
346
- });
347
- });
348
- };
349
- return {
350
- batch: (u) => {
351
- let a;
352
- e++;
353
- try {
354
- a = u();
355
- } finally {
356
- e--, e || o();
357
- }
358
- return a;
359
- },
360
- /**
361
- * All calls to the wrapped function will be batched.
362
- */
363
- batchCalls: (u) => (...a) => {
364
- i(() => {
365
- u(...a);
366
- });
367
- },
368
- schedule: i,
369
- /**
370
- * Use this method to set a custom notify function.
371
- * This can be used to for example wrap notifications with `React.act` while running tests.
372
- */
373
- setNotifyFunction: (u) => {
374
- s = u;
375
- },
376
- /**
377
- * Use this method to set a custom function to batch notifications together into a single tick.
378
- * By default React Query will use the batch function provided by ReactDOM or React Native.
379
- */
380
- setBatchNotifyFunction: (u) => {
381
- r = u;
382
- },
383
- setScheduler: (u) => {
384
- n = u;
385
- }
386
- };
387
- }
388
- var J = jt(), Ut = class {
389
- #e;
390
- destroy() {
391
- this.clearGcTimeout();
392
- }
393
- scheduleGc() {
394
- this.clearGcTimeout(), N(this.gcTime) && (this.#e = setTimeout(() => {
395
- this.optionalRemove();
396
- }, this.gcTime));
397
- }
398
- updateGcTime(t) {
399
- this.gcTime = Math.max(
400
- this.gcTime || 0,
401
- t ?? (E ? 1 / 0 : 5 * 60 * 1e3)
402
- );
403
- }
404
- clearGcTimeout() {
405
- this.#e && (clearTimeout(this.#e), this.#e = void 0);
406
- }
407
- }, Ee = class extends Ut {
408
- #e;
409
- #t;
410
- #s;
411
- #n;
412
- #r;
413
- #o;
414
- #a;
415
- constructor(t) {
416
- super(), this.#a = !1, this.#o = t.defaultOptions, this.setOptions(t.options), this.observers = [], this.#n = t.client, this.#s = this.#n.getQueryCache(), this.queryKey = t.queryKey, this.queryHash = t.queryHash, this.#e = Qt(this.options), this.state = t.state ?? this.#e, this.scheduleGc();
417
- }
418
- get meta() {
419
- return this.options.meta;
420
- }
421
- get promise() {
422
- return this.#r?.promise;
423
- }
424
- setOptions(t) {
425
- this.options = { ...this.#o, ...t }, this.updateGcTime(this.options.gcTime);
426
- }
427
- optionalRemove() {
428
- !this.observers.length && this.state.fetchStatus === "idle" && this.#s.remove(this);
429
- }
430
- setData(t, e) {
431
- const s = K(this.state.data, t, this.options);
432
- return this.#i({
433
- data: s,
434
- type: "success",
435
- dataUpdatedAt: e?.updatedAt,
436
- manual: e?.manual
437
- }), s;
438
- }
439
- setState(t, e) {
440
- this.#i({ type: "setState", state: t, setStateOptions: e });
441
- }
442
- cancel(t) {
443
- const e = this.#r?.promise;
444
- return this.#r?.cancel(t), e ? e.then(F).catch(F) : Promise.resolve();
445
- }
446
- destroy() {
447
- super.destroy(), this.cancel({ silent: !0 });
448
- }
449
- reset() {
450
- this.destroy(), this.setState(this.#e);
451
- }
452
- isActive() {
453
- return this.observers.some(
454
- (t) => w(t.options.enabled, this) !== !1
455
- );
456
- }
457
- isDisabled() {
458
- return this.getObserversCount() > 0 ? !this.isActive() : this.options.queryFn === k || this.state.dataUpdateCount + this.state.errorUpdateCount === 0;
459
- }
460
- isStatic() {
461
- return this.getObserversCount() > 0 ? this.observers.some(
462
- (t) => x(t.options.staleTime, this) === "static"
463
- ) : !1;
464
- }
465
- isStale() {
466
- return this.getObserversCount() > 0 ? this.observers.some(
467
- (t) => t.getCurrentResult().isStale
468
- ) : this.state.data === void 0 || this.state.isInvalidated;
469
- }
470
- isStaleByTime(t = 0) {
471
- return this.state.data === void 0 ? !0 : t === "static" ? !1 : this.state.isInvalidated ? !0 : !ot(this.state.dataUpdatedAt, t);
472
- }
473
- onFocus() {
474
- this.observers.find((e) => e.shouldFetchOnWindowFocus())?.refetch({ cancelRefetch: !1 }), this.#r?.continue();
475
- }
476
- onOnline() {
477
- this.observers.find((e) => e.shouldFetchOnReconnect())?.refetch({ cancelRefetch: !1 }), this.#r?.continue();
478
- }
479
- addObserver(t) {
480
- this.observers.includes(t) || (this.observers.push(t), this.clearGcTimeout(), this.#s.notify({ type: "observerAdded", query: this, observer: t }));
481
- }
482
- removeObserver(t) {
483
- this.observers.includes(t) && (this.observers = this.observers.filter((e) => e !== t), this.observers.length || (this.#r && (this.#a ? this.#r.cancel({ revert: !0 }) : this.#r.cancelRetry()), this.scheduleGc()), this.#s.notify({ type: "observerRemoved", query: this, observer: t }));
484
- }
485
- getObserversCount() {
486
- return this.observers.length;
487
- }
488
- invalidate() {
489
- this.state.isInvalidated || this.#i({ type: "invalidate" });
490
- }
491
- fetch(t, e) {
492
- if (this.state.fetchStatus !== "idle") {
493
- if (this.state.data !== void 0 && e?.cancelRefetch)
494
- this.cancel({ silent: !0 });
495
- else if (this.#r)
496
- return this.#r.continueRetry(), this.#r.promise;
497
- }
498
- if (t && this.setOptions(t), !this.options.queryFn) {
499
- const a = this.observers.find((l) => l.options.queryFn);
500
- a && this.setOptions(a.options);
501
- }
502
- process.env.NODE_ENV !== "production" && (Array.isArray(this.options.queryKey) || console.error(
503
- "As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']"
504
- ));
505
- const s = new AbortController(), r = (a) => {
506
- Object.defineProperty(a, "signal", {
507
- enumerable: !0,
508
- get: () => (this.#a = !0, s.signal)
509
- });
510
- }, n = () => {
511
- const a = Pt(this.options, e), h = (() => {
512
- const f = {
513
- client: this.#n,
514
- queryKey: this.queryKey,
515
- meta: this.meta
516
- };
517
- return r(f), f;
518
- })();
519
- return this.#a = !1, this.options.persister ? this.options.persister(
520
- a,
521
- h,
522
- this
523
- ) : a(h);
524
- }, o = (() => {
525
- const a = {
526
- fetchOptions: e,
527
- options: this.options,
528
- queryKey: this.queryKey,
529
- client: this.#n,
530
- state: this.state,
531
- fetchFn: n
532
- };
533
- return r(a), a;
534
- })();
535
- this.options.behavior?.onFetch(o, this), this.#t = this.state, (this.state.fetchStatus === "idle" || this.state.fetchMeta !== o.fetchOptions?.meta) && this.#i({ type: "fetch", meta: o.fetchOptions?.meta });
536
- const u = (a) => {
537
- U(a) && a.silent || this.#i({
538
- type: "error",
539
- error: a
540
- }), U(a) || (this.#s.config.onError?.(
541
- a,
542
- this
543
- ), this.#s.config.onSettled?.(
544
- this.state.data,
545
- a,
546
- this
547
- )), this.scheduleGc();
548
- };
549
- return this.#r = kt({
550
- initialPromise: e?.initialPromise,
551
- fn: o.fetchFn,
552
- abort: s.abort.bind(s),
553
- onSuccess: (a) => {
554
- if (a === void 0) {
555
- process.env.NODE_ENV !== "production" && console.error(
556
- `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`
557
- ), u(new Error(`${this.queryHash} data is undefined`));
558
- return;
559
- }
560
- try {
561
- this.setData(a);
562
- } catch (l) {
563
- u(l);
564
- return;
565
- }
566
- this.#s.config.onSuccess?.(a, this), this.#s.config.onSettled?.(
567
- a,
568
- this.state.error,
569
- this
570
- ), this.scheduleGc();
571
- },
572
- onError: u,
573
- onFail: (a, l) => {
574
- this.#i({ type: "failed", failureCount: a, error: l });
575
- },
576
- onPause: () => {
577
- this.#i({ type: "pause" });
578
- },
579
- onContinue: () => {
580
- this.#i({ type: "continue" });
581
- },
582
- retry: o.options.retry,
583
- retryDelay: o.options.retryDelay,
584
- networkMode: o.options.networkMode,
585
- canRun: () => !0
586
- }), this.#r.start();
587
- }
588
- #i(t) {
589
- const e = (s) => {
590
- switch (t.type) {
591
- case "failed":
592
- return {
593
- ...s,
594
- fetchFailureCount: t.failureCount,
595
- fetchFailureReason: t.error
596
- };
597
- case "pause":
598
- return {
599
- ...s,
600
- fetchStatus: "paused"
601
- };
602
- case "continue":
603
- return {
604
- ...s,
605
- fetchStatus: "fetching"
606
- };
607
- case "fetch":
608
- return {
609
- ...s,
610
- ...ft(s.data, this.options),
611
- fetchMeta: t.meta ?? null
612
- };
613
- case "success":
614
- return this.#t = void 0, {
615
- ...s,
616
- data: t.data,
617
- dataUpdateCount: s.dataUpdateCount + 1,
618
- dataUpdatedAt: t.dataUpdatedAt ?? Date.now(),
619
- error: null,
620
- isInvalidated: !1,
621
- status: "success",
622
- ...!t.manual && {
623
- fetchStatus: "idle",
624
- fetchFailureCount: 0,
625
- fetchFailureReason: null
626
- }
627
- };
628
- case "error":
629
- const r = t.error;
630
- return U(r) && r.revert && this.#t ? { ...this.#t, fetchStatus: "idle" } : {
631
- ...s,
632
- error: r,
633
- errorUpdateCount: s.errorUpdateCount + 1,
634
- errorUpdatedAt: Date.now(),
635
- fetchFailureCount: s.fetchFailureCount + 1,
636
- fetchFailureReason: r,
637
- fetchStatus: "idle",
638
- status: "error"
639
- };
640
- case "invalidate":
641
- return {
642
- ...s,
643
- isInvalidated: !0
644
- };
645
- case "setState":
646
- return {
647
- ...s,
648
- ...t.state
649
- };
650
- }
651
- };
652
- this.state = e(this.state), J.batch(() => {
653
- this.observers.forEach((s) => {
654
- s.onQueryUpdate();
655
- }), this.#s.notify({ query: this, type: "updated", action: t });
656
- });
657
- }
658
- };
659
- function ft(t, e) {
660
- return {
661
- fetchFailureCount: 0,
662
- fetchFailureReason: null,
663
- fetchStatus: ht(e.networkMode) ? "fetching" : "paused",
664
- ...t === void 0 && {
665
- error: null,
666
- status: "pending"
667
- }
668
- };
669
- }
670
- function Qt(t) {
671
- const e = typeof t.initialData == "function" ? t.initialData() : t.initialData, s = e !== void 0, r = s ? typeof t.initialDataUpdatedAt == "function" ? t.initialDataUpdatedAt() : t.initialDataUpdatedAt : 0;
672
- return {
673
- data: e,
674
- dataUpdateCount: 0,
675
- dataUpdatedAt: s ? r ?? Date.now() : 0,
676
- error: null,
677
- errorUpdateCount: 0,
678
- errorUpdatedAt: 0,
679
- fetchFailureCount: 0,
680
- fetchFailureReason: null,
681
- fetchMeta: null,
682
- isInvalidated: !1,
683
- status: s ? "success" : "pending",
684
- fetchStatus: "idle"
685
- };
686
- }
687
- var dt = class extends V {
688
- constructor(t, e) {
689
- super(), this.options = e, this.#e = t, this.#i = null, this.#a = B(), this.options.experimental_prefetchInRender || this.#a.reject(
690
- new Error("experimental_prefetchInRender feature flag is not enabled")
691
- ), this.bindMethods(), this.setOptions(e);
692
- }
693
- #e;
694
- #t = void 0;
695
- #s = void 0;
696
- #n = void 0;
697
- #r;
698
- #o;
699
- #a;
700
- #i;
701
- #y;
702
- #f;
703
- // This property keeps track of the last query with defined data.
704
- // It will be used to pass the previous data and query to the placeholder function between renders.
705
- #d;
706
- #c;
707
- #h;
708
- #u;
709
- #p = /* @__PURE__ */ new Set();
710
- bindMethods() {
711
- this.refetch = this.refetch.bind(this);
712
- }
713
- onSubscribe() {
714
- this.listeners.size === 1 && (this.#t.addObserver(this), rt(this.#t, this.options) ? this.#l() : this.updateResult(), this.#b());
715
- }
716
- onUnsubscribe() {
717
- this.hasListeners() || this.destroy();
718
- }
719
- shouldFetchOnReconnect() {
720
- return G(
721
- this.#t,
722
- this.options,
723
- this.options.refetchOnReconnect
724
- );
725
- }
726
- shouldFetchOnWindowFocus() {
727
- return G(
728
- this.#t,
729
- this.options,
730
- this.options.refetchOnWindowFocus
731
- );
732
- }
733
- destroy() {
734
- this.listeners = /* @__PURE__ */ new Set(), this.#S(), this.#w(), this.#t.removeObserver(this);
735
- }
736
- setOptions(t) {
737
- const e = this.options, s = this.#t;
738
- if (this.options = this.#e.defaultQueryOptions(t), this.options.enabled !== void 0 && typeof this.options.enabled != "boolean" && typeof this.options.enabled != "function" && typeof w(this.options.enabled, this.#t) != "boolean")
739
- throw new Error(
740
- "Expected enabled to be a boolean or a callback that returns a boolean"
741
- );
742
- this.#R(), this.#t.setOptions(this.options), e._defaulted && !_(this.options, e) && this.#e.getQueryCache().notify({
743
- type: "observerOptionsUpdated",
744
- query: this.#t,
745
- observer: this
746
- });
747
- const r = this.hasListeners();
748
- r && nt(
749
- this.#t,
750
- s,
751
- this.options,
752
- e
753
- ) && this.#l(), this.updateResult(), r && (this.#t !== s || w(this.options.enabled, this.#t) !== w(e.enabled, this.#t) || x(this.options.staleTime, this.#t) !== x(e.staleTime, this.#t)) && this.#v();
754
- const n = this.#g();
755
- r && (this.#t !== s || w(this.options.enabled, this.#t) !== w(e.enabled, this.#t) || n !== this.#u) && this.#m(n);
756
- }
757
- getOptimisticResult(t) {
758
- const e = this.#e.getQueryCache().build(this.#e, t), s = this.createResult(e, t);
759
- return Lt(this, s) && (this.#n = s, this.#o = this.options, this.#r = this.#t.state), s;
760
- }
761
- getCurrentResult() {
762
- return this.#n;
763
- }
764
- trackResult(t, e) {
765
- return new Proxy(t, {
766
- get: (s, r) => (this.trackProp(r), e?.(r), Reflect.get(s, r))
767
- });
768
- }
769
- trackProp(t) {
770
- this.#p.add(t);
771
- }
772
- getCurrentQuery() {
773
- return this.#t;
774
- }
775
- refetch({ ...t } = {}) {
776
- return this.fetch({
777
- ...t
778
- });
779
- }
780
- fetchOptimistic(t) {
781
- const e = this.#e.defaultQueryOptions(t), s = this.#e.getQueryCache().build(this.#e, e);
782
- return s.fetch().then(() => this.createResult(s, e));
783
- }
784
- fetch(t) {
785
- return this.#l({
786
- ...t,
787
- cancelRefetch: t.cancelRefetch ?? !0
788
- }).then(() => (this.updateResult(), this.#n));
789
- }
790
- #l(t) {
791
- this.#R();
792
- let e = this.#t.fetch(
793
- this.options,
794
- t
795
- );
796
- return t?.throwOnError || (e = e.catch(F)), e;
797
- }
798
- #v() {
799
- this.#S();
800
- const t = x(
801
- this.options.staleTime,
802
- this.#t
803
- );
804
- if (E || this.#n.isStale || !N(t))
805
- return;
806
- const s = ot(this.#n.dataUpdatedAt, t) + 1;
807
- this.#c = setTimeout(() => {
808
- this.#n.isStale || this.updateResult();
809
- }, s);
810
- }
811
- #g() {
812
- return (typeof this.options.refetchInterval == "function" ? this.options.refetchInterval(this.#t) : this.options.refetchInterval) ?? !1;
813
- }
814
- #m(t) {
815
- this.#w(), this.#u = t, !(E || w(this.options.enabled, this.#t) === !1 || !N(this.#u) || this.#u === 0) && (this.#h = setInterval(() => {
816
- (this.options.refetchIntervalInBackground || ut.isFocused()) && this.#l();
817
- }, this.#u));
818
- }
819
- #b() {
820
- this.#v(), this.#m(this.#g());
821
- }
822
- #S() {
823
- this.#c && (clearTimeout(this.#c), this.#c = void 0);
824
- }
825
- #w() {
826
- this.#h && (clearInterval(this.#h), this.#h = void 0);
827
- }
828
- createResult(t, e) {
829
- const s = this.#t, r = this.options, n = this.#n, i = this.#r, o = this.#o, a = t !== s ? t.state : this.#s, { state: l } = t;
830
- let h = { ...l }, f = !1, d;
831
- if (e._optimisticResults) {
832
- const b = this.hasListeners(), D = !b && rt(t, e), T = b && nt(t, s, e, r);
833
- (D || T) && (h = {
834
- ...h,
835
- ...ft(l.data, t.options)
836
- }), e._optimisticResults === "isRestoring" && (h.fetchStatus = "idle");
837
- }
838
- let { error: g, errorUpdatedAt: O, status: c } = h;
839
- d = h.data;
840
- let m = !1;
841
- if (e.placeholderData !== void 0 && d === void 0 && c === "pending") {
842
- let b;
843
- n?.isPlaceholderData && e.placeholderData === o?.placeholderData ? (b = n.data, m = !0) : b = typeof e.placeholderData == "function" ? e.placeholderData(
844
- this.#d?.state.data,
845
- this.#d
846
- ) : e.placeholderData, b !== void 0 && (c = "success", d = K(
847
- n?.data,
848
- b,
849
- e
850
- ), f = !0);
851
- }
852
- if (e.select && d !== void 0 && !m)
853
- if (n && d === i?.data && e.select === this.#y)
854
- d = this.#f;
855
- else
856
- try {
857
- this.#y = e.select, d = e.select(d), d = K(n?.data, d, e), this.#f = d, this.#i = null;
858
- } catch (b) {
859
- this.#i = b;
860
- }
861
- this.#i && (g = this.#i, d = this.#f, O = Date.now(), c = "error");
862
- const v = h.fetchStatus === "fetching", p = c === "pending", y = c === "error", C = p && v, P = d !== void 0, R = {
863
- status: c,
864
- fetchStatus: h.fetchStatus,
865
- isPending: p,
866
- isSuccess: c === "success",
867
- isError: y,
868
- isInitialLoading: C,
869
- isLoading: C,
870
- data: d,
871
- dataUpdatedAt: h.dataUpdatedAt,
872
- error: g,
873
- errorUpdatedAt: O,
874
- failureCount: h.fetchFailureCount,
875
- failureReason: h.fetchFailureReason,
876
- errorUpdateCount: h.errorUpdateCount,
877
- isFetched: h.dataUpdateCount > 0 || h.errorUpdateCount > 0,
878
- isFetchedAfterMount: h.dataUpdateCount > a.dataUpdateCount || h.errorUpdateCount > a.errorUpdateCount,
879
- isFetching: v,
880
- isRefetching: v && !p,
881
- isLoadingError: y && !P,
882
- isPaused: h.fetchStatus === "paused",
883
- isPlaceholderData: f,
884
- isRefetchError: y && P,
885
- isStale: Z(t, e),
886
- refetch: this.refetch,
887
- promise: this.#a
888
- };
889
- if (this.options.experimental_prefetchInRender) {
890
- const b = (A) => {
891
- R.status === "error" ? A.reject(R.error) : R.data !== void 0 && A.resolve(R.data);
892
- }, D = () => {
893
- const A = this.#a = R.promise = B();
894
- b(A);
895
- }, T = this.#a;
896
- switch (T.status) {
897
- case "pending":
898
- t.queryHash === s.queryHash && b(T);
899
- break;
900
- case "fulfilled":
901
- (R.status === "error" || R.data !== T.value) && D();
902
- break;
903
- case "rejected":
904
- (R.status !== "error" || R.error !== T.reason) && D();
905
- break;
906
- }
907
- }
908
- return R;
909
- }
910
- updateResult() {
911
- const t = this.#n, e = this.createResult(this.#t, this.options);
912
- if (this.#r = this.#t.state, this.#o = this.options, this.#r.data !== void 0 && (this.#d = this.#t), _(e, t))
913
- return;
914
- this.#n = e;
915
- const s = () => {
916
- if (!t)
917
- return !0;
918
- const { notifyOnChangeProps: r } = this.options, n = typeof r == "function" ? r() : r;
919
- if (n === "all" || !n && !this.#p.size)
920
- return !0;
921
- const i = new Set(
922
- n ?? this.#p
923
- );
924
- return this.options.throwOnError && i.add("error"), Object.keys(this.#n).some((o) => {
925
- const u = o;
926
- return this.#n[u] !== t[u] && i.has(u);
927
- });
928
- };
929
- this.#O({ listeners: s() });
930
- }
931
- #R() {
932
- const t = this.#e.getQueryCache().build(this.#e, this.options);
933
- if (t === this.#t)
934
- return;
935
- const e = this.#t;
936
- this.#t = t, this.#s = t.state, this.hasListeners() && (e?.removeObserver(this), t.addObserver(this));
937
- }
938
- onQueryUpdate() {
939
- this.updateResult(), this.hasListeners() && this.#b();
940
- }
941
- #O(t) {
942
- J.batch(() => {
943
- t.listeners && this.listeners.forEach((e) => {
944
- e(this.#n);
945
- }), this.#e.getQueryCache().notify({
946
- query: this.#t,
947
- type: "observerResultsUpdated"
948
- });
949
- });
950
- }
951
- };
952
- function Nt(t, e) {
953
- return w(e.enabled, t) !== !1 && t.state.data === void 0 && !(t.state.status === "error" && e.retryOnMount === !1);
954
- }
955
- function rt(t, e) {
956
- return Nt(t, e) || t.state.data !== void 0 && G(t, e, e.refetchOnMount);
957
- }
958
- function G(t, e, s) {
959
- if (w(e.enabled, t) !== !1 && x(e.staleTime, t) !== "static") {
960
- const r = typeof s == "function" ? s(t) : s;
961
- return r === "always" || r !== !1 && Z(t, e);
962
- }
963
- return !1;
964
- }
965
- function nt(t, e, s, r) {
966
- return (t !== e || w(r.enabled, t) === !1) && (!s.suspense || t.state.status !== "error") && Z(t, s);
967
- }
968
- function Z(t, e) {
969
- return w(e.enabled, t) !== !1 && t.isStaleByTime(x(e.staleTime, t));
970
- }
971
- function Lt(t, e) {
972
- return !_(t.getCurrentResult(), e);
973
- }
974
- var pt = S.createContext(
975
- void 0
976
- ), yt = (t) => {
977
- const e = S.useContext(pt);
978
- if (t)
979
- return t;
980
- if (!e)
981
- throw new Error("No QueryClient set, use QueryClientProvider to set one");
982
- return e;
983
- }, Fe = ({
984
- client: t,
985
- children: e
986
- }) => (S.useEffect(() => (t.mount(), () => {
987
- t.unmount();
988
- }), [t]), /* @__PURE__ */ Ct.jsx(pt.Provider, { value: t, children: e })), vt = S.createContext(!1), Mt = () => S.useContext(vt);
989
- vt.Provider;
990
- function _t() {
991
- let t = !1;
992
- return {
993
- clearReset: () => {
994
- t = !1;
995
- },
996
- reset: () => {
997
- t = !0;
998
- },
999
- isReset: () => t
1000
- };
1001
- }
1002
- var Ht = S.createContext(_t()), Kt = () => S.useContext(Ht), Bt = (t, e) => {
1003
- (t.suspense || t.throwOnError || t.experimental_prefetchInRender) && (e.isReset() || (t.retryOnMount = !1));
1004
- }, Gt = (t) => {
1005
- S.useEffect(() => {
1006
- t.clearReset();
1007
- }, [t]);
1008
- }, zt = ({
1009
- result: t,
1010
- errorResetBoundary: e,
1011
- throwOnError: s,
1012
- query: r,
1013
- suspense: n
1014
- }) => t.isError && !e.isReset() && !t.isFetching && r && (n && t.data === void 0 || Tt(s, [t.error, r])), Vt = (t, e) => e.state.data === void 0, $t = (t) => {
1015
- if (t.suspense) {
1016
- const e = (r) => r === "static" ? r : Math.max(r ?? 1e3, 1e3), s = t.staleTime;
1017
- t.staleTime = typeof s == "function" ? (...r) => e(s(...r)) : e(s), typeof t.gcTime == "number" && (t.gcTime = Math.max(t.gcTime, 1e3));
1018
- }
1019
- }, Jt = (t, e) => t.isLoading && t.isFetching && !e, Zt = (t, e) => t?.suspense && e.isPending, it = (t, e, s) => e.fetchOptimistic(t).catch(() => {
1020
- s.clearReset();
1021
- });
1022
- function gt(t, e, s) {
1023
- if (process.env.NODE_ENV !== "production" && (typeof t != "object" || Array.isArray(t)))
1024
- throw new Error(
1025
- 'Bad argument type. Starting with v5, only the "Object" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'
1026
- );
1027
- const r = Mt(), n = Kt(), i = yt(s), o = i.defaultQueryOptions(t);
1028
- i.getDefaultOptions().queries?._experimental_beforeQuery?.(
1029
- o
1030
- ), process.env.NODE_ENV !== "production" && (o.queryFn || console.error(
1031
- `[${o.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`
1032
- )), o._optimisticResults = r ? "isRestoring" : "optimistic", $t(o), Bt(o, n), Gt(n);
1033
- const u = !i.getQueryCache().get(o.queryHash), [a] = S.useState(
1034
- () => new e(
1035
- i,
1036
- o
1037
- )
1038
- ), l = a.getOptimisticResult(o), h = !r && t.subscribed !== !1;
1039
- if (S.useSyncExternalStore(
1040
- S.useCallback(
1041
- (f) => {
1042
- const d = h ? a.subscribe(J.batchCalls(f)) : F;
1043
- return a.updateResult(), d;
1044
- },
1045
- [a, h]
1046
- ),
1047
- () => a.getCurrentResult(),
1048
- () => a.getCurrentResult()
1049
- ), S.useEffect(() => {
1050
- a.setOptions(o);
1051
- }, [o, a]), Zt(o, l))
1052
- throw it(o, a, n);
1053
- if (zt({
1054
- result: l,
1055
- errorResetBoundary: n,
1056
- throwOnError: o.throwOnError,
1057
- query: i.getQueryCache().get(o.queryHash),
1058
- suspense: o.suspense
1059
- }))
1060
- throw l.error;
1061
- return i.getDefaultOptions().queries?._experimental_afterQuery?.(
1062
- o,
1063
- l
1064
- ), o.experimental_prefetchInRender && !E && Jt(l, r) && (u ? (
1065
- // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted
1066
- it(o, a, n)
1067
- ) : (
1068
- // subscribe to the "cache promise" so that we can finalize the currentThenable once data comes in
1069
- i.getQueryCache().get(o.queryHash)?.promise
1070
- ))?.catch(F).finally(() => {
1071
- a.updateResult();
1072
- }), o.notifyOnChangeProps ? l : a.trackResult(l);
1073
- }
1074
- function Wt(t, e) {
1075
- return gt(t, dt, e);
1076
- }
1077
- function Yt(t, e) {
1078
- return process.env.NODE_ENV !== "production" && t.queryFn === k && console.error("skipToken is not allowed for useSuspenseQuery"), gt(
1079
- {
1080
- ...t,
1081
- enabled: !0,
1082
- suspense: !0,
1083
- throwOnError: Vt,
1084
- placeholderData: void 0
1085
- },
1086
- dt,
1087
- e
1088
- );
1089
- }
1090
- const Xt = /^(\w+:\/\/[^/?]+)?([^?]*)(\?.*)?$/, te = (t) => t.filter(
1091
- (e) => e != null && e !== !1 && (typeof e == "string" || typeof e == "number")
1092
- ).map((e) => `${e}`).filter((e) => e), ee = (t) => {
1093
- const e = t.join("/"), [, s = "", r = ""] = e.match(Xt) ?? [];
1094
- return {
1095
- prefix: s,
1096
- pathname: r.split("/").filter((n) => n !== "")
1097
- };
1098
- }, se = (t) => {
1099
- const { prefix: e, pathname: s } = t;
1100
- let r = e;
1101
- return s.length > 0 ? (r ? r += "/" : r = "/", r += s.join("/")) : r || (r = "/"), r;
1102
- }, I = (...t) => {
1103
- const e = te(t), s = ee(e);
1104
- return se(s);
1105
- }, mt = Object.freeze({
1106
- API_IDENTITIES: ["api-identities"]
1107
- }), Ie = () => {
1108
- const t = yt();
1109
- return {
1110
- invalidateCache: async (e) => {
1111
- await t.invalidateQueries({ queryKey: mt[e] });
1112
- }
1113
- };
1114
- }, Pe = "no-dehydrate", W = (t, e) => {
1115
- for (const s of t) {
1116
- const r = Y(s, e);
1117
- if (r !== void 0) return r;
1118
- }
1119
- }, Y = (t, e, s = []) => {
1120
- const r = e(t, s);
1121
- if (r !== void 0) return r;
1122
- if (t.type === "category")
1123
- for (const n of t.items) {
1124
- const i = Y(n, e, [
1125
- ...s,
1126
- t
1127
- ]);
1128
- if (i !== void 0) return i;
1129
- }
1130
- }, Te = () => {
1131
- const t = q(), { navigation: e } = bt();
1132
- return W(e, (s) => {
1133
- if (s.type === "doc" && I(s.path) === t.pathname)
1134
- return s;
1135
- });
1136
- }, xe = (t) => {
1137
- const e = q();
1138
- return Y(t, (s) => {
1139
- if (s.type === "category" && s.link && I(s.link.path) === e.pathname || s.type === "doc" && I(s.path) === e.pathname)
1140
- return !0;
1141
- });
1142
- }, De = () => {
1143
- const t = q().pathname, { navigation: e } = bt();
1144
- let s, r, n = !1;
1145
- return W(e, (i) => {
1146
- const o = i.type === "doc" ? I(i.path) : i.type === "category" && i.link ? I(i.link.path) : void 0;
1147
- if (o) {
1148
- if (n)
1149
- return r = { label: i.label, id: o }, !0;
1150
- t === o ? n = !0 : s = { label: i.label, id: o };
1151
- }
1152
- }), { prev: s, next: r };
1153
- }, Ae = Et(
1154
- "relative flex items-center gap-2 px-(--padding-nav-item) my-0.5 py-1.5 rounded-lg hover:bg-accent tabular-nums",
1155
- {
1156
- variants: {
1157
- isActive: {
1158
- true: "bg-accent font-medium",
1159
- false: "text-foreground/80"
1160
- },
1161
- isMuted: {
1162
- true: "text-foreground/30",
1163
- false: ""
1164
- },
1165
- isPending: {
1166
- true: "bg-accent animate-pulse",
1167
- false: ""
1168
- }
1169
- },
1170
- defaultVariants: {
1171
- isActive: !1
1172
- }
1173
- }
1174
- ), ke = (t) => (e) => e.display === "hide" || !e.label ? !1 : e.display === "auth" && t || e.display === "anon" && !t || !e.display || e.display === "always", re = Rt(
1175
- void 0
1176
- ), X = () => {
1177
- const t = Ot(re);
1178
- if (!t)
1179
- throw new Error("useZudoku must be used within a ZudokuProvider.");
1180
- return t;
1181
- }, qe = () => {
1182
- const { getApiIdentities: t } = X();
1183
- return Wt({
1184
- queryFn: t,
1185
- queryKey: mt.API_IDENTITIES
1186
- });
1187
- }, Q = (t) => {
1188
- switch (t.type) {
1189
- case "doc":
1190
- return I(t.path);
1191
- case "category":
1192
- return t.link ? I(t.link.path) : void 0;
1193
- case "link":
1194
- return t.to;
1195
- case "custom-page":
1196
- return t.path;
1197
- default:
1198
- return;
1199
- }
1200
- }, bt = () => {
1201
- const { getPluginNavigation: t, navigation: e, options: s } = X(), r = q(), n = fe(), i = s.protectedRoutes?.some(
1202
- (h) => j(h, r.pathname)
1203
- ), o = W(e, (h, f) => {
1204
- if (Q(h) === r.pathname)
1205
- return f.at(0) ?? h;
1206
- }), { data: u } = Yt({
1207
- queryFn: () => t(r.pathname),
1208
- queryKey: ["plugin-navigation", r.pathname]
1209
- });
1210
- let a = o;
1211
- if (!o && u.length > 0) {
1212
- const h = u.flatMap((f) => Q(f)?.split("?").at(0)?.split("#").at(0) ?? []);
1213
- a = e.flatMap((f) => {
1214
- const d = Q(f);
1215
- return d ? [{ item: f, path: d }] : [];
1216
- }).sort((f, d) => d.path.length - f.path.length).find(({ path: f }) => h.some(
1217
- (d) => j({ path: f, end: !1 }, d) ?? j({ path: d, end: !1 }, f)
1218
- ))?.item;
1219
- }
1220
- return {
1221
- navigation: n.isAuthEnabled && !n.isAuthenticated && i ? [] : [...o?.type === "category" ? o.items : [], ...u],
1222
- topNavItem: a
1223
- };
1224
- }, at = (t) => {
1225
- let e;
1226
- const s = /* @__PURE__ */ new Set(), r = (l, h) => {
1227
- const f = typeof l == "function" ? l(e) : l;
1228
- if (!Object.is(f, e)) {
1229
- const d = e;
1230
- e = h ?? (typeof f != "object" || f === null) ? f : Object.assign({}, e, f), s.forEach((g) => g(e, d));
1231
- }
1232
- }, n = () => e, u = { setState: r, getState: n, getInitialState: () => a, subscribe: (l) => (s.add(l), () => s.delete(l)) }, a = e = t(r, n, u);
1233
- return u;
1234
- }, ne = (t) => t ? at(t) : at, ie = (t) => t;
1235
- function ae(t, e = ie) {
1236
- const s = tt.useSyncExternalStore(
1237
- t.subscribe,
1238
- () => e(t.getState()),
1239
- () => e(t.getInitialState())
1240
- );
1241
- return tt.useDebugValue(s), s;
1242
- }
1243
- const oe = (t) => {
1244
- const e = ne(t), s = (r) => ae(e, r);
1245
- return Object.assign(s, e), s;
1246
- }, ue = (t) => oe;
1247
- function St(t, e) {
1248
- let s;
1249
- try {
1250
- s = t();
1251
- } catch {
1252
- return;
1253
- }
1254
- return {
1255
- getItem: (n) => {
1256
- var i;
1257
- const o = (a) => a === null ? null : JSON.parse(a, void 0), u = (i = s.getItem(n)) != null ? i : null;
1258
- return u instanceof Promise ? u.then(o) : o(u);
1259
- },
1260
- setItem: (n, i) => s.setItem(n, JSON.stringify(i, void 0)),
1261
- removeItem: (n) => s.removeItem(n)
1262
- };
1263
- }
1264
- const z = (t) => (e) => {
1265
- try {
1266
- const s = t(e);
1267
- return s instanceof Promise ? s : {
1268
- then(r) {
1269
- return z(r)(s);
1270
- },
1271
- catch(r) {
1272
- return this;
1273
- }
1274
- };
1275
- } catch (s) {
1276
- return {
1277
- then(r) {
1278
- return this;
1279
- },
1280
- catch(r) {
1281
- return z(r)(s);
1282
- }
1283
- };
1284
- }
1285
- }, ce = (t, e) => (s, r, n) => {
1286
- let i = {
1287
- storage: St(() => localStorage),
1288
- partialize: (c) => c,
1289
- version: 0,
1290
- merge: (c, m) => ({
1291
- ...m,
1292
- ...c
1293
- }),
1294
- ...e
1295
- }, o = !1;
1296
- const u = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set();
1297
- let l = i.storage;
1298
- if (!l)
1299
- return t(
1300
- (...c) => {
1301
- console.warn(
1302
- `[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`
1303
- ), s(...c);
1304
- },
1305
- r,
1306
- n
1307
- );
1308
- const h = () => {
1309
- const c = i.partialize({ ...r() });
1310
- return l.setItem(i.name, {
1311
- state: c,
1312
- version: i.version
1313
- });
1314
- }, f = n.setState;
1315
- n.setState = (c, m) => {
1316
- f(c, m), h();
1317
- };
1318
- const d = t(
1319
- (...c) => {
1320
- s(...c), h();
1321
- },
1322
- r,
1323
- n
1324
- );
1325
- n.getInitialState = () => d;
1326
- let g;
1327
- const O = () => {
1328
- var c, m;
1329
- if (!l) return;
1330
- o = !1, u.forEach((p) => {
1331
- var y;
1332
- return p((y = r()) != null ? y : d);
1333
- });
1334
- const v = ((m = i.onRehydrateStorage) == null ? void 0 : m.call(i, (c = r()) != null ? c : d)) || void 0;
1335
- return z(l.getItem.bind(l))(i.name).then((p) => {
1336
- if (p)
1337
- if (typeof p.version == "number" && p.version !== i.version) {
1338
- if (i.migrate) {
1339
- const y = i.migrate(
1340
- p.state,
1341
- p.version
1342
- );
1343
- return y instanceof Promise ? y.then((C) => [!0, C]) : [!0, y];
1344
- }
1345
- console.error(
1346
- "State loaded from storage couldn't be migrated since no migrate function was provided"
1347
- );
1348
- } else
1349
- return [!1, p.state];
1350
- return [!1, void 0];
1351
- }).then((p) => {
1352
- var y;
1353
- const [C, P] = p;
1354
- if (g = i.merge(
1355
- P,
1356
- (y = r()) != null ? y : d
1357
- ), s(g, !0), C)
1358
- return h();
1359
- }).then(() => {
1360
- v?.(g, void 0), g = r(), o = !0, a.forEach((p) => p(g));
1361
- }).catch((p) => {
1362
- v?.(void 0, p);
1363
- });
1364
- };
1365
- return n.persist = {
1366
- setOptions: (c) => {
1367
- i = {
1368
- ...i,
1369
- ...c
1370
- }, c.storage && (l = c.storage);
1371
- },
1372
- clearStorage: () => {
1373
- l?.removeItem(i.name);
1374
- },
1375
- getOptions: () => i,
1376
- rehydrate: () => O(),
1377
- hasHydrated: () => o,
1378
- onHydrate: (c) => (u.add(c), () => {
1379
- u.delete(c);
1380
- }),
1381
- onFinishHydration: (c) => (a.add(c), () => {
1382
- a.delete(c);
1383
- })
1384
- }, i.skipHydration || O(), g || d;
1385
- }, he = ce, le = (t) => {
1386
- const e = (s) => {
1387
- s.key === t.persist.getOptions().name && s.newValue && t.persist.rehydrate();
1388
- };
1389
- return window.addEventListener("storage", e), () => {
1390
- window.removeEventListener("storage", e);
1391
- };
1392
- }, wt = ue()(
1393
- he(
1394
- (t) => ({
1395
- isAuthenticated: !1,
1396
- isPending: !0,
1397
- profile: null,
1398
- providerData: null,
1399
- setAuthenticationPending: () => t(() => ({
1400
- isAuthenticated: !1,
1401
- isPending: !1,
1402
- profile: null,
1403
- providerData: null
1404
- })),
1405
- setLoggedOut: () => t(() => ({
1406
- isAuthenticated: !1,
1407
- isPending: !1,
1408
- profile: null,
1409
- providerData: null
1410
- })),
1411
- setLoggedIn: ({
1412
- profile: e,
1413
- providerData: s
1414
- }) => t(() => ({
1415
- isAuthenticated: !0,
1416
- isPending: !1,
1417
- profile: e,
1418
- providerData: s
1419
- }))
1420
- }),
1421
- {
1422
- merge: (t, e) => ({
1423
- ...e,
1424
- isPending: !1,
1425
- ...typeof t == "object" ? t : {}
1426
- }),
1427
- name: "auth-state",
1428
- storage: St(() => localStorage)
1429
- }
1430
- )
1431
- );
1432
- typeof window < "u" && le(wt);
1433
- const fe = () => {
1434
- const { authentication: t } = X(), e = wt(), s = typeof t < "u";
1435
- return {
1436
- isAuthEnabled: s,
1437
- ...e,
1438
- login: async () => {
1439
- if (!s)
1440
- throw new Error("Authentication is not enabled.");
1441
- await t.signIn({
1442
- redirectTo: window.location.href
1443
- });
1444
- },
1445
- logout: async () => {
1446
- if (!s)
1447
- throw new Error("Authentication is not enabled.");
1448
- await t.signOut(), window.location.href = "/";
1449
- },
1450
- signup: async () => {
1451
- if (!s)
1452
- throw new Error("Authentication is not enabled.");
1453
- await t.signUp({
1454
- redirectTo: window.location.href
1455
- });
1456
- }
1457
- };
1458
- };
1459
- export {
1460
- Re as A,
1461
- ut as B,
1462
- mt as C,
1463
- ct as D,
1464
- x as E,
1465
- me as F,
1466
- $ as G,
1467
- k as H,
1468
- Ce as I,
1469
- Fe as J,
1470
- ke as K,
1471
- bt as L,
1472
- Y as M,
1473
- Pe as N,
1474
- kt as O,
1475
- xe as P,
1476
- Ee as Q,
1477
- Ut as R,
1478
- V as S,
1479
- Ae as T,
1480
- ne as U,
1481
- ae as V,
1482
- re as Z,
1483
- Te as a,
1484
- De as b,
1485
- Yt as c,
1486
- X as d,
1487
- fe as e,
1488
- Ie as f,
1489
- yt as g,
1490
- L as h,
1491
- F as i,
1492
- I as j,
1493
- Tt as k,
1494
- Wt as l,
1495
- we as m,
1496
- J as n,
1497
- ue as o,
1498
- he as p,
1499
- St as q,
1500
- qe as r,
1501
- _ as s,
1502
- W as t,
1503
- wt as u,
1504
- Ft as v,
1505
- be as w,
1506
- Se as x,
1507
- Pt as y,
1508
- Oe as z
1509
- };
1510
- //# sourceMappingURL=hook-CZjW2buS.js.map